|
|
@@ -1,3 +1,5 @@
|
|
|
+import { useI18n } from "vue-i18n";
|
|
|
+
|
|
|
/**
|
|
|
* Este é um arquivo que contem funções utilitárias.
|
|
|
* Siga o padrão de descrição de funções.
|
|
|
@@ -7,15 +9,15 @@
|
|
|
* @description Regras de validação de inputs.
|
|
|
*/
|
|
|
const inputRules = {
|
|
|
- required: (value) => !!value || "Campo Obrigatório",
|
|
|
- requiredNumber: (value) => !isNaN(value) || "Campo Obrigatório",
|
|
|
+ required: (value) => !!value || useI18n().t("rules.required"),
|
|
|
+ requiredNumber: (value) => !isNaN(value) || useI18n().t("rules.required"),
|
|
|
requiredHideMessage: (value) => !!value,
|
|
|
- min: (value) => value.length >= 3 || "Min de caracteres é 3",
|
|
|
+ min: (value) => value.length >= 3 || useI18n().t("rules.min", { min: 3 }),
|
|
|
email: (value) => {
|
|
|
const pattern =
|
|
|
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
|
if (!value || value == "") return true;
|
|
|
- return pattern.test(value) || "Email inválido";
|
|
|
+ return pattern.test(value) || useI18n().t("rules.email");
|
|
|
},
|
|
|
emails: (value) => {
|
|
|
if (!value || value == "") return true;
|
|
|
@@ -25,13 +27,11 @@ const inputRules = {
|
|
|
.filter((email) => email);
|
|
|
return (
|
|
|
emails.every((email) => inputRules.email(email) == true) ||
|
|
|
- "Emails inválidos"
|
|
|
+ useI18n().t("rules.email", 2)
|
|
|
);
|
|
|
},
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Corta uma string em um determinado tamanho.
|
|
|
* @param {string} string string a ser cortada.
|
|
|
@@ -46,8 +46,6 @@ const excerpt = (string, size = 30) => {
|
|
|
return string;
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Formata uma data de DD/MM/YYYY para YYYY-MM-DD
|
|
|
* @param {string} date data.
|
|
|
@@ -56,17 +54,15 @@ const excerpt = (string, size = 30) => {
|
|
|
* @returns {string} data formatada.
|
|
|
*/
|
|
|
const formatDateDMYtoYMD = (date, time) => {
|
|
|
- if (!date) throw new Error("data não pode ser nula");
|
|
|
+ if (!date) throw new Error(useI18n().t("rules.required"));
|
|
|
const testDate =
|
|
|
/^([0-2][0-9]|(3)[0-1])(\/)(((0)[0-9])|((1)[0-2]))(\/)\d{4}$/;
|
|
|
- if (testDate.test(date) === false) throw new Error("data inválida");
|
|
|
+ if (testDate.test(date) === false) throw new Error(useI18n().t("rules.date"));
|
|
|
|
|
|
const [day, month, year] = date.split("/");
|
|
|
return `${year}-${month}-${day} ${time ? time : ""}`;
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Converte uma data e hora para o formato brasileiro.
|
|
|
* @param {string} dateTimeString data e hora.
|
|
|
@@ -94,7 +90,7 @@ const convertDateTime = (dateTimeString) => {
|
|
|
return formattedDateTime;
|
|
|
};
|
|
|
|
|
|
-/*
|
|
|
+/**
|
|
|
* @description Formata uma data de YYYY-MM-DD para DD/MM/YYYY
|
|
|
* @param {string} dateTime data e hora.
|
|
|
* @returns {string} data e hora no formato brasileiro.
|
|
|
@@ -114,8 +110,6 @@ const formatDateYMDtoDMY = (dateTime) => {
|
|
|
return formattedDate;
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Checa a moeda selecionada.
|
|
|
* @param {number} moeda moeda selecionada.
|
|
|
@@ -162,8 +156,6 @@ const checaMoeda = (moeda) => {
|
|
|
return currencyOptions;
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Filtra a moeda.
|
|
|
* @param {number} value valor.
|
|
|
@@ -180,8 +172,6 @@ const filterCurrency = (value) => {
|
|
|
return value;
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Filtra a unidade de medida.
|
|
|
* @param {number} value valor.
|
|
|
@@ -191,8 +181,6 @@ const filterUnidadeMedida = (value) => {
|
|
|
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Valida se a data é válida.
|
|
|
* @param {string} date data.
|
|
|
@@ -203,8 +191,6 @@ const validaData = (date) => {
|
|
|
return regex.test(date);
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Valida se a hora é válida.
|
|
|
* @param {string} time hora.
|
|
|
@@ -215,8 +201,6 @@ const validaHora = (time) => {
|
|
|
return regex.test(time);
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Valida se a data e hora são válidas.
|
|
|
* @param {string} dataHora data e hora.
|
|
|
@@ -228,8 +212,6 @@ const validaDataHora = (dataHora) => {
|
|
|
return regex.test(dataHora);
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Formata a quantidade.
|
|
|
* @param {number} value valor.
|
|
|
@@ -245,8 +227,6 @@ const formatQuantity = (value) => {
|
|
|
return value;
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Formata a moeda.
|
|
|
* @param {number} value valor.
|
|
|
@@ -264,8 +244,6 @@ const formatCurrency = (value) => {
|
|
|
return value;
|
|
|
};
|
|
|
|
|
|
-// ------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
/**
|
|
|
* @description Verifica se os emails são válidos.
|
|
|
* @param {string} data emails.
|