@starley/ion-directives 1.2.23 → 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":"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","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}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starley/ion-directives",
3
- "version": "1.2.23",
3
+ "version": "1.2.25",
4
4
  "description": "Directivas internas para ionic",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",
@@ -13,9 +13,9 @@
13
13
  "publishPackage": "npm run build && npm publish"
14
14
  },
15
15
  "peerDependencies": {
16
- "@angular/common": "^15.2.8 || ^11.2.4 || ~10.0.0",
17
- "@angular/core": "^15.2.8 || ^11.2.4 || ~10.0.0",
18
- "@angular/forms": "^15.2.8 || ^11.2.4 || ~10.0.0"
16
+ "@angular/common": ">=10.0.0",
17
+ "@angular/core": ">=10.0.0",
18
+ "@angular/forms": ">=10.0.0"
19
19
  },
20
20
  "repository": {
21
21
  "type": "git",