@pipelinesolucoes/form 1.2.0-beta.26 → 1.2.0-beta.28
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.
- package/README.md +4 -0
- package/dist/components/TextFieldBirthDateWithAge.d.ts +9 -27
- package/dist/components/TextFieldBirthDateWithAge.js +47 -37
- package/dist/components/TextFieldBirthDateWithAge.js.map +1 -1
- package/dist/components/TextFieldCPFValidate.d.ts +37 -0
- package/dist/components/TextFieldCPFValidate.js +147 -0
- package/dist/components/TextFieldCPFValidate.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/formatCEP.d.ts +20 -0
- package/dist/utils/formatCEP.js +35 -0
- package/dist/utils/formatCEP.js.map +1 -0
- package/dist/utils/formatCpf.d.ts +14 -0
- package/dist/utils/formatCpf.js +35 -0
- package/dist/utils/formatCpf.js.map +1 -0
- package/dist/utils/validateCpf.d.ts +40 -0
- package/dist/utils/validateCpf.js +67 -0
- package/dist/utils/validateCpf.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formata CEP automaticamente para máscara 00000-000.
|
|
3
|
+
*
|
|
4
|
+
* - Remove caracteres não numéricos
|
|
5
|
+
* - Limita a 8 dígitos
|
|
6
|
+
* - Aplica o hífen progressivamente
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* formatCep("24210310") // "24210-310"
|
|
10
|
+
* formatCep("24210") // "24210"
|
|
11
|
+
* formatCep("24210-310999") // "24210-310"
|
|
12
|
+
*/
|
|
13
|
+
export declare const formatCep: (value?: string) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Remove máscara do CEP (mantém apenas dígitos).
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* unformatCep("24210-310") // "24210310"
|
|
19
|
+
*/
|
|
20
|
+
export declare const unformatCep: (value?: string) => string;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formata CEP automaticamente para máscara 00000-000.
|
|
3
|
+
*
|
|
4
|
+
* - Remove caracteres não numéricos
|
|
5
|
+
* - Limita a 8 dígitos
|
|
6
|
+
* - Aplica o hífen progressivamente
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* formatCep("24210310") // "24210-310"
|
|
10
|
+
* formatCep("24210") // "24210"
|
|
11
|
+
* formatCep("24210-310999") // "24210-310"
|
|
12
|
+
*/
|
|
13
|
+
export const formatCep = (value) => {
|
|
14
|
+
if (!value)
|
|
15
|
+
return "";
|
|
16
|
+
const digits = value.replace(/\D/g, "").slice(0, 8);
|
|
17
|
+
const p1 = digits.slice(0, 5);
|
|
18
|
+
const p2 = digits.slice(5, 8);
|
|
19
|
+
let out = p1;
|
|
20
|
+
if (p2)
|
|
21
|
+
out += `-${p2}`;
|
|
22
|
+
return out;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Remove máscara do CEP (mantém apenas dígitos).
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* unformatCep("24210-310") // "24210310"
|
|
29
|
+
*/
|
|
30
|
+
export const unformatCep = (value) => {
|
|
31
|
+
if (!value)
|
|
32
|
+
return "";
|
|
33
|
+
return value.replace(/\D/g, "");
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=formatCEP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatCEP.js","sourceRoot":"","sources":["../../src/utils/formatCEP.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAU,EAAE;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9B,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,IAAI,EAAE;QAAE,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;IAExB,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAU,EAAE;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formata CPF automaticamente para máscara 000.000.000-00.
|
|
3
|
+
*
|
|
4
|
+
* - Remove não-dígitos
|
|
5
|
+
* - Limita a 11 dígitos
|
|
6
|
+
* - Aplica pontos e hífen progressivamente
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* formatCpf("39053344705") // "390.533.447-05"
|
|
10
|
+
* formatCpf("390.533") // "390.533"
|
|
11
|
+
* formatCpf("39053344705999") // "390.533.447-05"
|
|
12
|
+
*/
|
|
13
|
+
export declare const formatCpf: (value?: string) => string;
|
|
14
|
+
export declare const unformatCpf: (value?: string) => string;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formata CPF automaticamente para máscara 000.000.000-00.
|
|
3
|
+
*
|
|
4
|
+
* - Remove não-dígitos
|
|
5
|
+
* - Limita a 11 dígitos
|
|
6
|
+
* - Aplica pontos e hífen progressivamente
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* formatCpf("39053344705") // "390.533.447-05"
|
|
10
|
+
* formatCpf("390.533") // "390.533"
|
|
11
|
+
* formatCpf("39053344705999") // "390.533.447-05"
|
|
12
|
+
*/
|
|
13
|
+
export const formatCpf = (value) => {
|
|
14
|
+
if (!value)
|
|
15
|
+
return "";
|
|
16
|
+
const digits = value.replace(/\D/g, "").slice(0, 11);
|
|
17
|
+
const p1 = digits.slice(0, 3);
|
|
18
|
+
const p2 = digits.slice(3, 6);
|
|
19
|
+
const p3 = digits.slice(6, 9);
|
|
20
|
+
const p4 = digits.slice(9, 11);
|
|
21
|
+
let out = p1;
|
|
22
|
+
if (p2)
|
|
23
|
+
out += `.${p2}`;
|
|
24
|
+
if (p3)
|
|
25
|
+
out += `.${p3}`;
|
|
26
|
+
if (p4)
|
|
27
|
+
out += `-${p4}`;
|
|
28
|
+
return out;
|
|
29
|
+
};
|
|
30
|
+
export const unformatCpf = (value) => {
|
|
31
|
+
if (!value)
|
|
32
|
+
return "";
|
|
33
|
+
return value.replace(/\D/g, "");
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=formatCpf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatCpf.js","sourceRoot":"","sources":["../../src/utils/formatCpf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAU,EAAE;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAErD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/B,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,IAAI,EAAE;QAAE,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;IACxB,IAAI,EAAE;QAAE,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;IACxB,IAAI,EAAE;QAAE,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;IAExB,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAU,EAAE;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* validateCpf Utility
|
|
3
|
+
*
|
|
4
|
+
* Função utilitária para validação de CPF (Brasil).
|
|
5
|
+
* Aceita string com ou sem máscara e valida:
|
|
6
|
+
* - 11 dígitos
|
|
7
|
+
* - não permite sequências repetidas (ex: 11111111111)
|
|
8
|
+
* - valida dígitos verificadores
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { validateCpf } from '@/utils/validateCpf';
|
|
13
|
+
*
|
|
14
|
+
* validateCpf('39053344705'); // true
|
|
15
|
+
* validateCpf('390.533.447-05'); // true
|
|
16
|
+
* validateCpf('12345678900'); // false
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param cpf - String contendo o CPF (com ou sem máscara).
|
|
20
|
+
* @returns `true` se o CPF for válido, caso contrário `false`.
|
|
21
|
+
*/
|
|
22
|
+
export declare const validateCpf: (cpf?: string) => boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Função auxiliar para uso direto no TextFiledCustom.
|
|
25
|
+
*
|
|
26
|
+
* Retorna `null` se válido, ou uma mensagem de erro se inválido.
|
|
27
|
+
* Pode ser usada diretamente na prop `validate` do componente.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <TextFiledCustom
|
|
32
|
+
* label="CPF"
|
|
33
|
+
* validate={validateCpfMessage}
|
|
34
|
+
* />
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @param cpf - String com o valor do campo.
|
|
38
|
+
* @returns Mensagem de erro ou `null`.
|
|
39
|
+
*/
|
|
40
|
+
export declare const validateCpfMessage: (cpf: string) => string | null;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* validateCpf Utility
|
|
3
|
+
*
|
|
4
|
+
* Função utilitária para validação de CPF (Brasil).
|
|
5
|
+
* Aceita string com ou sem máscara e valida:
|
|
6
|
+
* - 11 dígitos
|
|
7
|
+
* - não permite sequências repetidas (ex: 11111111111)
|
|
8
|
+
* - valida dígitos verificadores
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { validateCpf } from '@/utils/validateCpf';
|
|
13
|
+
*
|
|
14
|
+
* validateCpf('39053344705'); // true
|
|
15
|
+
* validateCpf('390.533.447-05'); // true
|
|
16
|
+
* validateCpf('12345678900'); // false
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param cpf - String contendo o CPF (com ou sem máscara).
|
|
20
|
+
* @returns `true` se o CPF for válido, caso contrário `false`.
|
|
21
|
+
*/
|
|
22
|
+
export const validateCpf = (cpf) => {
|
|
23
|
+
if (!cpf)
|
|
24
|
+
return false;
|
|
25
|
+
const digits = cpf.trim().replace(/\D/g, "");
|
|
26
|
+
if (!/^\d{11}$/.test(digits))
|
|
27
|
+
return false;
|
|
28
|
+
// bloqueia sequências repetidas: 00000000000, 11111111111, etc.
|
|
29
|
+
if (/^(\d)\1{10}$/.test(digits))
|
|
30
|
+
return false;
|
|
31
|
+
const calcCheckDigit = (base, factor) => {
|
|
32
|
+
let sum = 0;
|
|
33
|
+
for (let i = 0; i < base.length; i++) {
|
|
34
|
+
sum += Number(base[i]) * (factor - i);
|
|
35
|
+
}
|
|
36
|
+
const mod = sum % 11;
|
|
37
|
+
return mod < 2 ? 0 : 11 - mod;
|
|
38
|
+
};
|
|
39
|
+
const base9 = digits.slice(0, 9);
|
|
40
|
+
const d1 = calcCheckDigit(base9, 10);
|
|
41
|
+
const base10 = digits.slice(0, 10);
|
|
42
|
+
const d2 = calcCheckDigit(base10, 11);
|
|
43
|
+
return digits === `${base9}${d1}${d2}`;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Função auxiliar para uso direto no TextFiledCustom.
|
|
47
|
+
*
|
|
48
|
+
* Retorna `null` se válido, ou uma mensagem de erro se inválido.
|
|
49
|
+
* Pode ser usada diretamente na prop `validate` do componente.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* <TextFiledCustom
|
|
54
|
+
* label="CPF"
|
|
55
|
+
* validate={validateCpfMessage}
|
|
56
|
+
* />
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @param cpf - String com o valor do campo.
|
|
60
|
+
* @returns Mensagem de erro ou `null`.
|
|
61
|
+
*/
|
|
62
|
+
export const validateCpfMessage = (cpf) => {
|
|
63
|
+
return validateCpf(cpf)
|
|
64
|
+
? null
|
|
65
|
+
: "CPF inválido. Use 11 dígitos (ex: 39053344705) ou com máscara (ex: 390.533.447-05).";
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=validateCpf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateCpf.js","sourceRoot":"","sources":["../../src/utils/validateCpf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAY,EAAW,EAAE;IACnD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,gEAAgE;IAChE,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;QACtD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;QACrB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEtC,OAAO,MAAM,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAiB,EAAE;IAC/D,OAAO,WAAW,CAAC,GAAG,CAAC;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,qFAAqF,CAAC;AAC5F,CAAC,CAAC"}
|