@factor_ec/utils 5.0.1 → 5.0.3

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.
@@ -1,13 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, PLATFORM_ID, Inject, InjectionToken, inject } from '@angular/core';
2
+ import { Injectable, PLATFORM_ID, Inject, inject } from '@angular/core';
3
3
  import { isPlatformBrowser } from '@angular/common';
4
4
  import * as i1 from '@angular/router';
5
5
  import { NavigationEnd } from '@angular/router';
6
- import { Apollo, APOLLO_OPTIONS, gql } from 'apollo-angular';
7
- import { HttpLink } from 'apollo-angular/http';
8
- import { InMemoryCache } from '@apollo/client/core';
6
+ import { Apollo, gql } from 'apollo-angular';
9
7
  import { lastValueFrom } from 'rxjs';
10
- import { HttpClient } from '@angular/common/http';
11
8
 
12
9
  class ArrayService {
13
10
  merge(arrays, prop) {
@@ -459,10 +456,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
459
456
  class FilesService {
460
457
  callback;
461
458
  fileInput;
459
+ pickerClosed = false;
462
460
  constructor() {
463
461
  this.fileInput = document.createElement('input');
464
462
  this.fileInput.type = 'file';
465
463
  this.fileInput.addEventListener('change', (event) => {
464
+ this.pickerClosed = true;
466
465
  this.loadValue(event.currentTarget.files);
467
466
  });
468
467
  }
@@ -475,17 +474,32 @@ class FilesService {
475
474
  reader.readAsDataURL(file);
476
475
  reader.onload = () => {
477
476
  data.push(Object.assign(file, {
478
- data: reader.result
477
+ data: reader.result,
479
478
  }));
480
479
  if (data.length == files.length) {
481
480
  this.callback(data.length > 0 ? data : null);
482
481
  this.fileInput.value = '';
483
482
  }
483
+ else {
484
+ this.callback(null);
485
+ }
484
486
  };
485
487
  }
486
488
  }
487
489
  }
488
490
  open(callback, options) {
491
+ this.pickerClosed = false;
492
+ // Detectar cuando el usuario vuelve a la ventana después de abrir el picker
493
+ const onFocus = () => {
494
+ setTimeout(() => {
495
+ if (!this.pickerClosed) {
496
+ console.log('El usuario cerró el file picker sin seleccionar archivos.');
497
+ this.loadValue(null);
498
+ }
499
+ window.removeEventListener('focus', onFocus);
500
+ }, 500); // Esperamos un poco para asegurarnos de que onchange haya tenido oportunidad de ejecutarse
501
+ };
502
+ window.addEventListener('focus', onFocus);
489
503
  this.fileInput.accept = options?.accept ? options.accept : '';
490
504
  this.fileInput.multiple = options?.multiple || false;
491
505
  this.fileInput.click();
@@ -499,7 +513,7 @@ class FilesService {
499
513
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: FilesService, decorators: [{
500
514
  type: Injectable,
501
515
  args: [{
502
- providedIn: 'root'
516
+ providedIn: 'root',
503
517
  }]
504
518
  }], ctorParameters: () => [] });
505
519
 
@@ -576,45 +590,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
576
590
  args: [PLATFORM_ID]
577
591
  }] }, { type: i1.Router }] });
578
592
 
579
- const UTILS_OPTIONS = new InjectionToken('UTILS_OPTIONS');
580
-
581
- class UtilsService {
582
- options;
583
- constructor(options) {
584
- this.options = options;
585
- }
586
- get() {
587
- return this.options;
588
- }
589
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UtilsService, deps: [{ token: UTILS_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable });
590
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UtilsService, providedIn: 'root' });
591
- }
592
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: UtilsService, decorators: [{
593
- type: Injectable,
594
- args: [{
595
- providedIn: 'root'
596
- }]
597
- }], ctorParameters: () => [{ type: undefined, decorators: [{
598
- type: Inject,
599
- args: [UTILS_OPTIONS]
600
- }] }] });
601
-
602
- function apolloOptionsFactory() {
603
- const httpLink = inject(HttpLink);
604
- const options = inject(UtilsService);
605
- return {
606
- link: httpLink.create({ uri: options.get().graphqlEndpoint }),
607
- cache: new InMemoryCache(),
608
- };
609
- }
610
- const graphqlProvider = [
611
- Apollo,
612
- {
613
- provide: APOLLO_OPTIONS,
614
- useFactory: apolloOptionsFactory,
615
- },
616
- ];
617
-
618
593
  class StringService {
619
594
  decodeHTML(text) {
620
595
  const span = document.createElement('span');
@@ -803,58 +778,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
803
778
  }]
804
779
  }] });
805
780
 
806
- class RestService {
807
- http = inject(HttpClient);
808
- options = inject(UtilsService);
809
- delete(resourcePath, id) {
810
- const url = `${this.getApiPath(resourcePath)}${resourcePath}/${id}`;
811
- return this.http.delete(url);
812
- }
813
- find(resourcePath, params, options) {
814
- const url = `${this.getApiPath(resourcePath)}${resourcePath}`;
815
- return this.http.get(url, { ...{ params }, ...options });
816
- }
817
- get(resourcePath, id, params, options) {
818
- let url;
819
- if (id) {
820
- url = `${this.getApiPath(resourcePath)}${resourcePath}/${id}`;
821
- }
822
- else {
823
- return this.find(`${this.getApiPath(resourcePath)}${resourcePath}`, params, options);
824
- }
825
- return this.http.get(url, { ...{ params }, ...options });
826
- }
827
- patch(resourcePath, id, data, options) {
828
- const url = `${this.getApiPath(resourcePath)}${resourcePath}${id ? '/' : ''}${id || ''}`;
829
- return this.http.patch(url, data, options);
830
- }
831
- post(resourcePath, data, options) {
832
- const url = `${this.getApiPath(resourcePath)}${resourcePath}`;
833
- return this.http.post(url, data, options);
834
- }
835
- put(resourcePath, id, data) {
836
- const url = `${this.getApiPath(resourcePath)}${resourcePath}${id ? '/' : ''}${id || ''}`;
837
- return this.http.put(url, data);
838
- }
839
- getApiPath(resourcePath) {
840
- return this.isAbsoluteUrl(resourcePath) ? '' : `${this.options.get().restApiPath}/`;
841
- }
842
- isAbsoluteUrl(resourcePath) {
843
- //const expression = /[-a-zA-Z0-9@:%._~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_.~#?&//=]*)?/gi;
844
- const expression = /^(https?:\/\/)/i;
845
- const regex = new RegExp(expression);
846
- return regex.test(resourcePath);
847
- }
848
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
849
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RestService, providedIn: 'root' });
850
- }
851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RestService, decorators: [{
852
- type: Injectable,
853
- args: [{
854
- providedIn: 'root'
855
- }]
856
- }] });
857
-
858
781
  class StorageService {
859
782
  platformId;
860
783
  //TODO: Replace with Map object it is more efficient
@@ -1132,5 +1055,5 @@ function identificationValidator(type) {
1132
1055
  * Generated bundle index. Do not edit.
1133
1056
  */
1134
1057
 
1135
- export { ArrayService, ColorService, ConfigDefaults, CsvConfigConsts, CsvService, DateService, FilesService, GoogleTagManagerService, GraphqlService, ObjectService, RestService, StorageService, StringService, apolloOptionsFactory, getIdentificationType, graphqlProvider, identificationValidator };
1058
+ export { ArrayService, ColorService, ConfigDefaults, CsvConfigConsts, CsvService, DateService, FilesService, GoogleTagManagerService, GraphqlService, ObjectService, StorageService, StringService, getIdentificationType, identificationValidator };
1136
1059
  //# 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/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\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","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":"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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/string.service.ts","../../../projects/utils/src/lib/graphql.service.ts","../../../projects/utils/src/lib/object.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 { 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 { 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;;;MCRV,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;;;MCEY,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;;;;"}
@@ -2,6 +2,7 @@ import * as i0 from "@angular/core";
2
2
  export declare class FilesService {
3
3
  private callback;
4
4
  private fileInput;
5
+ private pickerClosed;
5
6
  constructor();
6
7
  private loadValue;
7
8
  open(callback?: Function, options?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@factor_ec/utils",
3
- "version": "5.0.1",
3
+ "version": "5.0.3",
4
4
  "license": "CC-BY-NC-ND-4.0",
5
5
  "author": "Factor",
6
6
  "peerDependencies": {
package/public-api.d.ts CHANGED
@@ -4,8 +4,10 @@ export * from './lib/csv.service';
4
4
  export * from './lib/date.service';
5
5
  export * from './lib/files.service';
6
6
  export * from './lib/google-tag-manager.service';
7
- export * from './lib/graphql.provider';
8
7
  export * from './lib/graphql.service';
8
+ export * from './lib/object.service';
9
+ export * from './lib/storage.service';
10
+ export * from './lib/string.service';
9
11
  export * from './lib/models/auth-token-payload';
10
12
  export * from './lib/models/auth-token';
11
13
  export * from './lib/models/currency';
@@ -15,9 +17,5 @@ export * from './lib/models/login';
15
17
  export * from './lib/models/operation';
16
18
  export * from './lib/models/option';
17
19
  export * from './lib/models/user';
18
- export * from './lib/object.service';
19
- export * from './lib/rest.service';
20
- export * from './lib/storage.service';
21
- export * from './lib/string.service';
22
20
  export * from './lib/validators/ec/identification-type';
23
21
  export * from './lib/validators/ec/identification-validator';
@@ -1,4 +0,0 @@
1
- import { ApplicationConfig } from '@angular/core';
2
- import { ApolloClientOptions } from '@apollo/client/core';
3
- export declare function apolloOptionsFactory(): ApolloClientOptions<any>;
4
- export declare const graphqlProvider: ApplicationConfig['providers'];
@@ -1,6 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- export interface UtilsOptions {
3
- graphqlEndpoint: string;
4
- restApiPath: string;
5
- }
6
- export declare const UTILS_OPTIONS: InjectionToken<UtilsOptions>;
@@ -1,16 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import * as i0 from "@angular/core";
3
- export declare class RestService {
4
- private http;
5
- private options;
6
- delete(resourcePath: string, id: string): Observable<any>;
7
- find(resourcePath: string, params?: any, options?: any): Observable<any>;
8
- get(resourcePath: string, id?: string, params?: any, options?: any): Observable<any>;
9
- patch(resourcePath: string, id: string, data: any, options?: any): Observable<any>;
10
- post(resourcePath: string, data: any, options?: any): Observable<any>;
11
- put(resourcePath: string, id: any, data: any): Observable<any>;
12
- private getApiPath;
13
- private isAbsoluteUrl;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<RestService, never>;
15
- static ɵprov: i0.ɵɵInjectableDeclaration<RestService>;
16
- }
@@ -1,9 +0,0 @@
1
- import { UtilsOptions } from './models/utils-options';
2
- import * as i0 from "@angular/core";
3
- export declare class UtilsService {
4
- private options;
5
- constructor(options: UtilsOptions);
6
- get(): UtilsOptions;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<UtilsService, never>;
8
- static ɵprov: i0.ɵɵInjectableDeclaration<UtilsService>;
9
- }