@factor_ec/utils 1.0.1 → 1.0.4

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.
@@ -0,0 +1,93 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class StorageService {
5
+ constructor(platformId) {
6
+ this.platformId = platformId;
7
+ }
8
+ getValue(key, storage) {
9
+ let value;
10
+ if (!storage || typeof storage == 'string') {
11
+ switch (storage) {
12
+ case 'local':
13
+ value = localStorage[key];
14
+ break;
15
+ case 'memory':
16
+ value = this.memoryStorage[key];
17
+ break;
18
+ default:
19
+ value = sessionStorage[key];
20
+ break;
21
+ }
22
+ }
23
+ else if (typeof storage == 'object') {
24
+ value = storage[key];
25
+ }
26
+ return value;
27
+ }
28
+ delete(key, storage) {
29
+ if (isPlatformBrowser(this.platformId)) {
30
+ if (!storage || typeof storage == 'string') {
31
+ switch (storage) {
32
+ case 'local':
33
+ delete localStorage[key];
34
+ break;
35
+ case 'memory':
36
+ delete this.memoryStorage[key];
37
+ break;
38
+ default:
39
+ delete sessionStorage[key];
40
+ break;
41
+ }
42
+ }
43
+ else if (typeof storage == 'object') {
44
+ delete storage[key];
45
+ }
46
+ }
47
+ }
48
+ get(key, storage) {
49
+ let parsedValue;
50
+ if (isPlatformBrowser(this.platformId)) {
51
+ try {
52
+ parsedValue = JSON.parse(this.getValue(key, storage));
53
+ }
54
+ catch (err) {
55
+ parsedValue = this.getValue(key, storage);
56
+ }
57
+ }
58
+ return parsedValue;
59
+ }
60
+ set(key, value, storage) {
61
+ if (isPlatformBrowser(this.platformId)) {
62
+ const valueString = JSON.stringify(value);
63
+ if (!storage || typeof storage == 'string') {
64
+ switch (storage) {
65
+ case 'local':
66
+ localStorage[key] = valueString;
67
+ break;
68
+ case 'memory':
69
+ this.memoryStorage[key] = valueString;
70
+ break;
71
+ default:
72
+ sessionStorage[key] = valueString;
73
+ break;
74
+ }
75
+ }
76
+ else {
77
+ //storage[key] = valueEncrypted;
78
+ }
79
+ }
80
+ }
81
+ }
82
+ StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
83
+ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, providedIn: 'root' });
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, decorators: [{
85
+ type: Injectable,
86
+ args: [{
87
+ providedIn: 'root'
88
+ }]
89
+ }], ctorParameters: function () { return [{ type: Object, decorators: [{
90
+ type: Inject,
91
+ args: [PLATFORM_ID]
92
+ }] }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdXRpbHMvc3JjL2xpYi9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtoRSxNQUFNLE9BQU8sY0FBYztJQUl6QixZQUMrQixVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQzdDLENBQUM7SUFFRyxRQUFRLENBQUMsR0FBVyxFQUFFLE9BQXdDO1FBQ3BFLElBQUksS0FBVSxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDMUMsUUFBUSxPQUFPLEVBQUU7Z0JBQ2YsS0FBSyxPQUFPO29CQUNWLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFCLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoQyxNQUFNO2dCQUNSO29CQUNFLEtBQUssR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzVCLE1BQU07YUFDVDtTQUNGO2FBQU0sSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDckMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNNLE1BQU0sQ0FBQyxHQUFXLEVBQUUsT0FBd0M7UUFDakUsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLEVBQUU7Z0JBQzFDLFFBQVEsT0FBTyxFQUFFO29CQUNmLEtBQUssT0FBTzt3QkFDVixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDekIsTUFBTTtvQkFDUixLQUFLLFFBQVE7d0JBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMvQixNQUFNO29CQUNSO3dCQUNFLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMzQixNQUFNO2lCQUNUO2FBQ0Y7aUJBQU0sSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLEVBQUU7Z0JBQ3JDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDO0lBQ00sR0FBRyxDQUFDLEdBQVcsRUFBRSxPQUF3QztRQUM5RCxJQUFJLFdBQWdCLENBQUM7UUFDckIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSTtnQkFDRixXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3ZEO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQzNDO1NBQ0Y7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBQ00sR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsT0FBd0M7UUFDMUUsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxJQUFJLFFBQVEsRUFBRTtnQkFDMUMsUUFBUSxPQUFPLEVBQUU7b0JBQ2YsS0FBSyxPQUFPO3dCQUNWLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7d0JBQ2hDLE1BQU07b0JBQ1IsS0FBSyxRQUFRO3dCQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO3dCQUN0QyxNQUFNO29CQUNSO3dCQUNFLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7d0JBQ2xDLE1BQU07aUJBQ1Q7YUFDRjtpQkFBTTtnQkFDTCxnQ0FBZ0M7YUFDakM7U0FDRjtJQUNILENBQUM7OzJHQTVFVSxjQUFjLGtCQUtmLFdBQVc7K0dBTFYsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7MERBTTRDLE1BQU07MEJBQTlDLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xuICAvL1RPRE86IFJlcGxhY2Ugd2l0aCBNYXAgb2JqZWN0IGl0IGlzIG1vcmUgZWZmaWNpZW50XG4gIG1lbW9yeVN0b3JhZ2U6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdFxuICApIHsgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWUoa2V5OiBzdHJpbmcsIHN0b3JhZ2U/OiAnbG9jYWwnIHzCoCdzZXNzaW9uJyB8ICdtZW1vcnknKTogYW55IHtcbiAgICBsZXQgdmFsdWU6IGFueTtcbiAgICBpZiAoIXN0b3JhZ2UgfHwgdHlwZW9mIHN0b3JhZ2UgPT0gJ3N0cmluZycpIHtcbiAgICAgIHN3aXRjaCAoc3RvcmFnZSkge1xuICAgICAgICBjYXNlICdsb2NhbCc6XG4gICAgICAgICAgdmFsdWUgPSBsb2NhbFN0b3JhZ2Vba2V5XTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbWVtb3J5JzpcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMubWVtb3J5U3RvcmFnZVtrZXldO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHZhbHVlID0gc2Vzc2lvblN0b3JhZ2Vba2V5XTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdG9yYWdlID09ICdvYmplY3QnKSB7XG4gICAgICB2YWx1ZSA9IHN0b3JhZ2Vba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHB1YmxpYyBkZWxldGUoa2V5OiBzdHJpbmcsIHN0b3JhZ2U/OiAnbG9jYWwnIHzCoCdzZXNzaW9uJyB8ICdtZW1vcnknKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmICghc3RvcmFnZSB8fCB0eXBlb2Ygc3RvcmFnZSA9PSAnc3RyaW5nJykge1xuICAgICAgICBzd2l0Y2ggKHN0b3JhZ2UpIHtcbiAgICAgICAgICBjYXNlICdsb2NhbCc6XG4gICAgICAgICAgICBkZWxldGUgbG9jYWxTdG9yYWdlW2tleV07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdtZW1vcnknOlxuICAgICAgICAgICAgZGVsZXRlIHRoaXMubWVtb3J5U3RvcmFnZVtrZXldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGRlbGV0ZSBzZXNzaW9uU3RvcmFnZVtrZXldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0b3JhZ2UgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgZGVsZXRlIHN0b3JhZ2Vba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGdldChrZXk6IHN0cmluZywgc3RvcmFnZT86ICdsb2NhbCcgfMKgJ3Nlc3Npb24nIHwgJ21lbW9yeScpOiBhbnkge1xuICAgIGxldCBwYXJzZWRWYWx1ZTogYW55O1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBwYXJzZWRWYWx1ZSA9IEpTT04ucGFyc2UodGhpcy5nZXRWYWx1ZShrZXksIHN0b3JhZ2UpKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBwYXJzZWRWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5LCBzdG9yYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlZFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHN0b3JhZ2U/OiAnbG9jYWwnIHzCoCdzZXNzaW9uJyB8ICdtZW1vcnknKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgaWYgKCFzdG9yYWdlIHx8IHR5cGVvZiBzdG9yYWdlID09ICdzdHJpbmcnKSB7XG4gICAgICAgIHN3aXRjaCAoc3RvcmFnZSkge1xuICAgICAgICAgIGNhc2UgJ2xvY2FsJzpcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZVtrZXldID0gdmFsdWVTdHJpbmc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdtZW1vcnknOlxuICAgICAgICAgICAgdGhpcy5tZW1vcnlTdG9yYWdlW2tleV0gPSB2YWx1ZVN0cmluZztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZVtrZXldID0gdmFsdWVTdHJpbmc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy9zdG9yYWdlW2tleV0gPSB2YWx1ZUVuY3J5cHRlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,161 @@
1
+ function lengthValidator(number, digits) {
2
+ let value = true;
3
+ if (number.trim() === '') { // No puede estar vacio
4
+ value = false;
5
+ }
6
+ else if (number.trim().length !== digits) { // Cantidad de dígitos
7
+ value = false;
8
+ }
9
+ return value;
10
+ }
11
+ function provinceValidator(number) {
12
+ let value = true;
13
+ const code = Number(number);
14
+ if (code < 0 || code > 24) {
15
+ value = false;
16
+ }
17
+ return value;
18
+ }
19
+ function typeValidator(number, type) {
20
+ let value = true;
21
+ const code = Number(number);
22
+ switch (type) {
23
+ case 'cedula':
24
+ if (code < 0 || code > 6) {
25
+ value = false;
26
+ }
27
+ break;
28
+ case 'ruc_natural':
29
+ if (code < 0 || code > 5) {
30
+ value = false;
31
+ }
32
+ break;
33
+ case 'ruc_privada':
34
+ if (code !== 9) {
35
+ value = false;
36
+ }
37
+ break;
38
+ case 'ruc_publica':
39
+ if (code !== 6) {
40
+ value = false;
41
+ }
42
+ break;
43
+ default:
44
+ value = false;
45
+ break;
46
+ }
47
+ return value;
48
+ }
49
+ function module10Validator(number, verifierCodeString) {
50
+ let value = true;
51
+ let coefficients = [2, 1, 2, 1, 2, 1, 2, 1, 2];
52
+ let verifierCode = Number(verifierCodeString);
53
+ let numberParts = number.split('');
54
+ let total = 0;
55
+ let result;
56
+ numberParts.forEach((part, index) => {
57
+ let valuePosition = Number(part) * coefficients[index];
58
+ if (valuePosition >= 10) {
59
+ let newValuePosition = String(valuePosition).split('');
60
+ let sum = newValuePosition.reduce((previousValue, currentValue) => {
61
+ return String(Number(currentValue) + Number(previousValue));
62
+ });
63
+ valuePosition = Number(sum);
64
+ }
65
+ total += valuePosition;
66
+ });
67
+ const residue = total % 10;
68
+ if (residue === 0) {
69
+ result = 0;
70
+ }
71
+ else {
72
+ result = 10 - residue;
73
+ }
74
+ if (result !== verifierCode) {
75
+ value = false;
76
+ }
77
+ return value;
78
+ }
79
+ function module11Validator(number, verifierCodeString, type) {
80
+ let value = true;
81
+ let coefficients;
82
+ let verifierCode = Number(verifierCodeString);
83
+ let numberParts = number.split('');
84
+ let total = 0;
85
+ let result;
86
+ switch (type) {
87
+ case 'ruc_privada':
88
+ coefficients = [4, 3, 2, 7, 6, 5, 4, 3, 2];
89
+ break;
90
+ case 'ruc_publica':
91
+ coefficients = [3, 2, 7, 6, 5, 4, 3, 2];
92
+ break;
93
+ default:
94
+ return false;
95
+ break;
96
+ }
97
+ numberParts.forEach((part, index) => {
98
+ let valuePosition = Number(part) * coefficients[index];
99
+ /*
100
+ if (valuePosition >= 10) {
101
+ let newValuePosition: string[] = String(valuePosition).split('');
102
+ let sum: string = newValuePosition.reduce((previousValue: string, currentValue: string) => {
103
+ return String(Number(currentValue) + Number(previousValue));
104
+ });
105
+ valuePosition = Number(sum);
106
+ }
107
+ */
108
+ total += valuePosition;
109
+ });
110
+ const residue = total % 11;
111
+ if (residue === 0) {
112
+ result = 0;
113
+ }
114
+ else {
115
+ result = 11 - residue;
116
+ }
117
+ if (result !== verifierCode) {
118
+ value = false;
119
+ }
120
+ return value;
121
+ }
122
+ function storeCodeValidator(number) {
123
+ let value = true;
124
+ const code = Number(number);
125
+ if (code < 1) {
126
+ value = false;
127
+ }
128
+ return value;
129
+ }
130
+ export function getIdentificationType(number) {
131
+ let type = '';
132
+ if (lengthValidator(number, 10) &&
133
+ provinceValidator(number.substr(0, 2)) &&
134
+ typeValidator(number.substr(2, 1), 'cedula') &&
135
+ module10Validator(number.substr(0, 9), number.substr(9, 1))) {
136
+ type = 'cedula';
137
+ }
138
+ else if (lengthValidator(number, 13) &&
139
+ provinceValidator(number.substr(0, 2)) &&
140
+ typeValidator(number.substr(2, 1), 'ruc_natural') &&
141
+ storeCodeValidator(number.substr(10, 3)) &&
142
+ module10Validator(number.substr(0, 9), number.substr(9, 1))) {
143
+ type = 'ruc_natural';
144
+ }
145
+ else if (lengthValidator(number, 13) &&
146
+ provinceValidator(number.substr(0, 2)) &&
147
+ typeValidator(number.substr(2, 1), 'ruc_privada') &&
148
+ storeCodeValidator(number.substr(10, 3)) &&
149
+ module11Validator(number.substr(0, 9), number.substr(9, 1), 'ruc_privada')) {
150
+ type = 'ruc_privada';
151
+ }
152
+ else if (lengthValidator(number, 13) &&
153
+ provinceValidator(number.substr(0, 2)) &&
154
+ typeValidator(number.substr(2, 1), 'ruc_publica') &&
155
+ storeCodeValidator(number.substr(9, 4)) &&
156
+ module11Validator(number.substr(0, 8), number.substr(8, 1), 'ruc_publica')) {
157
+ type = 'ruc_publica';
158
+ }
159
+ return type;
160
+ }
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmljYXRpb24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9saWIvdmFsaWRhdG9ycy9lYy9pZGVudGlmaWNhdGlvbi10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsZUFBZSxDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQ25ELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztJQUNqQixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSx1QkFBdUI7UUFDL0MsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNqQjtTQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsRUFBRSxzQkFBc0I7UUFDaEUsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNqQjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFDRCxTQUFTLGlCQUFpQixDQUFDLE1BQWM7SUFDckMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRTtRQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ2pCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUNELFNBQVMsYUFBYSxDQUFDLE1BQWMsRUFBRSxJQUFZO0lBQy9DLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztJQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsUUFBUSxJQUFJLEVBQUU7UUFDVixLQUFLLFFBQVE7WUFDVCxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTtnQkFDdEIsS0FBSyxHQUFHLEtBQUss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QyxFQUFFLGFBQWEsQ0FBQztRQUNqRCxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsRUFBRTtRQUN4RSxJQUFJLEdBQUcsYUFBYSxDQUFDO0tBQzVCO1NBQU0sSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNsQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDO1FBQ2pELGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxFQUFFO1FBQ3hFLElBQUksR0FBRyxhQUFhLENBQUM7S0FDNUI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gbGVuZ3RoVmFsaWRhdG9yKG51bWJlcjogc3RyaW5nLCBkaWdpdHM6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGxldCB2YWx1ZSA9IHRydWU7XG4gICAgaWYgKG51bWJlci50cmltKCkgPT09ICcnKSB7IC8vIE5vIHB1ZWRlIGVzdGFyIHZhY2lvXG4gICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChudW1iZXIudHJpbSgpLmxlbmd0aCAhPT0gZGlnaXRzKSB7IC8vIENhbnRpZGFkIGRlIGTDrWdpdG9zXG4gICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIHByb3ZpbmNlVmFsaWRhdG9yKG51bWJlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHZhbHVlID0gdHJ1ZTtcbiAgICBjb25zdCBjb2RlID0gTnVtYmVyKG51bWJlcik7XG4gICAgaWYgKGNvZGUgPCAwIHx8IGNvZGUgPiAyNCkge1xuICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG5mdW5jdGlvbiB0eXBlVmFsaWRhdG9yKG51bWJlcjogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgIGNvbnN0IGNvZGUgPSBOdW1iZXIobnVtYmVyKTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnY2VkdWxhJzpcbiAgICAgICAgICAgIGlmIChjb2RlIDwgMCB8fCBjb2RlID4gNikge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncnVjX25hdHVyYWwnOlxuICAgICAgICAgICAgaWYgKGNvZGUgPCAwIHx8IGNvZGUgPiA1KSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdydWNfcHJpdmFkYSc6XG4gICAgICAgICAgICBpZiAoY29kZSAhPT0gOSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncnVjX3B1YmxpY2EnOlxuICAgICAgICAgICAgaWYgKGNvZGUgIT09IDYpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIG1vZHVsZTEwVmFsaWRhdG9yKG51bWJlcjogc3RyaW5nLCB2ZXJpZmllckNvZGVTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCB2YWx1ZSA9IHRydWU7XG4gICAgbGV0IGNvZWZmaWNpZW50czogbnVtYmVyW10gPSBbMiwgMSwgMiwgMSwgMiwgMSwgMiwgMSwgMl07XG4gICAgbGV0IHZlcmlmaWVyQ29kZSA9IE51bWJlcih2ZXJpZmllckNvZGVTdHJpbmcpO1xuICAgIGxldCBudW1iZXJQYXJ0czogc3RyaW5nW10gPSBudW1iZXIuc3BsaXQoJycpO1xuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgbGV0IHJlc3VsdDogbnVtYmVyO1xuICAgIG51bWJlclBhcnRzLmZvckVhY2goKHBhcnQ6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgdmFsdWVQb3NpdGlvbjogbnVtYmVyID0gTnVtYmVyKHBhcnQpICogY29lZmZpY2llbnRzW2luZGV4XTtcbiAgICAgICAgaWYgKHZhbHVlUG9zaXRpb24gPj0gMTApIHtcbiAgICAgICAgICAgIGxldCBuZXdWYWx1ZVBvc2l0aW9uOiBzdHJpbmdbXSA9IFN0cmluZyh2YWx1ZVBvc2l0aW9uKS5zcGxpdCgnJyk7XG4gICAgICAgICAgICBsZXQgc3VtOiBzdHJpbmcgPSBuZXdWYWx1ZVBvc2l0aW9uLnJlZHVjZSgocHJldmlvdXNWYWx1ZTogc3RyaW5nLCBjdXJyZW50VmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoTnVtYmVyKGN1cnJlbnRWYWx1ZSkgKyBOdW1iZXIocHJldmlvdXNWYWx1ZSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YWx1ZVBvc2l0aW9uID0gTnVtYmVyKHN1bSk7XG4gICAgICAgIH1cbiAgICAgICAgdG90YWwgKz0gdmFsdWVQb3NpdGlvbjtcbiAgICB9KTtcbiAgICBjb25zdCByZXNpZHVlOiBudW1iZXIgPSB0b3RhbCAlIDEwO1xuICAgIGlmIChyZXNpZHVlID09PSAwKSB7XG4gICAgICAgIHJlc3VsdCA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gMTAgLSByZXNpZHVlO1xuICAgIH1cbiAgICBpZiAocmVzdWx0ICE9PSB2ZXJpZmllckNvZGUpIHtcbiAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gbW9kdWxlMTFWYWxpZGF0b3IobnVtYmVyOiBzdHJpbmcsIHZlcmlmaWVyQ29kZVN0cmluZzogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgIGxldCBjb2VmZmljaWVudHM6IG51bWJlcltdO1xuICAgIGxldCB2ZXJpZmllckNvZGUgPSBOdW1iZXIodmVyaWZpZXJDb2RlU3RyaW5nKTtcbiAgICBsZXQgbnVtYmVyUGFydHM6IHN0cmluZ1tdID0gbnVtYmVyLnNwbGl0KCcnKTtcbiAgICBsZXQgdG90YWwgPSAwO1xuICAgIGxldCByZXN1bHQ6IG51bWJlcjtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAncnVjX3ByaXZhZGEnOlxuICAgICAgICAgICAgY29lZmZpY2llbnRzID0gWzQsIDMsIDIsIDcsIDYsIDUsIDQsIDMsIDJdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3J1Y19wdWJsaWNhJzpcbiAgICAgICAgICAgIGNvZWZmaWNpZW50cyA9IFszLCAyLCA3LCA2LCA1LCA0LCAzLCAyXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIG51bWJlclBhcnRzLmZvckVhY2goKHBhcnQ6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgdmFsdWVQb3NpdGlvbjogbnVtYmVyID0gTnVtYmVyKHBhcnQpICogY29lZmZpY2llbnRzW2luZGV4XTtcbiAgICAgICAgLypcbiAgICAgICAgaWYgKHZhbHVlUG9zaXRpb24gPj0gMTApIHtcbiAgICAgICAgICBsZXQgbmV3VmFsdWVQb3NpdGlvbjogc3RyaW5nW10gPSBTdHJpbmcodmFsdWVQb3NpdGlvbikuc3BsaXQoJycpO1xuICAgICAgICAgIGxldCBzdW06IHN0cmluZyA9IG5ld1ZhbHVlUG9zaXRpb24ucmVkdWNlKChwcmV2aW91c1ZhbHVlOiBzdHJpbmcsIGN1cnJlbnRWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKE51bWJlcihjdXJyZW50VmFsdWUpICsgTnVtYmVyKHByZXZpb3VzVmFsdWUpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB2YWx1ZVBvc2l0aW9uID0gTnVtYmVyKHN1bSk7XG4gICAgICAgIH1cbiAgICAgICAgKi9cbiAgICAgICAgdG90YWwgKz0gdmFsdWVQb3NpdGlvbjtcbiAgICB9KTtcbiAgICBjb25zdCByZXNpZHVlOiBudW1iZXIgPSB0b3RhbCAlIDExO1xuICAgIGlmIChyZXNpZHVlID09PSAwKSB7XG4gICAgICAgIHJlc3VsdCA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gMTEgLSByZXNpZHVlO1xuICAgIH1cbiAgICBpZiAocmVzdWx0ICE9PSB2ZXJpZmllckNvZGUpIHtcbiAgICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gc3RvcmVDb2RlVmFsaWRhdG9yKG51bWJlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHZhbHVlID0gdHJ1ZTtcbiAgICBjb25zdCBjb2RlID0gTnVtYmVyKG51bWJlcik7XG4gICAgaWYgKGNvZGUgPCAxKSB7XG4gICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvblR5cGUobnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB0eXBlOiBzdHJpbmcgPSAnJztcbiAgICBpZiAobGVuZ3RoVmFsaWRhdG9yKG51bWJlciwgMTApICYmXG4gICAgICAgIHByb3ZpbmNlVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMCwgMikpICYmXG4gICAgICAgIHR5cGVWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigyLCAxKSwgJ2NlZHVsYScpICYmXG4gICAgICAgIG1vZHVsZTEwVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMCwgOSksIG51bWJlci5zdWJzdHIoOSwgMSkpKSB7XG4gICAgICAgICAgICB0eXBlID0gJ2NlZHVsYSc7XG4gICAgfSBlbHNlIGlmIChsZW5ndGhWYWxpZGF0b3IobnVtYmVyLCAxMykgJiZcbiAgICAgICAgcHJvdmluY2VWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigwLCAyKSkgJiZcbiAgICAgICAgdHlwZVZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDIsIDEpLCAncnVjX25hdHVyYWwnKSAmJlxuICAgICAgICBzdG9yZUNvZGVWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigxMCwgMykpICYmXG4gICAgICAgIG1vZHVsZTEwVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMCwgOSksIG51bWJlci5zdWJzdHIoOSwgMSkpKSB7XG4gICAgICAgICAgICB0eXBlID0gJ3J1Y19uYXR1cmFsJztcbiAgICB9IGVsc2UgaWYgKGxlbmd0aFZhbGlkYXRvcihudW1iZXIsIDEzKSAmJlxuICAgICAgICBwcm92aW5jZVZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDAsIDIpKSAmJlxuICAgICAgICB0eXBlVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMiwgMSksICdydWNfcHJpdmFkYScpICYmXG4gICAgICAgIHN0b3JlQ29kZVZhbGlkYXRvcihudW1iZXIuc3Vic3RyKDEwLCAzKSkgJiZcbiAgICAgICAgbW9kdWxlMTFWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigwLCA5KSwgbnVtYmVyLnN1YnN0cig5LCAxKSwgJ3J1Y19wcml2YWRhJykpIHtcbiAgICAgICAgICAgIHR5cGUgPSAncnVjX3ByaXZhZGEnO1xuICAgIH0gZWxzZSBpZiAobGVuZ3RoVmFsaWRhdG9yKG51bWJlciwgMTMpICYmXG4gICAgICAgIHByb3ZpbmNlVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMCwgMikpICYmXG4gICAgICAgIHR5cGVWYWxpZGF0b3IobnVtYmVyLnN1YnN0cigyLCAxKSwgJ3J1Y19wdWJsaWNhJykgJiZcbiAgICAgICAgc3RvcmVDb2RlVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoOSwgNCkpICYmXG4gICAgICAgIG1vZHVsZTExVmFsaWRhdG9yKG51bWJlci5zdWJzdHIoMCwgOCksIG51bWJlci5zdWJzdHIoOCwgMSksICdydWNfcHVibGljYScpKSB7XG4gICAgICAgICAgICB0eXBlID0gJ3J1Y19wdWJsaWNhJztcbiAgICB9XG4gICAgcmV0dXJuIHR5cGU7XG59Il19
@@ -0,0 +1,30 @@
1
+ import { getIdentificationType } from './identification-type';
2
+ export function identificationValidator(type) {
3
+ return (control) => {
4
+ const number = String(control.value);
5
+ if (number && number.trim() !== '') {
6
+ const parsedType = getIdentificationType(number);
7
+ switch (type) {
8
+ case 'cedula':
9
+ case 'ruc_natural':
10
+ case 'ruc_privada':
11
+ case 'ruc_publica':
12
+ return !parsedType || parsedType !== type ? { invalidIdentification: true } : null;
13
+ break;
14
+ case 'ruc':
15
+ return !parsedType || ['ruc_natural', 'ruc_privada', 'ruc_publica'].indexOf(parsedType) === -1 ? { invalidIdentification: true } : null;
16
+ break;
17
+ case 'id':
18
+ return !parsedType ? { invalidIdentification: true } : null;
19
+ break;
20
+ default:
21
+ return null;
22
+ break;
23
+ }
24
+ }
25
+ else {
26
+ return null;
27
+ }
28
+ };
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmljYXRpb24tdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXRpbHMvc3JjL2xpYi92YWxpZGF0b3JzL2VjL2lkZW50aWZpY2F0aW9uLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBWTtJQUNsRCxPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtRQUMzRCxNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbEMsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsUUFBUSxJQUFJLEVBQUU7Z0JBQ1osS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxhQUFhLENBQUM7Z0JBQ25CLEtBQUssYUFBYSxDQUFDO2dCQUNuQixLQUFLLGFBQWE7b0JBQ2hCLE9BQU8sQ0FBQyxVQUFVLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNuRixNQUFNO2dCQUNSLEtBQUssS0FBSztvQkFDUixPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDeEksTUFBTTtnQkFDUixLQUFLLElBQUk7b0JBQ1AsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUM1RCxNQUFNO2dCQUNSO29CQUNFLE9BQU8sSUFBSSxDQUFDO29CQUNaLE1BQU07YUFDVDtTQUNGO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXRJZGVudGlmaWNhdGlvblR5cGUgfSBmcm9tICcuL2lkZW50aWZpY2F0aW9uLXR5cGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpZmljYXRpb25WYWxpZGF0b3IodHlwZTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCBudW1iZXI6IHN0cmluZyA9IFN0cmluZyhjb250cm9sLnZhbHVlKTtcbiAgICBpZiAobnVtYmVyICYmIG51bWJlci50cmltKCkgIT09ICcnKSB7XG4gICAgICBjb25zdCBwYXJzZWRUeXBlID0gZ2V0SWRlbnRpZmljYXRpb25UeXBlKG51bWJlcik7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnY2VkdWxhJzpcbiAgICAgICAgY2FzZSAncnVjX25hdHVyYWwnOlxuICAgICAgICBjYXNlICdydWNfcHJpdmFkYSc6XG4gICAgICAgIGNhc2UgJ3J1Y19wdWJsaWNhJzpcbiAgICAgICAgICByZXR1cm4gIXBhcnNlZFR5cGUgfHwgcGFyc2VkVHlwZSAhPT0gdHlwZSA/IHsgaW52YWxpZElkZW50aWZpY2F0aW9uOiB0cnVlIH0gOiBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdydWMnOlxuICAgICAgICAgIHJldHVybiAhcGFyc2VkVHlwZSB8fCBbJ3J1Y19uYXR1cmFsJywgJ3J1Y19wcml2YWRhJywgJ3J1Y19wdWJsaWNhJ10uaW5kZXhPZihwYXJzZWRUeXBlKSA9PT0gLTEgPyB7IGludmFsaWRJZGVudGlmaWNhdGlvbjogdHJ1ZSB9IDogbnVsbDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaWQnOlxuICAgICAgICAgIHJldHVybiAhcGFyc2VkVHlwZSA/IHsgaW52YWxpZElkZW50aWZpY2F0aW9uOiB0cnVlIH0gOiBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -4,5 +4,8 @@
4
4
  export * from './lib/color.service';
5
5
  export * from './lib/files.service';
6
6
  export * from './lib/google-tag-manager.service';
7
+ export * from './lib/storage.service';
8
+ export * from './lib/validators/ec/identification-validator';
9
+ export * from './lib/validators/ec/identification-type';
7
10
  export * from './lib/utils.module';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdXRpbHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMubW9kdWxlJztcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdXRpbHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvZWMvaWRlbnRpZmljYXRpb24tdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvZWMvaWRlbnRpZmljYXRpb24tdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy5tb2R1bGUnO1xuIl19
@@ -281,6 +281,288 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
281
281
  }] }, { type: i1.Router }];
282
282
  } });
283
283
 
284
+ class StorageService {
285
+ constructor(platformId) {
286
+ this.platformId = platformId;
287
+ }
288
+ getValue(key, storage) {
289
+ let value;
290
+ if (!storage || typeof storage == 'string') {
291
+ switch (storage) {
292
+ case 'local':
293
+ value = localStorage[key];
294
+ break;
295
+ case 'memory':
296
+ value = this.memoryStorage[key];
297
+ break;
298
+ default:
299
+ value = sessionStorage[key];
300
+ break;
301
+ }
302
+ }
303
+ else if (typeof storage == 'object') {
304
+ value = storage[key];
305
+ }
306
+ return value;
307
+ }
308
+ delete(key, storage) {
309
+ if (isPlatformBrowser(this.platformId)) {
310
+ if (!storage || typeof storage == 'string') {
311
+ switch (storage) {
312
+ case 'local':
313
+ delete localStorage[key];
314
+ break;
315
+ case 'memory':
316
+ delete this.memoryStorage[key];
317
+ break;
318
+ default:
319
+ delete sessionStorage[key];
320
+ break;
321
+ }
322
+ }
323
+ else if (typeof storage == 'object') {
324
+ delete storage[key];
325
+ }
326
+ }
327
+ }
328
+ get(key, storage) {
329
+ let parsedValue;
330
+ if (isPlatformBrowser(this.platformId)) {
331
+ try {
332
+ parsedValue = JSON.parse(this.getValue(key, storage));
333
+ }
334
+ catch (err) {
335
+ parsedValue = this.getValue(key, storage);
336
+ }
337
+ }
338
+ return parsedValue;
339
+ }
340
+ set(key, value, storage) {
341
+ if (isPlatformBrowser(this.platformId)) {
342
+ const valueString = JSON.stringify(value);
343
+ if (!storage || typeof storage == 'string') {
344
+ switch (storage) {
345
+ case 'local':
346
+ localStorage[key] = valueString;
347
+ break;
348
+ case 'memory':
349
+ this.memoryStorage[key] = valueString;
350
+ break;
351
+ default:
352
+ sessionStorage[key] = valueString;
353
+ break;
354
+ }
355
+ }
356
+ else {
357
+ //storage[key] = valueEncrypted;
358
+ }
359
+ }
360
+ }
361
+ }
362
+ StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
363
+ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, providedIn: 'root' });
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, decorators: [{
365
+ type: Injectable,
366
+ args: [{
367
+ providedIn: 'root'
368
+ }]
369
+ }], ctorParameters: function () {
370
+ return [{ type: Object, decorators: [{
371
+ type: Inject,
372
+ args: [PLATFORM_ID]
373
+ }] }];
374
+ } });
375
+
376
+ function lengthValidator(number, digits) {
377
+ let value = true;
378
+ if (number.trim() === '') { // No puede estar vacio
379
+ value = false;
380
+ }
381
+ else if (number.trim().length !== digits) { // Cantidad de dígitos
382
+ value = false;
383
+ }
384
+ return value;
385
+ }
386
+ function provinceValidator(number) {
387
+ let value = true;
388
+ const code = Number(number);
389
+ if (code < 0 || code > 24) {
390
+ value = false;
391
+ }
392
+ return value;
393
+ }
394
+ function typeValidator(number, type) {
395
+ let value = true;
396
+ const code = Number(number);
397
+ switch (type) {
398
+ case 'cedula':
399
+ if (code < 0 || code > 6) {
400
+ value = false;
401
+ }
402
+ break;
403
+ case 'ruc_natural':
404
+ if (code < 0 || code > 5) {
405
+ value = false;
406
+ }
407
+ break;
408
+ case 'ruc_privada':
409
+ if (code !== 9) {
410
+ value = false;
411
+ }
412
+ break;
413
+ case 'ruc_publica':
414
+ if (code !== 6) {
415
+ value = false;
416
+ }
417
+ break;
418
+ default:
419
+ value = false;
420
+ break;
421
+ }
422
+ return value;
423
+ }
424
+ function module10Validator(number, verifierCodeString) {
425
+ let value = true;
426
+ let coefficients = [2, 1, 2, 1, 2, 1, 2, 1, 2];
427
+ let verifierCode = Number(verifierCodeString);
428
+ let numberParts = number.split('');
429
+ let total = 0;
430
+ let result;
431
+ numberParts.forEach((part, index) => {
432
+ let valuePosition = Number(part) * coefficients[index];
433
+ if (valuePosition >= 10) {
434
+ let newValuePosition = String(valuePosition).split('');
435
+ let sum = newValuePosition.reduce((previousValue, currentValue) => {
436
+ return String(Number(currentValue) + Number(previousValue));
437
+ });
438
+ valuePosition = Number(sum);
439
+ }
440
+ total += valuePosition;
441
+ });
442
+ const residue = total % 10;
443
+ if (residue === 0) {
444
+ result = 0;
445
+ }
446
+ else {
447
+ result = 10 - residue;
448
+ }
449
+ if (result !== verifierCode) {
450
+ value = false;
451
+ }
452
+ return value;
453
+ }
454
+ function module11Validator(number, verifierCodeString, type) {
455
+ let value = true;
456
+ let coefficients;
457
+ let verifierCode = Number(verifierCodeString);
458
+ let numberParts = number.split('');
459
+ let total = 0;
460
+ let result;
461
+ switch (type) {
462
+ case 'ruc_privada':
463
+ coefficients = [4, 3, 2, 7, 6, 5, 4, 3, 2];
464
+ break;
465
+ case 'ruc_publica':
466
+ coefficients = [3, 2, 7, 6, 5, 4, 3, 2];
467
+ break;
468
+ default:
469
+ return false;
470
+ break;
471
+ }
472
+ numberParts.forEach((part, index) => {
473
+ let valuePosition = Number(part) * coefficients[index];
474
+ /*
475
+ if (valuePosition >= 10) {
476
+ let newValuePosition: string[] = String(valuePosition).split('');
477
+ let sum: string = newValuePosition.reduce((previousValue: string, currentValue: string) => {
478
+ return String(Number(currentValue) + Number(previousValue));
479
+ });
480
+ valuePosition = Number(sum);
481
+ }
482
+ */
483
+ total += valuePosition;
484
+ });
485
+ const residue = total % 11;
486
+ if (residue === 0) {
487
+ result = 0;
488
+ }
489
+ else {
490
+ result = 11 - residue;
491
+ }
492
+ if (result !== verifierCode) {
493
+ value = false;
494
+ }
495
+ return value;
496
+ }
497
+ function storeCodeValidator(number) {
498
+ let value = true;
499
+ const code = Number(number);
500
+ if (code < 1) {
501
+ value = false;
502
+ }
503
+ return value;
504
+ }
505
+ function getIdentificationType(number) {
506
+ let type = '';
507
+ if (lengthValidator(number, 10) &&
508
+ provinceValidator(number.substr(0, 2)) &&
509
+ typeValidator(number.substr(2, 1), 'cedula') &&
510
+ module10Validator(number.substr(0, 9), number.substr(9, 1))) {
511
+ type = 'cedula';
512
+ }
513
+ else if (lengthValidator(number, 13) &&
514
+ provinceValidator(number.substr(0, 2)) &&
515
+ typeValidator(number.substr(2, 1), 'ruc_natural') &&
516
+ storeCodeValidator(number.substr(10, 3)) &&
517
+ module10Validator(number.substr(0, 9), number.substr(9, 1))) {
518
+ type = 'ruc_natural';
519
+ }
520
+ else if (lengthValidator(number, 13) &&
521
+ provinceValidator(number.substr(0, 2)) &&
522
+ typeValidator(number.substr(2, 1), 'ruc_privada') &&
523
+ storeCodeValidator(number.substr(10, 3)) &&
524
+ module11Validator(number.substr(0, 9), number.substr(9, 1), 'ruc_privada')) {
525
+ type = 'ruc_privada';
526
+ }
527
+ else if (lengthValidator(number, 13) &&
528
+ provinceValidator(number.substr(0, 2)) &&
529
+ typeValidator(number.substr(2, 1), 'ruc_publica') &&
530
+ storeCodeValidator(number.substr(9, 4)) &&
531
+ module11Validator(number.substr(0, 8), number.substr(8, 1), 'ruc_publica')) {
532
+ type = 'ruc_publica';
533
+ }
534
+ return type;
535
+ }
536
+
537
+ function identificationValidator(type) {
538
+ return (control) => {
539
+ const number = String(control.value);
540
+ if (number && number.trim() !== '') {
541
+ const parsedType = getIdentificationType(number);
542
+ switch (type) {
543
+ case 'cedula':
544
+ case 'ruc_natural':
545
+ case 'ruc_privada':
546
+ case 'ruc_publica':
547
+ return !parsedType || parsedType !== type ? { invalidIdentification: true } : null;
548
+ break;
549
+ case 'ruc':
550
+ return !parsedType || ['ruc_natural', 'ruc_privada', 'ruc_publica'].indexOf(parsedType) === -1 ? { invalidIdentification: true } : null;
551
+ break;
552
+ case 'id':
553
+ return !parsedType ? { invalidIdentification: true } : null;
554
+ break;
555
+ default:
556
+ return null;
557
+ break;
558
+ }
559
+ }
560
+ else {
561
+ return null;
562
+ }
563
+ };
564
+ }
565
+
284
566
  class UtilsModule {
285
567
  }
286
568
  UtilsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UtilsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -303,5 +585,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
303
585
  * Generated bundle index. Do not edit.
304
586
  */
305
587
 
306
- export { ColorService, FilesService, GoogleTagManagerService, UtilsModule };
588
+ export { ColorService, FilesService, GoogleTagManagerService, StorageService, UtilsModule, getIdentificationType, identificationValidator };
307
589
  //# sourceMappingURL=factor_ec-utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"factor_ec-utils.mjs","sources":["../../../projects/utils/src/lib/color.service.ts","../../../projects/utils/src/lib/files.service.ts","../../../projects/utils/src/lib/google-tag-manager.service.ts","../../../projects/utils/src/lib/utils.module.ts","../../../projects/utils/src/public-api.ts","../../../projects/utils/src/factor_ec-utils.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ColorService {\n L: number[];\n S: number[];\n hueRanges: {min: number, max: number}[];\n\n constructor() {\n const options: any = {};\n let LS = [options.lightness, options.saturation].map(function(param) {\n param = param || [0.35, 0.5, 0.65]; // note that 3 is a prime\n return Array.isArray(param) ? param.concat() : [param];\n });\n\n this.L = LS[0];\n this.S = LS[1];\n\n if (typeof options.hue === 'number') {\n options.hue = { min: options.hue, max: options.hue };\n }\n if (typeof options.hue === 'object' && !Array.isArray(options.hue)) {\n options.hue = [options.hue];\n }\n if (typeof options.hue === 'undefined') {\n options.hue = [];\n }\n this.hueRanges = options.hue.map(function(range: {min: number, max: number}) {\n return {\n min: typeof range.min === 'undefined' ? 0 : range.min,\n max: typeof range.max === 'undefined' ? 360 : range.max\n };\n });\n }\n\n /**\n * BKDR Hash (modified version)\n *\n * @param str string to hash\n */\n hash(str: string): number {\n let seed = 131;\n let seed2 = 137;\n let hash = 0;\n // make hash more sensitive for short string like 'a', 'b', 'c'\n str += 'x';\n // Note: Number.MAX_SAFE_INTEGER equals 9007199254740991\n const maxSafeInteger: number = Math.round(9007199254740991 / seed2);\n for (let i = 0; i < str.length; i++) {\n if (hash > maxSafeInteger) {\n hash = Math.round(hash / seed2);\n }\n hash = hash * seed + str.charCodeAt(i);\n }\n return hash;\n };\n\n /**\n * Convert RGB Array to HEX\n *\n * @param RGBArray - [R, G, B]\n * @returns 6 digits hex starting with #\n */\n rgb2hex(RGBArray: number[]): string {\n let hex = '#';\n RGBArray.forEach(function(value) {\n if (value < 16) {\n hex += 0;\n }\n hex += value.toString(16);\n });\n return hex;\n };\n\n /**\n * Convert HSL to RGB\n *\n * @see {@link http://zh.wikipedia.org/wiki/HSL和HSV色彩空间} for further information.\n * @param H Hue ∈ [0, 360)\n * @param S Saturation ∈ [0, 1]\n * @param L Lightness ∈ [0, 1]\n * @returns R, G, B ∈ [0, 255]\n */\n hsl2rgb(H: number, S: number, L: number): number[] {\n H /= 360;\n\n let q = L < 0.5 ? L * (1 + S) : L + S - L * S;\n let p = 2 * L - q;\n\n return [H + 1 / 3, H, H - 1 / 3].map(function(color) {\n if (color < 0) {\n color++;\n }\n if (color > 1) {\n color--;\n }\n if (color < 1 / 6) {\n color = p + (q - p) * 6 * color;\n } else if (color < 0.5) {\n color = q;\n } else if (color < 2 / 3) {\n color = p + (q - p) * 6 * (2 / 3 - color);\n } else {\n color = p;\n }\n return Math.round(color * 255);\n });\n };\n\n\n /**\n * Returns the hash in [h, s, l].\n * Note that H ∈ [0, 360); S ∈ [0, 1]; L ∈ [0, 1];\n *\n * @param str string to hash\n * @returns [h, s, l]\n */\n hsl(str: string): any[] {\n let H;\n let S;\n let L;\n let hash = this.hash(str);\n\n if (this.hueRanges.length) {\n let range = this.hueRanges[hash % this.hueRanges.length];\n let hueResolution = 727; // note that 727 is a prime\n H = ((hash / this.hueRanges.length) % hueResolution) * (range.max - range.min) / hueResolution + range.min;\n } else {\n H = hash % 359; // note that 359 is a prime\n }\n hash = Math.round(hash / 360);\n S = this.S[hash % this.S.length];\n hash = Math.round(hash / this.S.length);\n L = this.L[hash % this.L.length];\n\n return [H, S, L];\n };\n\n /**\n * Returns the hash in [r, g, b].\n * Note that R, G, B ∈ [0, 255]\n *\n * @param str string to hash\n * @returns [r, g, b]\n */\n rgb(str: string): number[] {\n let hsl = this.hsl(str);\n return this.hsl2rgb(hsl[0], hsl[1], hsl[2]);\n };\n\n /**\n * Returns the hash in hex\n *\n * @param str string to hash\n * @returns hex with #\n */\n hex(str: string): string {\n let rgb = this.rgb(str);\n return this.rgb2hex(rgb);\n };\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesService {\n private callback!: Function;\n private fileInput: HTMLInputElement;\n\n constructor() {\n this.fileInput = document.createElement('input');\n this.fileInput.type = 'file';\n this.fileInput.addEventListener('change', (event: any) => {\n this.loadValue(event.currentTarget.files);\n });\n }\n private loadValue(files: FileList) {\n if (files && files.length > 0) {\n let data: any[] = [];\n for (let i = 0; i < files.length; i++) {\n const file: any = files.item(i);\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n data.push(Object.assign(file, {\n data: reader.result\n }));\n if (data.length == files.length) {\n this.callback(data.length > 0 ? data : null);\n this.fileInput.value = '';\n }\n };\n }\n }\n }\n public open(callback?: Function, options?: { accept?: string, multiple?: boolean }) {\n this.fileInput.accept = options?.accept ? options.accept : '';\n this.fileInput.multiple = options?.multiple || false;\n this.fileInput.click();\n if (callback) {\n this.callback = callback;\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\ndeclare var window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleTagManagerService {\n trackingId!: string;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n public router: Router\n ) { }\n\n public appendTrackingCode(trackingId: string): void {\n try {\n if (isPlatformBrowser(this.platformId) && trackingId) {\n this.trackingId = trackingId;\n const s1: HTMLElement = document.createElement('script');\n s1.innerHTML = `\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','${trackingId}');\n `;\n document.head.appendChild(s1);\n const s2: HTMLElement = document.createElement('noscript');\n const s3: HTMLIFrameElement = document.createElement('iframe');\n s3.width = '0';\n s3.height = '0';\n s3.style.display = 'none';\n s3.style.visibility = 'hidden';\n s3.src = `//www.googletagmanager.com/ns.html?id=${trackingId}`\n s2.appendChild(s3);\n (document.body as HTMLElement).prepend(s2);\n this.initSubscribers();\n }\n } catch (ex) {\n console.error('Error appending google tag manager');\n console.error(ex);\n }\n }\n public addVariable(variable: any) {\n if (isPlatformBrowser(this.platformId) && this.trackingId) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(variable);\n }\n }\n private initSubscribers() {\n this.router.events.subscribe(event => {\n try {\n if (event instanceof NavigationEnd && this.trackingId) {\n this.addVariable({\n event:'router.NavigationEnd', \n pageTitle: document.title,\n pagePath: event.urlAfterRedirects\n });\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [\n ],\n imports: [\n ],\n exports: [\n ]\n})\nexport class UtilsModule { }\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib/color.service';\nexport * from './lib/files.service';\nexport * from './lib/google-tag-manager.service';\nexport * from './lib/utils.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factor_ec-utils.mjs","sources":["../../../projects/utils/src/lib/color.service.ts","../../../projects/utils/src/lib/files.service.ts","../../../projects/utils/src/lib/google-tag-manager.service.ts","../../../projects/utils/src/lib/storage.service.ts","../../../projects/utils/src/lib/validators/ec/identification-type.ts","../../../projects/utils/src/lib/validators/ec/identification-validator.ts","../../../projects/utils/src/lib/utils.module.ts","../../../projects/utils/src/public-api.ts","../../../projects/utils/src/factor_ec-utils.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ColorService {\n L: number[];\n S: number[];\n hueRanges: {min: number, max: number}[];\n\n constructor() {\n const options: any = {};\n let LS = [options.lightness, options.saturation].map(function(param) {\n param = param || [0.35, 0.5, 0.65]; // note that 3 is a prime\n return Array.isArray(param) ? param.concat() : [param];\n });\n\n this.L = LS[0];\n this.S = LS[1];\n\n if (typeof options.hue === 'number') {\n options.hue = { min: options.hue, max: options.hue };\n }\n if (typeof options.hue === 'object' && !Array.isArray(options.hue)) {\n options.hue = [options.hue];\n }\n if (typeof options.hue === 'undefined') {\n options.hue = [];\n }\n this.hueRanges = options.hue.map(function(range: {min: number, max: number}) {\n return {\n min: typeof range.min === 'undefined' ? 0 : range.min,\n max: typeof range.max === 'undefined' ? 360 : range.max\n };\n });\n }\n\n /**\n * BKDR Hash (modified version)\n *\n * @param str string to hash\n */\n hash(str: string): number {\n let seed = 131;\n let seed2 = 137;\n let hash = 0;\n // make hash more sensitive for short string like 'a', 'b', 'c'\n str += 'x';\n // Note: Number.MAX_SAFE_INTEGER equals 9007199254740991\n const maxSafeInteger: number = Math.round(9007199254740991 / seed2);\n for (let i = 0; i < str.length; i++) {\n if (hash > maxSafeInteger) {\n hash = Math.round(hash / seed2);\n }\n hash = hash * seed + str.charCodeAt(i);\n }\n return hash;\n };\n\n /**\n * Convert RGB Array to HEX\n *\n * @param RGBArray - [R, G, B]\n * @returns 6 digits hex starting with #\n */\n rgb2hex(RGBArray: number[]): string {\n let hex = '#';\n RGBArray.forEach(function(value) {\n if (value < 16) {\n hex += 0;\n }\n hex += value.toString(16);\n });\n return hex;\n };\n\n /**\n * Convert HSL to RGB\n *\n * @see {@link http://zh.wikipedia.org/wiki/HSL和HSV色彩空间} for further information.\n * @param H Hue ∈ [0, 360)\n * @param S Saturation ∈ [0, 1]\n * @param L Lightness ∈ [0, 1]\n * @returns R, G, B ∈ [0, 255]\n */\n hsl2rgb(H: number, S: number, L: number): number[] {\n H /= 360;\n\n let q = L < 0.5 ? L * (1 + S) : L + S - L * S;\n let p = 2 * L - q;\n\n return [H + 1 / 3, H, H - 1 / 3].map(function(color) {\n if (color < 0) {\n color++;\n }\n if (color > 1) {\n color--;\n }\n if (color < 1 / 6) {\n color = p + (q - p) * 6 * color;\n } else if (color < 0.5) {\n color = q;\n } else if (color < 2 / 3) {\n color = p + (q - p) * 6 * (2 / 3 - color);\n } else {\n color = p;\n }\n return Math.round(color * 255);\n });\n };\n\n\n /**\n * Returns the hash in [h, s, l].\n * Note that H ∈ [0, 360); S ∈ [0, 1]; L ∈ [0, 1];\n *\n * @param str string to hash\n * @returns [h, s, l]\n */\n hsl(str: string): any[] {\n let H;\n let S;\n let L;\n let hash = this.hash(str);\n\n if (this.hueRanges.length) {\n let range = this.hueRanges[hash % this.hueRanges.length];\n let hueResolution = 727; // note that 727 is a prime\n H = ((hash / this.hueRanges.length) % hueResolution) * (range.max - range.min) / hueResolution + range.min;\n } else {\n H = hash % 359; // note that 359 is a prime\n }\n hash = Math.round(hash / 360);\n S = this.S[hash % this.S.length];\n hash = Math.round(hash / this.S.length);\n L = this.L[hash % this.L.length];\n\n return [H, S, L];\n };\n\n /**\n * Returns the hash in [r, g, b].\n * Note that R, G, B ∈ [0, 255]\n *\n * @param str string to hash\n * @returns [r, g, b]\n */\n rgb(str: string): number[] {\n let hsl = this.hsl(str);\n return this.hsl2rgb(hsl[0], hsl[1], hsl[2]);\n };\n\n /**\n * Returns the hash in hex\n *\n * @param str string to hash\n * @returns hex with #\n */\n hex(str: string): string {\n let rgb = this.rgb(str);\n return this.rgb2hex(rgb);\n };\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesService {\n private callback!: Function;\n private fileInput: HTMLInputElement;\n\n constructor() {\n this.fileInput = document.createElement('input');\n this.fileInput.type = 'file';\n this.fileInput.addEventListener('change', (event: any) => {\n this.loadValue(event.currentTarget.files);\n });\n }\n private loadValue(files: FileList) {\n if (files && files.length > 0) {\n let data: any[] = [];\n for (let i = 0; i < files.length; i++) {\n const file: any = files.item(i);\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n data.push(Object.assign(file, {\n data: reader.result\n }));\n if (data.length == files.length) {\n this.callback(data.length > 0 ? data : null);\n this.fileInput.value = '';\n }\n };\n }\n }\n }\n public open(callback?: Function, options?: { accept?: string, multiple?: boolean }) {\n this.fileInput.accept = options?.accept ? options.accept : '';\n this.fileInput.multiple = options?.multiple || false;\n this.fileInput.click();\n if (callback) {\n this.callback = callback;\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\ndeclare var window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleTagManagerService {\n trackingId!: string;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n public router: Router\n ) { }\n\n public appendTrackingCode(trackingId: string): void {\n try {\n if (isPlatformBrowser(this.platformId) && trackingId) {\n this.trackingId = trackingId;\n const s1: HTMLElement = document.createElement('script');\n s1.innerHTML = `\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','${trackingId}');\n `;\n document.head.appendChild(s1);\n const s2: HTMLElement = document.createElement('noscript');\n const s3: HTMLIFrameElement = document.createElement('iframe');\n s3.width = '0';\n s3.height = '0';\n s3.style.display = 'none';\n s3.style.visibility = 'hidden';\n s3.src = `//www.googletagmanager.com/ns.html?id=${trackingId}`\n s2.appendChild(s3);\n (document.body as HTMLElement).prepend(s2);\n this.initSubscribers();\n }\n } catch (ex) {\n console.error('Error appending google tag manager');\n console.error(ex);\n }\n }\n public addVariable(variable: any) {\n if (isPlatformBrowser(this.platformId) && this.trackingId) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(variable);\n }\n }\n private initSubscribers() {\n this.router.events.subscribe(event => {\n try {\n if (event instanceof NavigationEnd && this.trackingId) {\n this.addVariable({\n event:'router.NavigationEnd', \n pageTitle: document.title,\n pagePath: event.urlAfterRedirects\n });\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n //TODO: Replace with Map object it is more efficient\n memoryStorage: any;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object\n ) { }\n\n private getValue(key: string, storage?: 'local' | 'session' | 'memory'): any {\n let value: any;\n if (!storage || typeof storage == 'string') {\n switch (storage) {\n case 'local':\n value = localStorage[key];\n break;\n case 'memory':\n value = this.memoryStorage[key];\n break;\n default:\n value = sessionStorage[key];\n break;\n }\n } else if (typeof storage == 'object') {\n value = storage[key];\n }\n return value;\n }\n public delete(key: string, storage?: 'local' | 'session' | 'memory') {\n if (isPlatformBrowser(this.platformId)) {\n if (!storage || typeof storage == 'string') {\n switch (storage) {\n case 'local':\n delete localStorage[key];\n break;\n case 'memory':\n delete this.memoryStorage[key];\n break;\n default:\n delete sessionStorage[key];\n break;\n }\n } else if (typeof storage == 'object') {\n delete storage[key];\n }\n }\n }\n public get(key: string, storage?: 'local' | 'session' | 'memory'): any {\n let parsedValue: any;\n if (isPlatformBrowser(this.platformId)) {\n try {\n parsedValue = JSON.parse(this.getValue(key, storage));\n } catch (err) {\n parsedValue = this.getValue(key, storage);\n }\n }\n return parsedValue;\n }\n public set(key: string, value: any, storage?: 'local' | 'session' | 'memory') {\n if (isPlatformBrowser(this.platformId)) {\n const valueString = JSON.stringify(value);\n if (!storage || typeof storage == 'string') {\n switch (storage) {\n case 'local':\n localStorage[key] = valueString;\n break;\n case 'memory':\n this.memoryStorage[key] = valueString;\n break;\n default:\n sessionStorage[key] = valueString;\n break;\n }\n } else {\n //storage[key] = valueEncrypted;\n }\n }\n }\n}\n","function lengthValidator(number: string, digits: number): boolean {\n let value = true;\n if (number.trim() === '') { // No puede estar vacio\n value = false;\n } else if (number.trim().length !== digits) { // Cantidad de dígitos\n value = false;\n }\n return value;\n}\nfunction provinceValidator(number: string): boolean {\n let value = true;\n const code = Number(number);\n if (code < 0 || code > 24) {\n value = false;\n }\n return value;\n}\nfunction typeValidator(number: string, type: string): boolean {\n let value = true;\n const code = Number(number);\n switch (type) {\n case 'cedula':\n if (code < 0 || code > 6) {\n value = false;\n }\n break;\n case 'ruc_natural':\n if (code < 0 || code > 5) {\n value = false;\n }\n break;\n case 'ruc_privada':\n if (code !== 9) {\n value = false;\n }\n break;\n case 'ruc_publica':\n if (code !== 6) {\n value = false;\n }\n break;\n default:\n value = false;\n break;\n }\n return value;\n}\nfunction module10Validator(number: string, verifierCodeString: string): boolean {\n let value = true;\n let coefficients: number[] = [2, 1, 2, 1, 2, 1, 2, 1, 2];\n let verifierCode = Number(verifierCodeString);\n let numberParts: string[] = number.split('');\n let total = 0;\n let result: number;\n numberParts.forEach((part: string, index: number) => {\n let valuePosition: number = Number(part) * coefficients[index];\n if (valuePosition >= 10) {\n let newValuePosition: string[] = String(valuePosition).split('');\n let sum: string = newValuePosition.reduce((previousValue: string, currentValue: string) => {\n return String(Number(currentValue) + Number(previousValue));\n });\n valuePosition = Number(sum);\n }\n total += valuePosition;\n });\n const residue: number = total % 10;\n if (residue === 0) {\n result = 0;\n } else {\n result = 10 - residue;\n }\n if (result !== verifierCode) {\n value = false;\n }\n return value;\n}\nfunction module11Validator(number: string, verifierCodeString: string, type: string): boolean {\n let value = true;\n let coefficients: number[];\n let verifierCode = Number(verifierCodeString);\n let numberParts: string[] = number.split('');\n let total = 0;\n let result: number;\n switch (type) {\n case 'ruc_privada':\n coefficients = [4, 3, 2, 7, 6, 5, 4, 3, 2];\n break;\n case 'ruc_publica':\n coefficients = [3, 2, 7, 6, 5, 4, 3, 2];\n break;\n default:\n return false;\n break;\n }\n numberParts.forEach((part: string, index: number) => {\n let valuePosition: number = Number(part) * coefficients[index];\n /*\n if (valuePosition >= 10) {\n let newValuePosition: string[] = String(valuePosition).split('');\n let sum: string = newValuePosition.reduce((previousValue: string, currentValue: string) => {\n return String(Number(currentValue) + Number(previousValue));\n });\n valuePosition = Number(sum);\n }\n */\n total += valuePosition;\n });\n const residue: number = total % 11;\n if (residue === 0) {\n result = 0;\n } else {\n result = 11 - residue;\n }\n if (result !== verifierCode) {\n value = false;\n }\n return value;\n}\nfunction storeCodeValidator(number: string): boolean {\n let value = true;\n const code = Number(number);\n if (code < 1) {\n value = false;\n }\n return value;\n}\nexport function getIdentificationType(number: string): string {\n let type: string = '';\n if (lengthValidator(number, 10) &&\n provinceValidator(number.substr(0, 2)) &&\n typeValidator(number.substr(2, 1), 'cedula') &&\n module10Validator(number.substr(0, 9), number.substr(9, 1))) {\n type = 'cedula';\n } else if (lengthValidator(number, 13) &&\n provinceValidator(number.substr(0, 2)) &&\n typeValidator(number.substr(2, 1), 'ruc_natural') &&\n storeCodeValidator(number.substr(10, 3)) &&\n module10Validator(number.substr(0, 9), number.substr(9, 1))) {\n type = 'ruc_natural';\n } else if (lengthValidator(number, 13) &&\n provinceValidator(number.substr(0, 2)) &&\n typeValidator(number.substr(2, 1), 'ruc_privada') &&\n storeCodeValidator(number.substr(10, 3)) &&\n module11Validator(number.substr(0, 9), number.substr(9, 1), 'ruc_privada')) {\n type = 'ruc_privada';\n } else if (lengthValidator(number, 13) &&\n provinceValidator(number.substr(0, 2)) &&\n typeValidator(number.substr(2, 1), 'ruc_publica') &&\n storeCodeValidator(number.substr(9, 4)) &&\n module11Validator(number.substr(0, 8), number.substr(8, 1), 'ruc_publica')) {\n type = 'ruc_publica';\n }\n return type;\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { getIdentificationType } from './identification-type';\n\nexport function identificationValidator(type: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const number: string = String(control.value);\n if (number && number.trim() !== '') {\n const parsedType = getIdentificationType(number);\n switch (type) {\n case 'cedula':\n case 'ruc_natural':\n case 'ruc_privada':\n case 'ruc_publica':\n return !parsedType || parsedType !== type ? { invalidIdentification: true } : null;\n break;\n case 'ruc':\n return !parsedType || ['ruc_natural', 'ruc_privada', 'ruc_publica'].indexOf(parsedType) === -1 ? { invalidIdentification: true } : null;\n break;\n case 'id':\n return !parsedType ? { invalidIdentification: true } : null;\n break;\n default:\n return null;\n break;\n }\n } else {\n return null;\n }\n };\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [\n ],\n imports: [\n ],\n exports: [\n ]\n})\nexport class UtilsModule { }\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib/color.service';\nexport * from './lib/files.service';\nexport * from './lib/google-tag-manager.service';\nexport * from './lib/storage.service';\nexport * from './lib/validators/ec/identification-validator';\nexport * from './lib/validators/ec/identification-type';\nexport * from './lib/utils.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAKa,YAAY,CAAA;AAKvB,IAAA,WAAA,GAAA;QACE,MAAM,OAAO,GAAQ,EAAE,CAAC;AACxB,QAAA,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAS,KAAK,EAAA;AACjE,YAAA,KAAK,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnC,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACzD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAEf,QAAA,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;AACnC,YAAA,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;AACtD,SAAA;AACD,QAAA,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAClE,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7B,SAAA;AACD,QAAA,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE;AACtC,YAAA,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAS,KAAiC,EAAA;YACzE,OAAO;AACL,gBAAA,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,KAAK,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG;AACrD,gBAAA,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,KAAK,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG;aACxD,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED;;;;AAIG;AACH,IAAA,IAAI,CAAC,GAAW,EAAA;QACd,IAAI,IAAI,GAAG,GAAG,CAAC;QACf,IAAI,KAAK,GAAG,GAAG,CAAC;QAChB,IAAI,IAAI,GAAG,CAAC,CAAC;;QAEb,GAAG,IAAI,GAAG,CAAC;;QAEX,MAAM,cAAc,GAAW,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;AACpE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,IAAI,GAAG,cAAc,EAAE;gBACzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AACjC,aAAA;YACD,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;AAED;;;;;AAKC;AACD,IAAA,OAAO,CAAC,QAAkB,EAAA;QACxB,IAAI,GAAG,GAAG,GAAG,CAAC;AACd,QAAA,QAAQ,CAAC,OAAO,CAAC,UAAS,KAAK,EAAA;YAC7B,IAAI,KAAK,GAAG,EAAE,EAAE;gBACd,GAAG,IAAI,CAAC,CAAC;AACV,aAAA;AACD,YAAA,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC;KACZ;;AAED;;;;;;;;AAQG;AACH,IAAA,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;QACrC,CAAC,IAAI,GAAG,CAAC;QAET,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAElB,QAAA,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAS,KAAK,EAAA;YACjD,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,KAAK,EAAE,CAAC;AACT,aAAA;YACD,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,KAAK,EAAE,CAAC;AACT,aAAA;AACD,YAAA,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;AACjB,gBAAA,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACjC,aAAA;iBAAM,IAAI,KAAK,GAAG,GAAG,EAAE;gBACtB,KAAK,GAAG,CAAC,CAAC;AACX,aAAA;AAAM,iBAAA,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;AACxB,gBAAA,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACL,KAAK,GAAG,CAAC,CAAC;AACX,aAAA;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;KACJ;;AAGD;;;;;;AAMG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;AACb,QAAA,IAAI,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,CAAC;QACN,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACzB,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzD,YAAA,IAAI,aAAa,GAAG,GAAG,CAAC;AACxB,YAAA,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa,KAAK,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC;AAC5G,SAAA;AAAM,aAAA;AACL,YAAA,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;AAChB,SAAA;QACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AAC9B,QAAA,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACjC,QAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,QAAA,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjC,QAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAClB;;AAED;;;;;;AAMG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;;AAED;;;;;AAKG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;;;yGA5JU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCCY,YAAY,CAAA;AAIvB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAU,KAAI;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KACJ;AACO,IAAA,SAAS,CAAC,KAAe,EAAA;AAC/B,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,IAAI,GAAU,EAAE,CAAC;AACrB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,IAAI,GAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,gBAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,MAAM,CAAC,MAAM,GAAG,MAAK;oBACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;wBAC5B,IAAI,EAAE,MAAM,CAAC,MAAM;AACpB,qBAAA,CAAC,CAAC,CAAC;AACJ,oBAAA,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AAC/B,wBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAC7C,wBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;AAC3B,qBAAA;AACH,iBAAC,CAAC;AACH,aAAA;AACF,SAAA;KACF;IACM,IAAI,CAAC,QAAmB,EAAE,OAAiD,EAAA;QAChF,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,MAAM,IAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,KAAK,CAAC;AACrD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,SAAA;KACF;;yGArCU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCKY,uBAAuB,CAAA;IAGlC,WAC+B,CAAA,UAAkB,EACxC,MAAc,EAAA;AADQ,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;AACxC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAClB;AAEE,IAAA,kBAAkB,CAAC,UAAkB,EAAA;QAC1C,IAAI;YACF,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,EAAE;AACpD,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACzD,EAAE,CAAC,SAAS,GAAG,CAAA;;;;;qDAK8B,UAAU,CAAA;SACtD,CAAC;AACF,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC9B,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC3D,MAAM,EAAE,GAAsB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC/D,gBAAA,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC;AACf,gBAAA,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC;AAChB,gBAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,gBAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC/B,gBAAA,EAAE,CAAC,GAAG,GAAG,CAAyC,sCAAA,EAAA,UAAU,EAAE,CAAA;AAC9D,gBAAA,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAClB,gBAAA,QAAQ,CAAC,IAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACpD,YAAA,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnB,SAAA;KACF;AACM,IAAA,WAAW,CAAC,QAAa,EAAA;QAC9B,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YACzD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;AAC1C,YAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,SAAA;KACF;IACO,eAAe,GAAA;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;YACnC,IAAI;AACA,gBAAA,IAAI,KAAK,YAAY,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE;oBACrD,IAAI,CAAC,WAAW,CAAC;AACf,wBAAA,KAAK,EAAC,sBAAsB;wBAC5B,SAAS,EAAE,QAAQ,CAAC,KAAK;wBACzB,QAAQ,EAAE,KAAK,CAAC,iBAAiB;AAClC,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACJ,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;AAzDU,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAIxB,WAAW,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAJV,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;wBAK4C,MAAM,EAAA,UAAA,EAAA,CAAA;8BAA9C,MAAM;+BAAC,WAAW,CAAA;;;;MCPV,cAAc,CAAA;AAIzB,IAAA,WAAA,CAC+B,UAAkB,EAAA;AAAlB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;KAC5C;IAEG,QAAQ,CAAC,GAAW,EAAE,OAAwC,EAAA;AACpE,QAAA,IAAI,KAAU,CAAC;AACf,QAAA,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AAC1C,YAAA,QAAQ,OAAO;AACb,gBAAA,KAAK,OAAO;AACV,oBAAA,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;oBAC1B,MAAM;AACR,gBAAA,KAAK,QAAQ;AACX,oBAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAChC,MAAM;AACR,gBAAA;AACE,oBAAA,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;oBAC5B,MAAM;AACT,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACrC,YAAA,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IACM,MAAM,CAAC,GAAW,EAAE,OAAwC,EAAA;AACjE,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AAC1C,gBAAA,QAAQ,OAAO;AACb,oBAAA,KAAK,OAAO;AACV,wBAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;wBACzB,MAAM;AACR,oBAAA,KAAK,QAAQ;AACX,wBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;wBAC/B,MAAM;AACR,oBAAA;AACE,wBAAA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;wBAC3B,MAAM;AACT,iBAAA;AACF,aAAA;AAAM,iBAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACrC,gBAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,aAAA;AACF,SAAA;KACF;IACM,GAAG,CAAC,GAAW,EAAE,OAAwC,EAAA;AAC9D,QAAA,IAAI,WAAgB,CAAC;AACrB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI;AACF,gBAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,aAAA;AAAC,YAAA,OAAO,GAAG,EAAE;gBACZ,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3C,aAAA;AACF,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AACM,IAAA,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,OAAwC,EAAA;AAC1E,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AAC1C,gBAAA,QAAQ,OAAO;AACb,oBAAA,KAAK,OAAO;AACV,wBAAA,YAAY,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;wBAChC,MAAM;AACR,oBAAA,KAAK,QAAQ;AACX,wBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;wBACtC,MAAM;AACR,oBAAA;AACE,wBAAA,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;wBAClC,MAAM;AACT,iBAAA;AACF,aAAA;AAAM,iBAAA;;AAEN,aAAA;AACF,SAAA;KACF;;AA5EU,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAKf,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AALV,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;wBAM4C,MAAM,EAAA,UAAA,EAAA,CAAA;8BAA9C,MAAM;+BAAC,WAAW,CAAA;;;;ACXvB,SAAS,eAAe,CAAC,MAAc,EAAE,MAAc,EAAA;IACnD,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtB,KAAK,GAAG,KAAK,CAAC;AACjB,KAAA;SAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE;QACxC,KAAK,GAAG,KAAK,CAAC;AACjB,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,iBAAiB,CAAC,MAAc,EAAA;IACrC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,IAAA,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE;QACvB,KAAK,GAAG,KAAK,CAAC;AACjB,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,aAAa,CAAC,MAAc,EAAE,IAAY,EAAA;IAC/C,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,IAAA,QAAQ,IAAI;AACR,QAAA,KAAK,QAAQ;AACT,YAAA,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;gBACtB,KAAK,GAAG,KAAK,CAAC;AACjB,aAAA;YACD,MAAM;AACV,QAAA,KAAK,aAAa;AACd,YAAA,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;gBACtB,KAAK,GAAG,KAAK,CAAC;AACjB,aAAA;YACD,MAAM;AACV,QAAA,KAAK,aAAa;YACd,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,KAAK,GAAG,KAAK,CAAC;AACjB,aAAA;YACD,MAAM;AACV,QAAA,KAAK,aAAa;YACd,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,KAAK,GAAG,KAAK,CAAC;AACjB,aAAA;YACD,MAAM;AACV,QAAA;YACI,KAAK,GAAG,KAAK,CAAC;YACd,MAAM;AACb,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,iBAAiB,CAAC,MAAc,EAAE,kBAA0B,EAAA;IACjE,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,YAAY,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,IAAI,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC9C,IAAI,WAAW,GAAa,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,IAAA,IAAI,MAAc,CAAC;IACnB,WAAW,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,KAAa,KAAI;QAChD,IAAI,aAAa,GAAW,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,aAAa,IAAI,EAAE,EAAE;YACrB,IAAI,gBAAgB,GAAa,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,GAAG,GAAW,gBAAgB,CAAC,MAAM,CAAC,CAAC,aAAqB,EAAE,YAAoB,KAAI;AACtF,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChE,aAAC,CAAC,CAAC;AACH,YAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,SAAA;QACD,KAAK,IAAI,aAAa,CAAC;AAC3B,KAAC,CAAC,CAAC;AACH,IAAA,MAAM,OAAO,GAAW,KAAK,GAAG,EAAE,CAAC;IACnC,IAAI,OAAO,KAAK,CAAC,EAAE;QACf,MAAM,GAAG,CAAC,CAAC;AACd,KAAA;AAAM,SAAA;AACH,QAAA,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC;AACzB,KAAA;IACD,IAAI,MAAM,KAAK,YAAY,EAAE;QACzB,KAAK,GAAG,KAAK,CAAC;AACjB,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,iBAAiB,CAAC,MAAc,EAAE,kBAA0B,EAAE,IAAY,EAAA;IAC/E,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAA,IAAI,YAAsB,CAAC;AAC3B,IAAA,IAAI,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC9C,IAAI,WAAW,GAAa,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,IAAA,IAAI,MAAc,CAAC;AACnB,IAAA,QAAQ,IAAI;AACR,QAAA,KAAK,aAAa;YACd,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3C,MAAM;AACV,QAAA,KAAK,aAAa;AACd,YAAA,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM;AACV,QAAA;AACI,YAAA,OAAO,KAAK,CAAC;YACb,MAAM;AACb,KAAA;IACD,WAAW,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,KAAa,KAAI;QAChD,IAAI,aAAa,GAAW,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC/D;;;;;;;;AAQE;QACF,KAAK,IAAI,aAAa,CAAC;AAC3B,KAAC,CAAC,CAAC;AACH,IAAA,MAAM,OAAO,GAAW,KAAK,GAAG,EAAE,CAAC;IACnC,IAAI,OAAO,KAAK,CAAC,EAAE;QACf,MAAM,GAAG,CAAC,CAAC;AACd,KAAA;AAAM,SAAA;AACH,QAAA,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC;AACzB,KAAA;IACD,IAAI,MAAM,KAAK,YAAY,EAAE;QACzB,KAAK,GAAG,KAAK,CAAC;AACjB,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,kBAAkB,CAAC,MAAc,EAAA;IACtC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,EAAE;QACV,KAAK,GAAG,KAAK,CAAC;AACjB,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AACK,SAAU,qBAAqB,CAAC,MAAc,EAAA;IAChD,IAAI,IAAI,GAAW,EAAE,CAAC;AACtB,IAAA,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3B,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC5C,QAAA,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACzD,IAAI,GAAG,QAAQ,CAAC;AACvB,KAAA;AAAM,SAAA,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC;QACjD,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACxC,QAAA,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACzD,IAAI,GAAG,aAAa,CAAC;AAC5B,KAAA;AAAM,SAAA,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC;QACjD,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACxC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE;QACxE,IAAI,GAAG,aAAa,CAAC;AAC5B,KAAA;AAAM,SAAA,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC;QACjD,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE;QACxE,IAAI,GAAG,aAAa,CAAC;AAC5B,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;ACtJM,SAAU,uBAAuB,CAAC,IAAY,EAAA;IAClD,OAAO,CAAC,OAAwB,KAA6B;QAC3D,MAAM,MAAM,GAAW,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAClC,YAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACjD,YAAA,QAAQ,IAAI;AACV,gBAAA,KAAK,QAAQ,CAAC;AACd,gBAAA,KAAK,aAAa,CAAC;AACnB,gBAAA,KAAK,aAAa,CAAC;AACnB,gBAAA,KAAK,aAAa;AAChB,oBAAA,OAAO,CAAC,UAAU,IAAI,UAAU,KAAK,IAAI,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;oBACnF,MAAM;AACR,gBAAA,KAAK,KAAK;AACR,oBAAA,OAAO,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;oBACxI,MAAM;AACR,gBAAA,KAAK,IAAI;AACP,oBAAA,OAAO,CAAC,UAAU,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;oBAC5D,MAAM;AACR,gBAAA;AACE,oBAAA,OAAO,IAAI,CAAC;oBACZ,MAAM;AACT,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACH,KAAC,CAAC;AACJ;;MCnBa,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAX,WAAW,EAAA,CAAA,CAAA;yGAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBARvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EACb;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE,EACR;iBACF,CAAA;;;ACTD;;AAEG;;ACFH;;AAEG;;;;"}
@@ -279,6 +279,286 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
279
279
  args: [PLATFORM_ID]
280
280
  }] }, { type: i1.Router }]; } });
281
281
 
282
+ class StorageService {
283
+ constructor(platformId) {
284
+ this.platformId = platformId;
285
+ }
286
+ getValue(key, storage) {
287
+ let value;
288
+ if (!storage || typeof storage == 'string') {
289
+ switch (storage) {
290
+ case 'local':
291
+ value = localStorage[key];
292
+ break;
293
+ case 'memory':
294
+ value = this.memoryStorage[key];
295
+ break;
296
+ default:
297
+ value = sessionStorage[key];
298
+ break;
299
+ }
300
+ }
301
+ else if (typeof storage == 'object') {
302
+ value = storage[key];
303
+ }
304
+ return value;
305
+ }
306
+ delete(key, storage) {
307
+ if (isPlatformBrowser(this.platformId)) {
308
+ if (!storage || typeof storage == 'string') {
309
+ switch (storage) {
310
+ case 'local':
311
+ delete localStorage[key];
312
+ break;
313
+ case 'memory':
314
+ delete this.memoryStorage[key];
315
+ break;
316
+ default:
317
+ delete sessionStorage[key];
318
+ break;
319
+ }
320
+ }
321
+ else if (typeof storage == 'object') {
322
+ delete storage[key];
323
+ }
324
+ }
325
+ }
326
+ get(key, storage) {
327
+ let parsedValue;
328
+ if (isPlatformBrowser(this.platformId)) {
329
+ try {
330
+ parsedValue = JSON.parse(this.getValue(key, storage));
331
+ }
332
+ catch (err) {
333
+ parsedValue = this.getValue(key, storage);
334
+ }
335
+ }
336
+ return parsedValue;
337
+ }
338
+ set(key, value, storage) {
339
+ if (isPlatformBrowser(this.platformId)) {
340
+ const valueString = JSON.stringify(value);
341
+ if (!storage || typeof storage == 'string') {
342
+ switch (storage) {
343
+ case 'local':
344
+ localStorage[key] = valueString;
345
+ break;
346
+ case 'memory':
347
+ this.memoryStorage[key] = valueString;
348
+ break;
349
+ default:
350
+ sessionStorage[key] = valueString;
351
+ break;
352
+ }
353
+ }
354
+ else {
355
+ //storage[key] = valueEncrypted;
356
+ }
357
+ }
358
+ }
359
+ }
360
+ StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
361
+ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, providedIn: 'root' });
362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: StorageService, decorators: [{
363
+ type: Injectable,
364
+ args: [{
365
+ providedIn: 'root'
366
+ }]
367
+ }], ctorParameters: function () { return [{ type: Object, decorators: [{
368
+ type: Inject,
369
+ args: [PLATFORM_ID]
370
+ }] }]; } });
371
+
372
+ function lengthValidator(number, digits) {
373
+ let value = true;
374
+ if (number.trim() === '') { // No puede estar vacio
375
+ value = false;
376
+ }
377
+ else if (number.trim().length !== digits) { // Cantidad de dígitos
378
+ value = false;
379
+ }
380
+ return value;
381
+ }
382
+ function provinceValidator(number) {
383
+ let value = true;
384
+ const code = Number(number);
385
+ if (code < 0 || code > 24) {
386
+ value = false;
387
+ }
388
+ return value;
389
+ }
390
+ function typeValidator(number, type) {
391
+ let value = true;
392
+ const code = Number(number);
393
+ switch (type) {
394
+ case 'cedula':
395
+ if (code < 0 || code > 6) {
396
+ value = false;
397
+ }
398
+ break;
399
+ case 'ruc_natural':
400
+ if (code < 0 || code > 5) {
401
+ value = false;
402
+ }
403
+ break;
404
+ case 'ruc_privada':
405
+ if (code !== 9) {
406
+ value = false;
407
+ }
408
+ break;
409
+ case 'ruc_publica':
410
+ if (code !== 6) {
411
+ value = false;
412
+ }
413
+ break;
414
+ default:
415
+ value = false;
416
+ break;
417
+ }
418
+ return value;
419
+ }
420
+ function module10Validator(number, verifierCodeString) {
421
+ let value = true;
422
+ let coefficients = [2, 1, 2, 1, 2, 1, 2, 1, 2];
423
+ let verifierCode = Number(verifierCodeString);
424
+ let numberParts = number.split('');
425
+ let total = 0;
426
+ let result;
427
+ numberParts.forEach((part, index) => {
428
+ let valuePosition = Number(part) * coefficients[index];
429
+ if (valuePosition >= 10) {
430
+ let newValuePosition = String(valuePosition).split('');
431
+ let sum = newValuePosition.reduce((previousValue, currentValue) => {
432
+ return String(Number(currentValue) + Number(previousValue));
433
+ });
434
+ valuePosition = Number(sum);
435
+ }
436
+ total += valuePosition;
437
+ });
438
+ const residue = total % 10;
439
+ if (residue === 0) {
440
+ result = 0;
441
+ }
442
+ else {
443
+ result = 10 - residue;
444
+ }
445
+ if (result !== verifierCode) {
446
+ value = false;
447
+ }
448
+ return value;
449
+ }
450
+ function module11Validator(number, verifierCodeString, type) {
451
+ let value = true;
452
+ let coefficients;
453
+ let verifierCode = Number(verifierCodeString);
454
+ let numberParts = number.split('');
455
+ let total = 0;
456
+ let result;
457
+ switch (type) {
458
+ case 'ruc_privada':
459
+ coefficients = [4, 3, 2, 7, 6, 5, 4, 3, 2];
460
+ break;
461
+ case 'ruc_publica':
462
+ coefficients = [3, 2, 7, 6, 5, 4, 3, 2];
463
+ break;
464
+ default:
465
+ return false;
466
+ break;
467
+ }
468
+ numberParts.forEach((part, index) => {
469
+ let valuePosition = Number(part) * coefficients[index];
470
+ /*
471
+ if (valuePosition >= 10) {
472
+ let newValuePosition: string[] = String(valuePosition).split('');
473
+ let sum: string = newValuePosition.reduce((previousValue: string, currentValue: string) => {
474
+ return String(Number(currentValue) + Number(previousValue));
475
+ });
476
+ valuePosition = Number(sum);
477
+ }
478
+ */
479
+ total += valuePosition;
480
+ });
481
+ const residue = total % 11;
482
+ if (residue === 0) {
483
+ result = 0;
484
+ }
485
+ else {
486
+ result = 11 - residue;
487
+ }
488
+ if (result !== verifierCode) {
489
+ value = false;
490
+ }
491
+ return value;
492
+ }
493
+ function storeCodeValidator(number) {
494
+ let value = true;
495
+ const code = Number(number);
496
+ if (code < 1) {
497
+ value = false;
498
+ }
499
+ return value;
500
+ }
501
+ function getIdentificationType(number) {
502
+ let type = '';
503
+ if (lengthValidator(number, 10) &&
504
+ provinceValidator(number.substr(0, 2)) &&
505
+ typeValidator(number.substr(2, 1), 'cedula') &&
506
+ module10Validator(number.substr(0, 9), number.substr(9, 1))) {
507
+ type = 'cedula';
508
+ }
509
+ else if (lengthValidator(number, 13) &&
510
+ provinceValidator(number.substr(0, 2)) &&
511
+ typeValidator(number.substr(2, 1), 'ruc_natural') &&
512
+ storeCodeValidator(number.substr(10, 3)) &&
513
+ module10Validator(number.substr(0, 9), number.substr(9, 1))) {
514
+ type = 'ruc_natural';
515
+ }
516
+ else if (lengthValidator(number, 13) &&
517
+ provinceValidator(number.substr(0, 2)) &&
518
+ typeValidator(number.substr(2, 1), 'ruc_privada') &&
519
+ storeCodeValidator(number.substr(10, 3)) &&
520
+ module11Validator(number.substr(0, 9), number.substr(9, 1), 'ruc_privada')) {
521
+ type = 'ruc_privada';
522
+ }
523
+ else if (lengthValidator(number, 13) &&
524
+ provinceValidator(number.substr(0, 2)) &&
525
+ typeValidator(number.substr(2, 1), 'ruc_publica') &&
526
+ storeCodeValidator(number.substr(9, 4)) &&
527
+ module11Validator(number.substr(0, 8), number.substr(8, 1), 'ruc_publica')) {
528
+ type = 'ruc_publica';
529
+ }
530
+ return type;
531
+ }
532
+
533
+ function identificationValidator(type) {
534
+ return (control) => {
535
+ const number = String(control.value);
536
+ if (number && number.trim() !== '') {
537
+ const parsedType = getIdentificationType(number);
538
+ switch (type) {
539
+ case 'cedula':
540
+ case 'ruc_natural':
541
+ case 'ruc_privada':
542
+ case 'ruc_publica':
543
+ return !parsedType || parsedType !== type ? { invalidIdentification: true } : null;
544
+ break;
545
+ case 'ruc':
546
+ return !parsedType || ['ruc_natural', 'ruc_privada', 'ruc_publica'].indexOf(parsedType) === -1 ? { invalidIdentification: true } : null;
547
+ break;
548
+ case 'id':
549
+ return !parsedType ? { invalidIdentification: true } : null;
550
+ break;
551
+ default:
552
+ return null;
553
+ break;
554
+ }
555
+ }
556
+ else {
557
+ return null;
558
+ }
559
+ };
560
+ }
561
+
282
562
  class UtilsModule {
283
563
  }
284
564
  UtilsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UtilsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -301,5 +581,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
301
581
  * Generated bundle index. Do not edit.
302
582
  */
303
583
 
304
- export { ColorService, FilesService, GoogleTagManagerService, UtilsModule };
584
+ export { ColorService, FilesService, GoogleTagManagerService, StorageService, UtilsModule, getIdentificationType, identificationValidator };
305
585
  //# sourceMappingURL=factor_ec-utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"factor_ec-utils.mjs","sources":["../../../projects/utils/src/lib/color.service.ts","../../../projects/utils/src/lib/files.service.ts","../../../projects/utils/src/lib/google-tag-manager.service.ts","../../../projects/utils/src/lib/utils.module.ts","../../../projects/utils/src/public-api.ts","../../../projects/utils/src/factor_ec-utils.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ColorService {\n L: number[];\n S: number[];\n hueRanges: {min: number, max: number}[];\n\n constructor() {\n const options: any = {};\n let LS = [options.lightness, options.saturation].map(function(param) {\n param = param || [0.35, 0.5, 0.65]; // note that 3 is a prime\n return Array.isArray(param) ? param.concat() : [param];\n });\n\n this.L = LS[0];\n this.S = LS[1];\n\n if (typeof options.hue === 'number') {\n options.hue = { min: options.hue, max: options.hue };\n }\n if (typeof options.hue === 'object' && !Array.isArray(options.hue)) {\n options.hue = [options.hue];\n }\n if (typeof options.hue === 'undefined') {\n options.hue = [];\n }\n this.hueRanges = options.hue.map(function(range: {min: number, max: number}) {\n return {\n min: typeof range.min === 'undefined' ? 0 : range.min,\n max: typeof range.max === 'undefined' ? 360 : range.max\n };\n });\n }\n\n /**\n * BKDR Hash (modified version)\n *\n * @param str string to hash\n */\n hash(str: string): number {\n let seed = 131;\n let seed2 = 137;\n let hash = 0;\n // make hash more sensitive for short string like 'a', 'b', 'c'\n str += 'x';\n // Note: Number.MAX_SAFE_INTEGER equals 9007199254740991\n const maxSafeInteger: number = Math.round(9007199254740991 / seed2);\n for (let i = 0; i < str.length; i++) {\n if (hash > maxSafeInteger) {\n hash = Math.round(hash / seed2);\n }\n hash = hash * seed + str.charCodeAt(i);\n }\n return hash;\n };\n\n /**\n * Convert RGB Array to HEX\n *\n * @param RGBArray - [R, G, B]\n * @returns 6 digits hex starting with #\n */\n rgb2hex(RGBArray: number[]): string {\n let hex = '#';\n RGBArray.forEach(function(value) {\n if (value < 16) {\n hex += 0;\n }\n hex += value.toString(16);\n });\n return hex;\n };\n\n /**\n * Convert HSL to RGB\n *\n * @see {@link http://zh.wikipedia.org/wiki/HSL和HSV色彩空间} for further information.\n * @param H Hue ∈ [0, 360)\n * @param S Saturation ∈ [0, 1]\n * @param L Lightness ∈ [0, 1]\n * @returns R, G, B ∈ [0, 255]\n */\n hsl2rgb(H: number, S: number, L: number): number[] {\n H /= 360;\n\n let q = L < 0.5 ? L * (1 + S) : L + S - L * S;\n let p = 2 * L - q;\n\n return [H + 1 / 3, H, H - 1 / 3].map(function(color) {\n if (color < 0) {\n color++;\n }\n if (color > 1) {\n color--;\n }\n if (color < 1 / 6) {\n color = p + (q - p) * 6 * color;\n } else if (color < 0.5) {\n color = q;\n } else if (color < 2 / 3) {\n color = p + (q - p) * 6 * (2 / 3 - color);\n } else {\n color = p;\n }\n return Math.round(color * 255);\n });\n };\n\n\n /**\n * Returns the hash in [h, s, l].\n * Note that H ∈ [0, 360); S ∈ [0, 1]; L ∈ [0, 1];\n *\n * @param str string to hash\n * @returns [h, s, l]\n */\n hsl(str: string): any[] {\n let H;\n let S;\n let L;\n let hash = this.hash(str);\n\n if (this.hueRanges.length) {\n let range = this.hueRanges[hash % this.hueRanges.length];\n let hueResolution = 727; // note that 727 is a prime\n H = ((hash / this.hueRanges.length) % hueResolution) * (range.max - range.min) / hueResolution + range.min;\n } else {\n H = hash % 359; // note that 359 is a prime\n }\n hash = Math.round(hash / 360);\n S = this.S[hash % this.S.length];\n hash = Math.round(hash / this.S.length);\n L = this.L[hash % this.L.length];\n\n return [H, S, L];\n };\n\n /**\n * Returns the hash in [r, g, b].\n * Note that R, G, B ∈ [0, 255]\n *\n * @param str string to hash\n * @returns [r, g, b]\n */\n rgb(str: string): number[] {\n let hsl = this.hsl(str);\n return this.hsl2rgb(hsl[0], hsl[1], hsl[2]);\n };\n\n /**\n * Returns the hash in hex\n *\n * @param str string to hash\n * @returns hex with #\n */\n hex(str: string): string {\n let rgb = this.rgb(str);\n return this.rgb2hex(rgb);\n };\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesService {\n private callback!: Function;\n private fileInput: HTMLInputElement;\n\n constructor() {\n this.fileInput = document.createElement('input');\n this.fileInput.type = 'file';\n this.fileInput.addEventListener('change', (event: any) => {\n this.loadValue(event.currentTarget.files);\n });\n }\n private loadValue(files: FileList) {\n if (files && files.length > 0) {\n let data: any[] = [];\n for (let i = 0; i < files.length; i++) {\n const file: any = files.item(i);\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n data.push(Object.assign(file, {\n data: reader.result\n }));\n if (data.length == files.length) {\n this.callback(data.length > 0 ? data : null);\n this.fileInput.value = '';\n }\n };\n }\n }\n }\n public open(callback?: Function, options?: { accept?: string, multiple?: boolean }) {\n this.fileInput.accept = options?.accept ? options.accept : '';\n this.fileInput.multiple = options?.multiple || false;\n this.fileInput.click();\n if (callback) {\n this.callback = callback;\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\ndeclare var window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleTagManagerService {\n trackingId!: string;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n public router: Router\n ) { }\n\n public appendTrackingCode(trackingId: string): void {\n try {\n if (isPlatformBrowser(this.platformId) && trackingId) {\n this.trackingId = trackingId;\n const s1: HTMLElement = document.createElement('script');\n s1.innerHTML = `\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','${trackingId}');\n `;\n document.head.appendChild(s1);\n const s2: HTMLElement = document.createElement('noscript');\n const s3: HTMLIFrameElement = document.createElement('iframe');\n s3.width = '0';\n s3.height = '0';\n s3.style.display = 'none';\n s3.style.visibility = 'hidden';\n s3.src = `//www.googletagmanager.com/ns.html?id=${trackingId}`\n s2.appendChild(s3);\n (document.body as HTMLElement).prepend(s2);\n this.initSubscribers();\n }\n } catch (ex) {\n console.error('Error appending google tag manager');\n console.error(ex);\n }\n }\n public addVariable(variable: any) {\n if (isPlatformBrowser(this.platformId) && this.trackingId) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(variable);\n }\n }\n private initSubscribers() {\n this.router.events.subscribe(event => {\n try {\n if (event instanceof NavigationEnd && this.trackingId) {\n this.addVariable({\n event:'router.NavigationEnd', \n pageTitle: document.title,\n pagePath: event.urlAfterRedirects\n });\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [\n ],\n imports: [\n ],\n exports: [\n ]\n})\nexport class UtilsModule { }\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib/color.service';\nexport * from './lib/files.service';\nexport * from './lib/google-tag-manager.service';\nexport * from './lib/utils.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAKa,YAAY,CAAA;AAKvB,IAAA,WAAA,GAAA;QACE,MAAM,OAAO,GAAQ,EAAE,CAAC;AACxB,QAAA,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAS,KAAK,EAAA;AACjE,YAAA,KAAK,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnC,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACzD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAEf,QAAA,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;AACnC,YAAA,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;AACtD,SAAA;AACD,QAAA,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAClE,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7B,SAAA;AACD,QAAA,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE;AACtC,YAAA,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAS,KAAiC,EAAA;YACzE,OAAO;AACL,gBAAA,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,KAAK,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG;AACrD,gBAAA,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,KAAK,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG;aACxD,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED;;;;AAIG;AACH,IAAA,IAAI,CAAC,GAAW,EAAA;QACd,IAAI,IAAI,GAAG,GAAG,CAAC;QACf,IAAI,KAAK,GAAG,GAAG,CAAC;QAChB,IAAI,IAAI,GAAG,CAAC,CAAC;;QAEb,GAAG,IAAI,GAAG,CAAC;;QAEX,MAAM,cAAc,GAAW,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;AACpE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,IAAI,GAAG,cAAc,EAAE;gBACzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AACjC,aAAA;YACD,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;AAED;;;;;AAKC;AACD,IAAA,OAAO,CAAC,QAAkB,EAAA;QACxB,IAAI,GAAG,GAAG,GAAG,CAAC;AACd,QAAA,QAAQ,CAAC,OAAO,CAAC,UAAS,KAAK,EAAA;YAC7B,IAAI,KAAK,GAAG,EAAE,EAAE;gBACd,GAAG,IAAI,CAAC,CAAC;AACV,aAAA;AACD,YAAA,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC;KACZ;;AAED;;;;;;;;AAQG;AACH,IAAA,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;QACrC,CAAC,IAAI,GAAG,CAAC;QAET,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAElB,QAAA,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAS,KAAK,EAAA;YACjD,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,KAAK,EAAE,CAAC;AACT,aAAA;YACD,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,KAAK,EAAE,CAAC;AACT,aAAA;AACD,YAAA,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;AACjB,gBAAA,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACjC,aAAA;iBAAM,IAAI,KAAK,GAAG,GAAG,EAAE;gBACtB,KAAK,GAAG,CAAC,CAAC;AACX,aAAA;AAAM,iBAAA,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;AACxB,gBAAA,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACL,KAAK,GAAG,CAAC,CAAC;AACX,aAAA;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;KACJ;;AAGD;;;;;;AAMG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;AACb,QAAA,IAAI,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,CAAC;QACN,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACzB,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzD,YAAA,IAAI,aAAa,GAAG,GAAG,CAAC;AACxB,YAAA,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa,KAAK,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC;AAC5G,SAAA;AAAM,aAAA;AACL,YAAA,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;AAChB,SAAA;QACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AAC9B,QAAA,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACjC,QAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,QAAA,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjC,QAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAClB;;AAED;;;;;;AAMG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;;AAED;;;;;AAKG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;;;yGA5JU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCCY,YAAY,CAAA;AAIvB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAU,KAAI;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KACJ;AACO,IAAA,SAAS,CAAC,KAAe,EAAA;AAC/B,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,IAAI,GAAU,EAAE,CAAC;AACrB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,IAAI,GAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,gBAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,MAAM,CAAC,MAAM,GAAG,MAAK;oBACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;wBAC5B,IAAI,EAAE,MAAM,CAAC,MAAM;AACpB,qBAAA,CAAC,CAAC,CAAC;AACJ,oBAAA,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AAC/B,wBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAC7C,wBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;AAC3B,qBAAA;AACH,iBAAC,CAAC;AACH,aAAA;AACF,SAAA;KACF;IACM,IAAI,CAAC,QAAmB,EAAE,OAAiD,EAAA;AAChF,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC;AACrD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,SAAA;KACF;;yGArCU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCKY,uBAAuB,CAAA;IAGlC,WAC+B,CAAA,UAAkB,EACxC,MAAc,EAAA;QADQ,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QACxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAClB;AAEE,IAAA,kBAAkB,CAAC,UAAkB,EAAA;QAC1C,IAAI;YACF,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,EAAE;AACpD,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACzD,EAAE,CAAC,SAAS,GAAG,CAAA;;;;;qDAK8B,UAAU,CAAA;SACtD,CAAC;AACF,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC9B,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC3D,MAAM,EAAE,GAAsB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC/D,gBAAA,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC;AACf,gBAAA,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC;AAChB,gBAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,gBAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC/B,gBAAA,EAAE,CAAC,GAAG,GAAG,CAAyC,sCAAA,EAAA,UAAU,EAAE,CAAA;AAC9D,gBAAA,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAClB,gBAAA,QAAQ,CAAC,IAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACpD,YAAA,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnB,SAAA;KACF;AACM,IAAA,WAAW,CAAC,QAAa,EAAA;QAC9B,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YACzD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;AAC1C,YAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,SAAA;KACF;IACO,eAAe,GAAA;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;YACnC,IAAI;AACA,gBAAA,IAAI,KAAK,YAAY,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE;oBACrD,IAAI,CAAC,WAAW,CAAC;AACf,wBAAA,KAAK,EAAC,sBAAsB;wBAC5B,SAAS,EAAE,QAAQ,CAAC,KAAK;wBACzB,QAAQ,EAAE,KAAK,CAAC,iBAAiB;AAClC,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACJ,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;AAzDU,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAIxB,WAAW,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAJV,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;0DAK4C,MAAM,EAAA,UAAA,EAAA,CAAA;0BAA9C,MAAM;2BAAC,WAAW,CAAA;;;MCHV,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAX,WAAW,EAAA,CAAA,CAAA;yGAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBARvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EACb;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE,EACR;AACF,iBAAA,CAAA;;;ACTD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"factor_ec-utils.mjs","sources":["../../../projects/utils/src/lib/color.service.ts","../../../projects/utils/src/lib/files.service.ts","../../../projects/utils/src/lib/google-tag-manager.service.ts","../../../projects/utils/src/lib/storage.service.ts","../../../projects/utils/src/lib/validators/ec/identification-type.ts","../../../projects/utils/src/lib/validators/ec/identification-validator.ts","../../../projects/utils/src/lib/utils.module.ts","../../../projects/utils/src/public-api.ts","../../../projects/utils/src/factor_ec-utils.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ColorService {\n L: number[];\n S: number[];\n hueRanges: {min: number, max: number}[];\n\n constructor() {\n const options: any = {};\n let LS = [options.lightness, options.saturation].map(function(param) {\n param = param || [0.35, 0.5, 0.65]; // note that 3 is a prime\n return Array.isArray(param) ? param.concat() : [param];\n });\n\n this.L = LS[0];\n this.S = LS[1];\n\n if (typeof options.hue === 'number') {\n options.hue = { min: options.hue, max: options.hue };\n }\n if (typeof options.hue === 'object' && !Array.isArray(options.hue)) {\n options.hue = [options.hue];\n }\n if (typeof options.hue === 'undefined') {\n options.hue = [];\n }\n this.hueRanges = options.hue.map(function(range: {min: number, max: number}) {\n return {\n min: typeof range.min === 'undefined' ? 0 : range.min,\n max: typeof range.max === 'undefined' ? 360 : range.max\n };\n });\n }\n\n /**\n * BKDR Hash (modified version)\n *\n * @param str string to hash\n */\n hash(str: string): number {\n let seed = 131;\n let seed2 = 137;\n let hash = 0;\n // make hash more sensitive for short string like 'a', 'b', 'c'\n str += 'x';\n // Note: Number.MAX_SAFE_INTEGER equals 9007199254740991\n const maxSafeInteger: number = Math.round(9007199254740991 / seed2);\n for (let i = 0; i < str.length; i++) {\n if (hash > maxSafeInteger) {\n hash = Math.round(hash / seed2);\n }\n hash = hash * seed + str.charCodeAt(i);\n }\n return hash;\n };\n\n /**\n * Convert RGB Array to HEX\n *\n * @param RGBArray - [R, G, B]\n * @returns 6 digits hex starting with #\n */\n rgb2hex(RGBArray: number[]): string {\n let hex = '#';\n RGBArray.forEach(function(value) {\n if (value < 16) {\n hex += 0;\n }\n hex += value.toString(16);\n });\n return hex;\n };\n\n /**\n * Convert HSL to RGB\n *\n * @see {@link http://zh.wikipedia.org/wiki/HSL和HSV色彩空间} for further information.\n * @param H Hue ∈ [0, 360)\n * @param S Saturation ∈ [0, 1]\n * @param L Lightness ∈ [0, 1]\n * @returns R, G, B ∈ [0, 255]\n */\n hsl2rgb(H: number, S: number, L: number): number[] {\n H /= 360;\n\n let q = L < 0.5 ? L * (1 + S) : L + S - L * S;\n let p = 2 * L - q;\n\n return [H + 1 / 3, H, H - 1 / 3].map(function(color) {\n if (color < 0) {\n color++;\n }\n if (color > 1) {\n color--;\n }\n if (color < 1 / 6) {\n color = p + (q - p) * 6 * color;\n } else if (color < 0.5) {\n color = q;\n } else if (color < 2 / 3) {\n color = p + (q - p) * 6 * (2 / 3 - color);\n } else {\n color = p;\n }\n return Math.round(color * 255);\n });\n };\n\n\n /**\n * Returns the hash in [h, s, l].\n * Note that H ∈ [0, 360); S ∈ [0, 1]; L ∈ [0, 1];\n *\n * @param str string to hash\n * @returns [h, s, l]\n */\n hsl(str: string): any[] {\n let H;\n let S;\n let L;\n let hash = this.hash(str);\n\n if (this.hueRanges.length) {\n let range = this.hueRanges[hash % this.hueRanges.length];\n let hueResolution = 727; // note that 727 is a prime\n H = ((hash / this.hueRanges.length) % hueResolution) * (range.max - range.min) / hueResolution + range.min;\n } else {\n H = hash % 359; // note that 359 is a prime\n }\n hash = Math.round(hash / 360);\n S = this.S[hash % this.S.length];\n hash = Math.round(hash / this.S.length);\n L = this.L[hash % this.L.length];\n\n return [H, S, L];\n };\n\n /**\n * Returns the hash in [r, g, b].\n * Note that R, G, B ∈ [0, 255]\n *\n * @param str string to hash\n * @returns [r, g, b]\n */\n rgb(str: string): number[] {\n let hsl = this.hsl(str);\n return this.hsl2rgb(hsl[0], hsl[1], hsl[2]);\n };\n\n /**\n * Returns the hash in hex\n *\n * @param str string to hash\n * @returns hex with #\n */\n hex(str: string): string {\n let rgb = this.rgb(str);\n return this.rgb2hex(rgb);\n };\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesService {\n private callback!: Function;\n private fileInput: HTMLInputElement;\n\n constructor() {\n this.fileInput = document.createElement('input');\n this.fileInput.type = 'file';\n this.fileInput.addEventListener('change', (event: any) => {\n this.loadValue(event.currentTarget.files);\n });\n }\n private loadValue(files: FileList) {\n if (files && files.length > 0) {\n let data: any[] = [];\n for (let i = 0; i < files.length; i++) {\n const file: any = files.item(i);\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n data.push(Object.assign(file, {\n data: reader.result\n }));\n if (data.length == files.length) {\n this.callback(data.length > 0 ? data : null);\n this.fileInput.value = '';\n }\n };\n }\n }\n }\n public open(callback?: Function, options?: { accept?: string, multiple?: boolean }) {\n this.fileInput.accept = options?.accept ? options.accept : '';\n this.fileInput.multiple = options?.multiple || false;\n this.fileInput.click();\n if (callback) {\n this.callback = callback;\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\ndeclare var window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleTagManagerService {\n trackingId!: string;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n public router: Router\n ) { }\n\n public appendTrackingCode(trackingId: string): void {\n try {\n if (isPlatformBrowser(this.platformId) && trackingId) {\n this.trackingId = trackingId;\n const s1: HTMLElement = document.createElement('script');\n s1.innerHTML = `\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','${trackingId}');\n `;\n document.head.appendChild(s1);\n const s2: HTMLElement = document.createElement('noscript');\n const s3: HTMLIFrameElement = document.createElement('iframe');\n s3.width = '0';\n s3.height = '0';\n s3.style.display = 'none';\n s3.style.visibility = 'hidden';\n s3.src = `//www.googletagmanager.com/ns.html?id=${trackingId}`\n s2.appendChild(s3);\n (document.body as HTMLElement).prepend(s2);\n this.initSubscribers();\n }\n } catch (ex) {\n console.error('Error appending google tag manager');\n console.error(ex);\n }\n }\n public addVariable(variable: any) {\n if (isPlatformBrowser(this.platformId) && this.trackingId) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(variable);\n }\n }\n private initSubscribers() {\n this.router.events.subscribe(event => {\n try {\n if (event instanceof NavigationEnd && this.trackingId) {\n this.addVariable({\n event:'router.NavigationEnd', \n pageTitle: document.title,\n pagePath: event.urlAfterRedirects\n });\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n //TODO: Replace with Map object it is more efficient\n memoryStorage: any;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object\n ) { }\n\n private getValue(key: string, storage?: 'local' | 'session' | 'memory'): any {\n let value: any;\n if (!storage || typeof storage == 'string') {\n switch (storage) {\n case 'local':\n value = localStorage[key];\n break;\n case 'memory':\n value = this.memoryStorage[key];\n break;\n default:\n value = sessionStorage[key];\n break;\n }\n } else if (typeof storage == 'object') {\n value = storage[key];\n }\n return value;\n }\n public delete(key: string, storage?: 'local' | 'session' | 'memory') {\n if (isPlatformBrowser(this.platformId)) {\n if (!storage || typeof storage == 'string') {\n switch (storage) {\n case 'local':\n delete localStorage[key];\n break;\n case 'memory':\n delete this.memoryStorage[key];\n break;\n default:\n delete sessionStorage[key];\n break;\n }\n } else if (typeof storage == 'object') {\n delete storage[key];\n }\n }\n }\n public get(key: string, storage?: 'local' | 'session' | 'memory'): any {\n let parsedValue: any;\n if (isPlatformBrowser(this.platformId)) {\n try {\n parsedValue = JSON.parse(this.getValue(key, storage));\n } catch (err) {\n parsedValue = this.getValue(key, storage);\n }\n }\n return parsedValue;\n }\n public set(key: string, value: any, storage?: 'local' | 'session' | 'memory') {\n if (isPlatformBrowser(this.platformId)) {\n const valueString = JSON.stringify(value);\n if (!storage || typeof storage == 'string') {\n switch (storage) {\n case 'local':\n localStorage[key] = valueString;\n break;\n case 'memory':\n this.memoryStorage[key] = valueString;\n break;\n default:\n sessionStorage[key] = valueString;\n break;\n }\n } else {\n //storage[key] = valueEncrypted;\n }\n }\n }\n}\n","function lengthValidator(number: string, digits: number): boolean {\n let value = true;\n if (number.trim() === '') { // No puede estar vacio\n value = false;\n } else if (number.trim().length !== digits) { // Cantidad de dígitos\n value = false;\n }\n return value;\n}\nfunction provinceValidator(number: string): boolean {\n let value = true;\n const code = Number(number);\n if (code < 0 || code > 24) {\n value = false;\n }\n return value;\n}\nfunction typeValidator(number: string, type: string): boolean {\n let value = true;\n const code = Number(number);\n switch (type) {\n case 'cedula':\n if (code < 0 || code > 6) {\n value = false;\n }\n break;\n case 'ruc_natural':\n if (code < 0 || code > 5) {\n value = false;\n }\n break;\n case 'ruc_privada':\n if (code !== 9) {\n value = false;\n }\n break;\n case 'ruc_publica':\n if (code !== 6) {\n value = false;\n }\n break;\n default:\n value = false;\n break;\n }\n return value;\n}\nfunction module10Validator(number: string, verifierCodeString: string): boolean {\n let value = true;\n let coefficients: number[] = [2, 1, 2, 1, 2, 1, 2, 1, 2];\n let verifierCode = Number(verifierCodeString);\n let numberParts: string[] = number.split('');\n let total = 0;\n let result: number;\n numberParts.forEach((part: string, index: number) => {\n let valuePosition: number = Number(part) * coefficients[index];\n if (valuePosition >= 10) {\n let newValuePosition: string[] = String(valuePosition).split('');\n let sum: string = newValuePosition.reduce((previousValue: string, currentValue: string) => {\n return String(Number(currentValue) + Number(previousValue));\n });\n valuePosition = Number(sum);\n }\n total += valuePosition;\n });\n const residue: number = total % 10;\n if (residue === 0) {\n result = 0;\n } else {\n result = 10 - residue;\n }\n if (result !== verifierCode) {\n value = false;\n }\n return value;\n}\nfunction module11Validator(number: string, verifierCodeString: string, type: string): boolean {\n let value = true;\n let coefficients: number[];\n let verifierCode = Number(verifierCodeString);\n let numberParts: string[] = number.split('');\n let total = 0;\n let result: number;\n switch (type) {\n case 'ruc_privada':\n coefficients = [4, 3, 2, 7, 6, 5, 4, 3, 2];\n break;\n case 'ruc_publica':\n coefficients = [3, 2, 7, 6, 5, 4, 3, 2];\n break;\n default:\n return false;\n break;\n }\n numberParts.forEach((part: string, index: number) => {\n let valuePosition: number = Number(part) * coefficients[index];\n /*\n if (valuePosition >= 10) {\n let newValuePosition: string[] = String(valuePosition).split('');\n let sum: string = newValuePosition.reduce((previousValue: string, currentValue: string) => {\n return String(Number(currentValue) + Number(previousValue));\n });\n valuePosition = Number(sum);\n }\n */\n total += valuePosition;\n });\n const residue: number = total % 11;\n if (residue === 0) {\n result = 0;\n } else {\n result = 11 - residue;\n }\n if (result !== verifierCode) {\n value = false;\n }\n return value;\n}\nfunction storeCodeValidator(number: string): boolean {\n let value = true;\n const code = Number(number);\n if (code < 1) {\n value = false;\n }\n return value;\n}\nexport function getIdentificationType(number: string): string {\n let type: string = '';\n if (lengthValidator(number, 10) &&\n provinceValidator(number.substr(0, 2)) &&\n typeValidator(number.substr(2, 1), 'cedula') &&\n module10Validator(number.substr(0, 9), number.substr(9, 1))) {\n type = 'cedula';\n } else if (lengthValidator(number, 13) &&\n provinceValidator(number.substr(0, 2)) &&\n typeValidator(number.substr(2, 1), 'ruc_natural') &&\n storeCodeValidator(number.substr(10, 3)) &&\n module10Validator(number.substr(0, 9), number.substr(9, 1))) {\n type = 'ruc_natural';\n } else if (lengthValidator(number, 13) &&\n provinceValidator(number.substr(0, 2)) &&\n typeValidator(number.substr(2, 1), 'ruc_privada') &&\n storeCodeValidator(number.substr(10, 3)) &&\n module11Validator(number.substr(0, 9), number.substr(9, 1), 'ruc_privada')) {\n type = 'ruc_privada';\n } else if (lengthValidator(number, 13) &&\n provinceValidator(number.substr(0, 2)) &&\n typeValidator(number.substr(2, 1), 'ruc_publica') &&\n storeCodeValidator(number.substr(9, 4)) &&\n module11Validator(number.substr(0, 8), number.substr(8, 1), 'ruc_publica')) {\n type = 'ruc_publica';\n }\n return type;\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { getIdentificationType } from './identification-type';\n\nexport function identificationValidator(type: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const number: string = String(control.value);\n if (number && number.trim() !== '') {\n const parsedType = getIdentificationType(number);\n switch (type) {\n case 'cedula':\n case 'ruc_natural':\n case 'ruc_privada':\n case 'ruc_publica':\n return !parsedType || parsedType !== type ? { invalidIdentification: true } : null;\n break;\n case 'ruc':\n return !parsedType || ['ruc_natural', 'ruc_privada', 'ruc_publica'].indexOf(parsedType) === -1 ? { invalidIdentification: true } : null;\n break;\n case 'id':\n return !parsedType ? { invalidIdentification: true } : null;\n break;\n default:\n return null;\n break;\n }\n } else {\n return null;\n }\n };\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [\n ],\n imports: [\n ],\n exports: [\n ]\n})\nexport class UtilsModule { }\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib/color.service';\nexport * from './lib/files.service';\nexport * from './lib/google-tag-manager.service';\nexport * from './lib/storage.service';\nexport * from './lib/validators/ec/identification-validator';\nexport * from './lib/validators/ec/identification-type';\nexport * from './lib/utils.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class StorageService {
3
+ private platformId;
4
+ memoryStorage: any;
5
+ constructor(platformId: Object);
6
+ private getValue;
7
+ delete(key: string, storage?: 'local' | 'session' | 'memory'): void;
8
+ get(key: string, storage?: 'local' | 'session' | 'memory'): any;
9
+ set(key: string, value: any, storage?: 'local' | 'session' | 'memory'): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<StorageService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<StorageService>;
12
+ }
@@ -0,0 +1 @@
1
+ export declare function getIdentificationType(number: string): string;
@@ -0,0 +1,2 @@
1
+ import { ValidatorFn } from '@angular/forms';
2
+ export declare function identificationValidator(type: string): ValidatorFn;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@factor_ec/utils",
3
- "version": "1.0.1",
3
+ "version": "1.0.4",
4
4
  "license": "CC-BY-NC-ND-4.0",
5
5
  "author": "Factor",
6
6
  "private": false,
package/public-api.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  export * from './lib/color.service';
2
2
  export * from './lib/files.service';
3
3
  export * from './lib/google-tag-manager.service';
4
+ export * from './lib/storage.service';
5
+ export * from './lib/validators/ec/identification-validator';
6
+ export * from './lib/validators/ec/identification-type';
4
7
  export * from './lib/utils.module';