@factor_ec/utils 5.0.0 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/factor_ec-utils.mjs +203 -3
- package/fesm2022/factor_ec-utils.mjs.map +1 -1
- package/lib/files.service.d.ts +1 -0
- package/lib/validators/ec/identification-type.d.ts +1 -0
- package/lib/validators/ec/identification-validator.d.ts +2 -0
- package/package.json +3 -3
- package/public-api.d.ts +2 -0
|
@@ -459,10 +459,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
|
|
|
459
459
|
class FilesService {
|
|
460
460
|
callback;
|
|
461
461
|
fileInput;
|
|
462
|
+
pickerClosed = false;
|
|
462
463
|
constructor() {
|
|
463
464
|
this.fileInput = document.createElement('input');
|
|
464
465
|
this.fileInput.type = 'file';
|
|
465
466
|
this.fileInput.addEventListener('change', (event) => {
|
|
467
|
+
this.pickerClosed = true;
|
|
466
468
|
this.loadValue(event.currentTarget.files);
|
|
467
469
|
});
|
|
468
470
|
}
|
|
@@ -475,17 +477,32 @@ class FilesService {
|
|
|
475
477
|
reader.readAsDataURL(file);
|
|
476
478
|
reader.onload = () => {
|
|
477
479
|
data.push(Object.assign(file, {
|
|
478
|
-
data: reader.result
|
|
480
|
+
data: reader.result,
|
|
479
481
|
}));
|
|
480
482
|
if (data.length == files.length) {
|
|
481
483
|
this.callback(data.length > 0 ? data : null);
|
|
482
484
|
this.fileInput.value = '';
|
|
483
485
|
}
|
|
486
|
+
else {
|
|
487
|
+
this.callback(null);
|
|
488
|
+
}
|
|
484
489
|
};
|
|
485
490
|
}
|
|
486
491
|
}
|
|
487
492
|
}
|
|
488
493
|
open(callback, options) {
|
|
494
|
+
this.pickerClosed = false;
|
|
495
|
+
// Detectar cuando el usuario vuelve a la ventana después de abrir el picker
|
|
496
|
+
const onFocus = () => {
|
|
497
|
+
setTimeout(() => {
|
|
498
|
+
if (!this.pickerClosed) {
|
|
499
|
+
console.log('El usuario cerró el file picker sin seleccionar archivos.');
|
|
500
|
+
this.loadValue(null);
|
|
501
|
+
}
|
|
502
|
+
window.removeEventListener('focus', onFocus);
|
|
503
|
+
}, 500); // Esperamos un poco para asegurarnos de que onchange haya tenido oportunidad de ejecutarse
|
|
504
|
+
};
|
|
505
|
+
window.addEventListener('focus', onFocus);
|
|
489
506
|
this.fileInput.accept = options?.accept ? options.accept : '';
|
|
490
507
|
this.fileInput.multiple = options?.multiple || false;
|
|
491
508
|
this.fileInput.click();
|
|
@@ -499,7 +516,7 @@ class FilesService {
|
|
|
499
516
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: FilesService, decorators: [{
|
|
500
517
|
type: Injectable,
|
|
501
518
|
args: [{
|
|
502
|
-
providedIn: 'root'
|
|
519
|
+
providedIn: 'root',
|
|
503
520
|
}]
|
|
504
521
|
}], ctorParameters: () => [] });
|
|
505
522
|
|
|
@@ -945,9 +962,192 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
|
|
|
945
962
|
args: [PLATFORM_ID]
|
|
946
963
|
}] }] });
|
|
947
964
|
|
|
965
|
+
function lengthValidator(number, digits) {
|
|
966
|
+
let value = true;
|
|
967
|
+
if (number.trim() === '') { // No puede estar vacio
|
|
968
|
+
value = false;
|
|
969
|
+
}
|
|
970
|
+
else if (number.trim().length !== digits) { // Cantidad de dígitos
|
|
971
|
+
value = false;
|
|
972
|
+
}
|
|
973
|
+
return value;
|
|
974
|
+
}
|
|
975
|
+
function provinceValidator(number) {
|
|
976
|
+
let value = true;
|
|
977
|
+
const code = Number(number);
|
|
978
|
+
if ((code < 0 || code > 24) && code !== 30) {
|
|
979
|
+
value = false;
|
|
980
|
+
}
|
|
981
|
+
return value;
|
|
982
|
+
}
|
|
983
|
+
function typeValidator(number, type) {
|
|
984
|
+
let value = true;
|
|
985
|
+
const code = Number(number);
|
|
986
|
+
switch (type) {
|
|
987
|
+
case 'cedula':
|
|
988
|
+
if (code < 0 || code > 6) {
|
|
989
|
+
value = false;
|
|
990
|
+
}
|
|
991
|
+
break;
|
|
992
|
+
case 'ruc_natural':
|
|
993
|
+
if (code < 0 || code > 5) {
|
|
994
|
+
value = false;
|
|
995
|
+
}
|
|
996
|
+
break;
|
|
997
|
+
case 'ruc_privada':
|
|
998
|
+
if (code !== 9) {
|
|
999
|
+
value = false;
|
|
1000
|
+
}
|
|
1001
|
+
break;
|
|
1002
|
+
case 'ruc_publica':
|
|
1003
|
+
if (code !== 6) {
|
|
1004
|
+
value = false;
|
|
1005
|
+
}
|
|
1006
|
+
break;
|
|
1007
|
+
default:
|
|
1008
|
+
value = false;
|
|
1009
|
+
break;
|
|
1010
|
+
}
|
|
1011
|
+
return value;
|
|
1012
|
+
}
|
|
1013
|
+
function module10Validator(number, verifierCodeString) {
|
|
1014
|
+
const coefficients = [2, 1, 2, 1, 2, 1, 2, 1, 2];
|
|
1015
|
+
const verifierCode = Number(verifierCodeString);
|
|
1016
|
+
const numberParts = number.split('');
|
|
1017
|
+
let value = true;
|
|
1018
|
+
let total = 0;
|
|
1019
|
+
let result;
|
|
1020
|
+
numberParts.forEach((part, index) => {
|
|
1021
|
+
let valuePosition = Number(part) * coefficients[index];
|
|
1022
|
+
if (valuePosition >= 10) {
|
|
1023
|
+
let newValuePosition = String(valuePosition).split('');
|
|
1024
|
+
let sum = newValuePosition.reduce((previousValue, currentValue) => {
|
|
1025
|
+
return String(Number(currentValue) + Number(previousValue));
|
|
1026
|
+
});
|
|
1027
|
+
valuePosition = Number(sum);
|
|
1028
|
+
}
|
|
1029
|
+
total += valuePosition;
|
|
1030
|
+
});
|
|
1031
|
+
const residue = total % 10;
|
|
1032
|
+
if (residue === 0) {
|
|
1033
|
+
result = 0;
|
|
1034
|
+
}
|
|
1035
|
+
else {
|
|
1036
|
+
result = 10 - residue;
|
|
1037
|
+
}
|
|
1038
|
+
if (result !== verifierCode) {
|
|
1039
|
+
value = false;
|
|
1040
|
+
}
|
|
1041
|
+
return value;
|
|
1042
|
+
}
|
|
1043
|
+
function module11Validator(number, verifierCodeString, type) {
|
|
1044
|
+
const verifierCode = Number(verifierCodeString);
|
|
1045
|
+
const numberParts = number.split('');
|
|
1046
|
+
let value = true;
|
|
1047
|
+
let coefficients;
|
|
1048
|
+
let total = 0;
|
|
1049
|
+
let result;
|
|
1050
|
+
switch (type) {
|
|
1051
|
+
case 'ruc_privada':
|
|
1052
|
+
coefficients = [4, 3, 2, 7, 6, 5, 4, 3, 2];
|
|
1053
|
+
break;
|
|
1054
|
+
case 'ruc_publica':
|
|
1055
|
+
coefficients = [3, 2, 7, 6, 5, 4, 3, 2];
|
|
1056
|
+
break;
|
|
1057
|
+
default:
|
|
1058
|
+
return false;
|
|
1059
|
+
break;
|
|
1060
|
+
}
|
|
1061
|
+
numberParts.forEach((part, index) => {
|
|
1062
|
+
let valuePosition = Number(part) * coefficients[index];
|
|
1063
|
+
total += valuePosition;
|
|
1064
|
+
});
|
|
1065
|
+
const residue = total % 11;
|
|
1066
|
+
if (residue === 0) {
|
|
1067
|
+
result = 0;
|
|
1068
|
+
}
|
|
1069
|
+
else {
|
|
1070
|
+
result = 11 - residue;
|
|
1071
|
+
}
|
|
1072
|
+
if (result !== verifierCode) {
|
|
1073
|
+
value = false;
|
|
1074
|
+
}
|
|
1075
|
+
return value;
|
|
1076
|
+
}
|
|
1077
|
+
function storeCodeValidator(number) {
|
|
1078
|
+
let value = true;
|
|
1079
|
+
const code = Number(number);
|
|
1080
|
+
if (code < 1) {
|
|
1081
|
+
value = false;
|
|
1082
|
+
}
|
|
1083
|
+
return value;
|
|
1084
|
+
}
|
|
1085
|
+
function getIdentificationType(number) {
|
|
1086
|
+
let type = null;
|
|
1087
|
+
if (lengthValidator(number, 10) &&
|
|
1088
|
+
provinceValidator(number.substr(0, 2)) &&
|
|
1089
|
+
//typeValidator(number.substr(2, 1), 'cedula') &&
|
|
1090
|
+
module10Validator(number.substr(0, 9), number.substr(9, 1))) {
|
|
1091
|
+
type = 'cedula';
|
|
1092
|
+
}
|
|
1093
|
+
else if (lengthValidator(number, 13) &&
|
|
1094
|
+
provinceValidator(number.substr(0, 2)) &&
|
|
1095
|
+
//typeValidator(number.substr(2, 1), 'ruc_natural') &&
|
|
1096
|
+
storeCodeValidator(number.substr(10, 3)) &&
|
|
1097
|
+
module10Validator(number.substr(0, 9), number.substr(9, 1))) {
|
|
1098
|
+
type = 'ruc_natural';
|
|
1099
|
+
}
|
|
1100
|
+
else if (lengthValidator(number, 13) &&
|
|
1101
|
+
provinceValidator(number.substr(0, 2)) &&
|
|
1102
|
+
typeValidator(number.substr(2, 1), 'ruc_privada') &&
|
|
1103
|
+
storeCodeValidator(number.substr(10, 3)) //&&
|
|
1104
|
+
//module11Validator(number.substr(0, 9), number.substr(9, 1), 'ruc_privada')
|
|
1105
|
+
) {
|
|
1106
|
+
type = 'ruc_privada';
|
|
1107
|
+
}
|
|
1108
|
+
else if (lengthValidator(number, 13) &&
|
|
1109
|
+
provinceValidator(number.substr(0, 2)) &&
|
|
1110
|
+
typeValidator(number.substr(2, 1), 'ruc_publica') &&
|
|
1111
|
+
storeCodeValidator(number.substr(9, 4)) //&&
|
|
1112
|
+
//module11Validator(number.substr(0, 8), number.substr(8, 1), 'ruc_publica')
|
|
1113
|
+
) {
|
|
1114
|
+
type = 'ruc_publica';
|
|
1115
|
+
}
|
|
1116
|
+
return type;
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
function identificationValidator(type) {
|
|
1120
|
+
return (control) => {
|
|
1121
|
+
const number = String(control.value);
|
|
1122
|
+
if (number && number.trim() !== '') {
|
|
1123
|
+
const parsedType = getIdentificationType(number);
|
|
1124
|
+
switch (type) {
|
|
1125
|
+
case 'cedula':
|
|
1126
|
+
case 'ruc_natural':
|
|
1127
|
+
case 'ruc_privada':
|
|
1128
|
+
case 'ruc_publica':
|
|
1129
|
+
return !parsedType || parsedType !== type ? { invalidIdentification: true } : null;
|
|
1130
|
+
break;
|
|
1131
|
+
case 'ruc':
|
|
1132
|
+
return !parsedType || ['ruc_natural', 'ruc_privada', 'ruc_publica'].indexOf(parsedType) === -1 ? { invalidIdentification: true } : null;
|
|
1133
|
+
break;
|
|
1134
|
+
case 'id':
|
|
1135
|
+
return !parsedType ? { invalidIdentification: true } : null;
|
|
1136
|
+
break;
|
|
1137
|
+
default:
|
|
1138
|
+
return null;
|
|
1139
|
+
break;
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
else {
|
|
1143
|
+
return null;
|
|
1144
|
+
}
|
|
1145
|
+
};
|
|
1146
|
+
}
|
|
1147
|
+
|
|
948
1148
|
/**
|
|
949
1149
|
* Generated bundle index. Do not edit.
|
|
950
1150
|
*/
|
|
951
1151
|
|
|
952
|
-
export { ArrayService, ColorService, ConfigDefaults, CsvConfigConsts, CsvService, DateService, FilesService, GoogleTagManagerService, GraphqlService, ObjectService, RestService, StorageService, StringService, apolloOptionsFactory, graphqlProvider };
|
|
1152
|
+
export { ArrayService, ColorService, ConfigDefaults, CsvConfigConsts, CsvService, DateService, FilesService, GoogleTagManagerService, GraphqlService, ObjectService, RestService, StorageService, StringService, apolloOptionsFactory, getIdentificationType, graphqlProvider, identificationValidator };
|
|
953
1153
|
//# sourceMappingURL=factor_ec-utils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factor_ec-utils.mjs","sources":["../../../projects/utils/src/lib/array.service.ts","../../../projects/utils/src/lib/color.service.ts","../../../projects/utils/src/lib/csv.service.ts","../../../projects/utils/src/lib/date.service.ts","../../../projects/utils/src/lib/files.service.ts","../../../projects/utils/src/lib/google-tag-manager.service.ts","../../../projects/utils/src/lib/models/utils-options.ts","../../../projects/utils/src/lib/utils.service.ts","../../../projects/utils/src/lib/graphql.provider.ts","../../../projects/utils/src/lib/string.service.ts","../../../projects/utils/src/lib/graphql.service.ts","../../../projects/utils/src/lib/object.service.ts","../../../projects/utils/src/lib/rest.service.ts","../../../projects/utils/src/lib/storage.service.ts","../../../projects/utils/src/factor_ec-utils.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ArrayService {\n public merge(arrays: any[], prop: string): any[] {\n const merged: any = {};\n arrays.forEach(arr => {\n arr.forEach((item: any) => {\n merged[item[prop]] = Object.assign({}, merged[item[prop]], item);\n });\n });\n return Object.values(merged);\n }\n}\n","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: {\n min: number;\n max: number;\n }) {\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 * 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 =\n (((hash / this.hueRanges.length) % hueResolution) *\n (range.max - range.min)) /\n hueResolution +\n 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}\n","import { Injectable } from '@angular/core';\n\nexport interface CsvParsed {\n header: string[];\n content: string[][];\n}\n\nexport interface Options {\n filename: string;\n fieldSeparator: string;\n quoteStrings: string;\n decimalSeparator: string;\n showLabels: boolean;\n showTitle: boolean;\n title: string;\n useTextFile: boolean;\n useBom: boolean;\n headers: string[];\n useKeysAsHeaders: boolean;\n}\n\nexport class CsvConfigConsts {\n public static EOL = '\\r\\n';\n public static BOM = '\\ufeff';\n\n public static DEFAULT_FIELD_SEPARATOR = ',';\n public static DEFAULT_DECIMAL_SEPARATOR = '.';\n public static DEFAULT_QUOTE = '\"';\n public static DEFAULT_SHOW_TITLE = false;\n public static DEFAULT_TITLE = 'My Generated Report';\n public static DEFAULT_FILENAME = 'generated';\n public static DEFAULT_SHOW_LABELS = false;\n public static DEFAULT_USE_TEXT_FILE = false;\n public static DEFAULT_USE_BOM = true;\n public static DEFAULT_HEADER: string[] = [];\n public static DEFAULT_KEYS_AS_HEADERS = false;\n}\n\nexport const ConfigDefaults: Options = {\n filename: CsvConfigConsts.DEFAULT_FILENAME,\n fieldSeparator: CsvConfigConsts.DEFAULT_FIELD_SEPARATOR,\n quoteStrings: CsvConfigConsts.DEFAULT_QUOTE,\n decimalSeparator: CsvConfigConsts.DEFAULT_DECIMAL_SEPARATOR,\n showLabels: CsvConfigConsts.DEFAULT_SHOW_LABELS,\n showTitle: CsvConfigConsts.DEFAULT_SHOW_TITLE,\n title: CsvConfigConsts.DEFAULT_TITLE,\n useTextFile: CsvConfigConsts.DEFAULT_USE_TEXT_FILE,\n useBom: CsvConfigConsts.DEFAULT_USE_BOM,\n headers: CsvConfigConsts.DEFAULT_HEADER,\n useKeysAsHeaders: CsvConfigConsts.DEFAULT_KEYS_AS_HEADERS\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CsvService {\n private _data: any[] = [];\n private _options: Options;\n private _csv = '';\n\n get options(): Options {\n return this._options;\n }\n\n set options(options: Partial<Options>) {\n this._options = this.objectAssign({}, ConfigDefaults, options);\n }\n\n constructor() {\n this._options = this.objectAssign({}, ConfigDefaults);\n }\n /**\n * Generate and Download Csv\n */\n generate(jsonData: any, shouldReturnCsv = false): void | any {\n // Make sure to reset csv data on each run\n this._csv = '';\n\n this._parseData(jsonData);\n\n if (this._options.useBom) {\n this._csv += CsvConfigConsts.BOM;\n }\n\n if (this._options.showTitle) {\n this._csv += this._options.title + '\\r\\n\\n';\n }\n\n this._getHeaders();\n this._getBody();\n\n if (this._csv == '') {\n console.log('Invalid data');\n return;\n }\n\n // When the consumer asks for the data, exit the function\n // by returning the CSV data built at this point\n if (shouldReturnCsv) {\n return this._csv;\n }\n\n // Create CSV blob to download if requesting in the browser and the\n // consumer doesn't set the shouldReturnCsv param\n const FileType = this._options.useTextFile ? 'plain' : 'csv';\n const fileExtension = this._options.useTextFile ? '.txt' : '.csv';\n const blob = new Blob([this._csv], {\n type: 'text/' + FileType + ';charset=utf8;'\n });\n\n //const attachmentType = this._options.useTextFile ? 'text' : 'csv';\n // const uri = 'data:attachment/' + attachmentType + ';charset=utf-8,' + encodeURI(this._csv);\n const link = document.createElement('a');\n link.href = URL.createObjectURL(blob);\n\n link.setAttribute('visibility', 'hidden');\n link.download = this._options.filename.replace(/ /g, '_') + fileExtension;\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n\n /**\n * Create Headers\n */\n private _getHeaders(): void {\n if (!this._options.showLabels && !this._options.useKeysAsHeaders) {\n return;\n }\n const useKeysAsHeaders = this._options.useKeysAsHeaders;\n const headers: string[] = useKeysAsHeaders\n ? Object.keys(this._data[0])\n : this._options.headers;\n\n if (headers.length > 0) {\n let row = '';\n for (let keyPos = 0; keyPos < headers.length; keyPos++) {\n row += headers[keyPos] + this._options.fieldSeparator;\n }\n\n row = row.slice(0, -1);\n this._csv += row + CsvConfigConsts.EOL;\n }\n }\n /**\n * Create Body\n */\n private _getBody() {\n const keys = Object.keys(this._data[0]);\n for (var i = 0; i < this._data.length; i++) {\n let row = '';\n for (let keyPos = 0; keyPos < keys.length; keyPos++) {\n const key = keys[keyPos];\n row +=\n this._formatData(this._data[i][key]) + this._options.fieldSeparator;\n }\n\n row = row.slice(0, -1);\n this._csv += row + CsvConfigConsts.EOL;\n }\n }\n /**\n * Format Data\n * @param {any} data\n */\n private _formatData(data: any) {\n if (this._options.decimalSeparator === 'locale' && this._isFloat(data)) {\n return data.toLocaleString();\n }\n\n if (this._options.decimalSeparator !== '.' && this._isFloat(data)) {\n return data.toString().replace('.', this._options.decimalSeparator);\n }\n\n if (typeof data === 'string') {\n data = data.replace(/\"/g, '\"\"');\n if (\n this._options.quoteStrings ||\n data.indexOf(',') > -1 ||\n data.indexOf('\\n') > -1 ||\n data.indexOf('\\r') > -1\n ) {\n data = this._options.quoteStrings + data + this._options.quoteStrings;\n }\n return data;\n }\n\n if (typeof data === 'boolean') {\n return data ? 'TRUE' : 'FALSE';\n }\n return data;\n }\n /**\n * Check if is Float\n * @param {any} input\n */\n private _isFloat(input: any) {\n return +input === input && (!isFinite(input) || Boolean(input % 1));\n }\n /**\n * Parse the collection given to it\n *\n * @private\n * @param {*} jsonData\n * @returns {any[]}\n * @memberof ExportToCsv\n */\n private _parseData(jsonData: any): any[] {\n this._data = typeof jsonData != 'object' ? JSON.parse(jsonData) : jsonData;\n\n return this._data;\n }\n /**\n * Convet to Object\n * @param {any} val\n */\n toObject(val: any) {\n if (val === null || val === undefined) {\n throw new TypeError(\n 'Object.assign cannot be called with null or undefined'\n );\n }\n return Object(val);\n }\n /**\n * Assign data to new Object\n * @param {any} target\n * @param {any[]} ...source\n */\n objectAssign(target: any, ...source: any[]) {\n let from: any;\n const to = this.toObject(target);\n let symbols: any;\n let hasOwnProperty = Object.prototype.hasOwnProperty;\n let propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if ((<any>Object).getOwnPropertySymbols) {\n symbols = (<any>Object).getOwnPropertySymbols(from);\n for (let i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n }\n read(csvContent: string): CsvParsed {\n const lines = csvContent.split('\\n');\n let header: string[];\n let content: string[][];\n if (lines.length > 0) {\n const csv = lines.map((line) => {\n return this.parseLine(line.trim());\n }) as any;\n header = csv[0];\n\n // Si encuentra una linea en blanco ya no sigue leyendo las siguientes líneas\n let breakIndex!: number;\n csv.some((row: string[], index: number) => {\n const isBlankLine = row.every((column: string) => column.trim() === '');\n if (isBlankLine) {\n breakIndex = index;\n return true;\n }\n return false;\n });\n content = csv.slice(1, breakIndex);\n } else {\n header = [];\n content = [];\n }\n return {\n header,\n content\n };\n }\n parseLine(csvLine: string) {\n const values = [];\n const regex = /(?:\"([^\"]*)\"|'([^']*)'|([^,]+))(?:,|\\r?$)/g;\n let match;\n while ((match = regex.exec(csvLine)) !== null) {\n values.push(match[1] || match[2] || match[3]); // Extraer el valor correcto\n }\n return values;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DateService {\n getDate(date: string): Date {\n const dateParts: string[] = date.split('T')[0].split('-');\n return new Date(Number(dateParts[0]), Number(dateParts[1]) - 1, Number(dateParts[2]));\n }\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 { Router, NavigationEnd } 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 { InjectionToken } from \"@angular/core\";\n\nexport interface UtilsOptions {\n graphqlEndpoint: string;\n restApiPath: string;\n}\n\nexport const UTILS_OPTIONS = new InjectionToken<UtilsOptions>('UTILS_OPTIONS');","import { Inject, Injectable } from '@angular/core';\nimport { UTILS_OPTIONS, UtilsOptions } from './models/utils-options';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(@Inject(UTILS_OPTIONS) private options: UtilsOptions) {}\n\n get(): UtilsOptions {\n return this.options;\n }\n}\n","import { ApplicationConfig, inject } from '@angular/core';\n\nimport { Apollo, APOLLO_OPTIONS } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { ApolloClientOptions, InMemoryCache } from '@apollo/client/core';\nimport { UtilsService } from './utils.service';\n\nexport function apolloOptionsFactory(): ApolloClientOptions<any> {\n const httpLink = inject(HttpLink);\n const options = inject(UtilsService);\n\n return {\n link: httpLink.create({ uri: options.get().graphqlEndpoint }),\n cache: new InMemoryCache(),\n };\n}\n\nexport const graphqlProvider: ApplicationConfig['providers'] = [\n Apollo,\n {\n provide: APOLLO_OPTIONS,\n useFactory: apolloOptionsFactory,\n },\n];\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StringService {\n decodeHTML(text: string): string {\n const span = document.createElement('span');\n return text.replace(/&[#A-Za-z0-9]+;/gi, (entity) => {\n span.innerHTML = entity;\n return span.innerText;\n });\n }\n /**\n * Normaliza un texto para evitar el Case y los acentos\n * @param text texto a normalizar\n * @returns texto normalizado\n */\n normalize(text: string): string {\n if (!text) return '';\n return text\n .toLowerCase()\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\");\n }\n normalizeName(text: string): string {\n text = text.trim();\n text = text.charAt(0).toUpperCase() + text.slice(1);\n return text;\n }\n calculateReadingTime(text: string) {\n // Caracteres por minuto\n const cpm = 1000;\n\n // Calcular el número de caracteres en el texto\n const numCharacters: number = text.length;\n\n // Calcular el tiempo de lectura en minutos\n const readingTimeMinutes: number = numCharacters / cpm;\n\n // Convertir el tiempo de lectura de minutos a milisegundos\n const readingTimeMilliseconds: number = readingTimeMinutes * 60 * 1000;\n\n return readingTimeMilliseconds;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Apollo, gql, MutationResult } from 'apollo-angular';\nimport { lastValueFrom, Observable } from 'rxjs';\n\nimport { StringService } from './string.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GraphqlService {\n private apollo = inject(Apollo);\n private stringService = inject(StringService);\n\n\n mutation(operation: 'create' | 'update' | 'delete', type: string, entity: any): Promise<unknown> {\n let mutation: Observable<MutationResult<unknown>>;\n const capitalizedType = this.stringService.normalizeName(type);\n switch (operation) {\n case 'create':\n entity.uuid = entity.id ? entity.id.split('/').pop() : crypto.randomUUID();\n delete entity.createdBy;\n delete entity.updatedBy;\n delete entity.id;\n mutation = this.apollo.mutate({\n mutation: gql`\n mutation Create${capitalizedType}($entity: create${capitalizedType}Input!) {\n create${capitalizedType}(input: $entity) {\n ${type} {\n id\n }\n }\n }\n `,\n variables: {\n entity\n }\n });\n break;\n case 'delete':\n mutation = this.apollo.mutate({\n mutation: gql`\n mutation Delete${capitalizedType}($id: ID!) {\n delete${capitalizedType}(input: {id: $id}) {\n clientMutationId\n }\n }\n `,\n variables: {\n id: entity.id\n }\n });\n break;\n case 'update':\n delete entity.createdBy;\n delete entity.updatedBy;\n mutation = this.apollo.mutate({\n mutation: gql`\n mutation Update${capitalizedType}($entity: update${capitalizedType}Input!) {\n update${capitalizedType}(input: $entity) {\n ${type} {\n id\n }\n }\n }\n `,\n variables: {\n entity\n }\n });\n break;\n }\n return lastValueFrom(mutation);\n }\n parseQuery(query: { [key: string]: any }) {\n if (query !== null) {\n const data: any = {};\n for (const property in query) {\n if (query[property]?.edges) {\n data[property] = this.parseEdges(query[property].edges);\n } else if (query[property]?.node) {\n data[property] = this.parseQuery(query[property].node);\n } else if (Array.isArray(query[property])) {\n // Si es un arreglo simple no lo parsea\n if (typeof query[property][0] === 'object') {\n data[property] = query[property].map((node: any) => {\n return this.parseQuery(node);\n });\n } else {\n data[property] = query[property];\n }\n } else if (typeof query[property] === 'object') {\n data[property] = this.parseQuery(query[property]);\n } else if (property !== '__typename') {\n data[property] = query[property];\n }\n }\n return data;\n } else {\n return query;\n }\n }\n parseEdges(edges: any): any[] {\n return edges.map((entity: any) => {\n return this.parseQuery(entity?.node || entity);\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ObjectService {\n filterNullProperties(obj: any): any {\n const mappedObj: any = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== null && obj[key] !== undefined && obj[key] !== 'undefined') {\n mappedObj[key] = obj[key];\n }\n });\n return mappedObj;\n }\n deepMerge(target: any, source: any) {\n source = structuredClone(source);\n target = structuredClone(target);\n for (const key of Object.keys(source)) {\n if (source[key] instanceof Object && key in target) {\n Object.assign(source[key], this.deepMerge(target[key], source[key]));\n }\n }\n return { ...target, ...source };\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { UtilsService } from './utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RestService {\n private http = inject(HttpClient);\n private options = inject(UtilsService);\n\n public delete(resourcePath: string, id: string): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}/${id}`;\n return this.http.delete(url);\n }\n public find(resourcePath: string, params?: any, options?: any): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}`;\n return this.http.get(url, { ...{ params }, ...options });\n }\n public get(resourcePath: string, id?: string, params?: any, options?: any): Observable<any> {\n let url: string;\n if (id) {\n url = `${this.getApiPath(resourcePath)}${resourcePath}/${id}`;\n } else {\n return this.find(`${this.getApiPath(resourcePath)}${resourcePath}`, params, options);\n }\n return this.http.get(url, { ...{ params }, ...options });\n }\n public patch(resourcePath: string, id: string, data: any, options?: any): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}${id ? '/' : ''}${id || ''}`;\n return this.http.patch(url, data, options);\n }\n public post(resourcePath: string, data: any, options?: any): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}`;\n return this.http.post<any>(url, data, options);\n }\n public put(resourcePath: string, id: any, data: any): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}${id ? '/' : ''}${id || ''}`;\n return this.http.put(url, data);\n }\n private getApiPath(resourcePath: string): string {\n return this.isAbsoluteUrl(resourcePath) ? '' : `${this.options.get().restApiPath}/`;\n }\n private isAbsoluteUrl(resourcePath: string): boolean {\n //const expression = /[-a-zA-Z0-9@:%._~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_.~#?&//=]*)?/gi;\n const expression = /^(https?:\\/\\/)/i;\n const regex = new RegExp(expression);\n return regex.test(resourcePath);\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(@Inject(PLATFORM_ID) private platformId: Object) {}\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(\n key: string,\n value: any,\n storage?: 'local' | 'session' | 'memory'\n ) {\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 }\n }\n }\n}\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/array.service.ts","../../../projects/utils/src/lib/color.service.ts","../../../projects/utils/src/lib/csv.service.ts","../../../projects/utils/src/lib/date.service.ts","../../../projects/utils/src/lib/files.service.ts","../../../projects/utils/src/lib/google-tag-manager.service.ts","../../../projects/utils/src/lib/models/utils-options.ts","../../../projects/utils/src/lib/utils.service.ts","../../../projects/utils/src/lib/graphql.provider.ts","../../../projects/utils/src/lib/string.service.ts","../../../projects/utils/src/lib/graphql.service.ts","../../../projects/utils/src/lib/object.service.ts","../../../projects/utils/src/lib/rest.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/factor_ec-utils.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ArrayService {\n public merge(arrays: any[], prop: string): any[] {\n const merged: any = {};\n arrays.forEach(arr => {\n arr.forEach((item: any) => {\n merged[item[prop]] = Object.assign({}, merged[item[prop]], item);\n });\n });\n return Object.values(merged);\n }\n}\n","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: {\n min: number;\n max: number;\n }) {\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 * 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 =\n (((hash / this.hueRanges.length) % hueResolution) *\n (range.max - range.min)) /\n hueResolution +\n 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}\n","import { Injectable } from '@angular/core';\n\nexport interface CsvParsed {\n header: string[];\n content: string[][];\n}\n\nexport interface Options {\n filename: string;\n fieldSeparator: string;\n quoteStrings: string;\n decimalSeparator: string;\n showLabels: boolean;\n showTitle: boolean;\n title: string;\n useTextFile: boolean;\n useBom: boolean;\n headers: string[];\n useKeysAsHeaders: boolean;\n}\n\nexport class CsvConfigConsts {\n public static EOL = '\\r\\n';\n public static BOM = '\\ufeff';\n\n public static DEFAULT_FIELD_SEPARATOR = ',';\n public static DEFAULT_DECIMAL_SEPARATOR = '.';\n public static DEFAULT_QUOTE = '\"';\n public static DEFAULT_SHOW_TITLE = false;\n public static DEFAULT_TITLE = 'My Generated Report';\n public static DEFAULT_FILENAME = 'generated';\n public static DEFAULT_SHOW_LABELS = false;\n public static DEFAULT_USE_TEXT_FILE = false;\n public static DEFAULT_USE_BOM = true;\n public static DEFAULT_HEADER: string[] = [];\n public static DEFAULT_KEYS_AS_HEADERS = false;\n}\n\nexport const ConfigDefaults: Options = {\n filename: CsvConfigConsts.DEFAULT_FILENAME,\n fieldSeparator: CsvConfigConsts.DEFAULT_FIELD_SEPARATOR,\n quoteStrings: CsvConfigConsts.DEFAULT_QUOTE,\n decimalSeparator: CsvConfigConsts.DEFAULT_DECIMAL_SEPARATOR,\n showLabels: CsvConfigConsts.DEFAULT_SHOW_LABELS,\n showTitle: CsvConfigConsts.DEFAULT_SHOW_TITLE,\n title: CsvConfigConsts.DEFAULT_TITLE,\n useTextFile: CsvConfigConsts.DEFAULT_USE_TEXT_FILE,\n useBom: CsvConfigConsts.DEFAULT_USE_BOM,\n headers: CsvConfigConsts.DEFAULT_HEADER,\n useKeysAsHeaders: CsvConfigConsts.DEFAULT_KEYS_AS_HEADERS\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CsvService {\n private _data: any[] = [];\n private _options: Options;\n private _csv = '';\n\n get options(): Options {\n return this._options;\n }\n\n set options(options: Partial<Options>) {\n this._options = this.objectAssign({}, ConfigDefaults, options);\n }\n\n constructor() {\n this._options = this.objectAssign({}, ConfigDefaults);\n }\n /**\n * Generate and Download Csv\n */\n generate(jsonData: any, shouldReturnCsv = false): void | any {\n // Make sure to reset csv data on each run\n this._csv = '';\n\n this._parseData(jsonData);\n\n if (this._options.useBom) {\n this._csv += CsvConfigConsts.BOM;\n }\n\n if (this._options.showTitle) {\n this._csv += this._options.title + '\\r\\n\\n';\n }\n\n this._getHeaders();\n this._getBody();\n\n if (this._csv == '') {\n console.log('Invalid data');\n return;\n }\n\n // When the consumer asks for the data, exit the function\n // by returning the CSV data built at this point\n if (shouldReturnCsv) {\n return this._csv;\n }\n\n // Create CSV blob to download if requesting in the browser and the\n // consumer doesn't set the shouldReturnCsv param\n const FileType = this._options.useTextFile ? 'plain' : 'csv';\n const fileExtension = this._options.useTextFile ? '.txt' : '.csv';\n const blob = new Blob([this._csv], {\n type: 'text/' + FileType + ';charset=utf8;'\n });\n\n //const attachmentType = this._options.useTextFile ? 'text' : 'csv';\n // const uri = 'data:attachment/' + attachmentType + ';charset=utf-8,' + encodeURI(this._csv);\n const link = document.createElement('a');\n link.href = URL.createObjectURL(blob);\n\n link.setAttribute('visibility', 'hidden');\n link.download = this._options.filename.replace(/ /g, '_') + fileExtension;\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n\n /**\n * Create Headers\n */\n private _getHeaders(): void {\n if (!this._options.showLabels && !this._options.useKeysAsHeaders) {\n return;\n }\n const useKeysAsHeaders = this._options.useKeysAsHeaders;\n const headers: string[] = useKeysAsHeaders\n ? Object.keys(this._data[0])\n : this._options.headers;\n\n if (headers.length > 0) {\n let row = '';\n for (let keyPos = 0; keyPos < headers.length; keyPos++) {\n row += headers[keyPos] + this._options.fieldSeparator;\n }\n\n row = row.slice(0, -1);\n this._csv += row + CsvConfigConsts.EOL;\n }\n }\n /**\n * Create Body\n */\n private _getBody() {\n const keys = Object.keys(this._data[0]);\n for (var i = 0; i < this._data.length; i++) {\n let row = '';\n for (let keyPos = 0; keyPos < keys.length; keyPos++) {\n const key = keys[keyPos];\n row +=\n this._formatData(this._data[i][key]) + this._options.fieldSeparator;\n }\n\n row = row.slice(0, -1);\n this._csv += row + CsvConfigConsts.EOL;\n }\n }\n /**\n * Format Data\n * @param {any} data\n */\n private _formatData(data: any) {\n if (this._options.decimalSeparator === 'locale' && this._isFloat(data)) {\n return data.toLocaleString();\n }\n\n if (this._options.decimalSeparator !== '.' && this._isFloat(data)) {\n return data.toString().replace('.', this._options.decimalSeparator);\n }\n\n if (typeof data === 'string') {\n data = data.replace(/\"/g, '\"\"');\n if (\n this._options.quoteStrings ||\n data.indexOf(',') > -1 ||\n data.indexOf('\\n') > -1 ||\n data.indexOf('\\r') > -1\n ) {\n data = this._options.quoteStrings + data + this._options.quoteStrings;\n }\n return data;\n }\n\n if (typeof data === 'boolean') {\n return data ? 'TRUE' : 'FALSE';\n }\n return data;\n }\n /**\n * Check if is Float\n * @param {any} input\n */\n private _isFloat(input: any) {\n return +input === input && (!isFinite(input) || Boolean(input % 1));\n }\n /**\n * Parse the collection given to it\n *\n * @private\n * @param {*} jsonData\n * @returns {any[]}\n * @memberof ExportToCsv\n */\n private _parseData(jsonData: any): any[] {\n this._data = typeof jsonData != 'object' ? JSON.parse(jsonData) : jsonData;\n\n return this._data;\n }\n /**\n * Convet to Object\n * @param {any} val\n */\n toObject(val: any) {\n if (val === null || val === undefined) {\n throw new TypeError(\n 'Object.assign cannot be called with null or undefined'\n );\n }\n return Object(val);\n }\n /**\n * Assign data to new Object\n * @param {any} target\n * @param {any[]} ...source\n */\n objectAssign(target: any, ...source: any[]) {\n let from: any;\n const to = this.toObject(target);\n let symbols: any;\n let hasOwnProperty = Object.prototype.hasOwnProperty;\n let propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if ((<any>Object).getOwnPropertySymbols) {\n symbols = (<any>Object).getOwnPropertySymbols(from);\n for (let i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n }\n read(csvContent: string): CsvParsed {\n const lines = csvContent.split('\\n');\n let header: string[];\n let content: string[][];\n if (lines.length > 0) {\n const csv = lines.map((line) => {\n return this.parseLine(line.trim());\n }) as any;\n header = csv[0];\n\n // Si encuentra una linea en blanco ya no sigue leyendo las siguientes líneas\n let breakIndex!: number;\n csv.some((row: string[], index: number) => {\n const isBlankLine = row.every((column: string) => column.trim() === '');\n if (isBlankLine) {\n breakIndex = index;\n return true;\n }\n return false;\n });\n content = csv.slice(1, breakIndex);\n } else {\n header = [];\n content = [];\n }\n return {\n header,\n content\n };\n }\n parseLine(csvLine: string) {\n const values = [];\n const regex = /(?:\"([^\"]*)\"|'([^']*)'|([^,]+))(?:,|\\r?$)/g;\n let match;\n while ((match = regex.exec(csvLine)) !== null) {\n values.push(match[1] || match[2] || match[3]); // Extraer el valor correcto\n }\n return values;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DateService {\n getDate(date: string): Date {\n const dateParts: string[] = date.split('T')[0].split('-');\n return new Date(Number(dateParts[0]), Number(dateParts[1]) - 1, Number(dateParts[2]));\n }\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 private pickerClosed: boolean = false;\n\n constructor() {\n this.fileInput = document.createElement('input');\n this.fileInput.type = 'file';\n this.fileInput.addEventListener('change', (event: any) => {\n this.pickerClosed = true;\n this.loadValue(event.currentTarget.files);\n });\n }\n private loadValue(files: FileList | null) {\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(\n Object.assign(file, {\n data: reader.result,\n })\n );\n if (data.length == files.length) {\n this.callback(data.length > 0 ? data : null);\n this.fileInput.value = '';\n } else {\n this.callback(null);\n }\n };\n }\n }\n }\n public open(\n callback?: Function,\n options?: { accept?: string; multiple?: boolean }\n ) {\n this.pickerClosed = false;\n // Detectar cuando el usuario vuelve a la ventana después de abrir el picker\n const onFocus = () => {\n setTimeout(() => {\n if (!this.pickerClosed) {\n console.log(\n 'El usuario cerró el file picker sin seleccionar archivos.'\n );\n this.loadValue(null);\n }\n window.removeEventListener('focus', onFocus);\n }, 500); // Esperamos un poco para asegurarnos de que onchange haya tenido oportunidad de ejecutarse\n };\n window.addEventListener('focus', onFocus);\n\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 { Router, NavigationEnd } 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 { InjectionToken } from \"@angular/core\";\n\nexport interface UtilsOptions {\n graphqlEndpoint: string;\n restApiPath: string;\n}\n\nexport const UTILS_OPTIONS = new InjectionToken<UtilsOptions>('UTILS_OPTIONS');","import { Inject, Injectable } from '@angular/core';\nimport { UTILS_OPTIONS, UtilsOptions } from './models/utils-options';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(@Inject(UTILS_OPTIONS) private options: UtilsOptions) {}\n\n get(): UtilsOptions {\n return this.options;\n }\n}\n","import { ApplicationConfig, inject } from '@angular/core';\n\nimport { Apollo, APOLLO_OPTIONS } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { ApolloClientOptions, InMemoryCache } from '@apollo/client/core';\nimport { UtilsService } from './utils.service';\n\nexport function apolloOptionsFactory(): ApolloClientOptions<any> {\n const httpLink = inject(HttpLink);\n const options = inject(UtilsService);\n\n return {\n link: httpLink.create({ uri: options.get().graphqlEndpoint }),\n cache: new InMemoryCache(),\n };\n}\n\nexport const graphqlProvider: ApplicationConfig['providers'] = [\n Apollo,\n {\n provide: APOLLO_OPTIONS,\n useFactory: apolloOptionsFactory,\n },\n];\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StringService {\n decodeHTML(text: string): string {\n const span = document.createElement('span');\n return text.replace(/&[#A-Za-z0-9]+;/gi, (entity) => {\n span.innerHTML = entity;\n return span.innerText;\n });\n }\n /**\n * Normaliza un texto para evitar el Case y los acentos\n * @param text texto a normalizar\n * @returns texto normalizado\n */\n normalize(text: string): string {\n if (!text) return '';\n return text\n .toLowerCase()\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\");\n }\n normalizeName(text: string): string {\n text = text.trim();\n text = text.charAt(0).toUpperCase() + text.slice(1);\n return text;\n }\n calculateReadingTime(text: string) {\n // Caracteres por minuto\n const cpm = 1000;\n\n // Calcular el número de caracteres en el texto\n const numCharacters: number = text.length;\n\n // Calcular el tiempo de lectura en minutos\n const readingTimeMinutes: number = numCharacters / cpm;\n\n // Convertir el tiempo de lectura de minutos a milisegundos\n const readingTimeMilliseconds: number = readingTimeMinutes * 60 * 1000;\n\n return readingTimeMilliseconds;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Apollo, gql, MutationResult } from 'apollo-angular';\nimport { lastValueFrom, Observable } from 'rxjs';\n\nimport { StringService } from './string.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GraphqlService {\n private apollo = inject(Apollo);\n private stringService = inject(StringService);\n\n\n mutation(operation: 'create' | 'update' | 'delete', type: string, entity: any): Promise<unknown> {\n let mutation: Observable<MutationResult<unknown>>;\n const capitalizedType = this.stringService.normalizeName(type);\n switch (operation) {\n case 'create':\n entity.uuid = entity.id ? entity.id.split('/').pop() : crypto.randomUUID();\n delete entity.createdBy;\n delete entity.updatedBy;\n delete entity.id;\n mutation = this.apollo.mutate({\n mutation: gql`\n mutation Create${capitalizedType}($entity: create${capitalizedType}Input!) {\n create${capitalizedType}(input: $entity) {\n ${type} {\n id\n }\n }\n }\n `,\n variables: {\n entity\n }\n });\n break;\n case 'delete':\n mutation = this.apollo.mutate({\n mutation: gql`\n mutation Delete${capitalizedType}($id: ID!) {\n delete${capitalizedType}(input: {id: $id}) {\n clientMutationId\n }\n }\n `,\n variables: {\n id: entity.id\n }\n });\n break;\n case 'update':\n delete entity.createdBy;\n delete entity.updatedBy;\n mutation = this.apollo.mutate({\n mutation: gql`\n mutation Update${capitalizedType}($entity: update${capitalizedType}Input!) {\n update${capitalizedType}(input: $entity) {\n ${type} {\n id\n }\n }\n }\n `,\n variables: {\n entity\n }\n });\n break;\n }\n return lastValueFrom(mutation);\n }\n parseQuery(query: { [key: string]: any }) {\n if (query !== null) {\n const data: any = {};\n for (const property in query) {\n if (query[property]?.edges) {\n data[property] = this.parseEdges(query[property].edges);\n } else if (query[property]?.node) {\n data[property] = this.parseQuery(query[property].node);\n } else if (Array.isArray(query[property])) {\n // Si es un arreglo simple no lo parsea\n if (typeof query[property][0] === 'object') {\n data[property] = query[property].map((node: any) => {\n return this.parseQuery(node);\n });\n } else {\n data[property] = query[property];\n }\n } else if (typeof query[property] === 'object') {\n data[property] = this.parseQuery(query[property]);\n } else if (property !== '__typename') {\n data[property] = query[property];\n }\n }\n return data;\n } else {\n return query;\n }\n }\n parseEdges(edges: any): any[] {\n return edges.map((entity: any) => {\n return this.parseQuery(entity?.node || entity);\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ObjectService {\n filterNullProperties(obj: any): any {\n const mappedObj: any = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== null && obj[key] !== undefined && obj[key] !== 'undefined') {\n mappedObj[key] = obj[key];\n }\n });\n return mappedObj;\n }\n deepMerge(target: any, source: any) {\n source = structuredClone(source);\n target = structuredClone(target);\n for (const key of Object.keys(source)) {\n if (source[key] instanceof Object && key in target) {\n Object.assign(source[key], this.deepMerge(target[key], source[key]));\n }\n }\n return { ...target, ...source };\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { UtilsService } from './utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RestService {\n private http = inject(HttpClient);\n private options = inject(UtilsService);\n\n public delete(resourcePath: string, id: string): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}/${id}`;\n return this.http.delete(url);\n }\n public find(resourcePath: string, params?: any, options?: any): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}`;\n return this.http.get(url, { ...{ params }, ...options });\n }\n public get(resourcePath: string, id?: string, params?: any, options?: any): Observable<any> {\n let url: string;\n if (id) {\n url = `${this.getApiPath(resourcePath)}${resourcePath}/${id}`;\n } else {\n return this.find(`${this.getApiPath(resourcePath)}${resourcePath}`, params, options);\n }\n return this.http.get(url, { ...{ params }, ...options });\n }\n public patch(resourcePath: string, id: string, data: any, options?: any): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}${id ? '/' : ''}${id || ''}`;\n return this.http.patch(url, data, options);\n }\n public post(resourcePath: string, data: any, options?: any): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}`;\n return this.http.post<any>(url, data, options);\n }\n public put(resourcePath: string, id: any, data: any): Observable<any> {\n const url = `${this.getApiPath(resourcePath)}${resourcePath}${id ? '/' : ''}${id || ''}`;\n return this.http.put(url, data);\n }\n private getApiPath(resourcePath: string): string {\n return this.isAbsoluteUrl(resourcePath) ? '' : `${this.options.get().restApiPath}/`;\n }\n private isAbsoluteUrl(resourcePath: string): boolean {\n //const expression = /[-a-zA-Z0-9@:%._~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_.~#?&//=]*)?/gi;\n const expression = /^(https?:\\/\\/)/i;\n const regex = new RegExp(expression);\n return regex.test(resourcePath);\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(@Inject(PLATFORM_ID) private platformId: Object) {}\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(\n key: string,\n value: any,\n storage?: 'local' | 'session' | 'memory'\n ) {\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 }\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) && code !== 30) {\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 const coefficients: number[] = [2, 1, 2, 1, 2, 1, 2, 1, 2];\n const verifierCode = Number(verifierCodeString);\n const numberParts: string[] = number.split('');\n let value = true;\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 const verifierCode = Number(verifierCodeString);\n const numberParts: string[] = number.split('');\n let value = true;\n let coefficients: number[];\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 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 | null {\n let type: string | null = null;\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 ) {\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 ) {\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 ) {\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: 'cedula' | 'ruc_natural' | 'ruc_privada' | 'ruc_publica' | 'ruc' | 'id'): 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 * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;MAKa,YAAY,CAAA;IAChB,KAAK,CAAC,MAAa,EAAE,IAAY,EAAA;QACtC,MAAM,MAAM,GAAQ,EAAE;AACtB,QAAA,MAAM,CAAC,OAAO,CAAC,GAAG,IAAG;AACnB,YAAA,GAAG,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;gBACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClE,aAAC,CAAC;AACJ,SAAC,CAAC;AACF,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;uGARnB,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,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;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,YAAY,CAAA;AACvB,IAAA,CAAC;AACD,IAAA,CAAC;AACD,IAAA,SAAS;AAET,IAAA,WAAA,GAAA;QACE,MAAM,OAAO,GAAQ,EAAE;AACvB,QAAA,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,EAAA;AAClE,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;AACxD,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAEd,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;;AAEtD,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;;AAE7B,QAAA,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE;AACtC,YAAA,OAAO,CAAC,GAAG,GAAG,EAAE;;QAElB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,KAG1C,EAAA;YACC,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;AACH,SAAC,CAAC;;AAGJ;;;;AAIG;AACH,IAAA,IAAI,CAAC,GAAW,EAAA;QACd,IAAI,IAAI,GAAG,GAAG;QACd,IAAI,KAAK,GAAG,GAAG;QACf,IAAI,IAAI,GAAG,CAAC;;QAEZ,GAAG,IAAI,GAAG;;QAEV,MAAM,cAAc,GAAW,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACnE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,IAAI,IAAI,GAAG,cAAc,EAAE;gBACzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;;YAEjC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;;AAExC,QAAA,OAAO,IAAI;;AAGb;;;;;AAKG;AACH,IAAA,OAAO,CAAC,QAAkB,EAAA;QACxB,IAAI,GAAG,GAAG,GAAG;AACb,QAAA,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,EAAA;AAC9B,YAAA,IAAI,KAAK,GAAG,EAAE,EAAE;gBACd,GAAG,IAAI,CAAC;;AAEV,YAAA,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC3B,SAAC,CAAC;AACF,QAAA,OAAO,GAAG;;AAGZ;;;;;;;;AAQG;AACH,IAAA,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;QACrC,CAAC,IAAI,GAAG;QAER,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7C,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAEjB,QAAA,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,EAAA;AAClD,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,KAAK,EAAE;;AAET,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,gBAAA,KAAK,EAAE;;AAET,YAAA,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;AACjB,gBAAA,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK;;AAC1B,iBAAA,IAAI,KAAK,GAAG,GAAG,EAAE;gBACtB,KAAK,GAAG,CAAC;;AACJ,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;;iBACpC;gBACL,KAAK,GAAG,CAAC;;YAEX,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;AAChC,SAAC,CAAC;;AAGJ;;;;;;AAMG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;AACb,QAAA,IAAI,CAAC;AACL,QAAA,IAAI,CAAC;AACL,QAAA,IAAI,CAAC;QACL,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAEzB,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;AACxD,YAAA,IAAI,aAAa,GAAG,GAAG,CAAC;YACxB,CAAC;AACC,gBAAA,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa;qBAC7C,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;oBACvB,aAAa;oBACf,KAAK,CAAC,GAAG;;aACN;AACL,YAAA,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;;QAEjB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;AAC7B,QAAA,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAChC,QAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AACvC,QAAA,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAEhC,QAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;AAGlB;;;;;;AAMG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;;AAG7C;;;;;AAKG;AACH,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;uGAjKf,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,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;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCiBY,eAAe,CAAA;AACnB,IAAA,OAAO,GAAG,GAAG,MAAM;AACnB,IAAA,OAAO,GAAG,GAAG,QAAQ;AAErB,IAAA,OAAO,uBAAuB,GAAG,GAAG;AACpC,IAAA,OAAO,yBAAyB,GAAG,GAAG;AACtC,IAAA,OAAO,aAAa,GAAG,GAAG;AAC1B,IAAA,OAAO,kBAAkB,GAAG,KAAK;AACjC,IAAA,OAAO,aAAa,GAAG,qBAAqB;AAC5C,IAAA,OAAO,gBAAgB,GAAG,WAAW;AACrC,IAAA,OAAO,mBAAmB,GAAG,KAAK;AAClC,IAAA,OAAO,qBAAqB,GAAG,KAAK;AACpC,IAAA,OAAO,eAAe,GAAG,IAAI;AAC7B,IAAA,OAAO,cAAc,GAAa,EAAE;AACpC,IAAA,OAAO,uBAAuB,GAAG,KAAK;;AAGlC,MAAA,cAAc,GAAY;IACrC,QAAQ,EAAE,eAAe,CAAC,gBAAgB;IAC1C,cAAc,EAAE,eAAe,CAAC,uBAAuB;IACvD,YAAY,EAAE,eAAe,CAAC,aAAa;IAC3C,gBAAgB,EAAE,eAAe,CAAC,yBAAyB;IAC3D,UAAU,EAAE,eAAe,CAAC,mBAAmB;IAC/C,SAAS,EAAE,eAAe,CAAC,kBAAkB;IAC7C,KAAK,EAAE,eAAe,CAAC,aAAa;IACpC,WAAW,EAAE,eAAe,CAAC,qBAAqB;IAClD,MAAM,EAAE,eAAe,CAAC,eAAe;IACvC,OAAO,EAAE,eAAe,CAAC,cAAc;IACvC,gBAAgB,EAAE,eAAe,CAAC;;MAMvB,UAAU,CAAA;IACb,KAAK,GAAU,EAAE;AACjB,IAAA,QAAQ;IACR,IAAI,GAAG,EAAE;AAEjB,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;IAGtB,IAAI,OAAO,CAAC,OAAyB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC;;AAGhE,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,CAAC;;AAEvD;;AAEG;AACH,IAAA,QAAQ,CAAC,QAAa,EAAE,eAAe,GAAG,KAAK,EAAA;;AAE7C,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AAEd,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAEzB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,GAAG;;AAGlC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ;;QAG7C,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,QAAQ,EAAE;AAEf,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE;AACnB,YAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAC3B;;;;QAKF,IAAI,eAAe,EAAE;YACnB,OAAO,IAAI,CAAC,IAAI;;;;AAKlB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,OAAO,GAAG,KAAK;AAC5D,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAM,GAAG,MAAM;QACjE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACjC,YAAA,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG;AAC5B,SAAA,CAAC;;;QAIF,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAErC,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,aAAa;AAEzE,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;AAGjC;;AAEG;IACK,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAChE;;AAEF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB;QACvD,MAAM,OAAO,GAAa;cACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,cAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;AAEzB,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,GAAG,GAAG,EAAE;AACZ,YAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;gBACtD,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc;;YAGvD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG;;;AAG1C;;AAEG;IACK,QAAQ,GAAA;AACd,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,GAAG,GAAG,EAAE;AACZ,YAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;AACnD,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxB,GAAG;AACD,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc;;YAGvE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG;;;AAG1C;;;AAGG;AACK,IAAA,WAAW,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACtE,YAAA,OAAO,IAAI,CAAC,cAAc,EAAE;;AAG9B,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACjE,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;;AAGrE,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/B,YAAA,IACE,IAAI,CAAC,QAAQ,CAAC,YAAY;AAC1B,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvB;AACA,gBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY;;AAEvE,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;YAC7B,OAAO,IAAI,GAAG,MAAM,GAAG,OAAO;;AAEhC,QAAA,OAAO,IAAI;;AAEb;;;AAGG;AACK,IAAA,QAAQ,CAAC,KAAU,EAAA;AACzB,QAAA,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;;AAErE;;;;;;;AAOG;AACK,IAAA,UAAU,CAAC,QAAa,EAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ;QAE1E,OAAO,IAAI,CAAC,KAAK;;AAEnB;;;AAGG;AACH,IAAA,QAAQ,CAAC,GAAQ,EAAA;QACf,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,SAAS,CACjB,uDAAuD,CACxD;;AAEH,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC;;AAEpB;;;;AAIG;AACH,IAAA,YAAY,CAAC,MAAW,EAAE,GAAG,MAAa,EAAA;AACxC,QAAA,IAAI,IAAS;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChC,QAAA,IAAI,OAAY;AAChB,QAAA,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;AACpD,QAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB;AAE5D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAE3B,YAAA,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;gBACpB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;oBAClC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;;;AAIvB,YAAA,IAAU,MAAO,CAAC,qBAAqB,EAAE;AACvC,gBAAA,OAAO,GAAS,MAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC;AACnD,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,oBAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3C,wBAAA,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;;;;AAKzC,QAAA,OAAO,EAAE;;AAEX,IAAA,IAAI,CAAC,UAAkB,EAAA;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;AACpC,QAAA,IAAI,MAAgB;AACpB,QAAA,IAAI,OAAmB;AACvB,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;gBAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACpC,aAAC,CAAQ;AACT,YAAA,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;;AAGf,YAAA,IAAI,UAAmB;YACvB,GAAG,CAAC,IAAI,CAAC,CAAC,GAAa,EAAE,KAAa,KAAI;AACxC,gBAAA,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,MAAc,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;gBACvE,IAAI,WAAW,EAAE;oBACf,UAAU,GAAG,KAAK;AAClB,oBAAA,OAAO,IAAI;;AAEb,gBAAA,OAAO,KAAK;AACd,aAAC,CAAC;YACF,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;;aAC7B;YACL,MAAM,GAAG,EAAE;YACX,OAAO,GAAG,EAAE;;QAEd,OAAO;YACL,MAAM;YACN;SACD;;AAEH,IAAA,SAAS,CAAC,OAAe,EAAA;QACvB,MAAM,MAAM,GAAG,EAAE;QACjB,MAAM,KAAK,GAAG,4CAA4C;AAC1D,QAAA,IAAI,KAAK;AACT,QAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE;YAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEhD,QAAA,OAAO,MAAM;;uGA/OJ,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCjDY,WAAW,CAAA;AACtB,IAAA,OAAO,CAAC,IAAY,EAAA;AAClB,QAAA,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACzD,QAAA,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;uGAH5E,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,YAAY,CAAA;AACf,IAAA,QAAQ;AACR,IAAA,SAAS;IACT,YAAY,GAAY,KAAK;AAErC,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAChD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM;QAC5B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAU,KAAI;AACvD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,SAAC,CAAC;;AAEI,IAAA,SAAS,CAAC,KAAsB,EAAA;QACtC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,IAAI,GAAU,EAAE;AACpB,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;AAC/B,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,gBAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1B,gBAAA,MAAM,CAAC,MAAM,GAAG,MAAK;oBACnB,IAAI,CAAC,IAAI,CACP,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;wBAClB,IAAI,EAAE,MAAM,CAAC,MAAM;AACpB,qBAAA,CAAC,CACH;oBACD,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;AAC5C,wBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE;;yBACpB;AACL,wBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAEvB,iBAAC;;;;IAIA,IAAI,CACT,QAAmB,EACnB,OAAiD,EAAA;AAEjD,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;;QAEzB,MAAM,OAAO,GAAG,MAAK;YACnB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,oBAAA,OAAO,CAAC,GAAG,CACT,2DAA2D,CAC5D;AACD,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;AAEtB,gBAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC9C,aAAC,EAAE,GAAG,CAAC,CAAC;AACV,SAAC;AACD,QAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;AAEzC,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE;QAC7D,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK;AACpD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;QACtB,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;;uGA3DjB,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,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;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCKY,uBAAuB,CAAA;AAIH,IAAA,UAAA;AACtB,IAAA,MAAA;AAJT,IAAA,UAAU;IAEV,WAC+B,CAAA,UAAkB,EACxC,MAAc,EAAA;QADQ,IAAU,CAAA,UAAA,GAAV,UAAU;QAChC,IAAM,CAAA,MAAA,GAAN,MAAM;;AAGR,IAAA,kBAAkB,CAAC,UAAkB,EAAA;AAC1C,QAAA,IAAI;YACF,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,EAAE;AACpD,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU;gBAC5B,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACxD,EAAE,CAAC,SAAS,GAAG;;;;;qDAK8B,UAAU,CAAA;SACtD;AACD,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7B,MAAM,EAAE,GAAgB,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;gBAC1D,MAAM,EAAE,GAAsB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC9D,gBAAA,EAAE,CAAC,KAAK,GAAG,GAAG;AACd,gBAAA,EAAE,CAAC,MAAM,GAAG,GAAG;AACf,gBAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AACzB,gBAAA,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AAC9B,gBAAA,EAAE,CAAC,GAAG,GAAG,CAAyC,sCAAA,EAAA,UAAU,EAAE;AAC9D,gBAAA,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACjB,gBAAA,QAAQ,CAAC,IAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,eAAe,EAAE;;;QAExB,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC;AACnD,YAAA,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;;;AAGd,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;AACzC,YAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAG3B,eAAe,GAAA;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;AACnC,YAAA,IAAI;gBACF,IAAI,KAAK,YAAY,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE;oBACrD,IAAI,CAAC,WAAW,CAAC;AACf,wBAAA,KAAK,EAAE,sBAAsB;wBAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK;wBACzB,QAAQ,EAAE,KAAK,CAAC;AACjB,qBAAA,CAAC;;;YAEJ,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;;AAEpB,SAAC,CAAC;;AAxDO,IAAA,OAAA,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;AAJV,IAAA,OAAA,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;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAKI,MAAM;2BAAC,WAAW;;;ACNhB,MAAM,aAAa,GAAG,IAAI,cAAc,CAAe,eAAe,CAAC;;MCDjE,YAAY,CAAA;AAEoB,IAAA,OAAA;AAA3C,IAAA,WAAA,CAA2C,OAAqB,EAAA;QAArB,IAAO,CAAA,OAAA,GAAP,OAAO;;IAElD,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,OAAO;;AALV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAEH,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAFtB,IAAA,OAAA,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;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAGc,MAAM;2BAAC,aAAa;;;SCDnB,oBAAoB,GAAA;AAClC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;IAEpC,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC;QAC7D,KAAK,EAAE,IAAI,aAAa,EAAE;KAC3B;AACH;AAEa,MAAA,eAAe,GAAmC;IAC7D,MAAM;AACN,IAAA;AACE,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,UAAU,EAAE,oBAAoB;AACjC,KAAA;;;MCjBU,aAAa,CAAA;AACxB,IAAA,UAAU,CAAC,IAAY,EAAA;QACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,KAAI;AAClD,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM;YACvB,OAAO,IAAI,CAAC,SAAS;AACvB,SAAC,CAAC;;AAEJ;;;;AAIG;AACH,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;AACpB,QAAA,OAAO;AACJ,aAAA,WAAW;aACX,SAAS,CAAC,KAAK;AACf,aAAA,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;;AAEpC,IAAA,aAAa,CAAC,IAAY,EAAA;AACxB,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAClB,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,QAAA,OAAO,IAAI;;AAEb,IAAA,oBAAoB,CAAC,IAAY,EAAA;;QAE/B,MAAM,GAAG,GAAG,IAAI;;AAGhB,QAAA,MAAM,aAAa,GAAW,IAAI,CAAC,MAAM;;AAGzC,QAAA,MAAM,kBAAkB,GAAW,aAAa,GAAG,GAAG;;AAGtD,QAAA,MAAM,uBAAuB,GAAW,kBAAkB,GAAG,EAAE,GAAG,IAAI;AAEtE,QAAA,OAAO,uBAAuB;;uGAtCrB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCKY,cAAc,CAAA;AACjB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAG7C,IAAA,QAAQ,CAAC,SAAyC,EAAE,IAAY,EAAE,MAAW,EAAA;AAC3E,QAAA,IAAI,QAA6C;QACjD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC;QAC9D,QAAQ,SAAS;AACf,YAAA,KAAK,QAAQ;gBACX,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE;gBAC1E,OAAO,MAAM,CAAC,SAAS;gBACvB,OAAO,MAAM,CAAC,SAAS;gBACvB,OAAO,MAAM,CAAC,EAAE;AAChB,gBAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC5B,QAAQ,EAAE,GAAG,CAAA;AACI,yBAAA,EAAA,eAAe,mBAAmB,eAAe,CAAA;oBACxD,eAAe,CAAA;gBACnB,IAAI,CAAA;;;;;AAKX,QAAA,CAAA;AACC,oBAAA,SAAS,EAAE;wBACT;AACD;AACF,iBAAA,CAAC;gBACF;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC5B,QAAQ,EAAE,GAAG,CAAA;2BACI,eAAe,CAAA;oBACtB,eAAe,CAAA;;;;AAI1B,QAAA,CAAA;AACC,oBAAA,SAAS,EAAE;wBACT,EAAE,EAAE,MAAM,CAAC;AACZ;AACF,iBAAA,CAAC;gBACF;AACF,YAAA,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,SAAS;gBACvB,OAAO,MAAM,CAAC,SAAS;AACvB,gBAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC5B,QAAQ,EAAE,GAAG,CAAA;AACI,yBAAA,EAAA,eAAe,mBAAmB,eAAe,CAAA;oBACxD,eAAe,CAAA;gBACnB,IAAI,CAAA;;;;;AAKX,QAAA,CAAA;AACC,oBAAA,SAAS,EAAE;wBACT;AACD;AACF,iBAAA,CAAC;gBACF;;AAEJ,QAAA,OAAO,aAAa,CAAC,QAAQ,CAAC;;AAEhC,IAAA,UAAU,CAAC,KAA6B,EAAA;AACtC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,MAAM,IAAI,GAAQ,EAAE;AACpB,YAAA,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;AAC5B,gBAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE;AAC1B,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;;AAClD,qBAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE;AAChC,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;;qBACjD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;;oBAEzC,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC1C,wBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACjD,4BAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC9B,yBAAC,CAAC;;yBACG;wBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;;;qBAE7B,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;AAC9C,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;;AAC5C,qBAAA,IAAI,QAAQ,KAAK,YAAY,EAAE;oBACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;;;AAGpC,YAAA,OAAO,IAAI;;aACN;AACL,YAAA,OAAO,KAAK;;;AAGhB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAW,KAAI;YAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC;AAChD,SAAC,CAAC;;uGA/FO,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,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;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCHY,aAAa,CAAA;AACxB,IAAA,oBAAoB,CAAC,GAAQ,EAAA;QAC3B,MAAM,SAAS,GAAQ,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YAC/B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE;gBAC3E,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;;AAE7B,SAAC,CAAC;AACF,QAAA,OAAO,SAAS;;IAElB,SAAS,CAAC,MAAW,EAAE,MAAW,EAAA;AAChC,QAAA,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;AAChC,QAAA,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE;gBAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;;;AAGxE,QAAA,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;;uGAlBtB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCKY,WAAW,CAAA;AACd,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,IAAA,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;IAE/B,MAAM,CAAC,YAAoB,EAAE,EAAU,EAAA;AAC5C,QAAA,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAG,EAAA,YAAY,CAAI,CAAA,EAAA,EAAE,EAAE;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAEvB,IAAA,IAAI,CAAC,YAAoB,EAAE,MAAY,EAAE,OAAa,EAAA;AAC3D,QAAA,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA,EAAG,YAAY,CAAA,CAAE;AAC7D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;;AAEnD,IAAA,GAAG,CAAC,YAAoB,EAAE,EAAW,EAAE,MAAY,EAAE,OAAa,EAAA;AACvE,QAAA,IAAI,GAAW;QACf,IAAI,EAAE,EAAE;AACN,YAAA,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAG,EAAA,YAAY,CAAI,CAAA,EAAA,EAAE,EAAE;;aACxD;AACL,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,MAAM,EAAE,OAAO,CAAC;;AAEtF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;;AAEnD,IAAA,KAAK,CAAC,YAAoB,EAAE,EAAU,EAAE,IAAS,EAAE,OAAa,EAAA;QACrE,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAG,EAAA,YAAY,CAAG,EAAA,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA,EAAG,EAAE,IAAI,EAAE,CAAA,CAAE;AACxF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;;AAErC,IAAA,IAAI,CAAC,YAAoB,EAAE,IAAS,EAAE,OAAa,EAAA;AACxD,QAAA,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA,EAAG,YAAY,CAAA,CAAE;AAC7D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;;AAEzC,IAAA,GAAG,CAAC,YAAoB,EAAE,EAAO,EAAE,IAAS,EAAA;QACjD,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAG,EAAA,YAAY,CAAG,EAAA,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA,EAAG,EAAE,IAAI,EAAE,CAAA,CAAE;QACxF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;;AAEzB,IAAA,UAAU,CAAC,YAAoB,EAAA;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAA,CAAA,CAAG;;AAE7E,IAAA,aAAa,CAAC,YAAoB,EAAA;;QAExC,MAAM,UAAU,GAAG,iBAAiB;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;;uGAxCtB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCFY,cAAc,CAAA;AAIgB,IAAA,UAAA;;AAFzC,IAAA,aAAa;AAEb,IAAA,WAAA,CAAyC,UAAkB,EAAA;QAAlB,IAAU,CAAA,UAAA,GAAV,UAAU;;IAE3C,QAAQ,CAAC,GAAW,EAAE,OAAwC,EAAA;AACpE,QAAA,IAAI,KAAU;QACd,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;YAC1C,QAAQ,OAAO;AACb,gBAAA,KAAK,OAAO;AACV,oBAAA,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC;oBACzB;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;oBAC/B;AACF,gBAAA;AACE,oBAAA,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC;oBAC3B;;;AAEC,aAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACrC,YAAA,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;;AAEtB,QAAA,OAAO,KAAK;;IAEP,MAAM,CAAC,GAAW,EAAE,OAAwC,EAAA;AACjE,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;gBAC1C,QAAQ,OAAO;AACb,oBAAA,KAAK,OAAO;AACV,wBAAA,OAAO,YAAY,CAAC,GAAG,CAAC;wBACxB;AACF,oBAAA,KAAK,QAAQ;AACX,wBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;wBAC9B;AACF,oBAAA;AACE,wBAAA,OAAO,cAAc,CAAC,GAAG,CAAC;wBAC1B;;;AAEC,iBAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACrC,gBAAA,OAAO,OAAO,CAAC,GAAG,CAAC;;;;IAIlB,GAAG,CAAC,GAAW,EAAE,OAAwC,EAAA;AAC9D,QAAA,IAAI,WAAgB;AACpB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI;AACF,gBAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;YACrD,OAAO,GAAG,EAAE;gBACZ,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;;;AAG7C,QAAA,OAAO,WAAW;;AAEb,IAAA,GAAG,CACR,GAAW,EACX,KAAU,EACV,OAAwC,EAAA;AAExC,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACzC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;gBAC1C,QAAQ,OAAO;AACb,oBAAA,KAAK,OAAO;AACV,wBAAA,YAAY,CAAC,GAAG,CAAC,GAAG,WAAW;wBAC/B;AACF,oBAAA,KAAK,QAAQ;AACX,wBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW;wBACrC;AACF,oBAAA;AACE,wBAAA,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW;wBACjC;;;;;AAxEC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAIL,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAJpB,IAAA,OAAA,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;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;0BAKc,MAAM;2BAAC,WAAW;;;ACVjC,SAAS,eAAe,CAAC,MAAc,EAAE,MAAc,EAAA;IACnD,IAAI,KAAK,GAAG,IAAI;IAChB,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtB,KAAK,GAAG,KAAK;;SACV,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE;QACxC,KAAK,GAAG,KAAK;;AAEjB,IAAA,OAAO,KAAK;AAChB;AACA,SAAS,iBAAiB,CAAC,MAAc,EAAA;IACrC,IAAI,KAAK,GAAG,IAAI;AAChB,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,IAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE;QACxC,KAAK,GAAG,KAAK;;AAEjB,IAAA,OAAO,KAAK;AAChB;AACA,SAAS,aAAa,CAAC,MAAc,EAAE,IAAY,EAAA;IAC/C,IAAI,KAAK,GAAG,IAAI;AAChB,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,QAAQ,IAAI;AACR,QAAA,KAAK,QAAQ;YACT,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;gBACtB,KAAK,GAAG,KAAK;;YAEjB;AACJ,QAAA,KAAK,aAAa;YACd,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;gBACtB,KAAK,GAAG,KAAK;;YAEjB;AACJ,QAAA,KAAK,aAAa;AACd,YAAA,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,KAAK,GAAG,KAAK;;YAEjB;AACJ,QAAA,KAAK,aAAa;AACd,YAAA,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,KAAK,GAAG,KAAK;;YAEjB;AACJ,QAAA;YACI,KAAK,GAAG,KAAK;YACb;;AAER,IAAA,OAAO,KAAK;AAChB;AACA,SAAS,iBAAiB,CAAC,MAAc,EAAE,kBAA0B,EAAA;IACjE,MAAM,YAAY,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAC/C,MAAM,WAAW,GAAa,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9C,IAAI,KAAK,GAAG,IAAI;IAChB,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,IAAI,MAAc;IAClB,WAAW,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,KAAa,KAAI;QAChD,IAAI,aAAa,GAAW,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;AAC9D,QAAA,IAAI,aAAa,IAAI,EAAE,EAAE;YACrB,IAAI,gBAAgB,GAAa,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,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;AAC/D,aAAC,CAAC;AACF,YAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC;;QAE/B,KAAK,IAAI,aAAa;AAC1B,KAAC,CAAC;AACF,IAAA,MAAM,OAAO,GAAW,KAAK,GAAG,EAAE;AAClC,IAAA,IAAI,OAAO,KAAK,CAAC,EAAE;QACf,MAAM,GAAG,CAAC;;SACP;AACH,QAAA,MAAM,GAAG,EAAE,GAAG,OAAO;;AAEzB,IAAA,IAAI,MAAM,KAAK,YAAY,EAAE;QACzB,KAAK,GAAG,KAAK;;AAEjB,IAAA,OAAO,KAAK;AAChB;AACA,SAAS,iBAAiB,CAAC,MAAc,EAAE,kBAA0B,EAAE,IAAY,EAAA;AAC/E,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAC/C,MAAM,WAAW,GAAa,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9C,IAAI,KAAK,GAAG,IAAI;AAChB,IAAA,IAAI,YAAsB;IAC1B,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,IAAI,MAAc;IAClB,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;YAC1C;AACJ,QAAA,KAAK,aAAa;AACd,YAAA,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACvC;AACJ,QAAA;AACI,YAAA,OAAO,KAAK;YACZ;;IAER,WAAW,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,KAAa,KAAI;QAChD,IAAI,aAAa,GAAW,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;QAC9D,KAAK,IAAI,aAAa;AAC1B,KAAC,CAAC;AACF,IAAA,MAAM,OAAO,GAAW,KAAK,GAAG,EAAE;AAClC,IAAA,IAAI,OAAO,KAAK,CAAC,EAAE;QACf,MAAM,GAAG,CAAC;;SACP;AACH,QAAA,MAAM,GAAG,EAAE,GAAG,OAAO;;AAEzB,IAAA,IAAI,MAAM,KAAK,YAAY,EAAE;QACzB,KAAK,GAAG,KAAK;;AAEjB,IAAA,OAAO,KAAK;AAChB;AACA,SAAS,kBAAkB,CAAC,MAAc,EAAA;IACtC,IAAI,KAAK,GAAG,IAAI;AAChB,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,IAAA,IAAI,IAAI,GAAG,CAAC,EAAE;QACV,KAAK,GAAG,KAAK;;AAEjB,IAAA,OAAO,KAAK;AAChB;AACM,SAAU,qBAAqB,CAAC,MAAc,EAAA;IAChD,IAAI,IAAI,GAAkB,IAAI;AAC9B,IAAA,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3B,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;QAEtC,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;;AAChB,SAAA,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;QAEtC,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,CAAC,EAC7D;QACM,IAAI,GAAG,aAAa;;AACrB,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;;MAE1C;QACM,IAAI,GAAG,aAAa;;AACrB,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;;MAEzC;QACM,IAAI,GAAG,aAAa;;AAE5B,IAAA,OAAO,IAAI;AACf;;AChJM,SAAU,uBAAuB,CAAC,IAA6E,EAAA;IACnH,OAAO,CAAC,OAAwB,KAA6B;QAC3D,MAAM,MAAM,GAAW,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAClC,YAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC;YAChD,QAAQ,IAAI;AACV,gBAAA,KAAK,QAAQ;AACb,gBAAA,KAAK,aAAa;AAClB,gBAAA,KAAK,aAAa;AAClB,gBAAA,KAAK,aAAa;AAChB,oBAAA,OAAO,CAAC,UAAU,IAAI,UAAU,KAAK,IAAI,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,IAAI;oBAClF;AACF,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;oBACvI;AACF,gBAAA,KAAK,IAAI;AACP,oBAAA,OAAO,CAAC,UAAU,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,IAAI;oBAC3D;AACF,gBAAA;AACE,oBAAA,OAAO,IAAI;oBACX;;;aAEC;AACL,YAAA,OAAO,IAAI;;AAEf,KAAC;AACH;;AC7BA;;AAEG;;;;"}
|
package/lib/files.service.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getIdentificationType(number: string): string | null;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@factor_ec/utils",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.2",
|
|
4
4
|
"license": "CC-BY-NC-ND-4.0",
|
|
5
5
|
"author": "Factor",
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"@angular/common": "^19.0.0",
|
|
8
8
|
"@angular/core": "^19.0.0",
|
|
9
|
-
"@apollo/client": "^3.
|
|
10
|
-
"apollo-angular": "^
|
|
9
|
+
"@apollo/client": "^3.12.8",
|
|
10
|
+
"apollo-angular": "^8.0.0"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"tslib": "^2.3.0"
|
package/public-api.d.ts
CHANGED
|
@@ -19,3 +19,5 @@ export * from './lib/object.service';
|
|
|
19
19
|
export * from './lib/rest.service';
|
|
20
20
|
export * from './lib/storage.service';
|
|
21
21
|
export * from './lib/string.service';
|
|
22
|
+
export * from './lib/validators/ec/identification-type';
|
|
23
|
+
export * from './lib/validators/ec/identification-validator';
|