@factor_ec/utils 5.0.3 → 5.0.5

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.
@@ -517,6 +517,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
517
517
  }]
518
518
  }], ctorParameters: () => [] });
519
519
 
520
+ class FilePickerService {
521
+ pickerClosed = false;
522
+ async open(options) {
523
+ return new Promise((resolve, reject) => {
524
+ const fileInput = document.createElement('input');
525
+ fileInput.type = 'file';
526
+ fileInput.addEventListener('change', (event) => {
527
+ this.pickerClosed = true;
528
+ const files = event.currentTarget.files;
529
+ if (files && files.length > 0) {
530
+ let data = [];
531
+ for (let i = 0; i < files.length; i++) {
532
+ const file = files.item(i);
533
+ const reader = new FileReader();
534
+ reader.readAsDataURL(file);
535
+ reader.onload = () => {
536
+ data.push(Object.assign(file, {
537
+ data: reader.result
538
+ }));
539
+ if (data.length == files.length) {
540
+ fileInput.value = '';
541
+ resolve(data.length > 0 ? data : null);
542
+ }
543
+ else {
544
+ resolve(null);
545
+ }
546
+ };
547
+ }
548
+ }
549
+ });
550
+ this.pickerClosed = false;
551
+ // Detectar cuando el usuario vuelve a la ventana después de abrir el picker
552
+ const onFocus = () => {
553
+ setTimeout(() => {
554
+ if (!this.pickerClosed) {
555
+ reject(null);
556
+ }
557
+ window.removeEventListener('focus', onFocus);
558
+ }, 500); // Esperamos un poco para asegurarnos de que onchange haya tenido oportunidad de ejecutarse
559
+ };
560
+ window.addEventListener('focus', onFocus);
561
+ fileInput.accept = options?.accept ? options.accept : '';
562
+ fileInput.multiple = options?.multiple || false;
563
+ fileInput.click();
564
+ });
565
+ }
566
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: FilePickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
567
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: FilePickerService, providedIn: 'root' });
568
+ }
569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: FilePickerService, decorators: [{
570
+ type: Injectable,
571
+ args: [{
572
+ providedIn: 'root'
573
+ }]
574
+ }] });
575
+
520
576
  class GoogleTagManagerService {
521
577
  platformId;
522
578
  router;
@@ -525,7 +581,7 @@ class GoogleTagManagerService {
525
581
  this.platformId = platformId;
526
582
  this.router = router;
527
583
  }
528
- appendTrackingCode(trackingId) {
584
+ appendTrackingCode(trackingId, options) {
529
585
  try {
530
586
  if (isPlatformBrowser(this.platformId) && trackingId) {
531
587
  this.trackingId = trackingId;
@@ -533,8 +589,10 @@ class GoogleTagManagerService {
533
589
  s1.innerHTML = `
534
590
  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
535
591
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
536
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
537
- '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
592
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'',p='${options?.environment?.preview
593
+ ? '&gtm_auth=' + options?.environment.auth + '&gtm_preview=' + options?.environment.preview
594
+ : ''}';j.async=true;j.src=
595
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl+p;f.parentNode.insertBefore(j,f);
538
596
  })(window,document,'script','dataLayer','${trackingId}');
539
597
  `;
540
598
  document.head.appendChild(s1);
@@ -1055,5 +1113,5 @@ function identificationValidator(type) {
1055
1113
  * Generated bundle index. Do not edit.
1056
1114
  */
1057
1115
 
1058
- export { ArrayService, ColorService, ConfigDefaults, CsvConfigConsts, CsvService, DateService, FilesService, GoogleTagManagerService, GraphqlService, ObjectService, StorageService, StringService, getIdentificationType, identificationValidator };
1116
+ export { ArrayService, ColorService, ConfigDefaults, CsvConfigConsts, CsvService, DateService, FilePickerService, FilesService, GoogleTagManagerService, GraphqlService, ObjectService, StorageService, StringService, getIdentificationType, identificationValidator };
1059
1117
  //# 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/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":"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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/file-picker.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 { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilePickerService {\n private pickerClosed: boolean = false;\n\n public async open(options?: {\n accept?: string;\n multiple?: boolean;\n }): Promise<any[] | null> {\n return new Promise((resolve, reject) => {\n const fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.addEventListener('change', (event: any) => {\n this.pickerClosed = true;\n const files = event.currentTarget.files;\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 fileInput.value = '';\n resolve(data.length > 0 ? data : null);\n } else {\n resolve(null);\n }\n };\n }\n }\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 reject(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 fileInput.accept = options?.accept ? options.accept : '';\n fileInput.multiple = options?.multiple || false;\n fileInput.click();\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(\n trackingId: string,\n options?: { environment?: { auth: string; preview: string } }\n ): 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:'',p='${\n options?.environment?.preview\n ? '&gtm_auth=' + options?.environment.auth + '&gtm_preview=' + options?.environment.preview\n : ''\n }';j.async=true;j.src=\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl+p;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":"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"}
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class FilePickerService {
3
+ private pickerClosed;
4
+ open(options?: {
5
+ accept?: string;
6
+ multiple?: boolean;
7
+ }): Promise<any[] | null>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilePickerService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<FilePickerService>;
10
+ }
@@ -5,7 +5,12 @@ export declare class GoogleTagManagerService {
5
5
  router: Router;
6
6
  trackingId: string;
7
7
  constructor(platformId: Object, router: Router);
8
- appendTrackingCode(trackingId: string): void;
8
+ appendTrackingCode(trackingId: string, options?: {
9
+ environment?: {
10
+ auth: string;
11
+ preview: string;
12
+ };
13
+ }): void;
9
14
  addVariable(variable: any): void;
10
15
  private initSubscribers;
11
16
  static ɵfac: i0.ɵɵFactoryDeclaration<GoogleTagManagerService, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@factor_ec/utils",
3
- "version": "5.0.3",
3
+ "version": "5.0.5",
4
4
  "license": "CC-BY-NC-ND-4.0",
5
5
  "author": "Factor",
6
6
  "peerDependencies": {
package/public-api.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from './lib/color.service';
3
3
  export * from './lib/csv.service';
4
4
  export * from './lib/date.service';
5
5
  export * from './lib/files.service';
6
+ export * from './lib/file-picker.service';
6
7
  export * from './lib/google-tag-manager.service';
7
8
  export * from './lib/graphql.service';
8
9
  export * from './lib/object.service';