vality-core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/dist/index.d.ts +14 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +35 -0
  6. package/dist/types.d.ts +69 -0
  7. package/dist/types.d.ts.map +1 -0
  8. package/dist/types.js +36 -0
  9. package/dist/utils/index.d.ts +12 -0
  10. package/dist/utils/index.d.ts.map +1 -0
  11. package/dist/utils/index.js +106 -0
  12. package/dist/valueObjects/Cnpj.d.ts +14 -0
  13. package/dist/valueObjects/Cnpj.d.ts.map +1 -0
  14. package/dist/valueObjects/Cnpj.js +88 -0
  15. package/dist/valueObjects/Cpf.d.ts +14 -0
  16. package/dist/valueObjects/Cpf.d.ts.map +1 -0
  17. package/dist/valueObjects/Cpf.js +83 -0
  18. package/dist/valueObjects/CpfCnpj.d.ts +17 -0
  19. package/dist/valueObjects/CpfCnpj.d.ts.map +1 -0
  20. package/dist/valueObjects/CpfCnpj.js +112 -0
  21. package/dist/valueObjects/DatePicker/DatePicker.d.ts +28 -0
  22. package/dist/valueObjects/DatePicker/DatePicker.d.ts.map +1 -0
  23. package/dist/valueObjects/DatePicker/DatePicker.js +80 -0
  24. package/dist/valueObjects/DatePicker/locales/pt-br.d.ts +8 -0
  25. package/dist/valueObjects/DatePicker/locales/pt-br.d.ts.map +1 -0
  26. package/dist/valueObjects/DatePicker/locales/pt-br.js +288 -0
  27. package/dist/valueObjects/DatePicker/types.d.ts +53 -0
  28. package/dist/valueObjects/DatePicker/types.d.ts.map +1 -0
  29. package/dist/valueObjects/DatePicker/types.js +2 -0
  30. package/dist/valueObjects/Email.d.ts +13 -0
  31. package/dist/valueObjects/Email.d.ts.map +1 -0
  32. package/dist/valueObjects/Email.js +45 -0
  33. package/dist/valueObjects/Moeda.d.ts +16 -0
  34. package/dist/valueObjects/Moeda.d.ts.map +1 -0
  35. package/dist/valueObjects/Moeda.js +20 -0
  36. package/dist/valueObjects/NomeCompleto.d.ts +13 -0
  37. package/dist/valueObjects/NomeCompleto.d.ts.map +1 -0
  38. package/dist/valueObjects/NomeCompleto.js +37 -0
  39. package/dist/valueObjects/Numero.d.ts +33 -0
  40. package/dist/valueObjects/Numero.d.ts.map +1 -0
  41. package/dist/valueObjects/Numero.js +139 -0
  42. package/dist/valueObjects/Placa.d.ts +14 -0
  43. package/dist/valueObjects/Placa.d.ts.map +1 -0
  44. package/dist/valueObjects/Placa.js +54 -0
  45. package/package.json +52 -0
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("../utils");
7
+ const Cnpj_1 = __importDefault(require("./Cnpj"));
8
+ const Cpf_1 = __importDefault(require("./Cpf"));
9
+ class CpfCnpj {
10
+ constructor(nome) {
11
+ this._ehValido = true;
12
+ nome = CpfCnpj.formatar(nome);
13
+ this.validar(nome);
14
+ this._valor = nome;
15
+ }
16
+ set valor(v) {
17
+ v = CpfCnpj.formatar(v);
18
+ this.validar(v);
19
+ this._valor = v;
20
+ }
21
+ get valor() {
22
+ return this._valor;
23
+ }
24
+ get ehValido() {
25
+ return this._ehValido;
26
+ }
27
+ valueOf() {
28
+ return CpfCnpj.sanitizar(this._valor);
29
+ }
30
+ get tipo() {
31
+ const valorSanitizado = CpfCnpj.sanitizar(this._valor);
32
+ if (valorSanitizado.length === 11) {
33
+ return "CPF";
34
+ }
35
+ else if (valorSanitizado.length === 14) {
36
+ return "CNPJ";
37
+ }
38
+ else {
39
+ return null;
40
+ }
41
+ }
42
+ static sanitizar(valor) {
43
+ return valor.replace(/[^0-9]/g, "");
44
+ }
45
+ static formatarCpf(valor) {
46
+ let valorFormatado = valor;
47
+ if (valor.length > 3) {
48
+ valorFormatado =
49
+ valorFormatado.slice(0, 3) + "." + valorFormatado.slice(3);
50
+ }
51
+ if (valor.length > 6) {
52
+ valorFormatado =
53
+ valorFormatado.slice(0, 7) + "." + valorFormatado.slice(7);
54
+ }
55
+ if (valor.length > 9) {
56
+ valorFormatado =
57
+ valorFormatado.slice(0, 11) + "-" + valorFormatado.slice(11);
58
+ }
59
+ return valorFormatado.slice(0, 14);
60
+ }
61
+ static formatarCnpj(valor) {
62
+ let valorFormatado = valor;
63
+ if (valor.length > 2) {
64
+ valorFormatado = valor.slice(0, 2) + "." + valor.slice(2);
65
+ }
66
+ if (valor.length > 5) {
67
+ valorFormatado =
68
+ valorFormatado.slice(0, 6) + "." + valorFormatado.slice(6);
69
+ }
70
+ if (valor.length > 8) {
71
+ valorFormatado =
72
+ valorFormatado.slice(0, 10) + "/" + valorFormatado.slice(10);
73
+ }
74
+ if (valor.length > 12) {
75
+ valorFormatado =
76
+ valorFormatado.slice(0, 15) + "-" + valorFormatado.slice(15);
77
+ }
78
+ return valorFormatado.slice(0, 18);
79
+ }
80
+ static formatar(valor) {
81
+ const valorSanitizado = this.sanitizar(valor);
82
+ let valorFormatado = valorSanitizado;
83
+ if (valorSanitizado.length <= 11) {
84
+ valorFormatado = this.formatarCpf(valorSanitizado);
85
+ }
86
+ else {
87
+ valorFormatado = this.formatarCnpj(valorSanitizado);
88
+ }
89
+ return valorFormatado;
90
+ }
91
+ validar(valor) {
92
+ if ((0, utils_1.isEmpty)(valor)) {
93
+ this._ehValido = true;
94
+ return;
95
+ }
96
+ const cleanedValue = valor.replace(/\D/g, "");
97
+ if (cleanedValue.length === 11) {
98
+ const cpf = new Cpf_1.default(valor);
99
+ this._ehValido = cpf.ehValido;
100
+ return;
101
+ }
102
+ else if (cleanedValue.length > 11 && cleanedValue.length <= 14) {
103
+ const cnpj = new Cnpj_1.default(valor);
104
+ this._ehValido = cnpj.ehValido;
105
+ return;
106
+ }
107
+ else {
108
+ this._ehValido = "Insira um CPF ou CNPJ válido";
109
+ }
110
+ }
111
+ }
112
+ exports.default = CpfCnpj;
@@ -0,0 +1,28 @@
1
+ import { IDatePicker } from "../../types";
2
+ import { DatePickerOptions } from "./types";
3
+ /** Data mínima padrão para o sistema (1900-01-01) */
4
+ export declare const DATA_MINIMA_SISTEMA: Date;
5
+ export default class DatePicker implements IDatePicker {
6
+ private _valor;
7
+ private _ehValido;
8
+ private _locale;
9
+ private _options;
10
+ private _formatar;
11
+ private _validar;
12
+ private _valueOf;
13
+ private _toISOString;
14
+ private _dateFormat;
15
+ constructor(data?: string, locale?: string, options?: DatePickerOptions);
16
+ get valor(): string;
17
+ set valor(v: string);
18
+ get ehValido(): string | true;
19
+ get locale(): string;
20
+ get options(): DatePickerOptions;
21
+ set options(o: DatePickerOptions);
22
+ get dateFormat(): string;
23
+ formatar(valor: string): string;
24
+ valueOf(): number;
25
+ toISOString(): string;
26
+ validar(valor: string): void;
27
+ }
28
+ //# sourceMappingURL=DatePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/valueObjects/DatePicker/DatePicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ1C,OAAO,EACL,iBAAiB,EAKlB,MAAM,SAAS,CAAC;AAEjB,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,MAAuB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,WAAW;IACpD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,WAAW,CAAmB;gBAGpC,IAAI,GAAE,MAAW,EACjB,MAAM,GAAE,MAAgB,EACxB,OAAO,GAAE,iBAER;IA2BH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAIlB;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,MAAM,WAET;IAED,IAAI,OAAO,IAII,iBAAiB,CAF/B;IAED,IAAI,OAAO,CAAC,CAAC,EAAE,iBAAiB,EAE/B;IAED,IAAI,UAAU,WAEb;IAEM,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAU/B,OAAO;IASP,WAAW;IAQX,OAAO,CAAC,KAAK,EAAE,MAAM;CAS7B"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DATA_MINIMA_SISTEMA = void 0;
4
+ const pt_br_1 = require("./locales/pt-br");
5
+ /** Data mínima padrão para o sistema (1900-01-01) */
6
+ exports.DATA_MINIMA_SISTEMA = new Date(1900, 0, 1);
7
+ class DatePicker {
8
+ constructor(data = "", locale = "pt-br", options = {
9
+ type: "date",
10
+ }) {
11
+ this._ehValido = true;
12
+ this._locale = "pt-br";
13
+ this._dateFormat = "d/M/Y";
14
+ const defaultOptions = {
15
+ type: "date",
16
+ separator: " às ",
17
+ maxDateLimit: new Date(),
18
+ minDateLimit: exports.DATA_MINIMA_SISTEMA,
19
+ };
20
+ this._locale = locale;
21
+ this._options = { ...defaultOptions, ...options };
22
+ // Quando houver mais de uma localidade, adicionar um switch case aqui
23
+ this._formatar = pt_br_1.formatarPtBr;
24
+ this._validar = pt_br_1.validarPtBr;
25
+ this._valueOf = pt_br_1.valueOfPtBr;
26
+ this._toISOString = pt_br_1.toISOStringPtBr;
27
+ this._dateFormat = (0, pt_br_1.dateFormatPtBr)(this._options.type, this._options.separator || " ");
28
+ data = this.formatar(data);
29
+ this.validar(data);
30
+ this._valor = data;
31
+ }
32
+ get valor() {
33
+ return this._valor;
34
+ }
35
+ set valor(v) {
36
+ v = this.formatar(v || "");
37
+ this.validar(v);
38
+ this._valor = v;
39
+ }
40
+ get ehValido() {
41
+ return this._ehValido;
42
+ }
43
+ get locale() {
44
+ return this._locale;
45
+ }
46
+ get options() {
47
+ return this._options;
48
+ }
49
+ set options(o) {
50
+ this._options = o;
51
+ }
52
+ get dateFormat() {
53
+ return this._dateFormat;
54
+ }
55
+ formatar(valor) {
56
+ return this._formatar(valor, this.options.type, {
57
+ separator: this.options.separator || " ",
58
+ minDate: this.options.minDateLimit,
59
+ maxDate: this.options.maxDateLimit,
60
+ minTime: this.options.minTimeLimit,
61
+ maxTime: this.options.maxTimeLimit,
62
+ });
63
+ }
64
+ valueOf() {
65
+ return this._valueOf(this.valor, this.options.type, this.options.separator || " ", this.ehValido);
66
+ }
67
+ toISOString() {
68
+ return this._toISOString(this.valor, this.options.type, this.options.separator || " ");
69
+ }
70
+ validar(valor) {
71
+ this._ehValido = this._validar(valor, this.options.type, {
72
+ separator: this.options.separator || " ",
73
+ minDate: this.options.minDate,
74
+ maxDate: this.options.maxDate,
75
+ minTime: this.options.minTime,
76
+ maxTime: this.options.maxTime,
77
+ });
78
+ }
79
+ }
80
+ exports.default = DatePicker;
@@ -0,0 +1,8 @@
1
+ import { FormatFunction, ValidateFunction, ValueOfFunction } from "../types";
2
+ declare const formatarPtBr: FormatFunction;
3
+ declare const validarPtBr: ValidateFunction;
4
+ declare const valueOfPtBr: ValueOfFunction;
5
+ declare const dateFormatPtBr: (type: "date" | "datetime" | "time", separator: string) => string;
6
+ declare const toISOStringPtBr: (valor: string, type: "date" | "datetime" | "time", separator: string) => string;
7
+ export { dateFormatPtBr, formatarPtBr, toISOStringPtBr, validarPtBr, valueOfPtBr };
8
+ //# sourceMappingURL=pt-br.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pt-br.d.ts","sourceRoot":"","sources":["../../../../src/valueObjects/DatePicker/locales/pt-br.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAEd,gBAAgB,EAChB,eAAe,EAChB,MAAM,UAAU,CAAC;AAsMlB,QAAA,MAAM,YAAY,EAAE,cAsBnB,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,gBAoGlB,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,eAuBlB,CAAC;AAEF,QAAA,MAAM,cAAc,GAClB,MAAM,MAAM,GAAG,UAAU,GAAG,MAAM,EAClC,WAAW,MAAM,KAChB,MASF,CAAC;AAEF,QAAA,MAAM,eAAe,GACnB,OAAO,MAAM,EACb,MAAM,MAAM,GAAG,UAAU,GAAG,MAAM,EAClC,WAAW,MAAM,KAChB,MAmBF,CAAC;AAEF,OAAO,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACZ,CAAC"}
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.valueOfPtBr = exports.validarPtBr = exports.toISOStringPtBr = exports.formatarPtBr = exports.dateFormatPtBr = void 0;
4
+ const utils_1 = require("../../../utils");
5
+ const validarDataMinMax = (v, minDate, maxDate) => {
6
+ let valor = `${v.slice(0, 2)}/${v.slice(2, 4)}/${v.slice(4, 8)}`;
7
+ if (minDate) {
8
+ const [dia, mes, ano] = valor.split("/");
9
+ const data = new Date(`${ano}-${mes}-${dia}`);
10
+ if (data < minDate) {
11
+ const min = minDate;
12
+ const dia = min.getDate().toString().padStart(2, "0");
13
+ const mes = (min.getMonth() + 1).toString().padStart(2, "0");
14
+ const ano = min.getFullYear();
15
+ valor = `${dia}/${mes}/${ano}`;
16
+ return "menor";
17
+ }
18
+ }
19
+ if (maxDate) {
20
+ const [dia, mes, ano] = valor.split("/");
21
+ const data = new Date(`${ano}-${mes}-${dia}`);
22
+ if (data > maxDate) {
23
+ const max = maxDate;
24
+ const dia = max.getDate().toString().padStart(2, "0");
25
+ const mes = (max.getMonth() + 1).toString().padStart(2, "0");
26
+ const ano = max.getFullYear();
27
+ valor = `${dia}/${mes}/${ano}`;
28
+ return "maior";
29
+ }
30
+ }
31
+ return true;
32
+ };
33
+ const formatarData = (valueSanatizado, minDate, maxDate) => {
34
+ let dataFormatada = valueSanatizado;
35
+ const getDia = (dia) => {
36
+ if (Number(dia) > 31)
37
+ return "31";
38
+ if (Number(dia) === 0)
39
+ return "01";
40
+ return dia;
41
+ };
42
+ const getMes = (mes) => {
43
+ if (Number(mes) > 12)
44
+ return "12";
45
+ if (Number(mes) === 0)
46
+ return "01";
47
+ return mes;
48
+ };
49
+ if (valueSanatizado.length > 4) {
50
+ const dia = getDia(valueSanatizado.slice(0, 2));
51
+ const mes = getMes(valueSanatizado.slice(2, 4));
52
+ const ano = valueSanatizado.slice(4, 8);
53
+ dataFormatada = `${dia}/${mes}/${ano}`;
54
+ if (valueSanatizado.length == 8) {
55
+ const valido = validarDataMinMax(valueSanatizado, minDate, maxDate);
56
+ if (minDate && valido == "menor") {
57
+ const min = minDate;
58
+ const dia = min.getDate().toString().padStart(2, "0");
59
+ const mes = (min.getMonth() + 1).toString().padStart(2, "0");
60
+ const ano = min.getFullYear();
61
+ dataFormatada = `${dia}/${mes}/${ano}`;
62
+ }
63
+ else if (maxDate && valido == "maior") {
64
+ const max = maxDate;
65
+ const dia = max.getDate().toString().padStart(2, "0");
66
+ const mes = (max.getMonth() + 1).toString().padStart(2, "0");
67
+ const ano = max.getFullYear();
68
+ dataFormatada = `${dia}/${mes}/${ano}`;
69
+ }
70
+ }
71
+ }
72
+ else if (valueSanatizado.length > 2) {
73
+ const dia = getDia(valueSanatizado.slice(0, 2));
74
+ const mes = valueSanatizado.slice(2);
75
+ dataFormatada = `${dia}/${mes}`;
76
+ }
77
+ return dataFormatada;
78
+ };
79
+ const validarTimeMinMax = (valueSanatizado, minTime, maxTime) => {
80
+ if (minTime) {
81
+ const { hour, minute } = minTime;
82
+ const time = Number(hour.toFixed(0).padStart(2, "0") + "" + minute.toFixed(0).padStart(2, "0"));
83
+ if (Number(valueSanatizado) <= time) {
84
+ return "menor";
85
+ }
86
+ }
87
+ if (maxTime) {
88
+ const { hour, minute } = maxTime;
89
+ const time = Number(hour.toFixed(0).padStart(2, "0") + "" + minute.toFixed(0).padStart(2, "0"));
90
+ if (Number(valueSanatizado) >= time) {
91
+ return "maior";
92
+ }
93
+ }
94
+ return true;
95
+ };
96
+ const formatarTime = (valueSanatizado, minTime, maxTime) => {
97
+ let timeFormatado = valueSanatizado;
98
+ const getHora = (hora) => {
99
+ const max = 23;
100
+ const min = 0;
101
+ if (Number(hora) > max)
102
+ return "" + max.toFixed(0).padStart(2, "0");
103
+ if (Number(hora) === min)
104
+ return "" + min.toFixed(0).padStart(2, "0");
105
+ return hora;
106
+ };
107
+ const getMinuto = (minuto) => {
108
+ const max = 59;
109
+ const min = 0;
110
+ if (Number(minuto) > max)
111
+ return "" + max.toFixed(0).padStart(2, "0");
112
+ if (Number(minuto) === min)
113
+ return "" + min.toFixed(0).padStart(2, "0");
114
+ return minuto;
115
+ };
116
+ if (valueSanatizado.length >= 4) {
117
+ const hour = getHora(valueSanatizado.slice(0, 2));
118
+ const minute = getMinuto(valueSanatizado.slice(2, 4));
119
+ timeFormatado = `${hour}:${minute}`;
120
+ const validar = validarTimeMinMax(valueSanatizado, minTime, maxTime);
121
+ if (minTime && validar == "menor") {
122
+ const { hour, minute } = minTime;
123
+ const hourFormat = hour.toFixed(0).padStart(2, "0");
124
+ const minuteFormat = minute.toFixed(0).padStart(2, "0");
125
+ timeFormatado = `${hourFormat}:${minuteFormat}`;
126
+ }
127
+ if (maxTime && validar == "maior") {
128
+ const { hour, minute } = maxTime;
129
+ const hourFormat = hour.toFixed(0).padStart(2, "0");
130
+ const minuteFormat = minute.toFixed(0).padStart(2, "0");
131
+ timeFormatado = `${hourFormat}:${minuteFormat}`;
132
+ }
133
+ }
134
+ else if (valueSanatizado.length > 2) {
135
+ const hour = getHora(valueSanatizado.slice(0, 2));
136
+ const minute = valueSanatizado.slice(2, 4);
137
+ timeFormatado = `${hour}:${minute}`;
138
+ }
139
+ else if (valueSanatizado.length > 1) {
140
+ timeFormatado = getHora(valueSanatizado.slice(0, 2));
141
+ }
142
+ return timeFormatado;
143
+ };
144
+ const formatarDateTime = (valueSanatizado, separator, minDate, maxDate) => {
145
+ let dateTimeFormatado = formatarData(valueSanatizado, minDate, maxDate);
146
+ if (valueSanatizado.length > 8) {
147
+ dateTimeFormatado =
148
+ formatarData(valueSanatizado, minDate, maxDate) +
149
+ separator +
150
+ formatarTime(valueSanatizado.slice(8));
151
+ }
152
+ return dateTimeFormatado;
153
+ };
154
+ const formatarPtBr = (valor, type, options = {
155
+ separator: " às ",
156
+ }) => {
157
+ const dataSanitizada = valor.replace(/[^0-9]/g, "");
158
+ switch (type) {
159
+ case "date":
160
+ return formatarData(dataSanitizada, options.minDate, options.maxDate);
161
+ case "time":
162
+ return formatarTime(dataSanitizada, options.minTime, options.maxTime);
163
+ case "datetime":
164
+ return formatarDateTime(dataSanitizada, options.separator || " ", options.minDate, options.maxDate);
165
+ }
166
+ };
167
+ exports.formatarPtBr = formatarPtBr;
168
+ const validarPtBr = (valor, type, options) => {
169
+ if ((0, utils_1.isEmpty)(valor)) {
170
+ return true;
171
+ }
172
+ switch (type) {
173
+ case "date":
174
+ const reg = new RegExp(/^\d{2}\/\d{2}\/\d{4}$/);
175
+ if (!reg.test(valor)) {
176
+ return "Data inválida";
177
+ }
178
+ else {
179
+ const dataSanitizada = valor.replace(/[^0-9]/g, "");
180
+ const valido = validarDataMinMax(dataSanitizada, options.minDate?.valor, options.maxDate?.valor);
181
+ if (options.minDate && valido == "menor") {
182
+ return `Deve ser superior à ${options.minDate.campo
183
+ ? options.minDate.campo
184
+ : (0, utils_1.formatDate)(options.minDate.valor)}`;
185
+ }
186
+ else if (options.maxDate && valido == "maior") {
187
+ return `Deve ser inferior à ${options.maxDate.campo
188
+ ? options.maxDate.campo
189
+ : (0, utils_1.formatDate)(options.maxDate.valor)}`;
190
+ }
191
+ }
192
+ return true;
193
+ case "time":
194
+ const regTime = new RegExp(/^\d{2}:\d{2}(:\d{2})?$/);
195
+ if (!regTime.test(valor)) {
196
+ return "Hora inválida";
197
+ }
198
+ else {
199
+ const timeSanatizado = valor.replace(/[^0-9]/g, "");
200
+ const valido = validarTimeMinMax(timeSanatizado, options.minTime, options.maxTime);
201
+ if (options.minTime && valido == "menor") {
202
+ return `Hora mínima ${options.minTime.hour
203
+ .toFixed(0)
204
+ .padStart(2, "0")}:${options.minTime.minute
205
+ .toFixed(0)
206
+ .padStart(2, "0")}`;
207
+ }
208
+ else if (options.maxTime && valido == "maior") {
209
+ return `Hora máxima ${options.maxTime.hour
210
+ .toFixed(0)
211
+ .padStart(2, "0")}:${options.maxTime.minute
212
+ .toFixed(0)
213
+ .padStart(2, "0")}`;
214
+ }
215
+ }
216
+ return true;
217
+ case "datetime":
218
+ const regDateTime = new RegExp(`^\\d{2}\\/\\d{2}\\/\\d{4}${options.separator || " "}\\d{2}:\\d{2}(:\\d{2})?$`);
219
+ if (!regDateTime.test(valor)) {
220
+ return "Data e hora inválida";
221
+ }
222
+ else {
223
+ let dataSanitizada = valor.split(options.separator || " ")[0];
224
+ dataSanitizada = dataSanitizada.replace(/[^0-9]/g, "");
225
+ const valido = validarDataMinMax(dataSanitizada, options.minDate?.valor, options.maxDate?.valor);
226
+ if (options.minDate && valido == "menor") {
227
+ return `Deve ser superior à ${options.minDate.campo
228
+ ? options.minDate.campo
229
+ : (0, utils_1.formatDate)(options.minDate.valor)}`;
230
+ }
231
+ else if (options.maxDate && valido == "maior") {
232
+ return `Deve ser inferior à ${options.maxDate.campo
233
+ ? options.maxDate.campo
234
+ : (0, utils_1.formatDate)(options.maxDate.valor)}`;
235
+ }
236
+ }
237
+ return true;
238
+ }
239
+ };
240
+ exports.validarPtBr = validarPtBr;
241
+ const valueOfPtBr = (valor, type, separator, ehValido) => {
242
+ if (ehValido !== true)
243
+ return NaN;
244
+ switch (type) {
245
+ case "date":
246
+ const [dia, mes, ano] = valor.split("/");
247
+ return new Date(`${ano}-${mes}-${dia}T00:00:00`).valueOf();
248
+ case "time":
249
+ const [horas, minutos] = valor.split(":").map((item) => Number(item));
250
+ return horas * 3600 + minutos * 60;
251
+ case "datetime":
252
+ const [data, hora] = valor.split(separator);
253
+ const [d, m, Y] = data.split("/");
254
+ return new Date(`${Y}-${m}-${d}T${hora}`).valueOf();
255
+ }
256
+ };
257
+ exports.valueOfPtBr = valueOfPtBr;
258
+ const dateFormatPtBr = (type, separator) => {
259
+ switch (type) {
260
+ case "date":
261
+ return "d/m/Y";
262
+ case "time":
263
+ return "H:i";
264
+ case "datetime":
265
+ return `d/m/Y${separator}H:i`;
266
+ }
267
+ };
268
+ exports.dateFormatPtBr = dateFormatPtBr;
269
+ const toISOStringPtBr = (valor, type, separator) => {
270
+ try {
271
+ switch (type) {
272
+ case "time":
273
+ const [h, i] = valor.split(":");
274
+ return `${h}:${i}:00Z`;
275
+ case "datetime":
276
+ const [data, hora] = valor.split(separator);
277
+ const [d, m, Y] = data.split("/");
278
+ return new Date(`${Y}-${m}-${d}T${hora}`).toISOString();
279
+ default:
280
+ const [dia, mes, ano] = valor.split("/");
281
+ return new Date(`${ano}-${mes}-${dia}T00:00:00`).toISOString();
282
+ }
283
+ }
284
+ catch (e) {
285
+ throw new Error("Data inválida");
286
+ }
287
+ };
288
+ exports.toISOStringPtBr = toISOStringPtBr;
@@ -0,0 +1,53 @@
1
+ export interface DatePickerOptions {
2
+ type: "date" | "datetime" | "time";
3
+ separator?: string;
4
+ minDate?: {
5
+ valor: Date;
6
+ campo?: string;
7
+ };
8
+ minDateLimit?: Date;
9
+ maxDate?: {
10
+ valor: Date;
11
+ campo?: string;
12
+ };
13
+ maxDateLimit?: Date;
14
+ minTime?: TimeLimiter;
15
+ minTimeLimit?: TimeLimiter;
16
+ maxTime?: TimeLimiter;
17
+ maxTimeLimit?: TimeLimiter;
18
+ }
19
+ export type TimeLimiter = {
20
+ hour: number;
21
+ minute: number;
22
+ };
23
+ export type FormatFunction = (valor: string, type: "date" | "datetime" | "time", options: {
24
+ minDate?: Date;
25
+ maxDate?: Date;
26
+ minTime?: TimeLimiter;
27
+ maxTime?: TimeLimiter;
28
+ separator?: string;
29
+ }) => string;
30
+ export type ValidateFunction = (valor: string, type: "date" | "datetime" | "time", options: {
31
+ separator: string;
32
+ minDate?: {
33
+ valor: Date;
34
+ campo?: string;
35
+ };
36
+ maxDate?: {
37
+ valor: Date;
38
+ campo?: string;
39
+ };
40
+ minTime?: {
41
+ hour: number;
42
+ minute: number;
43
+ campo?: string;
44
+ };
45
+ maxTime?: {
46
+ hour: number;
47
+ minute: number;
48
+ campo?: string;
49
+ };
50
+ }) => true | string;
51
+ export type ValueOfFunction = (valor: string, type: "date" | "datetime" | "time", separator: string, ehValido: true | string) => number;
52
+ export type ToISOStringFunction = (valor: string, type: "date" | "datetime" | "time", separator: string) => string;
53
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/valueObjects/DatePicker/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,IAAI,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,IAAI,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAClC,OAAO,EAAE;IACP,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KACE,MAAM,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAClC,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,IAAI,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,IAAI,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,KACE,IAAI,GAAG,MAAM,CAAC;AAEnB,MAAM,MAAM,eAAe,GAAG,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,GAAG,MAAM,KACpB,MAAM,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAClC,SAAS,EAAE,MAAM,KACd,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { IEmail } from "../types";
2
+ export default class Email implements IEmail {
3
+ private _valor;
4
+ private _ehValido;
5
+ constructor(nome: string);
6
+ set valor(v: string);
7
+ get valor(): string;
8
+ get ehValido(): string | true;
9
+ valueOf(): string;
10
+ sanitizar(valor: string): string;
11
+ validar(valor: string): void;
12
+ }
13
+ //# sourceMappingURL=Email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../src/valueObjects/Email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,CAAC,OAAO,OAAO,KAAM,YAAW,MAAM;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAuB;gBAE5B,IAAI,EAAE,MAAM;IASxB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAKlB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,kBAEX;IAED,OAAO,IAAI,MAAM;IAIV,SAAS,CAAC,KAAK,EAAE,MAAM;IAQvB,OAAO,CAAC,KAAK,EAAE,MAAM;CAe7B"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../utils");
4
+ class Email {
5
+ constructor(nome) {
6
+ this._ehValido = true;
7
+ this.validar(nome);
8
+ let valorSanitizado = this.sanitizar(nome);
9
+ this.validar(valorSanitizado);
10
+ this._valor = nome;
11
+ this._valor = valorSanitizado;
12
+ }
13
+ set valor(v) {
14
+ let valorSanitizado = this.sanitizar(v);
15
+ this.validar(valorSanitizado);
16
+ this._valor = valorSanitizado;
17
+ }
18
+ get valor() {
19
+ return this._valor;
20
+ }
21
+ get ehValido() {
22
+ return this._ehValido;
23
+ }
24
+ valueOf() {
25
+ return this._valor;
26
+ }
27
+ sanitizar(valor) {
28
+ let sanitizado = valor.replace(/\s+/g, "");
29
+ sanitizado = sanitizado.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
30
+ return sanitizado;
31
+ }
32
+ validar(valor) {
33
+ if ((0, utils_1.isEmpty)(valor)) {
34
+ this._ehValido = true;
35
+ return;
36
+ }
37
+ const re = /^(?:[^<>()[\]\\.,;:\s@"]+(?:\.[^<>()[\]\\.,;:\s@"]+)*|".+")@(?:\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]|(?:[a-z\-\d]+\.)+[a-z]{2,})$/i;
38
+ if (re.test(String(valor))) {
39
+ this._ehValido = true;
40
+ return;
41
+ }
42
+ this._ehValido = "O campo Email deve ser um email válido";
43
+ }
44
+ }
45
+ exports.default = Email;
@@ -0,0 +1,16 @@
1
+ import { IMoeda } from "../types";
2
+ import Numero from "./Numero";
3
+ export interface Options {
4
+ prefix?: string;
5
+ suffix?: string;
6
+ separator: string;
7
+ decimal: string;
8
+ precision?: number;
9
+ min?: number;
10
+ max?: number;
11
+ }
12
+ export declare const FORMATO_PADRAO_BR: Options;
13
+ export default class Moeda extends Numero implements IMoeda {
14
+ constructor(valor: string | number | null, formatador?: Partial<Options>);
15
+ }
16
+ //# sourceMappingURL=Moeda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Moeda.d.ts","sourceRoot":"","sources":["../../src/valueObjects/Moeda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,iBAAiB,EAAE,OAM/B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,MAAO,YAAW,MAAM;gBAEvD,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAC7B,UAAU,GAAE,OAAO,CAAC,OAAO,CAAqB;CAInD"}