@starley/ion-directives 1.2.24 → 1.2.25
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/dist/index.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export * from './press-hold/press-hold.directive';
|
|
|
5
5
|
export { ConnectorSqlitePwaProvider } from './provider/connector-sqlite-pwa.provider';
|
|
6
6
|
export { DateUtilProvider } from './provider/date-util-provider';
|
|
7
7
|
export { IonUtilsProvider } from './provider/ion-utils-provider';
|
|
8
|
+
export { IonValidateFilds } from './provider/ion-validate-filds';
|
|
8
9
|
export * from './tap/tap.directive';
|
package/dist/index.js
CHANGED
|
@@ -5,5 +5,6 @@ export * from './press-hold/press-hold.directive';
|
|
|
5
5
|
export { ConnectorSqlitePwaProvider } from './provider/connector-sqlite-pwa.provider';
|
|
6
6
|
export { DateUtilProvider } from './provider/date-util-provider';
|
|
7
7
|
export { IonUtilsProvider } from './provider/ion-utils-provider';
|
|
8
|
+
export { IonValidateFilds } from './provider/ion-validate-filds';
|
|
8
9
|
export * from './tap/tap.directive';
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './directive.module';\nexport * from './input-mask/input-mask.directive';\nexport * from './input-remove/input-remove.directive';\nexport * from './press-hold/press-hold.directive';\nexport { ConnectorSqlitePwaProvider } from './provider/connector-sqlite-pwa.provider';\nexport { DateUtilProvider } from './provider/date-util-provider';\nexport { IonUtilsProvider } from './provider/ion-utils-provider';\nexport * from './tap/tap.directive';\n\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './directive.module';\nexport * from './input-mask/input-mask.directive';\nexport * from './input-remove/input-remove.directive';\nexport * from './press-hold/press-hold.directive';\nexport { ConnectorSqlitePwaProvider } from './provider/connector-sqlite-pwa.provider';\nexport { DateUtilProvider } from './provider/date-util-provider';\nexport { IonUtilsProvider } from './provider/ion-utils-provider';\nexport { IonValidateFilds } from './provider/ion-validate-filds';\nexport * from './tap/tap.directive';\n\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Classe responsavel gerenciar os utils
|
|
4
|
+
* @author Starley Cazorla
|
|
5
|
+
*/
|
|
6
|
+
export declare class IonValidateFilds {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Validar ddd de todos os estados brasileiros
|
|
10
|
+
* @author Starley Cazorla
|
|
11
|
+
* @param ddd
|
|
12
|
+
* @returns true if ddd
|
|
13
|
+
*/
|
|
14
|
+
private validarDDD;
|
|
15
|
+
private contemSequenciaRepetida;
|
|
16
|
+
/**
|
|
17
|
+
* Validar numero telefone
|
|
18
|
+
* @author Starley Cazorla
|
|
19
|
+
* @param telefone
|
|
20
|
+
* @returns true if numero telefone
|
|
21
|
+
*/
|
|
22
|
+
validarNumeroTelefone(telefone: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Validar cpf
|
|
25
|
+
* @author Starley Cazorla
|
|
26
|
+
* @param cpf
|
|
27
|
+
* @returns true if cpf
|
|
28
|
+
*/
|
|
29
|
+
validarCPF(cpf: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Validar cnpj
|
|
32
|
+
* @author Starley Cazorla
|
|
33
|
+
* @param cnpj
|
|
34
|
+
* @returns true if cnpj
|
|
35
|
+
*/
|
|
36
|
+
validarCNPJ(cnpj: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Formats fild
|
|
39
|
+
* @author Starley Cazorla
|
|
40
|
+
* @param inputFildValue
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
formatFild(inputFildValue: string): string;
|
|
44
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IonValidateFilds, never>;
|
|
45
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<IonValidateFilds>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Classe responsavel gerenciar os utils
|
|
5
|
+
* @author Starley Cazorla
|
|
6
|
+
*/
|
|
7
|
+
var IonValidateFilds = /** @class */ (function () {
|
|
8
|
+
function IonValidateFilds() {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Validar ddd de todos os estados brasileiros
|
|
12
|
+
* @author Starley Cazorla
|
|
13
|
+
* @param ddd
|
|
14
|
+
* @returns true if ddd
|
|
15
|
+
*/
|
|
16
|
+
IonValidateFilds.prototype.validarDDD = function (ddd) {
|
|
17
|
+
var dddsValidos = [
|
|
18
|
+
'11', '12', '13', '14', '15', '16', '17', '18', '19',
|
|
19
|
+
'21', '22', '24',
|
|
20
|
+
'27', '28',
|
|
21
|
+
'31', '32', '33', '34', '35', '37', '38',
|
|
22
|
+
'41', '42', '43', '44', '45', '46',
|
|
23
|
+
'47', '48', '49',
|
|
24
|
+
'51', '53', '54', '55',
|
|
25
|
+
'61',
|
|
26
|
+
'62', '64',
|
|
27
|
+
'63',
|
|
28
|
+
'65', '66',
|
|
29
|
+
'67',
|
|
30
|
+
'68',
|
|
31
|
+
'69',
|
|
32
|
+
'71', '73', '74', '75', '77',
|
|
33
|
+
'79',
|
|
34
|
+
'81', '87',
|
|
35
|
+
'82',
|
|
36
|
+
'83',
|
|
37
|
+
'84',
|
|
38
|
+
'85', '88',
|
|
39
|
+
'86', '89',
|
|
40
|
+
'91', '93', '94',
|
|
41
|
+
'92', '97',
|
|
42
|
+
'95',
|
|
43
|
+
'96',
|
|
44
|
+
'98', '99', // MA
|
|
45
|
+
];
|
|
46
|
+
return dddsValidos.includes(ddd);
|
|
47
|
+
};
|
|
48
|
+
IonValidateFilds.prototype.contemSequenciaRepetida = function (numero) {
|
|
49
|
+
var sequenciasRepetidas = [
|
|
50
|
+
'00000000',
|
|
51
|
+
'11111111',
|
|
52
|
+
'22222222',
|
|
53
|
+
'33333333',
|
|
54
|
+
'44444444',
|
|
55
|
+
'55555555',
|
|
56
|
+
'66666666',
|
|
57
|
+
'77777777',
|
|
58
|
+
'88888888',
|
|
59
|
+
'99999999'
|
|
60
|
+
];
|
|
61
|
+
return sequenciasRepetidas.some(function (sequencia) { return numero.includes(sequencia); });
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Validar numero telefone
|
|
65
|
+
* @author Starley Cazorla
|
|
66
|
+
* @param telefone
|
|
67
|
+
* @returns true if numero telefone
|
|
68
|
+
*/
|
|
69
|
+
IonValidateFilds.prototype.validarNumeroTelefone = function (telefone) {
|
|
70
|
+
// Remover caracteres não numéricos
|
|
71
|
+
telefone = telefone.replace(/\D/g, '');
|
|
72
|
+
// Verificar o formato do número de telefone fixo (10 dígitos) com DDD
|
|
73
|
+
// const formatoFixo = /^\d{10}$/;
|
|
74
|
+
var numero = telefone.substring(2);
|
|
75
|
+
if (this.contemSequenciaRepetida(numero)) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
// if (formatoFixo.test(telefone)) {
|
|
79
|
+
// const ddd = telefone.substring(0, 2);
|
|
80
|
+
// const numero = telefone.substring(2);
|
|
81
|
+
// return this.validarDDD(ddd) && numero.length === 8;
|
|
82
|
+
// }
|
|
83
|
+
// Verificar o formato do número de telefone celular (11 dígitos) com DDD
|
|
84
|
+
var formatoCelular = /^\d{11}$/;
|
|
85
|
+
if (formatoCelular.test(telefone)) {
|
|
86
|
+
var ddd = telefone.substring(0, 2);
|
|
87
|
+
var numero_1 = telefone.substring(2);
|
|
88
|
+
return this.validarDDD(ddd) && numero_1.length === 9;
|
|
89
|
+
}
|
|
90
|
+
// Número de telefone inválido
|
|
91
|
+
return false;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Validar cpf
|
|
95
|
+
* @author Starley Cazorla
|
|
96
|
+
* @param cpf
|
|
97
|
+
* @returns true if cpf
|
|
98
|
+
*/
|
|
99
|
+
IonValidateFilds.prototype.validarCPF = function (cpf) {
|
|
100
|
+
cpf = cpf.replace(/\D/g, '');
|
|
101
|
+
var soma = 0;
|
|
102
|
+
var resto;
|
|
103
|
+
if (cpf === '00000000000') {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
for (var i = 1; i <= 9; i++) {
|
|
107
|
+
soma = soma + parseInt(cpf.substring(i - 1, i), 10) * (11 - i);
|
|
108
|
+
}
|
|
109
|
+
resto = (soma * 10) % 11;
|
|
110
|
+
if (resto === 10 || resto === 11) {
|
|
111
|
+
resto = 0;
|
|
112
|
+
}
|
|
113
|
+
if (resto !== parseInt(cpf.substring(9, 10), 10)) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
soma = 0;
|
|
117
|
+
for (var i = 1; i <= 10; i++) {
|
|
118
|
+
soma = soma + parseInt(cpf.substring(i - 1, i), 10) * (12 - i);
|
|
119
|
+
}
|
|
120
|
+
resto = (soma * 10) % 11;
|
|
121
|
+
if (resto === 10 || resto === 11) {
|
|
122
|
+
resto = 0;
|
|
123
|
+
}
|
|
124
|
+
if (resto !== parseInt(cpf.substring(10, 11), 10)) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
return true;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Validar cnpj
|
|
131
|
+
* @author Starley Cazorla
|
|
132
|
+
* @param cnpj
|
|
133
|
+
* @returns true if cnpj
|
|
134
|
+
*/
|
|
135
|
+
IonValidateFilds.prototype.validarCNPJ = function (cnpj) {
|
|
136
|
+
// Remover caracteres não numéricos
|
|
137
|
+
cnpj = cnpj.replace(/[^\d]/g, '');
|
|
138
|
+
// Verificar se o CNPJ possui 14 dígitos
|
|
139
|
+
if (cnpj.length !== 14) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
// Verificar se todos os dígitos são iguais (CNPJ inválido)
|
|
143
|
+
if (/^(\d)\1+$/.test(cnpj)) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
// Calcular os dígitos verificadores
|
|
147
|
+
var tamanho = cnpj.length - 2;
|
|
148
|
+
var numeros = cnpj.substring(0, tamanho);
|
|
149
|
+
var digitos = cnpj.substring(tamanho);
|
|
150
|
+
var soma = 0;
|
|
151
|
+
var pos = tamanho - 7;
|
|
152
|
+
for (var i = tamanho; i >= 1; i--) {
|
|
153
|
+
soma += parseInt(numeros.charAt(tamanho - i), 10) * pos--;
|
|
154
|
+
if (pos < 2) {
|
|
155
|
+
pos = 9;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
var resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);
|
|
159
|
+
// Verificar o primeiro dígito verificador
|
|
160
|
+
if (resultado !== parseInt(digitos.charAt(0), 10)) {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
tamanho++;
|
|
164
|
+
numeros = cnpj.substring(0, tamanho);
|
|
165
|
+
soma = 0;
|
|
166
|
+
pos = tamanho - 7;
|
|
167
|
+
for (var i = tamanho; i >= 1; i--) {
|
|
168
|
+
soma += parseInt(numeros.charAt(tamanho - i), 10) * pos--;
|
|
169
|
+
if (pos < 2) {
|
|
170
|
+
pos = 9;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);
|
|
174
|
+
// Verificar o segundo dígito verificador
|
|
175
|
+
if (resultado !== parseInt(digitos.charAt(1), 10)) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
// CNPJ válido
|
|
179
|
+
return true;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Formats fild
|
|
183
|
+
* @author Starley Cazorla
|
|
184
|
+
* @param inputFildValue
|
|
185
|
+
* @returns
|
|
186
|
+
*/
|
|
187
|
+
IonValidateFilds.prototype.formatFild = function (inputFildValue) {
|
|
188
|
+
var regexCPF = /^\d{11}$/;
|
|
189
|
+
var regexCNPJ = /^\d{14}$/;
|
|
190
|
+
var regexCelular = /^\d{10,11}$/;
|
|
191
|
+
var chaveSemMascara = inputFildValue.replace(/\W/g, '');
|
|
192
|
+
var fildFormated = '';
|
|
193
|
+
if ((regexCelular.test(chaveSemMascara) && this.validarNumeroTelefone(chaveSemMascara)) && !this.validarCPF(chaveSemMascara)) {
|
|
194
|
+
// Chave é um número de celular válido
|
|
195
|
+
fildFormated = "(".concat(chaveSemMascara.substr(0, 2), ") ").concat(chaveSemMascara.substr(2, 5), "-").concat(chaveSemMascara.substr(7));
|
|
196
|
+
}
|
|
197
|
+
else if (regexCPF.test(chaveSemMascara) && this.validarCPF(chaveSemMascara)) {
|
|
198
|
+
// Chave é um CPF válido
|
|
199
|
+
fildFormated = "".concat(chaveSemMascara.substr(0, 3), ".").concat(chaveSemMascara.substr(3, 3), ".").concat(chaveSemMascara.substr(6, 3), "-").concat(chaveSemMascara.substr(9));
|
|
200
|
+
}
|
|
201
|
+
else if (regexCNPJ.test(chaveSemMascara) && this.validarCNPJ(chaveSemMascara)) {
|
|
202
|
+
// Chave é um CNPJ válido
|
|
203
|
+
fildFormated = "".concat(chaveSemMascara.substr(0, 2), ".").concat(chaveSemMascara.substr(2, 3), ".").concat(chaveSemMascara.substr(5, 3), "/").concat(chaveSemMascara.substr(8, 4), "-").concat(chaveSemMascara.substr(12));
|
|
204
|
+
}
|
|
205
|
+
return fildFormated;
|
|
206
|
+
};
|
|
207
|
+
IonValidateFilds.ɵfac = function IonValidateFilds_Factory(t) { return new (t || IonValidateFilds)(); };
|
|
208
|
+
IonValidateFilds.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IonValidateFilds, factory: IonValidateFilds.ɵfac, providedIn: 'root' });
|
|
209
|
+
return IonValidateFilds;
|
|
210
|
+
}());
|
|
211
|
+
export { IonValidateFilds };
|
|
212
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IonValidateFilds, [{
|
|
213
|
+
type: Injectable,
|
|
214
|
+
args: [{ providedIn: 'root' }]
|
|
215
|
+
}], function () { return []; }, null); })();
|
|
216
|
+
//# sourceMappingURL=ion-validate-filds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ion-validate-filds.js","sourceRoot":"","sources":["../../src/provider/ion-validate-filds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAE3C;;;GAGG;AAEH;IAGI;IAAgB,CAAC;IAEjB;;;;;MAKE;IACM,qCAAU,GAAlB,UAAmB,GAAW;QAC1B,IAAM,WAAW,GAAG;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACpD,IAAI,EAAE,IAAI,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACxC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAClC,IAAI,EAAE,IAAI,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtB,IAAI;YACJ,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC5B,IAAI;YACJ,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,IAAI,EAAE,KAAK;SACpB,CAAC;QAEF,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEO,kDAAuB,GAA/B,UAAgC,MAAc;QAC1C,IAAM,mBAAmB,GAAG;YACxB,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;SACb,CAAC;QAEF,OAAO,mBAAmB,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAA1B,CAA0B,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACI,gDAAqB,GAA5B,UAA6B,QAAgB;QACzC,mCAAmC;QACnC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEvC,sEAAsE;QACtE,kCAAkC;QAElC,IAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;YACtC,OAAO,KAAK,CAAC;SAChB;QAED,oCAAoC;QACpC,4CAA4C;QAC5C,4CAA4C;QAC5C,0DAA0D;QAC1D,IAAI;QAEJ,yEAAyE;QACzE,IAAM,cAAc,GAAG,UAAU,CAAC;QAElC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/B,IAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,IAAM,QAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAM,CAAC,MAAM,KAAK,CAAC,CAAC;SACtD;QAED,8BAA8B;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,qCAAU,GAAV,UAAW,GAAW;QAElB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE7B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,CAAC;QAEV,IAAI,GAAG,KAAK,aAAa,EAAE;YACvB,OAAO,KAAK,CAAC;SAChB;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACzB,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;SAClE;QAED,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAEzB,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;YAC9B,KAAK,GAAG,CAAC,CAAC;SACb;QAED,IAAI,KAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,GAAG,CAAC,CAAC;QAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;SAClE;QAED,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAEzB,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;YAC9B,KAAK,GAAG,CAAC,CAAC;SACb;QAED,IAAI,KAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;YAC/C,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,sCAAW,GAAX,UAAY,IAAY;QACpB,mCAAmC;QACnC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAElC,wCAAwC;QACxC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;YACpB,OAAO,KAAK,CAAC;SAChB;QAED,2DAA2D;QAC3D,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SAChB;QAED,oCAAoC;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACzC,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;YAC1D,IAAI,GAAG,GAAG,CAAC,EAAE;gBACT,GAAG,GAAG,CAAC,CAAC;aACX;SACJ;QAED,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAErD,0CAA0C;QAC1C,IAAI,SAAS,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YAC/C,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,EAAE,CAAC;QACV,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,CAAC;QACT,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;YAC1D,IAAI,GAAG,GAAG,CAAC,EAAE;gBACT,GAAG,GAAG,CAAC,CAAC;aACX;SACJ;QAED,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAEjD,yCAAyC;QACzC,IAAI,SAAS,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YAC/C,OAAO,KAAK,CAAC;SAChB;QAED,cAAc;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,qCAAU,GAAV,UAAW,cAAsB;QAC7B,IAAM,QAAQ,GAAG,UAAU,CAAC;QAC5B,IAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,IAAM,YAAY,GAAG,aAAa,CAAC;QAEnC,IAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE1D,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;YAC1H,sCAAsC;YACtC,YAAY,GAAG,WAAI,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,eAAK,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,cAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC;SACnH;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;YAC3E,wBAAwB;YACxB,YAAY,GAAG,UAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,cAAI,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,cAAI,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,cAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC;SACjJ;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE;YAC7E,yBAAyB;YACzB,YAAY,GAAG,UAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,cAAI,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,cAAI,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,cAAI,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,cAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAE,CAAC;SAClL;QAGD,OAAO,YAAY,CAAC;IACxB,CAAC;oFAhPQ,gBAAgB;0EAAhB,gBAAgB,WAAhB,gBAAgB,mBADH,MAAM;2BAPhC;CA0PC,AAnPD,IAmPC;SAlPY,gBAAgB;uFAAhB,gBAAgB;cAD5B,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE","sourcesContent":["import { Injectable } from \"@angular/core\";\n\n/**\n * Classe responsavel gerenciar os utils\n * @author Starley Cazorla\n */\n\n@Injectable({ providedIn: 'root' })\nexport class IonValidateFilds {\n\n constructor() { }\n\n /**\n * Validar ddd de todos os estados brasileiros\n * @author Starley Cazorla\n * @param ddd\n * @returns true if ddd\n */\n private validarDDD(ddd: string): boolean {\n const dddsValidos = [\n '11', '12', '13', '14', '15', '16', '17', '18', '19', // SP\n '21', '22', '24', // RJ\n '27', '28', // ES\n '31', '32', '33', '34', '35', '37', '38', // MG\n '41', '42', '43', '44', '45', '46', // PR\n '47', '48', '49', // SC\n '51', '53', '54', '55', // RS\n '61', // DF e GO\n '62', '64', // GO\n '63', // TO\n '65', '66', // MT\n '67', // MS\n '68', // AC\n '69', // RO\n '71', '73', '74', '75', '77', // BA\n '79', // SE\n '81', '87', // PE\n '82', // AL\n '83', // PB\n '84', // RN\n '85', '88', // CE\n '86', '89', // PI\n '91', '93', '94', // PA\n '92', '97', // AM\n '95', // RR\n '96', // AP\n '98', '99', // MA\n ];\n\n return dddsValidos.includes(ddd);\n }\n\n private contemSequenciaRepetida(numero: string): boolean {\n const sequenciasRepetidas = [\n '00000000',\n '11111111',\n '22222222',\n '33333333',\n '44444444',\n '55555555',\n '66666666',\n '77777777',\n '88888888',\n '99999999'\n ];\n\n return sequenciasRepetidas.some(sequencia => numero.includes(sequencia));\n }\n\n /**\n * Validar numero telefone\n * @author Starley Cazorla\n * @param telefone \n * @returns true if numero telefone \n */\n public validarNumeroTelefone(telefone: string): boolean {\n // Remover caracteres não numéricos\n telefone = telefone.replace(/\\D/g, '');\n\n // Verificar o formato do número de telefone fixo (10 dígitos) com DDD\n // const formatoFixo = /^\\d{10}$/;\n\n const numero = telefone.substring(2);\n if (this.contemSequenciaRepetida(numero)) {\n return false;\n }\n\n // if (formatoFixo.test(telefone)) {\n // const ddd = telefone.substring(0, 2);\n // const numero = telefone.substring(2);\n // return this.validarDDD(ddd) && numero.length === 8;\n // }\n\n // Verificar o formato do número de telefone celular (11 dígitos) com DDD\n const formatoCelular = /^\\d{11}$/;\n\n if (formatoCelular.test(telefone)) {\n const ddd = telefone.substring(0, 2);\n const numero = telefone.substring(2);\n return this.validarDDD(ddd) && numero.length === 9;\n }\n\n // Número de telefone inválido\n return false;\n }\n\n /**\n * Validar cpf\n * @author Starley Cazorla\n * @param cpf \n * @returns true if cpf \n */\n validarCPF(cpf: string): boolean {\n\n cpf = cpf.replace(/\\D/g, '');\n\n let soma = 0;\n let resto;\n\n if (cpf === '00000000000') {\n return false;\n }\n\n for (let i = 1; i <= 9; i++) {\n soma = soma + parseInt(cpf.substring(i - 1, i), 10) * (11 - i);\n }\n\n resto = (soma * 10) % 11;\n\n if (resto === 10 || resto === 11) {\n resto = 0;\n }\n\n if (resto !== parseInt(cpf.substring(9, 10), 10)) {\n return false;\n }\n\n soma = 0;\n\n for (let i = 1; i <= 10; i++) {\n soma = soma + parseInt(cpf.substring(i - 1, i), 10) * (12 - i);\n }\n\n resto = (soma * 10) % 11;\n\n if (resto === 10 || resto === 11) {\n resto = 0;\n }\n\n if (resto !== parseInt(cpf.substring(10, 11), 10)) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Validar cnpj\n * @author Starley Cazorla\n * @param cnpj \n * @returns true if cnpj \n */\n validarCNPJ(cnpj: string): boolean {\n // Remover caracteres não numéricos\n cnpj = cnpj.replace(/[^\\d]/g, '');\n\n // Verificar se o CNPJ possui 14 dígitos\n if (cnpj.length !== 14) {\n return false;\n }\n\n // Verificar se todos os dígitos são iguais (CNPJ inválido)\n if (/^(\\d)\\1+$/.test(cnpj)) {\n return false;\n }\n\n // Calcular os dígitos verificadores\n let tamanho = cnpj.length - 2;\n let numeros = cnpj.substring(0, tamanho);\n const digitos = cnpj.substring(tamanho);\n let soma = 0;\n let pos = tamanho - 7;\n\n for (let i = tamanho; i >= 1; i--) {\n soma += parseInt(numeros.charAt(tamanho - i), 10) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n\n let resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n\n // Verificar o primeiro dígito verificador\n if (resultado !== parseInt(digitos.charAt(0), 10)) {\n return false;\n }\n\n tamanho++;\n numeros = cnpj.substring(0, tamanho);\n soma = 0;\n pos = tamanho - 7;\n\n for (let i = tamanho; i >= 1; i--) {\n soma += parseInt(numeros.charAt(tamanho - i), 10) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n\n resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n\n // Verificar o segundo dígito verificador\n if (resultado !== parseInt(digitos.charAt(1), 10)) {\n return false;\n }\n\n // CNPJ válido\n return true;\n }\n\n /**\n * Formats fild\n * @author Starley Cazorla\n * @param inputFildValue \n * @returns \n */\n formatFild(inputFildValue: string) {\n const regexCPF = /^\\d{11}$/;\n const regexCNPJ = /^\\d{14}$/;\n const regexCelular = /^\\d{10,11}$/;\n\n const chaveSemMascara = inputFildValue.replace(/\\W/g, '');\n\n let fildFormated = '';\n\n if ((regexCelular.test(chaveSemMascara) && this.validarNumeroTelefone(chaveSemMascara)) && !this.validarCPF(chaveSemMascara)) {\n // Chave é um número de celular válido\n fildFormated = `(${chaveSemMascara.substr(0, 2)}) ${chaveSemMascara.substr(2, 5)}-${chaveSemMascara.substr(7)}`;\n } else if (regexCPF.test(chaveSemMascara) && this.validarCPF(chaveSemMascara)) {\n // Chave é um CPF válido\n fildFormated = `${chaveSemMascara.substr(0, 3)}.${chaveSemMascara.substr(3, 3)}.${chaveSemMascara.substr(6, 3)}-${chaveSemMascara.substr(9)}`;\n } else if (regexCNPJ.test(chaveSemMascara) && this.validarCNPJ(chaveSemMascara)) {\n // Chave é um CNPJ válido\n fildFormated = `${chaveSemMascara.substr(0, 2)}.${chaveSemMascara.substr(2, 3)}.${chaveSemMascara.substr(5, 3)}/${chaveSemMascara.substr(8, 4)}-${chaveSemMascara.substr(12)}`;\n }\n\n\n return fildFormated;\n }\n\n}"]}
|