monkey-front-core 0.0.588 → 0.0.589

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 +1 @@
1
- {"version":3,"file":"monkey-front-core.mjs","sources":["../../../projects/monkey-front-core/src/lib/components/alerts/alerts.component.ts","../../../projects/monkey-front-core/src/lib/components/alerts/alerts.component.html","../../../projects/monkey-front-core/src/lib/components/alerts/alerts.module.ts","../../../projects/monkey-front-core/src/lib/core/utils/statics.ts","../../../projects/monkey-front-core/src/lib/core/utils/utils.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-timelapse.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.html","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-service.service.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-blob-secure.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-first-name.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-initials.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-support-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-address.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-beautify-json.ts","../../../projects/monkey-front-core/src/lib/core/injectors/index.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-group.ts","../../../projects/monkey-front-core/src/lib/core/utils/decorators-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validate-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validators.ts","../../../projects/monkey-front-core/src/lib/core/utils/index.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-unix-timelapse.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-number.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-size.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-tax.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-type-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-value.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-zipcode.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-text-truncate.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-truncate-qtd.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-currency-code.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-pipes.module.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.module.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.html","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.module.ts","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.component.ts","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.component.html","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.module.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-charts-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-download-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-upload-decorators.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-drag-drop.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-upper.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-alpha-numeric-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-number-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-popover-options.directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-popover.directive.ts","../../../projects/monkey-front-core/src/lib/store/actions/monkeyecx-storage.actions.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-seeder.reducer.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-storage.reducer.ts","../../../projects/monkey-front-core/src/lib/store/selectors/monkeyecx-storage.selector.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-model.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-links.model.ts","../../../projects/monkey-front-core/src/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons.service.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons-resolve-base.service.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons-resolve.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-error-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-i18n-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-logs-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-service-worker-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-security-console-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-maintenance-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-feature-toggle.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-gtm-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-alerts-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-token-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-security-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-tooltip-directive.ts","../../../projects/monkey-front-core/src/lib/core/services/alerts/monkeyecx-alerts.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-authentication.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-company.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-login.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-role.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.module.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-currency-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-http-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-others-errors-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.module.ts","../../../projects/monkey-front-core/src/lib/core/services/logged/monkeyecx-logged-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/pagination/monkeyecx-pagination.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-download-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/routes/monkeyecx-dicovery-params.service.ts","../../../projects/monkey-front-core/src/lib/core/services/schedules/monkeyecx-request-schedule.service.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store-base.service.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.actions.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.selector.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.service.ts","../../../projects/monkey-front-core/src/lib/core/services/l/l.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-by-program-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-loading.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-directives-module.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-error.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-header.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-interceptor.module.ts","../../../projects/monkey-front-core/src/lib/core/specification-search/monkeyecx-specification-search.ts","../../../projects/monkey-front-core/src/lib/monkey-front-core.module.ts","../../../projects/monkey-front-core/src/public-api.ts","../../../projects/monkey-front-core/src/monkey-front-core.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.scss']\n})\nexport class AlertsComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _img = '';\n\n _title = '';\n\n _message = '';\n\n _action: {\n href: string,\n label: string\n } | null = null;\n\n _hideClose = false;\n\n constructor(\n private modalService: MonkeyStyleGuideModalService\n ) {\n // not to do\n }\n\n ngOnInit() {\n const { config } = this;\n this._img = config?.data?.img;\n this._title = config?.data?.title;\n this._message = config?.data?.message;\n this._action = config?.data?.action;\n this._hideClose = config?.data?.hideClose;\n }\n\n onClose() {\n this.modalService.close(this.modalRef);\n }\n\n onAction() {\n const { _action } = this;\n if (_action?.href) {\n window.location.href = _action?.href;\n }\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"alert-header\">\n <img [src]=\"_img\">\n </div>\n <div class=\"alert-body\">\n <span class=\"title\">\n {{ _title | translate }}\n </span>\n <span class=\"message\">\n {{ _message | translate }}\n </span>\n </div>\n <div class=\"alert-footer\">\n <ng-container *ngIf=\"!_hideClose\">\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'BUTTONS.CLOSE' | translate }}\n </monkey-button>\n </ng-container>\n \n <ng-container *ngIf=\"_action\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onAction()\">\n {{ _action.label | translate }}\n </monkey-button>\n </ng-container>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyModalModule } from 'monkey-style-guide';\nimport { AlertsComponent } from './alerts.component';\n\n@NgModule({\n declarations: [AlertsComponent],\n imports: [CommonModule, MonkeyButtonModule, MonkeyModalModule, TranslateModule.forChild()],\n exports: [AlertsComponent]\n})\nexport class AlertsModule {}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-shadow */\nexport enum MonkeyEcxQueueEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxDownloadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxUploadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsTokenNotMandatory {\n Assets = 'assets/',\n MonkeyEcx = '/monkeyecx',\n ViaCep = 'viacep.com.br/'\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsHeaderNotMandatory {\n Assets = '/assets',\n PayablesUpload = 'payables-upload',\n PictureUser = '/user-pictures',\n Documents = 'documents/',\n BuyerTaxFile = '/buyer-tax-file',\n ViaCep = 'viacep.com.br/'\n}\n\nexport enum CountryMasks {\n CPF = '000.000.000-00',\n CNPJ = '00.000.000/0000-00',\n RUT1 = '0000000-A',\n RUT2 = '00000000-A',\n RFC1 = 'AAAA000000AA0',\n RFC2 = 'AAA000000AA0'\n}\n","/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-useless-escape */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-cond-assign */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-redeclare */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { CountryMasks } from './statics';\n\n/* eslint-disable block-scoped-var */\nexport class MonkeyEcxUtils {\n static persistNullEmptyUndefined(tp: any): boolean {\n return tp !== null && tp !== undefined && tp !== '';\n }\n\n static getDocumentType(doc: string, country?: string) {\n if (!doc) return '';\n if (country === 'cl') return 'RUT';\n if (country === 'mx') return 'RFC';\n if (country === 'us') return 'EIN';\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\n }\n\n static getDocumentMask(type: string, country = '') {\n return {\n BR: {\n CPF: CountryMasks.CPF,\n CNPJ: CountryMasks.CNPJ,\n '': `${CountryMasks.CPF}||${CountryMasks.CNPJ}`\n },\n CL: {\n CPF: CountryMasks.RUT1,\n CNPJ: CountryMasks.RUT2,\n '': `${CountryMasks.RUT1}||${CountryMasks.RUT2}`\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2,\n '': `${CountryMasks.RFC1}||${CountryMasks.RFC2}`\n }\n }[country.toUpperCase()]?.[type];\n }\n\n static getDocumentPlaceholder(type: string, country = '') {\n return {\n BR: {\n CPF: '000.000.000-XX',\n CNPJ: '00.000.000/0000-00'\n },\n CL: {\n CPF: '0000000-A',\n CNPJ: '0000000-A'\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2\n }\n }[country.toUpperCase()]?.[type];\n }\n\n static formatDocumentWithMask(doc: string, withType?: boolean, country?: string): string {\n if (!doc) return doc;\n let formated: string = '';\n if (country === 'cl') {\n formated = doc.replace(/^(\\d{1,2})(\\d{3})(\\d{3})(\\w{1})$/, '$1.$2.$3-$4');\n return `${formated}`;\n }\n if (country === 'us') {\n return doc;\n }\n if (doc.length === 14) {\n formated = doc\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\n .replace(/(\\d{4})(\\d)/, '$1-$2');\n } else {\n formated = doc\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n }\n\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\n }\n\n static cutFirstLastName(value: string, tp: string = 'first') {\n const split = value?.trim()?.split(' ');\n\n if (tp === 'first') return split[0];\n return split?.splice(1, split.length)?.join(' ');\n }\n\n static isCPFCNPJValid(document: any): boolean {\n document = document.replace(/[^\\d]/g, '');\n\n const handled = document.replace(new RegExp(document.charAt(0), 'g'), '');\n if (!handled) return false;\n\n if (document.length === 11) {\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]) ;\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]) ;\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n return true;\n }\n if (document.length === 14 || /0{14}/.test(document)) {\n const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]) ;\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]) ;\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n }\n return false;\n }\n\n public static isValidRUT(document: string): boolean {\n if (!document || document.trim().length < 3) return false;\n const documentHandled = document.replace(/[^0-9kK]/g, '');\n\n if (documentHandled.length < 3) return false;\n\n const calcDv = (rut: string) => {\n const value: string = `${rut}`;\n let sum = 0;\n let mult = 2;\n\n for (let i = 1; i <= value.length; i++) {\n const index = mult * Number(value.charAt(value.length - i));\n\n sum += index;\n\n if (mult < 7) {\n mult += 1;\n } else {\n mult = 2;\n }\n }\n\n const dvEsperado = 11 - (sum % 11);\n if (dvEsperado === 10) return 'K';\n if (dvEsperado === 11) return '0';\n return `${dvEsperado}`;\n };\n\n const num = documentHandled.slice(0, -1);\n const dgv = documentHandled.slice(-1).toUpperCase();\n\n const dvCalc = calcDv(num);\n return dvCalc === dgv;\n }\n\n public static isValidRFC(document: string) {\n const RFC_REGEXP = /^([A-ZÑ\\x26]{3,4})([0-9]{6})([A-Z0-9]{3})$/;\n const SPECIAL_CASES = {\n XEXX010101000: 'foreign',\n XAXX010101000: 'generic'\n };\n const FORBIDDEN_WORDS = [\n 'BUEI',\n 'BUEY',\n 'CACA',\n 'CACO',\n 'CAGA',\n 'CAGO',\n 'CAKA',\n 'CAKO',\n 'COGE',\n 'COJA',\n 'COJE',\n 'COJI',\n 'COJO',\n 'CULO',\n 'FETO',\n 'GUEY',\n 'JOTO',\n 'KACA',\n 'KACO',\n 'KAGA',\n 'KAGO',\n 'KOGE',\n 'KOJO',\n 'KAKA',\n 'KULO',\n 'MAME',\n 'MAMO',\n 'MEAR',\n 'MEAS',\n 'MEON',\n 'MION',\n 'MOCO',\n 'MULA',\n 'PEDA',\n 'PEDO',\n 'PENE',\n 'PUTA',\n 'PUTO',\n 'QULO',\n 'RATA',\n 'RUIN'\n ];\n\n const VALUES_MAP = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 18,\n J: 19,\n K: 20,\n L: 21,\n M: 22,\n N: 23,\n '&': 24,\n O: 25,\n P: 26,\n Q: 27,\n R: 28,\n S: 29,\n T: 30,\n U: 31,\n V: 32,\n W: 33,\n X: 34,\n Y: 35,\n Z: 36,\n ' ': 37,\n Ñ: 38\n };\n\n const getScore = (doc: string) => {\n return doc.split('').reverse().reduce((sum, char, i) => {\n const index = i + 2;\n const value = VALUES_MAP[char] || 0;\n return sum + value * index;\n }, 0);\n };\n\n const parseInput = (doc: string) => {\n return String(doc)\n .trim()\n .toUpperCase()\n .replace(/[^0-9A-ZÑ\\x26]/g, '');\n };\n\n const validateDate = (doc: string) => {\n const dateStr = doc.slice(0, -3).slice(-6);\n const year = dateStr.slice(0, 2);\n const month = dateStr.slice(2, 4);\n const day = dateStr.slice(4, 6);\n const date = new Date(`20${year}-${month}-${day}`);\n // eslint-disable-next-line no-restricted-globals\n return !isNaN(date.getTime());\n };\n\n const validateVerificationDigit = (doc: string) => {\n const digit = doc.slice(-1);\n const rfc = doc.length === 12 ? ` ${doc}` : doc;\n const base = rfc.slice(0, -1);\n const score = getScore(base);\n const mod = (11000 - score) % 11;\n if (mod === 11) return digit === '0';\n if (mod === 10) return digit === 'A';\n return String(mod) === digit;\n };\n\n const isSpecialCase = (doc: string) => { return doc in SPECIAL_CASES; };\n\n const hasForbiddenWords = (doc: string) => {\n const prefix = (doc || '').slice(0, 4);\n return FORBIDDEN_WORDS.includes(prefix);\n };\n\n try {\n const input = parseInput(document);\n\n if (isSpecialCase(input)) return false;\n const hasValidFormat = RFC_REGEXP.test(input);\n if (!hasValidFormat) return false;\n const hasValidDate = validateDate(input);\n if (!hasValidDate) return false;\n const hasValidDigit = validateVerificationDigit(input);\n if (!hasValidDigit) return false;\n if (hasForbiddenWords(input)) return false;\n\n return true;\n } catch (e) {\n // not to do\n }\n\n return false;\n }\n\n static isValidUrl(txt: string): boolean {\n const regex = /(https?:\\/\\/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])(:?\\d*)\\/?([a-z_\\\\/0-9\\-#.]*)\\??([a-z_\\\\/0-9\\-#=&]*)/g;\n return regex.test(txt);\n }\n\n static isValidZipCode(zipCode: string, country?: string): boolean {\n const length = {\n br: 8,\n cl: 7,\n mx: 5\n }[country || 'br'];\n\n return `${this.handleOnlyNumbers(zipCode)}`.length === length;\n }\n\n static isValidEmail(email: string) {\n return /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/.test(email || '');\n }\n\n static getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomString: string = new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet?.length));\n })\n .join('');\n return randomString;\n }\n\n static handleOnlyNumbers(value: any) {\n if (!value) return null;\n return value.replace(new RegExp(/[^0-9]/g), '');\n }\n\n static handleOnlyAlphaNumeric(value: any) {\n if (!value) return '';\n return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');\n }\n\n static capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n }\n\n static formatZipCode(zipCode: string): string {\n if (!zipCode) return zipCode;\n const formated: string = zipCode\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n\n return `${formated}`;\n }\n\n static formatFileSize(size: number): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let l = 0;\n while (size >= 1024 && ++l) {\n size /= 1024;\n }\n return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;\n }\n\n static sufflue(data: any[]): any[] {\n for (let i = data.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * i);\n const temp = data[i];\n data[i] = data[j];\n data[j] = temp;\n }\n return data;\n }\n\n static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\n function blobToFile(theBlob: any, fileName: string) {\n const b = theBlob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n return b;\n }\n\n let file: any;\n if (!(navigator as any).msSaveBlob) {\n file = new File([theBlob], fileName, {\n type: fileType,\n });\n } else {\n file = new Blob([theBlob], {\n type: fileType,\n });\n file = blobToFile(file, fileName);\n }\n return file;\n }\n\n static truncate(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n\n static isLocalhost() {\n const { href } = window?.location;\n if (!href) return false;\n return href?.search('localhost') >= 0;\n }\n\n static isSameOrigin(frontend: string): boolean {\n const initialPath: string = window.location.origin;\n return (initialPath || '') === frontend;\n }\n\n static replaceVariables(data: string, obj: any) {\n let handled = data;\n Object.entries(obj).forEach(([key, value]) => {\n handled = handled.replace(new RegExp(`{${key}}`, 'g'), `${value}`);\n });\n return handled;\n }\n\n static trimValuesToSave(obj: any, fields: string[]) {\n let ret = obj;\n const grouped = fields.join('#');\n Object.entries(obj).map(([key, value]) => {\n if (grouped.includes(key)) {\n ret = {\n ...ret,\n [key]: `${value}`.trim()\n };\n }\n return null;\n });\n\n return ret;\n }\n}\n\nexport type MonkeyEcxLogsErrorTypes = 'ok' |\n 'debug' |\n 'info' |\n 'notice' |\n 'warn' |\n 'error' |\n 'critical' |\n 'alert' |\n 'emerg';\n\nexport type MonkeyEcxLogParams = {\n message: string;\n context?: any;\n error?: Error;\n type?: MonkeyEcxLogsErrorTypes;\n}\n\nexport class MonkeyEcxLogs {\n static log(params: MonkeyEcxLogParams) {\n try {\n const { type, message, context, error } = params;\n datadogLogs.logger[type || 'error'](message, context, error);\n } catch (e) {\n // not to do\n }\n }\n}\n\nexport function bufferToBase64(buffer: ArrayBuffer): string {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\nexport function base64ToBuffer(base64: string): ArrayBuffer {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateTimelapse'\n})\nexport class MonkeyEcxFormatDateTimelapsePipe implements PipeTransform {\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (!useUtc) stillUtc = moment.default(date).toDate();\n if (date.toString().indexOf(':') <= -1) {\n if (typeof date === 'string') {\n stillUtc = date;\n showTime = false;\n }\n }\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\n }\n}\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\nimport { MonkeyEcxConfigBootstrap } from '../../core/interfaces';\n\n@Component({\n selector: 'monkeyecx-closed-to-maintenance',\n templateUrl: './closed-to-maintenance.component.html',\n styleUrls: ['./closed-to-maintenance.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ClosedToMaintenanceComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _configBootstrap: MonkeyEcxConfigBootstrap | null = null;\n\n ngOnInit() {\n this._configBootstrap = this.config?.data;\n }\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-1' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-2' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-3' | translate }}\n {{ _configBootstrap?.maintenance?.endDate | monkeyecxFormatDateTimelapse: true }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-4' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.BUTTONS.UPDATE-MAINTENANCE' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","/* eslint-disable max-len */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestDownload } from '../interfaces/request-download/monkeyecx-request-download';\nimport { MonkeyEcxRequestQueue } from '../interfaces/request-queue/monkeyecx-request-queue';\nimport { MonkeyEcxRequestUpload } from '../interfaces/request-upload/monkeyecx-request-upload';\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class MonkeyEcxHandlingService {\n private monkeyecxServiceCredentials: MonkeyEcxServiceCredentials | null = null;\n\n private monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = null;\n\n private monkeyecxRequestDownload: MonkeyEcxRequestDownload | null = null;\n\n private monkeyecxRequestUpload: MonkeyEcxRequestUpload | null = null;\n\n public clearAll() {\n this.monkeyecxServiceCredentials = null;\n this.monkeyecxRequestQueue = null;\n this.monkeyecxRequestDownload = null;\n this.monkeyecxRequestUpload = null;\n }\n\n public setMonkeyEcxServiceCredentials(param: MonkeyEcxServiceCredentials) {\n this.monkeyecxServiceCredentials = param;\n }\n\n public getMonkeyEcxServiceCredentials(): MonkeyEcxServiceCredentials | null {\n return this.monkeyecxServiceCredentials;\n }\n\n public setMonkeyEcxRequestQueue(queue: MonkeyEcxRequestQueue) {\n this.monkeyecxRequestQueue = queue;\n }\n\n public getMonkeyEcxRequestQueue(): MonkeyEcxRequestQueue | null {\n return this.monkeyecxRequestQueue;\n }\n\n public setMonkeyEcxRequestDownload(download: MonkeyEcxRequestDownload) {\n this.monkeyecxRequestDownload = download;\n }\n\n public getMonkeyEcxRequestDownload(): MonkeyEcxRequestDownload | null {\n return this.monkeyecxRequestDownload;\n }\n\n public setMonkeyEcxRequestUpload(upload: MonkeyEcxRequestUpload) {\n this.monkeyecxRequestUpload = upload;\n }\n\n public getMonkeyEcxRequestUpload(): MonkeyEcxRequestUpload | null {\n return this.monkeyecxRequestUpload;\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from './monkeyecx-handling.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxService {\n constructor(\n protected http: HttpClient,\n public monkeyecxHandlingService: MonkeyEcxHandlingService\n ) {\n // not to do\n }\n\n private handlelize(params: any): any {\n if (!params) {\n return params;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const field of [\n 'createdAt',\n 'createUserId',\n 'updatedAt',\n 'lastUserId',\n '_links',\n 'governmentIdType',\n 'governmentIdMask',\n 'screenType',\n 'screenTab'\n ]) {\n delete params[field];\n }\n return params;\n }\n\n public get<T>(url: string, options?: any): Observable<any> {\n return this.http.get<T>(url, options);\n }\n\n public post<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.post<T>(url, params, options);\n }\n\n public put<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.put<T>(\n url,\n this.handlelize({\n ...params\n }),\n options\n );\n }\n\n public patch<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.patch<T>(\n url,\n this.handlelize({\n ...params\n }),\n options\n );\n }\n\n public delete<T>(url: string, params?: any): Observable<any> {\n return this.http.delete<T>(url, params);\n }\n\n public download<T>(url: string, options?: any, filename?: string) {\n this.http.get<T>(url, options).subscribe(\n (resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n return {\n filename,\n blob\n };\n },\n (err: HttpErrorResponse) => {\n throwError(err);\n }\n );\n }\n\n public downloadOb<T>(url: string, options?: any, filename?: string): Observable<any> {\n return this.http.get<any>(url, options).pipe(\n map((resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n return {\n filename,\n blob\n };\n }),\n catchError((err: any) => {\n return throwError(err);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxService } from '../services/monkeyecx-service.service';\n\n@Pipe({\n name: 'monkeyecxBlobSecure'\n})\nexport class MonkeyEcxBlobSecurePipe implements PipeTransform {\n constructor(private monkeyecxService: MonkeyEcxService, private sanitizer: DomSanitizer) {\n // not to do\n }\n\n transform(url: string): Observable<SafeUrl> {\n return this.monkeyecxService.get(url, { responseType: 'blob' }).pipe(\n map((val: any) => {\n return this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val));\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayFirstName'\n})\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n return MonkeyEcxUtils.cutFirstLastName(name);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayInitials'\n})\nexport class MonkeyEcxDisplayInitialsPipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n const first = MonkeyEcxUtils.cutFirstLastName(name, 'first');\n const second = MonkeyEcxUtils.cutFirstLastName(name, 'last');\n return `${first?.charAt(0)} ${second?.charAt(0)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxConfigSupportPhone } from '../interfaces';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxDisplaySupportPhone'\n})\nexport class MonkeyEcxDisplaySupportPhone implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(phones: MonkeyEcxConfigSupportPhone[]) {\n return phones.map((phone: MonkeyEcxConfigSupportPhone) => {\n const isOnline = this.isPhoneOnline(phone);\n\n return {\n ...phone,\n isOnline,\n color: isOnline ? '#00875A' : '#FA3838'\n };\n });\n }\n\n isPhoneOnline(phone: any): boolean {\n const start = moment.default().startOf('day').add(phone?.startHour, 'hours').format('YYYY-MM-DD HH:mm');\n const end = moment.default().startOf('day').add(phone?.endHour, 'hours').format('YYYY-MM-DD HH:mm');\n\n return moment.default().isSameOrAfter(start) && moment.default().isSameOrBefore(end);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatAddress',\n})\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\n transform({\n zipCode,\n address,\n neighborhood,\n city,\n state,\n }: {\n zipCode: string;\n address: string;\n neighborhood: string;\n city: string;\n state: string;\n country: string;\n }): string {\n return [address, neighborhood, zipCode, city, state]\n .filter((_: string) => {\n return _;\n })\n .join(', ');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatBeautifyJSON'\n})\nexport class MonkeyEcxFormatBeaufityJSONPipe implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(value: any) {\n const jsonLine = /^( *)(\"[\\w]+\": )?(\"[^\"]*\"|[\\w.+-]*)?([,[{])?$/gm;\n\n const replacer = (match, pIndent, pKey, pVal, pEnd) => {\n const key = '<span class=\"json-key\" style=\"color: brown\">';\n const val = '<span class=\"json-value\" style=\"color: navy\">';\n const str = '<span class=\"json-string\" style=\"color: olive\">';\n let r = pIndent || '';\n if (pKey) {\n r = `${r + key + pKey.replace(/[\": ]/g, '')}</span>: `;\n }\n if (pVal) {\n r = `${r + (pVal[0] === '\"' ? str : val) + pVal}</span>`;\n }\n return r + (pEnd || '');\n };\n\n return JSON.stringify(value, null, 3)\n .replace(/&/g, '&amp;')\n .replace(/\\\\\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(jsonLine, replacer);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const MECX_TIMEZONEOFFSET = new InjectionToken<string>('');\nexport const MECX_DATE_FORMAT = new InjectionToken<string>('');\nexport const MECX_LANG = new InjectionToken<string>('');\nexport const MECX_ENV = new InjectionToken<string>('');\nexport const MECX_ALPHA = new InjectionToken<string>('');\nexport const MECX_BETA = new InjectionToken<string>('');\n","import { CurrencyPipe } from '@angular/common';\nimport { DEFAULT_CURRENCY_CODE, Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\nimport { MECX_LANG } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatCurrency'\n})\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\n constructor(\n private currencyPipe: CurrencyPipe,\n @Inject(DEFAULT_CURRENCY_CODE) private defaultCurencyCode: InjectionToken<string>,\n @Inject(MECX_LANG) private lang: InjectionToken<string>\n ) {\n // not to do\n }\n\n transform(value: any, symbol = 'symbol') {\n const currency = this.defaultCurencyCode.toString();\n const locale = this.lang.toString();\n\n try {\n if (currency === 'CLP') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '1.0-0', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n if (currency === 'MXN') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n return this.currencyPipe.transform(value, currency, symbol, '', locale);\n } catch (e) {\n // not to do\n }\n return value;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\nimport { MECX_DATE_FORMAT, MECX_TIMEZONEOFFSET } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatDate'\n})\nexport class MonkeyEcxFormatDatePipe implements PipeTransform {\n constructor(\n private dt: DatePipe,\n @Inject(MECX_DATE_FORMAT) private dateFormat: InjectionToken<string>,\n @Inject(MECX_TIMEZONEOFFSET) private timezone: InjectionToken<string>\n ) {\n // not to do\n }\n\n transform(date: any | Date, format = this.dateFormat.toString()) {\n return this.dt.transform(date, format, this.timezone.toString());\n }\n}\n","import { Injector, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateGroup',\n})\nexport class MonkeyEcxFormatDateGroupPipe implements PipeTransform {\n private lang = 'pt-BR';\n\n constructor(private injector: Injector) {\n const translateService = this.injector.get(TranslateService);\n this.lang = translateService.getDefaultLang();\n }\n\n private format(date: string | Date) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (date.toString()?.indexOf(':') <= -1) {\n stillUtc = date;\n }\n const formatFrom = 'YYYY/MM/DD';\n const fmt = moment.default(stillUtc, formatFrom).locale(this.lang);\n const dayFormated = fmt.format('DD/');\n const monthFormated = MonkeyEcxUtils.capitalize(fmt.format('MMMM'));\n const yearFormated = fmt.format('YYYY');\n return `${`${dayFormated}${monthFormated}`.substring(0, 6)}, ${yearFormated}`;\n }\n\n transform(obj: any): string {\n if (!obj || !obj?.start || !obj?.end) return '';\n const { start, end } = obj;\n const formatedStart = this.format(start);\n const formatedEnd = this.format(end);\n return `${formatedStart} - ${formatedEnd}`;\n }\n}\n","import {\n MonkeyEcxRequestDownload,\n MonkeyEcxRequestItemQueue,\n MonkeyEcxRequestQueue,\n MonkeyEcxRequestUpload\n} from '../interfaces';\nimport * as Statics from './statics';\nimport { MonkeyEcxUtils } from './utils';\n\nexport function buildQueuePropertys(queue: MonkeyEcxRequestItemQueue): MonkeyEcxRequestQueue {\n const params: MonkeyEcxRequestQueue = {\n item: {\n ...queue,\n id: MonkeyEcxUtils.getRandomString(40)\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildDownloadPropertys(\n name: string,\n description?: string,\n size?: number\n): MonkeyEcxRequestDownload {\n const params: MonkeyEcxRequestDownload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n size,\n createdAt: new Date()\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildUploadPropertys(name: string, description?: string): MonkeyEcxRequestUpload {\n const params: MonkeyEcxRequestUpload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`\n },\n status: Statics.MonkeyEcxUploadEvents.OnGoing\n };\n\n return params;\n}\n\nexport function hasMonkeyEcxServiceAndHandlingProperties(context: any): boolean {\n return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');\n}\n","/* eslint-disable max-classes-per-file */\nimport { AbstractControl } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nexport class DateValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRutValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidRut: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRFCValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidRfc: true\n };\n }\n }\n return null;\n }\n}\n\nexport class ZipCodeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\n return {\n invalidZipCode: true\n };\n }\n }\n return null;\n }\n}\n\nexport class ComboValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n return {\n invalidCombo: true\n };\n }\n}\n\nexport class isTrueValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n return {\n invalidTrue: true\n };\n }\n}\n\nexport class PasswordMatchValidation {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n return {\n passwordsNotMatching: true\n };\n }\n}\n\nexport class UrlValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n invalidUrl: true\n };\n }\n }\n return null;\n }\n}\n\nexport class CustomDatesStartValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateStart || !dateEnd) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n return null;\n }\n}\n\nexport class CustomDatesEndValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateEnd < dateStart) {\n return {\n dateEndMustBeGreaterThanStart: true\n };\n }\n return null;\n }\n}\n\nexport class UnlockRegisterBuyerValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYBUYER') {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n }\n}\n\nexport class UnlockRegisterSponsorValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYSPONSOR') {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n }\n}\n\nexport class DateRangeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))\n ) {\n return {\n invalidDateRange: true\n };\n }\n\n return null;\n }\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nconst EMAIL_REGEXP = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/;\n\nfunction isEmptyInputValue(value: any): boolean {\n return value == null || value.length === 0;\n}\n\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n const test = EMAIL_REGEXP.test(control.value);\n if (test) return null;\n return {\n email: true\n };\n}\n\nexport function dateRangeValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))\n ) {\n return {\n dateRange: true\n };\n }\n\n return null;\n}\n\nexport function registerValidator(control: AbstractControl, type: string): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n}\n\nexport function dateStartEndValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) {\n return null;\n }\n\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n\n return null;\n}\n\nexport function urlValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n url: true\n };\n }\n\n return null;\n}\n\nexport function passwordConfirmValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n\n return {\n passwordsNotMatching: true\n };\n}\n\nexport function trueValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n\n return {\n invalidTrue: true\n };\n}\n\nexport function comboValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n\n return {\n invalidCombo: true\n };\n}\n\nexport function zipCodeValidator(\n control: AbstractControl,\n country?: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value, country)) {\n return {\n invalidZipCode: true\n };\n }\n }\n\n return null;\n}\n\nexport function documentValidator(\n control: AbstractControl,\n country: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n country = `${country}`.toUpperCase();\n if (country === 'BR') {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n } else if (country === 'CL') {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n } else if (country === 'MX') {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n }\n\n return null;\n}\n\nexport function minYearsValidator(\n param: number,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const date = moment.default(control.value);\n const dif = moment.default().diff(date, 'years');\n\n if (dif < param) {\n return {\n invalidMinYears: {\n year: param\n }\n };\n }\n return null;\n}\n\nexport function dateValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true\n };\n }\n return null;\n}\n\nexport function valueGreaterThanZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (control && `${control?.value}` === '0') {\n return {\n invalidValueGreaterThanZero: true\n };\n }\n return null;\n}\n\nexport function requiredWithTrimValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n if (control && !`${control?.value}`.trim()) {\n return {\n required: true\n };\n }\n return null;\n}\n\nexport function differentFromZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n const handled = `${control?.value}`.trim().replace(/0/g, '');\n if (control && !handled) {\n return {\n differentFromZero: true\n };\n }\n\n return null;\n}\n\nexport function documentValidatorByType(\n type: string,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const handle = MonkeyEcxUtils.handleOnlyNumbers(control.value);\n let valid = false;\n if (type === 'CPF' || type === 'CNPJ') {\n if ((type === 'CNPJ' && `${handle}`.length !== 14) ||\n (type === 'CPF' && `${handle}`.length !== 11)) {\n valid = false;\n } else {\n valid = MonkeyEcxUtils.isCPFCNPJValid(control.value);\n }\n } else if (type === 'RUT') {\n valid = MonkeyEcxUtils.isValidRUT(control.value);\n } else if (type === 'RFC') {\n valid = MonkeyEcxUtils.isValidRFC(control.value);\n }\n\n if (!valid) {\n return {\n [`invalid${MonkeyEcxUtils.capitalize(type.toLowerCase())}`]: true\n };\n }\n\n return null;\n}\n\nexport function validateFullName(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n const fullName = value.split(/\\s+/);\n const hasShortPart = fullName.some(part => part.length < 2);\n\n if (fullName.length < 2 || hasShortPart) {\n return { fullName: true };\n }\n\n return null;\n}\n\nexport class Validators {\n static email(control: AbstractControl): ValidationErrors | null {\n return emailValidator(control);\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n return dateRangeValidator(control);\n }\n\n static unlockSponsorRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'sponsor');\n }\n\n static unlockBuyerRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'buyer');\n }\n\n static dateStartEnd(control: AbstractControl): ValidationErrors | null {\n return dateStartEndValidator(control);\n }\n\n static url(control: AbstractControl): ValidationErrors | null {\n return urlValidator(control);\n }\n\n static passwordConfirm(control: AbstractControl): ValidationErrors | null {\n return passwordConfirmValidator(control);\n }\n\n static true(control: AbstractControl): ValidationErrors | null {\n return trueValidator(control);\n }\n\n static combo(control: AbstractControl): ValidationErrors | null {\n return comboValidator(control);\n }\n\n static zipCode(control: AbstractControl): ValidationErrors | null {\n return zipCodeValidator(control);\n }\n\n static zipCodeByCountry(country: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return zipCodeValidator(control, country);\n };\n }\n\n static documentBR(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'BR');\n }\n\n static documentCL(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'CL');\n }\n\n static documentMX(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'MX');\n }\n\n static date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\n }\n\n static minYears(param: number): ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n return minYearsValidator(param, control);\n };\n }\n\n static greaterThanZero(control: AbstractControl): ValidationErrors | null {\n return valueGreaterThanZero(control);\n }\n\n static required(control: AbstractControl): ValidationErrors | null {\n return requiredWithTrimValidator(control);\n }\n\n static differentFromZero(control: AbstractControl): ValidationErrors | null {\n return differentFromZero(control);\n }\n\n static documentValidatorByType(type: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return documentValidatorByType(type, control);\n };\n }\n\n static validateFullName(control: AbstractControl): ValidationErrors | null {\n return validateFullName(control);\n }\n}\n","/* eslint-disable object-curly-newline */\nimport * as DecoratorsUtils from './decorators-utils';\nimport * as Statics from './statics';\nimport { MonkeyEcxLogs, MonkeyEcxUtils } from './utils';\nimport * as ValidateUtils from './validate-utils';\n\nexport * from './validators';\nexport { DecoratorsUtils, MonkeyEcxLogs, MonkeyEcxUtils, Statics, ValidateUtils };\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateUnixTimelapse'\n})\nexport class MonkeyEcxFormatDateUnixTimelapsePipe implements PipeTransform {\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (!useUtc) stillUtc = moment.default(date).toDate();\n if (\n moment.default\n .utc(date)\n .toDate()\n .toLocaleString()\n .indexOf(':') <= -1\n ) {\n if (typeof date === 'string') {\n stillUtc = date;\n showTime = false;\n }\n }\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocument',\n})\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\n transform(document: string, withType = false, country?: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) {\n return '';\n }\n\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType, country);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatNumber } from '@angular/common';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatNumber'\n})\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n\n return formatNumber(Number(number), 'ptbr');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatPhone'\n})\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\n transform(phone: string): string {\n if (phone) {\n const value = `${phone || ''}`.replace(/\\D/g, '');\n\n let formated = '';\n\n if (value.length > 12) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 11) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 10) {\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 9) {\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 5) {\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\n } else if (value.length > 1) {\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\n } else if (phone !== '') {\n formated = value.replace(/^(\\d*)/, '($1');\n }\n return formated;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatSize'\n})\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\n transform(size: string): string {\n if (!size) return '0 B';\n const sizeNum = Number(size);\n return MonkeyEcxUtils.formatFileSize(sizeNum);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils';\n\n@Pipe({\n name: 'monkeyecxFormatTax',\n})\nexport class MonkeyEcxFormatTaxPipe implements PipeTransform {\n transform(tax: number, decimalDigits: number = 7) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tax)) return '0 %';\n const stringTax = tax.toString();\n const stringTaxLimited = stringTax.slice(0, stringTax.indexOf('.') + decimalDigits + 1);\n return `${Number(stringTaxLimited).toLocaleString('pt-br', {\n maximumFractionDigits: decimalDigits,\n })} %`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocumentType'\n})\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\n transform(document: string, country?: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\n return MonkeyEcxUtils.getDocumentType(document, country);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatValue'\n})\nexport class MonkeyEcxFormatValue implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n return number;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatZipCode'\n})\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\n transform(zipCode: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\n return MonkeyEcxUtils.formatZipCode(zipCode);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTextTruncate'\n})\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\n transform(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTruncateQtd'\n})\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\n transform(number: number, threshold: number): string {\n return `${number > threshold ? `${threshold}+` : number}`;\n }\n}\n","import { DEFAULT_CURRENCY_CODE, Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxCurrencyCode'\n})\nexport class MonkeyEcxCurrencyCodePipe implements PipeTransform {\n constructor(@Inject(DEFAULT_CURRENCY_CODE) private defaultCurencyCode: InjectionToken<string>) {\n // not to do\n }\n\n transform(value: any, type: 'symbol' | 'code' = 'symbol') {\n const currency = this.defaultCurencyCode?.toString() || 'BRL';\n\n const symbol = {\n BRL: 'R$',\n CLP: '$',\n MXN: '$',\n USD: '$'\n }[currency];\n\n return `${value} (${type === 'symbol' ? symbol : currency})`;\n }\n}\n","import { CurrencyPipe, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxBlobSecurePipe } from './monkeyecx-blob-secure';\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\nimport { MonkeyEcxDisplayInitialsPipe } from './monkeyecx-display-initials';\nimport { MonkeyEcxDisplaySupportPhone } from './monkeyecx-display-support-phone';\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\nimport { MonkeyEcxFormatBeaufityJSONPipe } from './monkeyecx-format-beautify-json';\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatDatePipe } from './monkeyecx-format-date';\nimport { MonkeyEcxFormatDateGroupPipe } from './monkeyecx-format-date-group';\nimport { MonkeyEcxFormatDateTimelapsePipe } from './monkeyecx-format-date-timelapse';\nimport { MonkeyEcxFormatDateUnixTimelapsePipe } from './monkeyecx-format-date-unix-timelapse';\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\nimport { MonkeyEcxFormatTaxPipe } from './monkeyecx-format-tax';\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\nimport { MonkeyEcxCurrencyCodePipe } from './monkeyecx-currency-code';\n\n@NgModule({\n declarations: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxDisplaySupportPhone,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDateGroupPipe,\n MonkeyEcxFormatDateTimelapsePipe,\n MonkeyEcxFormatDateUnixTimelapsePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n exports: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxDisplaySupportPhone,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDateGroupPipe,\n MonkeyEcxFormatDateTimelapsePipe,\n MonkeyEcxFormatDateUnixTimelapsePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n providers: [CurrencyPipe, DatePipe]\n})\nexport class MonkeyEcxPipesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { MonkeyEcxPipesModule } from '../../core/pipes/monkeyecx-pipes.module';\nimport { ClosedToMaintenanceComponent } from './closed-to-maintenance.component';\n\n@NgModule({\n declarations: [ClosedToMaintenanceComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n MonkeyEcxPipesModule,\n TranslateModule.forChild()\n ],\n exports: [ClosedToMaintenanceComponent]\n})\nexport class ClosedToMaintenanceModule {}\n","import { Injectable } from '@angular/core';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router\n} from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxProgressBarService {\n private visible: BehaviorSubject<any> | null = null;\n\n constructor(private router: Router) {\n this.init();\n }\n\n private init() {\n this.visible = new BehaviorSubject(false);\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.show();\n });\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return (\n event instanceof NavigationEnd ||\n event instanceof NavigationError ||\n event instanceof NavigationCancel\n );\n })\n )\n .subscribe(() => {\n this.hide();\n });\n }\n\n show() {\n this.visible?.next(true);\n }\n\n hide() {\n this.visible?.next(false);\n }\n\n visibleConfig(): Observable<any> | null {\n return this.visible?.asObservable() || null;\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyEcxProgressBarService } from './progress-bar.service';\n\n@Component({\n selector: 'monkeyecx-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MonkeyEcxProgressBarComponent implements OnInit {\n visible: boolean = false;\n\n constructor(private progressBarService: MonkeyEcxProgressBarService) {\n //not to do\n }\n\n ngOnInit() {\n this.progressBarService?.visibleConfig()?.subscribe((visible: boolean) => {\n this.visible = visible;\n });\n }\n}\n","<ng-container *ngIf=\"visible\">\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [MonkeyEcxProgressBarComponent],\n imports: [CommonModule],\n exports: [MonkeyEcxProgressBarComponent]\n})\nexport class MonkeyEcxProgressBarModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-version-changed',\n templateUrl: './version-changed.component.html',\n styleUrls: ['./version-changed.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class VersionChangedComponent {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.VERSION-CHANGED.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-1' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-2' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.VERSION-CHANGED.BUTTONS.UPDATE-VERSION' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { VersionChangedComponent } from './version-changed.component';\n\n@NgModule({\n declarations: [VersionChangedComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [VersionChangedComponent]\n})\nexport class VersionChangedModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-currency-config',\n templateUrl: './currency-config.component.html',\n styleUrls: ['./currency-config.component.scss']\n})\nexport class CurrencyConfigComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _currency = 'BRL';\n\n _currencies = ['BRL'];\n\n private callback: Function = () => {};\n\n constructor(\n private modalService: MonkeyStyleGuideModalService\n ) {\n // not to do\n }\n\n ngOnInit() {\n const { config } = this;\n this._currency = config?.data?.currency;\n this._currencies = config?.data?.currencies;\n this.callback = config?.data?.callback;\n }\n\n onClose() {\n this.modalService.close(this.modalRef);\n this.callback?.(this._currency);\n }\n\n onHandleChangeCurrency(currency: string) {\n this._currency = currency;\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"alert-body\">\n <span class=\"title\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.TITLE' | translate }}\n </span>\n <span class=\"message\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.SUB-TITLE' | translate }}\n </span>\n <monkey-radiobutton [value]=\"_currency\"\n (onChange)=\"onHandleChangeCurrency($event)\">\n <monkey-option \n [label]=\"'CURRENCIES.'+currency | translate\"\n [value]=\"currency\"\n *ngFor=\"let currency of _currencies\">\n </monkey-option>\n </monkey-radiobutton>\n <span class=\"info\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.INFO' | translate }}\n </span>\n </div>\n <div class=\"alert-footer\">\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'BUTTONS.CONFIRM' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyModalModule, MonkeyOptionModule, MonkeyRadioButtonModule } from 'monkey-style-guide';\nimport { CurrencyConfigComponent } from './currency-config.component';\n\n@NgModule({\n declarations: [CurrencyConfigComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyRadioButtonModule,\n MonkeyOptionModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [CurrencyConfigComponent]\n})\nexport class CurrencyConfigModule {}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\nexport function MonkeyEcxCoreCharts(render = true) {\n return (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor => {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function(...args: any[]) {\n const context = this;\n if (render) {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n const node = document.createElement('script');\n node.src = 'https://www.gstatic.com/charts/loader.js';\n node.type = 'text/javascript';\n node.async = true;\n node.id = 'monkeyecx-charts-settings';\n node.onload = () => {\n method.apply(context, args);\n };\n document.getElementsByTagName('head')[0].appendChild(node);\n } else {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n method.apply(context, args);\n }\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable no-console */\n/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport function MonkeyEcxCoreServiceConstructor() {\n return (target: any) => {\n Object.entries(target.prototype).forEach(([key, value]) => {\n const method = target.prototype[key];\n if (key !== 'constructor') {\n target.prototype[key] = function (...args: any[]) {\n const context = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context.monkeyecxService.monkeyecxHandlingService.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n }\n });\n return target;\n };\n}\n\nexport function MonkeyEcxCoreLog(tp: string) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n propertyDescriptor.value = function (...args: any[]) {\n const params = args\n .map((a: any) => {\n return JSON.stringify(a);\n })\n .join();\n const result = method.apply(this, args);\n const r = JSON.stringify(result);\n console.log(`Call: ${propertyName}(${params}) => ${r}`);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreClearDecorators() {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(params);\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServicePaged(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n const credentials =\n context?.monkeyecxService?.monkeyecxHandlingService?.getMonkeyEcxServiceCredentials();\n let requestPaged = null;\n if (credentials) {\n requestPaged = credentials.requestPaged;\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials({\n ...params,\n ...(requestPaged || {}),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServiceQueue(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService.monkeyecxHandlingService.setMonkeyEcxRequestQueue(\n DecoratorsUtils.buildQueuePropertys({\n name,\n description,\n })\n );\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceDownload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestDownload({\n ...DecoratorsUtils.buildDownloadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceUpload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestUpload({\n ...DecoratorsUtils.buildUploadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","import { Directive, HostListener, Output, HostBinding, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxDragDrop]',\n})\nexport class MonkeyEcxDragDropDirective {\n @Output() onFileDropped: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding('style.background-color') private background = '#f5fcff';\n\n @HostBinding('style.opacity') private opacity = '1';\n\n @HostListener('dragover', ['$event'])\n onDragOver(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#9ecbec';\n this.opacity = '0.8';\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n const { files } = evt?.dataTransfer;\n if (files.length > 0) {\n this.onFileDropped.emit(files);\n }\n }\n}\n","import { Directive, ElementRef, HostListener, OnInit, Injector } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFormatCurrency]',\n providers: [CurrencyPipe]\n})\nexport class MonkeyEcxFormatCurrency implements OnInit {\n private el: HTMLInputElement;\n\n private currency: any;\n\n private currencyCode: string = 'BRL';\n\n private currentLocale: string = 'pt-BR';\n\n constructor(private elementRef: ElementRef, private injector: Injector) {\n this.el = this.elementRef.nativeElement;\n this.currency = this.injector.get(CurrencyPipe);\n\n const translateService = this.injector.get(TranslateService);\n translateService.get('MONKEY-CURRENCY-CODE').subscribe((_: any) => {\n this.currencyCode = _;\n this.currentLocale = translateService.getDefaultLang();\n });\n }\n\n private handle(value: any): string {\n const { currencyCode, currentLocale } = this;\n const newValue = MonkeyEcxUtils.handleOnlyNumbers(value);\n return this.currency.transform(newValue / 100, currencyCode, 'symbol', '', currentLocale);\n }\n\n ngOnInit() {\n this.el.value = this.handle(this.el.value);\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: any) {\n this.el.value = this.handle(value);\n }\n}\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2, Self } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n selector: '[monkeyecxFormatUpper]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxFormatUpper;\n }),\n multi: true,\n },\n ],\n})\nexport class MonkeyEcxFormatUpper implements ControlValueAccessor {\n _onChange?: (_: any) => void;\n\n _touched?: () => void;\n\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('keyup', ['$event'])\n onKeyDown(evt: KeyboardEvent) {\n const value = this._el.nativeElement.value.toUpperCase();\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n this._onChange?.(value);\n evt.preventDefault();\n }\n\n @HostListener('blur', ['$event'])\n onBlur() {\n this._touched?.();\n }\n\n writeValue(value: any): void {\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._touched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyAlphaNumeric]'\n})\nexport class MonkeyEcxOnlyAlphaNumericDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyAlphaNumeric(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyNumbers]'\n})\nexport class MonkeyEcxOnlyNumbersDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyNumbers(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, forwardRef, InjectionToken, Input } from '@angular/core';\n\nexport const POPOVER_OPTIONS = new InjectionToken('POPOVER_OPTIONS');\n\nexport type PopoverDir =\n | 'rtl'\n | 'ltr'\n | 'trtl'\n | 'tltr'\n | 'ct'\n | 'cc'\n | 'cr'\n | 'rt'\n | 'rb'\n | 'lt'\n | 'lb';\n\nexport interface MonkeyEcxPopoverOptions {\n dir?: PopoverDir;\n minwidth?: boolean;\n backdrop?: boolean;\n contextmenu?: boolean;\n}\n\n@Directive({\n selector: '[monkeyecxPopoverOptions]',\n providers: [\n {\n provide: POPOVER_OPTIONS,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxPopoverOptionsDirective;\n })\n }\n ]\n})\nexport class MonkeyEcxPopoverOptionsDirective implements MonkeyEcxPopoverOptions {\n @Input('monkeyecxPopoverOptions')\n set options(options: MonkeyEcxPopoverOptions) {\n Object.entries(options).forEach(([k, v]) => {\n this[k] = v;\n });\n }\n\n minwidth?: boolean;\n\n dir?: PopoverDir;\n\n backdrop?: boolean;\n\n contextmenu?: boolean;\n}\n","import {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy, FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { POPOVER_OPTIONS } from './monkeyecx-popover-options.directive';\nimport type { PopoverDir, MonkeyEcxPopoverOptions } from './monkeyecx-popover-options.directive';\n\n@Directive({\n selector: '[monkeyecxPopover]'\n})\nexport class MonkeyEcxPopoverDirective implements OnDestroy {\n private _popover!: boolean;\n\n get popover() {\n return this._popover;\n }\n\n @Input('monkeyecxPopover')\n set popover(show: boolean) {\n this._popover = show;\n if (show) {\n this.createPopover();\n } else if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n @Input('monkeyecxPopoverClosed') closed!: (e?: MouseEvent) => void;\n\n private _target!: HTMLElement;\n\n get target() {\n return this._target;\n }\n\n @Input('monkeyecxPopoverTarget')\n set target(target: HTMLElement) {\n this._target = target;\n }\n\n @Input('monkeyecxPopoverMinwidth') minwidth = false;\n\n @Input('monkeyecxPopoverBackdrop') backdrop = true;\n\n @Input('monkeyecxPopoverWatch') watch = false;\n\n @Input('monkeyecxPopoverDir') dir: PopoverDir = 'ltr';\n\n @Input('monkeyecxPopoverContextmenu') contextmenu = false;\n\n @Input('monkeyecxPopoverHeight') height!: number | string;\n\n private overlayRef!: OverlayRef;\n\n private positionStrategy!: FlexibleConnectedPositionStrategy;\n\n private templatePortal!: TemplatePortal;\n\n private subs = new Subscription();\n\n private eventsSubs = new Subscription();\n\n private resizeObserver: any;\n\n constructor(\n private tpl: TemplateRef<any>,\n private vcr: ViewContainerRef,\n private el: ElementRef,\n private zone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n private _cd: ChangeDetectorRef,\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private router: Router,\n @Inject(POPOVER_OPTIONS) @Optional() private options: MonkeyEcxPopoverOptions\n ) {\n this.eventsSubs = this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.onHandleClose();\n });\n }\n\n private onHandleClose(e?: MouseEvent) {\n this.popover = false;\n this.subs.unsubscribe();\n this.resizeObserver?.disconnect();\n this.zone.run(() => {\n if (this.closed) {\n this.closed(e);\n }\n });\n }\n\n getDirPositions(dir?: PopoverDir): ConnectedPosition[] {\n const revert = {\n start: 'end', end: 'start', bottom: 'top', top: 'bottom', center: 'center'\n };\n const centerY = (pos: any): ConnectedPosition => {\n return {\n originX: 'center', originY: pos, overlayX: 'center', overlayY: revert[pos]\n };\n };\n const centerX = (pos: any): ConnectedPosition => {\n return {\n originX: revert[pos], originY: 'center', overlayX: pos, overlayY: 'center'\n };\n };\n const ltr = (axis: any): ConnectedPosition => {\n return {\n originX: 'start', originY: axis, overlayX: 'start', overlayY: revert[axis]\n };\n };\n const rtl = (axis: any): ConnectedPosition => {\n return {\n originX: 'end', originY: axis, overlayX: 'end', overlayY: revert[axis]\n };\n };\n const side = (axis: any, axis2: any): ConnectedPosition => {\n return {\n originX: axis, originY: axis2, overlayX: revert[axis], overlayY: axis2\n };\n };\n\n const cmp = dir || this.options?.dir || this.dir;\n if (cmp === 'ct') {\n return [centerY('top'), centerY('bottom'), centerX('start'), centerX('end')];\n }\n if (cmp === 'cr') {\n return [centerX('end'), centerX('start'), centerY('top'), centerY('bottom')];\n }\n if (cmp === 'cc') {\n return [centerX('center')];\n }\n if (cmp === 'ltr') {\n return [ltr('bottom'), ltr('top')];\n }\n if (cmp === 'rtl') {\n return [rtl('bottom'), rtl('top')];\n }\n if (cmp === 'tltr') {\n return [ltr('top'), ltr('bottom')];\n }\n if (cmp === 'trtl') {\n return [rtl('top'), rtl('bottom')];\n }\n if (cmp === 'rt') {\n return [side('end', 'top'), side('end', 'bottom'), ltr('top')];\n }\n if (cmp === 'rb') {\n return [side('end', 'bottom'), side('end', 'top'), ltr('bottom'), rtl('bottom')];\n }\n if (cmp === 'lt') {\n return [side('start', 'top'), side('start', 'bottom'), rtl('top')];\n }\n if (cmp === 'lb') {\n return [side('start', 'bottom'), side('start', 'top'), rtl('bottom')];\n }\n\n return [];\n }\n\n createPopover(\n origin?: FlexibleConnectedPositionStrategyOrigin,\n options?: MonkeyEcxPopoverOptions\n ) {\n this.templatePortal = new TemplatePortal(this.tpl, this._viewContainerRef);\n this.positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(origin || this.target)\n .withPush(true)\n .withGrowAfterOpen(true)\n .withPositions(this.getDirPositions(options?.dir));\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.positionStrategy,\n disposeOnNavigation: true,\n direction: 'ltr',\n hasBackdrop: this.backdrop,\n scrollStrategy: this.overlay.scrollStrategies.reposition({\n }),\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: (this.options?.minwidth || this.minwidth) ? (this.target.offsetWidth - 2) : undefined,\n maxHeight: '95%',\n height: this.height\n });\n\n this.subs = this.overlayRef.backdropClick().subscribe((e) => {\n this.onHandleClose(e);\n });\n\n const attached = this.overlayRef.attach(this.templatePortal);\n\n if (this.watch) {\n try {\n if ('ResizeObserver' in window) {\n this.resizeObserver = new ResizeObserver(([{ contentRect }]) => {\n this.overlayRef.updatePosition();\n })\n .observe(attached.rootNodes[0]);\n }\n } catch (e) {\n // not to do\n }\n }\n }\n\n ngOnDestroy() {\n this.popover = false;\n this.subs.unsubscribe();\n this.eventsSubs.unsubscribe();\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core/interfaces';\n\nconst clear = createAction('[MECX Core Storage] Clear All');\nconst create = createAction('[MECX Core Storage] Create', props<{ data: MonkeyEcxStorage[] }>());\nconst deleteOne = createAction(\n '[MECX Core Storage] Delete One',\n props<{ data: MonkeyEcxStorage }>()\n);\nconst updateControl = createAction('[MECX Core Storage] Update Control', props<{ data: any }>());\nconst updateOne = createAction(\n '[MECX Core Storage] Update One',\n props<{ data: MonkeyEcxStorage }>()\n);\n\nexport { clear, create, deleteOne, updateControl, updateOne };\n","import { ActionReducer, INIT } from '@ngrx/store';\n\nexport const seederReducer = (keys: string[]) => {\n return (reducer: ActionReducer<any>): ActionReducer<any> => {\n return (state, action) => {\n const handledState = reducer(state, action);\n if (action.type === INIT) {\n let data: any = null;\n try {\n const storage = localStorage.getItem('mecx-store');\n const handled = atob(storage || '');\n if (handled !== '{}') {\n const storageValue = JSON.parse(atob(storage || ''));\n keys.forEach((key: string) => {\n let value: any = null;\n if (storageValue?.[key]) {\n value = {\n [key]: storageValue?.[key]\n };\n }\n\n data = {\n ...data,\n ...value\n };\n });\n }\n\n return data;\n } catch (e) {\n localStorage.removeItem('mecx-store');\n return handledState;\n }\n }\n\n let data: any = null;\n try {\n keys.forEach((key: string) => {\n data = {\n ...data,\n [key]: handledState[key]\n };\n });\n const handled = JSON.stringify(data);\n if (handled !== '{}') {\n localStorage.setItem('mecx-store', btoa(JSON.stringify(data)));\n }\n } catch (e) {\n localStorage.removeItem('mecx-store');\n }\n\n return handledState;\n };\n };\n};\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { createReducer, on } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core';\nimport * as actions from '../actions';\n\nexport const featureKey = 'mecx-core-storage';\n\nexport interface State extends EntityState<MonkeyEcxStorage> {\n control: {\n isLoading: boolean;\n };\n error: any;\n}\n\nexport const adapter: EntityAdapter<MonkeyEcxStorage> = createEntityAdapter<MonkeyEcxStorage>({\n selectId: (item: MonkeyEcxStorage) => {\n return item.username;\n }\n});\n\nexport const initialState: State = adapter.getInitialState({\n control: {\n isLoading: false\n },\n error: null\n});\n\nexport const reducer = createReducer(\n initialState,\n on(actions.monkeyecxStorage.clear, (state: any) => {\n return adapter.removeAll(state);\n }),\n on(actions.monkeyecxStorage.create, (state, action) => {\n return adapter.upsertMany(action.data, {\n ...state\n });\n }),\n on(actions.monkeyecxStorage.updateControl, (state, action) => {\n return {\n ...state,\n control: {\n ...state.control,\n ...action.data\n }\n };\n }),\n on(actions.monkeyecxStorage.updateOne, (state, action) => {\n const { username } = action.data;\n return adapter.upsertOne(\n { ...action.data, username },\n {\n ...state\n }\n );\n }),\n on(actions.monkeyecxStorage.deleteOne, (state, action) => {\n const { username } = action.data;\n return adapter.removeOne(username, state);\n })\n);\n\nexport const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors();\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core';\nimport * as reducers from '../reducers';\n\ndeclare type State = reducers.fromMonkeyecxStorage.State;\n\nexport const selectState = createFeatureSelector<reducers.fromMonkeyecxStorage.State>(\n reducers.fromMonkeyecxStorage.featureKey\n);\n\nexport const selectAll = createSelector(selectState, reducers.fromMonkeyecxStorage.selectAll);\n\nexport const select = (props: { username: string }) => {\n return createSelector(\n selectAll,\n (entities: MonkeyEcxStorage[]): MonkeyEcxStorage | undefined => {\n return entities.find((_: MonkeyEcxStorage) => {\n return _.username === props.username;\n });\n }\n );\n};\n\nexport const selectControl = () => {\n return createSelector(\n selectState,\n (state: State): any => {\n return state.control;\n }\n );\n};\n","export class Link {\n href: string;\n\n type: string;\n\n profile: string;\n\n templated: boolean;\n\n constructor(data?: any) {\n this.href = data?.href;\n this.type = data?.type;\n this.profile = data?.profile;\n this.templated = data?.templated;\n }\n}\n\nexport class MonkeyEcxModel {\n _links: any;\n\n public getAction(\n type: string,\n replaceOptions?: {\n from: string;\n to: string;\n }\n ): Link | null {\n const { _links } = this;\n if (!_links) return null;\n let link: Link = _links[type.toLowerCase()];\n link = new Link(link);\n if (link && replaceOptions && link?.templated) {\n const { from, to } = replaceOptions;\n link = new Link({\n ...link,\n href: `${link.href}`.replace(from, to)\n });\n }\n return link;\n }\n}\n","import { MonkeyEcxModel } from './monkeyecx-model';\n\nexport class MonkeyEcxLinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n\n this._links = data?._links;\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { MonkeyEcxRequestPaged } from '../../interfaces/monkeyecx-request-paged';\nimport { MonkeyEcxResponseLinks } from '../../interfaces/monkeyecx-response-links';\n\nexport class MonkeyEcxRequestPagedHandling {\n private url?: string;\n\n private pagedParams: MonkeyEcxRequestPaged;\n\n private links: MonkeyEcxResponseLinks;\n\n private samePage = false;\n\n constructor(\n url?: string,\n pagedParams?: MonkeyEcxRequestPaged,\n links?: any,\n samePage: boolean = false\n ) {\n this.url = url;\n this.pagedParams = pagedParams || {\n page: {},\n };\n this.links = links;\n this.samePage = samePage;\n }\n\n private handlePagedValuesFromApi(url: string = '') {\n if (url.search('\\\\?') < 0) return url;\n const params = url.substring(url.search('\\\\?') + 1, url.length);\n url = url.substring(0, url.search('\\\\?'));\n return `${url}?${new HttpParams({\n fromString: params,\n })\n .delete('size')\n .delete('page')\n .toString()}`;\n }\n\n private getUrlParams(url: string): string {\n const { pagedParams } = this;\n const { number, size } = pagedParams?.page || {};\n const hasInitialQueryParams = url.search('\\\\?') > 0;\n return `${!hasInitialQueryParams ? '?' : '&'}page=${number || 0}&size=${size || 20}`;\n }\n\n public getRequestWithPagedParams(): string {\n const { url, links, samePage } = this;\n if (samePage && links.self) {\n return links.self.href;\n }\n if (links && links.next) {\n return links.next.href;\n }\n const handled = this.handlePagedValuesFromApi(url);\n return `${handled}${this.getUrlParams(handled)}`;\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport {\n ActivatedRouteSnapshot,\n NavigationStart,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { filter, take, takeWhile } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport {\n MonkeyEcxCompanyPendenciesValidated,\n MonkeyEcxConfig,\n MonkeyEcxCountrySecurity,\n MonkeyEcxErrorResponse,\n MonkeyEcxHandledErrorResponse,\n MonkeyEcxRequestPaged,\n MonkeyEcxRequestSchedule,\n MonkeyEcxResponseLinks,\n MonkeyEcxResponsePaged,\n MonkeyEcxSavedState,\n MonkeyEcxTranslateOptions\n} from '../../interfaces';\nimport { MonkeyEcxModel } from '../../model';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxFeatureToggleService } from '../config/monkeyecx-feature-toggle.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxPaginationService } from '../pagination';\nimport { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';\nimport { MonkeyEcxRequestQueueHandlingService } from '../request-queue/monkeyecx-request-queue-handling.service';\nimport { MonkeyEcxRequestScheduleService } from '../schedules/monkeyecx-request-schedule.service';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\n\nclass LinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n this._links = data?._links;\n }\n}\n\nexport class MonkeyEcxCommonsService {\n private flagValidator = true;\n\n private destroyed = false;\n\n __data$: Observable<any> | null = null;\n\n __pagination$: Observable<any> | null = null;\n\n __control$: Observable<any> | null = null;\n\n __page$: Observable<any> | null = null;\n\n __data: any | any[];\n\n __savedState: MonkeyEcxSavedState | null = null;\n\n __params: any | any[];\n\n __error: MonkeyEcxErrorResponse | null = null;\n\n __handledError: MonkeyEcxHandledErrorResponse | null = null;\n\n __page: MonkeyEcxResponsePaged | null = null;\n\n __links: MonkeyEcxResponseLinks | null = null;\n\n __search: any;\n\n __requestPaged: MonkeyEcxRequestPaged | null = null;\n\n __onSearchChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onLoadingInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onUploadInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onDataDeleted$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onErrorChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onGovernmentIdDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onZipCodeDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __oni18nDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDoSearch$: BehaviorSubject<MonkeyEcxRequestPaged> = new BehaviorSubject({});\n\n __schedule: MonkeyEcxRequestSchedule | null = null;\n\n __i18n: any;\n\n __callbackPagination: Function = () => {\n // eslint-disable-next-line no-console\n return console.error('Method callbackPagination needs to be declared');\n };\n\n __paginationOptions: {\n service: MonkeyEcxPaginationService;\n callback: Function;\n name?: string;\n } | undefined;\n\n __isAbleToDoPagination = {};\n\n constructor(\n public monkeyecxService?: MonkeyEcxService,\n public tokenStorage?: MonkeyEcxTokenStorageService,\n public otherArgs?: {\n router?: Router;\n schedule?: {\n service: MonkeyEcxRequestScheduleService;\n options?: {\n clearOnChangeRoute?: boolean;\n };\n };\n queue?: {\n service: MonkeyEcxRequestQueueHandlingService;\n };\n }\n ) {\n this.handleInit();\n }\n\n private handleInit() {\n if (this.otherArgs?.router) {\n const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {\n clearOnChangeRoute: false\n };\n\n this.otherArgs.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n }),\n takeWhile(() => {\n return !this.destroyed;\n })\n )\n .subscribe(() => {\n if (this.__schedule && clearOnChangeRoute) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n });\n }\n }\n\n private navigateToPendencyPage(\n arg: MonkeyEcxCompanyPendenciesValidated,\n companyType?: string,\n router?: Router\n ) {\n let route = '/app';\n\n if (companyType) {\n route = `${route}/${companyType}/pages`;\n } else {\n route = `${route}/user/profile/pages`;\n }\n\n if (!router) {\n // eslint-disable-next-line no-console\n console.error('Router must be declared');\n } else {\n router.navigate([`${route}/company-pendency`.toLowerCase()], {\n state: {\n pendencyData: arg\n }\n });\n }\n }\n\n private allowedSecurityAccessByPendency(args: any): MonkeyEcxCompanyPendenciesValidated {\n if (!args) {\n return {\n hasPendencies: false\n };\n }\n const { service, type } = args;\n return service.hasPendencies(type);\n }\n\n private allowedSecurityAccessByFeature(args: any): boolean {\n if (!args) {\n return true;\n }\n const { config, feature } = args;\n try {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\n return true;\n }\n return !config?.program?.settings?.[feature];\n } catch (e) {\n // not to do\n }\n return true;\n }\n\n private allowedSecurityAccessByCountry(arg?: MonkeyEcxCountrySecurity): boolean {\n if (!arg) return true;\n return arg.country === arg.envCountry;\n }\n\n private handlePaginationOptions() {\n const { __paginationOptions } = this;\n if (__paginationOptions) {\n const { service, callback, name } = __paginationOptions;\n service?.setCallback((type: string) => {\n this.doPaginationv2(type, callback);\n }, name || 'main');\n }\n }\n\n setPage(requestPaged: MonkeyEcxRequestPaged) {\n this.__requestPaged = {\n ...this.__requestPaged,\n ...requestPaged\n };\n return this;\n }\n\n nextPage(): boolean {\n if (this.__links) {\n return !!this.__links?.next;\n }\n if (!this.__requestPaged) return false;\n const { page } = this.__requestPaged as any;\n const { number, totalPages } = page;\n if (number < totalPages) {\n this.__requestPaged = {\n ...this.__requestPaged,\n page: {\n ...page,\n number: number + 1\n }\n };\n return true;\n }\n return false;\n }\n\n getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n getNormalizedUrl(url: string, samePage = false): string {\n const { __requestPaged, __links } = this;\n return new MonkeyEcxRequestPagedHandling(\n url,\n __requestPaged || {},\n __links,\n samePage\n ).getRequestWithPagedParams();\n }\n\n clear(clearData: boolean) {\n if (clearData) {\n this.__data = null;\n this.__requestPaged = null;\n this.__params = null;\n this.__page = null;\n this.__links = null;\n\n if (this.__schedule) {\n const { queue } = this.__schedule;\n if (queue) {\n this.otherArgs?.queue?.service?.removeQueueItem(queue);\n }\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n }\n this.__error = null;\n this.__handledError = null;\n this.flagValidator = false;\n this.destroyed = true;\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: {\n companyType?: string,\n callbackMain: Function;\n router?: Router;\n callbackPagination?: Function;\n translateOptions?: MonkeyEcxTranslateOptions;\n feature?: {\n service: MonkeyEcxFeatureToggleService;\n flag: string;\n };\n featureByProgram?: {\n config: MonkeyEcxConfig;\n feature: string;\n };\n countrySecurity?: MonkeyEcxCountrySecurity;\n pendency?: {\n service: {\n hasPendencies: Function;\n };\n type: string;\n };\n paginationOptions?: {\n service: MonkeyEcxPaginationService,\n callback: Function,\n name?: string\n }\n }\n ) {\n if (JSON.stringify(route?.queryParams) === '{}') {\n this.__data = null;\n this.__page = null;\n }\n\n this.__requestPaged = null;\n this.flagValidator = true;\n\n const pend = this.allowedSecurityAccessByPendency(otherArgs?.pendency);\n const allowedByProgram = this.allowedSecurityAccessByFeature(otherArgs?.featureByProgram);\n\n if (\n this.allowedSecurityAccessByCountry(otherArgs?.countrySecurity) &&\n !pend.hasPendencies &&\n allowedByProgram\n ) {\n if (this.__schedule) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n\n const { __requestPaged } = this;\n if (!__requestPaged) {\n this.setPage({\n page: {\n number: 0,\n size: 10\n }\n });\n }\n\n if (otherArgs?.translateOptions) {\n const { service, keys } = otherArgs?.translateOptions;\n this.geti18n(service, keys || '');\n }\n\n if (otherArgs?.callbackPagination) {\n this.__callbackPagination = otherArgs.callbackPagination;\n }\n\n if (otherArgs?.paginationOptions) {\n this.__paginationOptions = otherArgs?.paginationOptions;\n this.handlePaginationOptions();\n }\n\n if (otherArgs?.feature) {\n const { flag, service } = otherArgs.feature;\n\n service.onFlags\n .pipe(\n takeWhile(() => {\n return this.flagValidator;\n })\n )\n .subscribe((val: boolean) => {\n if (val) {\n const hasFlag = service.getFlag(flag);\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {\n if (!hasFlag) {\n this.navigateToErrorPage(404, otherArgs?.router);\n }\n }\n }\n });\n }\n\n otherArgs?.callbackMain();\n } else if (!allowedByProgram) {\n this.navigateToErrorPage(404, otherArgs?.router);\n } else if (pend.hasPendencies) {\n this.navigateToPendencyPage(pend, otherArgs?.companyType, otherArgs?.router);\n } else {\n this.navigateToErrorPage(403, otherArgs?.router);\n }\n }\n\n getHTTPHeaderApplicationPDF(): Object {\n return {\n observe: 'response',\n responseType: 'blob'\n };\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true\n }\n })\n genericMethod(link: any, data?: any, callback?: Function) {\n const { href, type = 'get' } = link;\n\n this.monkeyecxService?.[type.toLowerCase()](`${href}`, data)?.subscribe(\n (resp: any) => {\n if (callback) callback(resp);\n },\n (err: HttpErrorResponse) => {\n if (callback) callback();\n throwError(err);\n }\n );\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true\n }\n })\n async getGenericData(data: any, action: string) {\n const { monkeyecxService } = this;\n if (!monkeyecxService) return null;\n const { href, type } = new LinksModel(data)?.getAction(action) || {\n href: '', type: 'get'\n };\n\n return monkeyecxService[type.toLowerCase()]<any>(href)\n .pipe(take(1)).toPromise();\n }\n\n geti18n(translateService: TranslateService, keys: string | string[]) {\n translateService.onDefaultLangChange.subscribe(() => {\n this.__i18n = translateService.instant(keys);\n this.__oni18nDataChanged$.next(null);\n });\n translateService.getStreamOnTranslationChange(keys).subscribe(() => {\n this.__i18n = translateService.instant(keys);\n this.__oni18nDataChanged$.next(null);\n });\n }\n\n doPagination() {\n if (!this.__onLoadingInProgress$.value) {\n const hasMorePages = this.setPage({\n page: {\n ...this.__page\n }\n }).nextPage();\n\n if (hasMorePages && this.__callbackPagination) {\n this.__callbackPagination();\n }\n }\n }\n\n doPaginationv2(type: string, callback: Function) {\n if (!this.__onLoadingInProgress$.value) {\n if (callback) {\n callback(type);\n }\n }\n }\n\n setLinks(links: any) {\n this.__isAbleToDoPagination = {\n first: !!links?.first,\n next: !!links?.next\n };\n this.__links = links;\n }\n\n setSearchByUrl(router: Router, url: string, search: any, extras?: any) {\n this.__data = null;\n this.__page = null;\n this.__onDataChanged$.next(null);\n this.__onLoadingInProgress$.next(false);\n\n router.navigate([url], {\n queryParams: {\n ...search,\n r: MonkeyEcxUtils.getRandomString(30)\n },\n queryParamsHandling: 'merge',\n ...extras\n });\n }\n\n saveState(state: MonkeyEcxSavedState) {\n this.__savedState = {\n page: this.__page,\n ...state\n };\n }\n\n navigateToErrorPage(statusCode: number, router?: Router) {\n const routes: any = {\n 403: 'forbidden',\n 404: 'not-found',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n if (!router) {\n console.error('Router must be declared');\n } else {\n router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()]);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Action, Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '.';\nimport {\n MonkeyEcxDiscoveryParamsService,\n MonkeyEcxPaginationService,\n MonkeyEcxTokenStorageService\n} from '../..';\nimport {\n MonkeyEcxCommonsConfig,\n MonkeyEcxCommonsSearch,\n MonkeyEcxInitialResolverConfig\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\nexport abstract class MonkeyEcxCommonsResolveBaseService extends MonkeyEcxCommonsService {\n private action: any;\n\n protected route: string | null = null;\n\n protected currentRoute: string | null = null;\n\n protected paginationService = inject(MonkeyEcxPaginationService);\n\n protected translateService = inject(TranslateService);\n\n protected router = inject(Router);\n\n protected store = inject(Store);\n\n protected monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n config: {\n actions: {\n load: Action;\n loadPagination?: Action;\n }\n }\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions } = config;\n this.action = actions;\n }\n\n protected async getData() {\n try {\n const { store, route, action, tokenStorage } = this;\n const { companyId, governmentId } = await tokenStorage?.getToken();\n\n if (!route) return;\n\n const url = MonkeyEcxUtils.replaceVariables(route, { companyId, governmentId });\n\n store.dispatch(action.load({ url }));\n } catch (e) {\n throw new Error(`MECX Core - Method getData -> ${e}`);\n }\n }\n\n protected async loadPage(actionType: string) {\n try {\n const { store, action } = this;\n store.dispatch(\n action.loadPagination({\n pagination: {\n action: actionType\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method loadPage -> ${e}`);\n }\n }\n\n /**\n * @description Inicializar a class genérica\n * @param (args: MonkeyEcxInitialResolverConfig)\n * => route é obrigátorio pois ele quem inicializa a store.\n * A searchClass só se faz necessaria quando for usar filtros\n */\n protected init(args: MonkeyEcxInitialResolverConfig) {\n try {\n const { searchClass, route } = args;\n\n this.route = route;\n\n if (searchClass) {\n // eslint-disable-next-line new-cap\n const searchInstance: MonkeyEcxCommonsSearch = new searchClass(this.__search);\n\n this.route = `${route}${searchInstance.buildParams()}`;\n\n this.__onSearchChanged$.next(searchInstance);\n }\n\n this.getData();\n } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: MonkeyEcxCommonsConfig\n ) {\n this.__search = route?.queryParams;\n\n const [currentRoute] = state?.url.split('?') || [null];\n\n this.currentRoute = currentRoute;\n\n super.resolve(route, state, otherArgs);\n }\n\n /**\n * @description Atualizar os filtros da tela\n * @param (search: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public setSearch<T>(search: T, route?: string): void {\n try {\n const { currentRoute, router } = this;\n\n this.setSearchByUrl(router, route || `${currentRoute}`, search);\n } catch (e) {\n throw new Error(`MECX Core - Method setSearch -> ${e}`);\n }\n }\n\n /**\n * @description Navegação para details.\n * Por padrão sera redirecionado para '${currentRoute}/details'\n * @param (detailsData: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public navigateToDetails<T>(detailsData: T, route?: string) {\n try {\n const { router, currentRoute } = this;\n\n router.navigate([route || `${currentRoute}/details`], {\n state: {\n detailsData\n }\n });\n } catch (e) {\n throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Action, Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '.';\nimport {\n MonkeyEcxDiscoveryParamsService,\n MonkeyEcxPaginationService,\n MonkeyEcxTokenStorageService\n} from '../..';\nimport {\n MonkeyEcxCommonsConfig,\n MonkeyEcxCommonsSearch,\n MonkeyEcxInitialResolverConfig\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\ndeclare type Selectors =\n | {\n selectByIdentifier: Function;\n selectOneByIdentifier?: never;\n selectControl: Function;\n selectLinks?: Function;\n selectPage?: Function;\n }\n | {\n selectOneByIdentifier: Function;\n selectByIdentifier?: never;\n selectControl: Function;\n };\n\nexport abstract class MonkeyEcxCommonsResolveService extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n protected route: string | null = null;\n\n protected currentRoute: string | null = null;\n\n protected paginationService = inject(MonkeyEcxPaginationService);\n\n protected translateService = inject(TranslateService);\n\n protected router = inject(Router);\n\n protected store = inject(Store);\n\n protected monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n config: {\n actions: {\n load: Action;\n loadPagination?: Action;\n };\n selectors: Selectors;\n }\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n protected async getData() {\n try {\n const { store, route, action, selector, tokenStorage } = this;\n\n const { companyId, companyType, governmentId } = await tokenStorage?.getToken();\n\n const identifier = `${companyId || governmentId}-${companyType}`;\n\n if (!route) return;\n\n const url = MonkeyEcxUtils.replaceVariables(route, { companyId });\n\n store.dispatch(action.load({ url, identifier }));\n\n this.__control$ = store.select(selector.selectControl());\n\n if (selector?.selectByIdentifier) {\n this.__data$ = store.select(selector.selectByIdentifier({ identifier }));\n }\n\n if (selector?.selectOneByIdentifier) {\n this.__data$ = store.select(selector.selectOneByIdentifier({ identifier }));\n }\n\n if (selector?.selectLinks) {\n this.__pagination$ = store.select(selector.selectLinks({ identifier }));\n }\n\n if (selector?.selectPage) {\n this.__page$ = store.select(selector.selectPage({ identifier }));\n }\n\n this.__onDataChanged$.next(null);\n } catch (e) {\n throw new Error(`MECX Core - Method getData -> ${e}`);\n }\n }\n\n protected async loadPage() {\n try {\n const { store, tokenStorage, action } = this;\n const { companyId, companyType, governmentId } = await tokenStorage?.getToken();\n\n store.dispatch(\n action.loadPagination({\n identifier: `${companyId || governmentId}-${companyType}`,\n pagination: {\n action: 'next'\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method loadPage -> ${e}`);\n }\n }\n\n /**\n * @description Inicializar a class genérica\n * @param (args: MonkeyEcxInitialResolverConfig)\n * => route é obrigátorio pois ele quem inicializa a store.\n * A searchClass só se faz necessaria quando for usar filtros\n */\n protected init(args: MonkeyEcxInitialResolverConfig) {\n try {\n const { searchClass, route } = args;\n\n this.route = route;\n\n if (searchClass) {\n // eslint-disable-next-line new-cap\n const searchInstance: MonkeyEcxCommonsSearch = new searchClass(this.__search);\n\n this.route = `${route}${searchInstance.buildParams()}`;\n\n this.__onSearchChanged$.next(searchInstance);\n }\n\n this.getData();\n } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: MonkeyEcxCommonsConfig\n ) {\n this.__search = route?.queryParams;\n\n const [currentRoute] = state?.url.split('?') || [null];\n\n this.currentRoute = currentRoute;\n\n super.resolve(route, state, otherArgs);\n }\n\n /**\n * @description Atualizar os filtros da tela\n * @param (search: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public setSearch<T>(search: T, route?: string): void {\n try {\n const { currentRoute, router } = this;\n\n this.setSearchByUrl(router, route || `${currentRoute}`, search);\n } catch (e) {\n throw new Error(`MECX Core - Method setSearch -> ${e}`);\n }\n }\n\n /**\n * @description Navegação para details.\n * Por padrão sera redirecionado para '${currentRoute}/details'\n * @param (detailsData: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public navigateToDetails<T>(detailsData: T, route?: string) {\n try {\n const { router, currentRoute } = this;\n\n router.navigate([route || `${currentRoute}/details`], {\n state: {\n detailsData\n }\n });\n } catch (e) {\n throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nlet window: any;\n\nconst text: any = {\n i18n: {\n title: 'We have an quick update for you',\n message: 'Click anywhere here to reload your locale',\n },\n theme: {\n title: 'We have an quick update for you',\n message: 'Click anywhere here to reload your theme',\n },\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonkeyEcxErrorConfigService {\n constructor() {\n // not to do\n }\n\n private enableSupport() {\n window.zE('webWidget', 'updateSettings', {\n webWidget: {\n color: {\n theme: '#0273E8',\n launcherText: '#fff',\n header: '#0273E8',\n button: '#0273E8',\n },\n zIndex: 99,\n offset: {\n horizontal: '1px',\n vertical: '20px',\n },\n mobile: {\n labelVisible: true,\n },\n launcher: {\n mobile: {\n labelVisible: true,\n },\n },\n },\n });\n window.zE('webWidget', 'setLocale', 'en-US');\n window.zE('webWidget', 'show');\n }\n\n public apply(type: string) {\n const { title, message } = text?.[type];\n\n const element = document.createElement('div');\n element.id = 'monkeyecx-information';\n\n const elementImg = document.createElement('img');\n elementImg.width = 128;\n elementImg.src = 'assets/images/monkey.svg';\n elementImg.style.marginBottom = '50px';\n\n const elementTitle = document.createElement('span');\n elementTitle.id = 'title';\n elementTitle.innerText = title;\n elementTitle.style.marginBottom = '20px';\n\n const elementMessage = document.createElement('span');\n elementMessage.id = 'message';\n elementMessage.innerText = message;\n elementMessage.style.marginBottom = '20px';\n\n const elementChat = document.createElement('span');\n elementChat.id = 'message';\n elementChat.innerText =\n \"If you're having trouble to update, please use the support icon bellow\";\n\n element.appendChild(elementImg);\n element.appendChild(elementTitle);\n element.appendChild(elementMessage);\n element.appendChild(elementChat);\n\n element.addEventListener('click', () => {\n document.location.reload();\n });\n\n document.body.appendChild(element);\n\n document.body.getElementsByTagName('app-root')[0].remove();\n this.enableSupport();\n }\n}\n","/* eslint-disable no-console */\nimport { registerLocaleData } from '@angular/common';\nimport esCL from '@angular/common/locales/es-CL';\nimport esMX from '@angular/common/locales/es-MX';\nimport ptBr from '@angular/common/locales/pt';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxMeCredentials } from '../../interfaces/monkeyecx-me-credentials';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxErrorConfigService } from '../config/monkeyecx-error-config.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxi18nConfigService extends MonkeyEcxCommonsService {\n private i18nNotFound = false;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private translateService: TranslateService,\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService\n ) {\n super(monkeyecxService, tokenStorage);\n }\n\n private async loadInternalDefaultFromError(environment: any) {\n const lang = 'pt-BR';\n\n const url = `${environment.localAssets}/i18n/${lang}.json`;\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n this.i18nNotFound = true;\n }\n\n private async loadDefaultFromError(environment: any, name: string) {\n const lang = 'pt-BR';\n\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name,\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n this.i18nNotFound = true;\n }\n\n private async loadAuth(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'auth',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadAuth i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'auth');\n }\n }\n\n private async loadAlerts(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'alerts',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadAlerts i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'alerts');\n }\n }\n\n private async loadShared(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'shared',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadShared i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'shared');\n }\n }\n\n private async loadRegister(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'register',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadRegister i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'register');\n }\n }\n\n private async loadInternal(environment: any, lang: string) {\n try {\n const url = `${environment.localAssets}/i18n/${lang}.json`;\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadInternal i18n ${lang} not found!`);\n await this.loadInternalDefaultFromError(environment);\n }\n }\n\n public async apply(environment: any) {\n let lang = environment?.locale?.lang || 'pt-BR';\n\n try {\n const me: MonkeyEcxMeCredentials = JSON.parse(localStorage.getItem('me') || '{}');\n lang = me?.locale || lang;\n } catch (e) {\n // not to do\n }\n\n if (lang === 'es-CL') {\n registerLocaleData(esCL);\n } else if (lang === 'es-MX') {\n registerLocaleData(esMX);\n } else {\n registerLocaleData(ptBr);\n }\n\n await this.loadAuth(environment, lang);\n await this.loadInternal(environment, lang);\n this.loadAlerts(environment, lang);\n this.loadShared(environment, lang);\n this.loadRegister(environment, lang);\n\n if (this.i18nNotFound) {\n this.translateService.setDefaultLang('pt-BR');\n this.translateService.use('pt-BR');\n return;\n }\n\n this.translateService.setDefaultLang(lang);\n this.translateService.use(lang);\n }\n\n public applyExternal(params: MonkeyEcxConfig, lang: string) {\n try {\n const currentExternali18n = params?.externali18n?.[`${lang}`];\n\n let data = {};\n if (currentExternali18n) {\n data = {\n EXTERNAL: currentExternali18n\n };\n }\n\n this.translateService.setTranslation(lang, data, true);\n } catch (e) {\n console.error(`loadExternal i18n ${lang} not found!`);\n this.monkeyecxErrorConfigService.apply('i18n');\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\nimport { MonkeyEcxMeCredentials } from '../../interfaces/monkeyecx-me-credentials';\nimport { MonkeyEcxTokenCredentials } from '../../interfaces/monkeyecx-token-credentials';\nimport { MonkeyEcxTokenStorageService } from '../../services/storage/monkeyecx-token-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLogsConfigService {\n private allSet = false;\n\n constructor(\n private injector: Injector\n ) {\n // not to do\n }\n\n public apply(\n params: MonkeyEcxConfig,\n configBootstrap: MonkeyEcxConfigBootstrap,\n environment: any,\n identifyCode: string\n ) {\n const { program, logs } = params;\n if (logs?.enabled && environment.environment !== 'dev' && !this.allSet) {\n datadogRum.init({\n applicationId: environment?.dataDogApplicationId,\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n sessionSampleRate: 100,\n sessionReplaySampleRate: 100,\n env: `monkey-front-${identifyCode}-${environment.environment}`,\n version: configBootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n trackResources: true,\n trackLongTasks: true,\n trackUserInteractions: true,\n defaultPrivacyLevel: 'mask-user-input'\n });\n datadogRum.startSessionReplayRecording();\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.init({\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n env: `monkey-front-${identifyCode}-${environment.environment}`,\n version: configBootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n forwardErrorsToLogs: true,\n sessionSampleRate: 100,\n forwardConsoleLogs: 'all'\n });\n }\n\n this.allSet = true;\n }\n this.applyInfoToDataDog(environment);\n }\n\n public async applyInfoToDataDog(environment: any) {\n try {\n const tokenStorage = this.injector.get(MonkeyEcxTokenStorageService);\n const token: MonkeyEcxTokenCredentials = await tokenStorage.getToken();\n if (token.accessToken && environment.dataDogApplicationId) {\n const me: MonkeyEcxMeCredentials = await tokenStorage.getMe();\n\n const user = {\n id: token.username,\n email: token.username,\n name: me.name,\n locale: me.locale\n };\n\n datadogRum.setUser(user);\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.setUser(user);\n }\n }\n } catch (e) {\n // not to do\n }\n }\n\n public clearDataDogInfo() {\n datadogRum.clearUser();\n }\n}\n","import { ApplicationRef, Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { concat, interval } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxServiceWorkerConfigService {\n constructor(\n private appRef: ApplicationRef,\n private updates: SwUpdate,\n private modalService: MonkeyStyleGuideModalFixedService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\n const { updates, modalService } = this;\n updates?.available?.subscribe(() => {\n if (!config.showNewVersion || config.maintenance.closed) {\n document.location.reload();\n } else {\n modalService.closeAll();\n modalService.open(VersionChangedComponent, {\n hideClose: true,\n color: 'theme',\n size: 'md'\n });\n }\n });\n }\n\n private verify() {\n const { appRef, updates } = this;\n const appIsStable$ = appRef.isStable\n .pipe(first((isStable: boolean) => { return isStable === true; }));\n const everyHour$ = interval(1 * 60 * 60 * 1000);\n const everyHourOnceAppIsStable$ = concat(appIsStable$, everyHour$);\n everyHourOnceAppIsStable$.subscribe(() => {\n updates.checkForUpdate();\n });\n updates.checkForUpdate();\n }\n\n public apply(config: MonkeyEcxConfigBootstrap) {\n this.handleValidation(config);\n this.verify();\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyEcxCommonsService } from '../commons';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxSecurityConsoleConfigService extends MonkeyEcxCommonsService {\n private unsubscribeAll = new Subject();\n\n constructor(private translateService: TranslateService) {\n super();\n\n this.geti18n(this.translateService, 'SERVICES.WARNING.CONSOLE');\n }\n\n private handleValidation() {\n this.__oni18nDataChanged$\n .pipe(takeUntil(this.unsubscribeAll)).subscribe(() => {\n const { __i18n } = this;\n const title = __i18n?.TITLE;\n const message = __i18n?.MESSAGE;\n if (title) {\n console.log(`%c${title}`, 'background: #f2f061; color: #ff0000; font-size: 18px');\n console.log(`%c${message}`, 'font-size: x-large');\n console.log(\n '%c __ __ _ ______ \\n ' +\n '| \\\\/ | ___ _ __ | | _____ _ _\\\\ \\\\ \\\\ \\\\ \\n ' +\n \"| |\\\\/| |/ _ \\\\| '_ \\\\| |/ / _ \\\\ | | |\\\\ \\\\ \\\\ \\\\ \\n \" +\n '| | | | (_) | | | | < __/ |_| |/ / / / \\n ' +\n '|_| |_|\\\\___/|_| |_|_|\\\\_\\\\___|\\\\__, /_/_/_/ \\n ' +\n ' |___/ \\n ' +\n '', 'background: #1976d2; color: #fff'\n );\n\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n });\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { ClosedToMaintenanceComponent } from '../../../components/closed-to-maintenance/closed-to-maintenance.component';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxMaintenanceConfigService {\n constructor(private modalService: MonkeyStyleGuideModalService, private router: Router) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\n if (config.maintenance.closed) {\n localStorage.clear();\n this.router.navigate(['']);\n\n setTimeout(() => {\n this.modalService.open(ClosedToMaintenanceComponent, {\n color: 'theme',\n size: 'md',\n data: config\n });\n }, 200);\n }\n }\n\n public apply(config: MonkeyEcxConfigBootstrap) {\n this.handleValidation(config);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LDClient, LDFlagSet, initialize } from 'launchdarkly-js-client-sdk';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxFeatureToggleService {\n private readonly flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n private flags: LDFlagSet | undefined = undefined;\n\n private ldClient: LDClient | undefined = undefined;\n\n constructor() {\n // not to do\n }\n\n private getAllFlags(): void {\n if (!this) return;\n this.flags = this.ldClient?.allFlags();\n\n this.flagSubject$.next(true);\n }\n\n private identify(config: MonkeyEcxConfig, environment: any): void {\n if (config) {\n const email = 'monkey@monkey.exchange';\n const user = {\n email,\n kind: 'user',\n key: `${config.program?.token}#${email}`\n };\n\n if (!this.ldClient) {\n this.ldClient = initialize(environment.launchDarklyClientSideID, user, {\n streaming: true,\n sendEvents: true,\n logger: {\n debug: () => {},\n warn: () => {},\n info: () => {},\n error: (args: any) => {\n console.log('Monkey Client => ', args);\n }\n }\n });\n\n this.ldClient.on('change', this.getAllFlags.bind(this));\n this.ldClient.on('ready', this.getAllFlags.bind(this));\n } else {\n this.ldClient.identify(user, undefined, this.getAllFlags);\n }\n }\n }\n\n public apply(configSubject$: BehaviorSubject<MonkeyEcxConfig>, environment: any) {\n if (environment.launchDarklyClientSideID) {\n configSubject$.subscribe((config) => {\n this.identify(config, environment);\n });\n } else {\n this.flagSubject$.next(true);\n }\n }\n\n public get onFlags(): Observable<any> {\n return this.flagSubject$.asObservable();\n }\n\n public getFlag(flag: string): boolean | null {\n const flagValue = this.flags?.[flag];\n\n return MonkeyUtils.persistNullEmptyUndefined(flagValue) ? flagValue : null;\n }\n\n public sendEvent(key: string, data: any) {\n this.ldClient?.track(key, data);\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\n\ndeclare const window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxGTMConfigService {\n constructor() {\n // not to do\n }\n\n private handleCode(key: string) {\n try {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js'\n });\n const head = document.querySelector('head');\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=GTM-${key}`;\n head?.appendChild(script);\n\n const body = document.querySelector('body');\n const noscript = document.createElement('noscript');\n const iframe = document.createElement('iframe');\n iframe.src = `https://www.googletagmanager.com/ns.html?id=GTM-${key}`;\n iframe.height = '0';\n iframe.width = '0';\n iframe.style.display = 'none';\n iframe.style.visibility = 'hidden';\n noscript.appendChild(iframe);\n body?.appendChild(noscript);\n } catch (e) {\n console.error('GTM Configuration Error!');\n }\n }\n\n public apply(environment: any) {\n const { gtm } = environment;\n const { enabled, key } = gtm || { enabled: false, key: '' };\n if (enabled && environment.environment !== 'dev') {\n this.handleCode(key);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { AlertsComponent } from '../../../components/alerts/alerts.component';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\nconst moment: any = moment_;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsConfigService {\n constructor(private modalService: MonkeyStyleGuideModalFixedService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfig) {\n if (config.alert) {\n const { img, title, message, endDate, noEndDate, action, hideClose } = config.alert;\n if (moment.default().isSameOrBefore(moment.default(endDate)) || noEndDate) {\n this.modalService.open(AlertsComponent, {\n hideClose: true,\n color: 'theme',\n size: 'md',\n data: {\n img,\n title,\n message,\n action,\n hideClose\n }\n });\n }\n }\n }\n\n public apply(config: MonkeyEcxConfig) {\n this.handleValidation(config);\n }\n}\n","/* eslint-disable no-console */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideSettingsService } from 'monkey-style-guide';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\nimport { MonkeyEcxCommonsService } from '../commons/monkeyecx-commons.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxAlertsConfigService } from './monkeyecx-alerts-config.service';\nimport { MonkeyEcxErrorConfigService } from './monkeyecx-error-config.service';\nimport { MonkeyEcxFeatureToggleService } from './monkeyecx-feature-toggle.service';\nimport { MonkeyEcxGTMConfigService } from './monkeyecx-gtm-config.service';\nimport { MonkeyEcxi18nConfigService } from './monkeyecx-i18n-config.service';\nimport { MonkeyEcxLogsConfigService } from './monkeyecx-logs-config.service';\nimport { MonkeyEcxMaintenanceConfigService } from './monkeyecx-maintenance-config.service';\nimport { MonkeyEcxSecurityConsoleConfigService } from './monkeyecx-security-console-config.service';\nimport { MonkeyEcxServiceWorkerConfigService } from './monkeyecx-service-worker-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxConfigService extends MonkeyEcxCommonsService {\n private readonly configSubject$: BehaviorSubject<MonkeyEcxConfig>;\n\n private readonly configBootstrapSubject$: BehaviorSubject<MonkeyEcxConfig>;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n private monkeyecxi18nConfigService: MonkeyEcxi18nConfigService,\n private monkeyecxLogsConfigService: MonkeyEcxLogsConfigService,\n private monkeyStyleGuideSettingsService: MonkeyStyleGuideSettingsService,\n private monkeyecxServiceWorkerConfigService: MonkeyEcxServiceWorkerConfigService,\n private monkeyecxSecurityConsoleConfigService: MonkeyEcxSecurityConsoleConfigService,\n private monkeyecxMaintenanceConfigService: MonkeyEcxMaintenanceConfigService,\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService,\n private monkeyEcxFeatureToggleService: MonkeyEcxFeatureToggleService,\n private monkeyGTMConfigService: MonkeyEcxGTMConfigService,\n private monkeyEcxAlertsConfigService: MonkeyEcxAlertsConfigService\n ) {\n super(monkeyecxService);\n this.configSubject$ = new BehaviorSubject({});\n this.configBootstrapSubject$ = new BehaviorSubject({});\n }\n\n private async getSettings(\n monkeyecxCode: string,\n configBootstrap: MonkeyEcxConfigBootstrap,\n callback: Function,\n environment: any,\n identifyCode: string\n ) {\n const {\n monkeyecxSecurityConsoleConfigService,\n monkeyecxServiceWorkerConfigService,\n monkeyecxMaintenanceConfigService,\n monkeyStyleGuideSettingsService,\n monkeyGTMConfigService,\n getWhiteLabel,\n monkeyecxi18nConfigService\n } = this;\n\n monkeyecxServiceWorkerConfigService.apply(configBootstrap);\n monkeyecxMaintenanceConfigService.apply(configBootstrap);\n monkeyecxSecurityConsoleConfigService.apply();\n monkeyGTMConfigService.apply(environment);\n\n const url = `${environment.urlAssets}/${monkeyecxCode.toLowerCase()}`;\n\n await monkeyecxi18nConfigService.apply(environment);\n\n monkeyStyleGuideSettingsService.bootstrap(\n `${url}/monkey-style-guide-settings.json`,\n getWhiteLabel.bind(this, configBootstrap, callback, environment, identifyCode, url)\n );\n }\n\n private getWhiteLabel(\n configBootstrap: MonkeyEcxConfigBootstrap,\n callback: Function,\n environment: any,\n identifyCode: string,\n url: string\n ) {\n const {\n monkeyecxService,\n configSubject$,\n monkeyecxLogsConfigService,\n monkeyecxErrorConfigService,\n monkeyEcxFeatureToggleService,\n monkeyecxi18nConfigService,\n monkeyEcxAlertsConfigService\n } = this;\n\n monkeyecxService?.get<any>(`${url}/white-label.json`)?.subscribe(\n async (config: MonkeyEcxConfig) => {\n monkeyecxi18nConfigService.applyExternal(config, environment?.locale?.lang || 'pt-BR');\n monkeyecxLogsConfigService.apply(config, configBootstrap, environment, identifyCode);\n monkeyEcxFeatureToggleService.apply(configSubject$, environment);\n monkeyEcxAlertsConfigService.apply(config);\n configSubject$.next(config);\n\n if (callback) callback();\n },\n (err: HttpErrorResponse) => {\n monkeyecxErrorConfigService.apply('theme');\n console.error('Program Configuration not found!');\n throwError(err);\n }\n );\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [404]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n public init(callback: Function, environment: any, identifyCode: string, monkeyecxCode?: string) {\n const {\n monkeyecxService,\n configBootstrapSubject$,\n monkeyecxErrorConfigService\n } = this;\n\n monkeyecxService\n ?.get<any>(`${environment.bootstrapAssets}`, {\n observe: 'response'\n })\n ?.subscribe(\n ({ headers, body }) => {\n const monkeyCode = headers.get('monkey-code') || monkeyecxCode;\n if (monkeyCode) {\n this.getSettings(monkeyCode, body, callback, environment, identifyCode);\n configBootstrapSubject$.next(body);\n } else {\n monkeyecxErrorConfigService.apply('theme');\n console.error(`Bootstrap ${monkeyCode} Configuration not found!`);\n }\n },\n (err: HttpErrorResponse) => {\n monkeyecxErrorConfigService.apply('theme');\n console.error('Bootstrap Configuration not found!');\n throwError(err);\n }\n );\n }\n\n public config(): Observable<any> {\n return this.configSubject$.asObservable();\n }\n\n public bootstrapConfig(): Observable<any> {\n return this.configBootstrapSubject$.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { actions, selectors } from '../../../store';\nimport {\n MonkeyEcxMeCredentials,\n MonkeyEcxStorage,\n MonkeyEcxTokenCredentials\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxConfigService } from '../config/monkeyecx-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxTokenStorageService {\n private token: MonkeyEcxTokenCredentials | null;\n\n private token$: BehaviorSubject<MonkeyEcxTokenCredentials | any>;\n\n private me$: BehaviorSubject<MonkeyEcxMeCredentials | any>;\n\n constructor(\n private monkeyecxConfigService: MonkeyEcxConfigService,\n private store: Store\n ) {\n this.token = {\n username: '',\n program: '',\n accessToken: '',\n refreshToken: '',\n companyId: '',\n governmentId: '',\n companyTypeUrl: '',\n companyType: '',\n programAdmin: false,\n programType: '',\n accessType: '',\n role: '',\n ownerGovernmentId: '',\n name: '',\n _clearIgnore: {\n ignore: ['username', 'program', 'accessType']\n }\n };\n this.token$ = new BehaviorSubject(null);\n this.me$ = new BehaviorSubject(null);\n }\n\n private setAllTokens(token: MonkeyEcxTokenCredentials) {\n const { token$, store } = this;\n // #TODO - Remover esse código e apenas deixar o username\n // todo o restante ficou salvo na store com a keu sendo o username\n Object.entries(token).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n localStorage.setItem(key, value);\n }\n });\n\n const username = token.username || localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n ...token\n }\n ]\n })\n );\n }\n\n token$.next(token);\n }\n\n private async getAllTokens() {\n try {\n const { store, monkeyecxConfigService } = this;\n const username = localStorage.getItem('username');\n\n let data: any = {\n username: username || '',\n program: '',\n accessToken: ''\n };\n\n if (username) {\n data = await store.select(\n selectors.monkeyecxStorage.select({ username })\n ).pipe(take(1)).toPromise();\n if (!data?.program) {\n const program = localStorage.getItem('program');\n data = {\n ...data,\n program\n };\n }\n }\n\n const config = await monkeyecxConfigService.config()\n .pipe(take(1)).toPromise();\n\n const accessType = localStorage.getItem('accessType');\n const companyType = localStorage.getItem('companyType');\n\n if (!data.accessToken) {\n const accessToken = localStorage.getItem('accessToken');\n const refreshToken = localStorage.getItem('refreshToken');\n data = {\n ...data,\n accessToken,\n refreshToken\n };\n }\n\n if (!data.role) {\n const role = localStorage.getItem('role');\n data = {\n ...data,\n role\n };\n }\n\n const handledData = {\n ...data,\n accessType,\n companyType\n };\n if (!data?.program && config?.program) {\n handledData.program = config?.program?.token;\n }\n delete handledData?.me;\n\n return handledData;\n } catch (e) {\n // not to do\n }\n return null;\n }\n\n private setAllMe(me: MonkeyEcxMeCredentials) {\n const { me$, store } = this;\n let previousMe = JSON.parse(localStorage?.getItem('me') || '{}');\n Object.entries(me).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n previousMe = {\n ...previousMe,\n [key]: value\n };\n }\n });\n\n const username = me.username || localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n me\n }\n ]\n })\n );\n }\n\n localStorage.setItem('me', JSON.stringify(previousMe));\n me$.next(previousMe);\n }\n\n private async getAllMe() {\n const { store } = this;\n const username = localStorage.getItem('username');\n let data: MonkeyEcxStorage | undefined = {\n username: username || '',\n program: ''\n };\n\n if (username) {\n data = await store.select(\n selectors.monkeyecxStorage.select({ username })\n ).pipe(take(1)).toPromise();\n }\n\n let handledData: any = {\n ...data\n };\n\n if (!handledData.me) {\n try {\n handledData = {\n me: JSON.parse(localStorage.getItem('me') || '{}')\n };\n } catch (e) {\n // not to do\n }\n }\n\n return handledData?.me;\n }\n\n public tokenHasChanged(): Observable<MonkeyEcxTokenCredentials> {\n return this.token$.asObservable();\n }\n\n public meHasChanged(): Observable<MonkeyEcxMeCredentials> {\n return this.me$.asObservable() || null;\n }\n\n public async getToken() {\n return this.getAllTokens();\n }\n\n public async getMe() {\n return this.getAllMe();\n }\n\n public setToken(token: MonkeyEcxTokenCredentials) {\n this.setAllTokens(token);\n }\n\n public setMe(me: MonkeyEcxMeCredentials) {\n this.setAllMe(me);\n }\n\n public clear(force?: boolean): Observable<boolean> {\n const { token, store } = this;\n try {\n Object.entries(token || {}).forEach(([key, value]) => {\n if (\n (token?._clearIgnore?.ignore || []).filter((val: any) => {\n return val === key;\n }).length <= 0 ||\n force === true\n ) {\n localStorage.removeItem(key);\n }\n });\n\n localStorage.removeItem('me');\n localStorage.removeItem('mecx-store');\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(actions.monkeyecxStorage.deleteOne({ data: { username } }));\n }\n } catch (error) {\n return of(false);\n }\n return of(true);\n }\n\n /**\n * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])\n */\n public clearCredentials(\n fields = ['companyId', 'governmentId', 'companyType', 'programAdmin', 'role']\n ) {\n const { store } = this;\n let obj: any = null;\n fields?.forEach((key: string) => {\n obj = {\n ...obj,\n [key]: null\n };\n localStorage.removeItem(key);\n });\n\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n ...obj\n }\n ]\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCookieStorageService {\n constructor(private cookieService: CookieService) {\n // not to do\n }\n\n public setCookie(name: string, value: any, environment: any) {\n this.removeCookie(name, environment);\n const { urlDomain } = environment;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.set(name, value, undefined, '/', handledDomain, true, 'None');\n }\n\n public getCookie(name: string) {\n return this.cookieService.get(name);\n }\n\n public removeCookie(name: string, environment: any) {\n const { urlDomain } = environment;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.delete(name, '/', handledDomain, true, 'None');\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxTokenStorageService } from '../services/storage';\n\n@Directive({\n selector: '[monkeyecxSecurity]'\n})\nexport class MonkeyEcxSecurityDirective implements OnInit {\n @Input('securityRoles') roles: string[] = [];\n\n @Input('securityByExclusion') byExclusion: boolean = false;\n\n private tokenCredentials: any = null;\n\n constructor(\n private elementRef: ElementRef,\n private tokenStorageService: MonkeyEcxTokenStorageService,\n private cdr: ChangeDetectorRef\n ) {\n // not to do\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n const handledRole = localStorage.getItem('role');\n\n return tokenCredentials?.role || handledRole || '';\n }\n\n private handleAccess() {\n const { roles, byExclusion } = this;\n let display = 'none';\n const found = roles?.indexOf(this.getRole());\n if (byExclusion) {\n display = 'block';\n if (found > -1) {\n display = 'none';\n }\n } else {\n display = 'none';\n if (found > -1) {\n display = 'block';\n }\n }\n\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n private async handleData() {\n this.tokenCredentials = await this.tokenStorageService.getToken();\n this.handleAccess();\n }\n\n ngOnInit() {\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.tokenStorageService.tokenHasChanged().subscribe(() => {\n this.handleData();\n });\n\n this.handleData();\n }\n}\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxTooltip]',\n})\nexport class MonkeyEcxTooltipDirective {\n @Input() tooltipDelay?: number;\n\n @Input() tooltipPosition?: string;\n\n @Input() tooltipText?: string;\n\n @Input() tooltipTitle?: string;\n\n @Input() enableToShow = true;\n\n offset = 10;\n\n tooltip: HTMLElement | null = null;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('mouseenter')\n onMouseEnter() {\n if (!this.tooltip) {\n this.show();\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.tooltip) {\n this.hide();\n }\n }\n\n @HostListener('click')\n clickout() {\n if (this.tooltip) {\n this.hide();\n }\n }\n\n show() {\n if (this.enableToShow) {\n this.create();\n this.setPosition();\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip-show');\n setTimeout(() => {\n this.hide();\n }, 5000);\n }\n }\n\n hide() {\n if (!this.tooltip) return;\n this.renderer.removeClass(this.tooltip, 'monkeyecx-tooltip-show');\n this.renderer.removeChild(document.body, this.tooltip);\n\n this.tooltip = null;\n }\n\n create() {\n const tooltipElement = document.createElement('div');\n\n this.tooltip = this.renderer.createElement('span');\n\n if (this.tooltipTitle) {\n const tooltipTitleElement = document.createElement('span');\n\n tooltipTitleElement.innerText = `${this.tooltipTitle}`;\n tooltipTitleElement.className = 'monkeyecx-tooltip-title';\n\n tooltipElement.appendChild(tooltipTitleElement);\n }\n\n if (this.tooltipText) {\n const tooltipTextElement = document.createElement('span');\n\n tooltipTextElement.innerText = `${this.tooltipText}`;\n tooltipTextElement.className = 'monkeyecx-tooltip-description';\n tooltipElement.appendChild(tooltipTextElement);\n }\n\n this.renderer.appendChild(this.tooltip, tooltipElement);\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip');\n this.renderer.addClass(this.tooltip, `monkeyecx-tooltip-${this.tooltipPosition}`);\n\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.tooltipDelay}ms`);\n }\n\n setPosition() {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n const tooltipPos = this.tooltip?.getBoundingClientRect();\n if (!tooltipPos) return;\n const scrollPos =\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n let top: number = 0;\n let left: number = 0;\n\n if (this.tooltipPosition === 'top') {\n top = hostPos.top - tooltipPos.height - this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPosition === 'bottom') {\n top = hostPos.bottom + this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPosition === 'left') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - this.offset;\n }\n\n if (this.tooltipPosition === 'right') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + this.offset;\n }\n\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsService {\n constructor(\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n // not to do\n }\n\n show({\n type = 'warning',\n title,\n message,\n duration\n }: {\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading',\n title: string,\n message: string,\n duration: number\n }) {\n const i18n = this.translateService.instant(`MECX-ALERTS.${type}`.toUpperCase());\n\n this.snackbarService.show({\n title: i18n?.TITLES?.[title],\n message: i18n?.MESSAGES[message],\n type,\n duration: duration || 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n\n showWarning({\n title,\n message,\n duration\n }: {\n title: string,\n message: string,\n duration: number\n }) {\n const i18n = this.translateService.instant('MECX-ALERTS.WARNING');\n\n this.snackbarService.show({\n title: i18n?.TITLES?.[title],\n message: i18n?.MESSAGES[message],\n type: 'warning',\n duration: duration || 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n}\n","/* eslint-disable no-console */\nimport { HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthenticationService {\n constructor() {\n // not to do\n }\n\n hadAtLeastOneLogin = async () => {\n console.error('hadAtLeastOneLogin needs to be declared!');\n return null;\n };\n\n redirectApp = () => {\n console.error('redirectApp needs to be declared!');\n return null;\n };\n\n redirectLoginWelcomeBack = (route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot) => {\n console.error('redirectLoginWelcomeBack needs to be declared!');\n return null;\n };\n\n isAuthorized = async () => {\n console.error('isAuthorized needs to be declared!');\n return false;\n };\n\n isCompanyAuthorized = async () => {\n console.error('isCompanyAuthorized needs to be declared!');\n return false;\n };\n\n isTokenMandatory = (url: string): boolean => {\n console.error('isTokenMandatory needs to be declared!');\n return false;\n };\n\n getRequestWithHeaders = (request: HttpRequest<any>): HttpRequest<any> | any => {\n console.error('getRequestWithHeaders needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersOb = (request: HttpRequest<any>): Observable<any> | any => {\n console.error('getRequestWithHeadersOb needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersAsync = async (request: HttpRequest<any>) => {\n console.error('getRequestWithHeadersAsync needs to be declared!');\n return null;\n };\n\n refreshShouldHappen = (response: HttpErrorResponse): boolean => {\n console.error('refreshShouldHappen needs to be declared!');\n return false;\n };\n\n refreshToken = async () => {\n console.error('refreshToken needs to be declared!');\n return null;\n };\n\n getToken = async () => {\n console.error('getToken needs to be declared!');\n return null;\n };\n\n init(args: {\n hadAtLeastOneLogin?: any;\n redirectApp?: any;\n redirectLoginWelcomeBack?: any;\n isAuthorized?: any;\n isTokenMandatory?: any;\n isCompanyAuthorized?: any;\n getRequestWithHeaders?: any;\n getRequestWithHeadersAsync?: any;\n getRequestWithHeadersOb?: any;\n refreshShouldHappen?: any;\n refreshToken?: any;\n getToken?: any;\n }) {\n this.hadAtLeastOneLogin = args?.hadAtLeastOneLogin || this.hadAtLeastOneLogin.bind(this);\n this.redirectApp = args?.redirectApp || this.redirectApp.bind(this);\n this.redirectLoginWelcomeBack =\n args?.redirectLoginWelcomeBack || this.redirectLoginWelcomeBack.bind(this);\n this.isAuthorized = args?.isAuthorized || this.isAuthorized.bind(this);\n this.isTokenMandatory = args?.isTokenMandatory || this.isTokenMandatory.bind(this);\n this.isCompanyAuthorized = args?.isCompanyAuthorized || this.isCompanyAuthorized.bind(this);\n this.getRequestWithHeaders =\n args?.getRequestWithHeaders || this.getRequestWithHeaders.bind(this);\n this.getRequestWithHeadersAsync =\n args?.getRequestWithHeadersAsync || this.getRequestWithHeadersAsync.bind(this);\n this.getRequestWithHeadersOb = args?.getRequestWithHeadersOb.bind(this);\n this.refreshShouldHappen = args?.refreshShouldHappen || this.refreshShouldHappen.bind(this);\n this.refreshToken = args?.refreshToken || this.refreshToken.bind(this);\n this.getToken = args?.getToken || this.getToken.bind(this);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardCompany implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n const { monkeyecxAuthenticationService } = this;\n\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\n if (await monkeyecxAuthenticationService.isCompanyAuthorized()) {\n return true;\n }\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n if (await this.monkeyecxAuthenticationService.hadAtLeastOneLogin()) {\n this.monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n return false;\n }\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuardByRole implements CanActivate {\n private securityCredentials: {\n roles: string[],\n byExclusion: boolean\n } | null = null;\n\n private tokenCredentials: any = null;\n\n constructor(\n private tokenStorage: MonkeyEcxTokenStorageService,\n private router: Router\n ) {\n // not to do\n }\n\n private navigateToErrorPage() {\n const { tokenCredentials } = this;\n const companyType = tokenCredentials?.companyType;\n let path = '/app/pages/forbidden';\n if (companyType) {\n path = `/app/${companyType}/pages/forbidden`;\n }\n this.router?.navigate([path.toLowerCase()]);\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n return tokenCredentials?.role || '';\n }\n\n private allowedSecurityAccess(roles: string[], byExclusion: boolean): boolean {\n if (!roles?.length) return true;\n\n const found = roles?.indexOf(this.getRole());\n let ret = false;\n if (byExclusion) {\n ret = true;\n if (found > -1) {\n ret = false;\n }\n } else {\n ret = false;\n if (found > -1) {\n ret = true;\n }\n }\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\n ret = true;\n }\n return ret;\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\n this.securityCredentials = route.data?.securityCredentials;\n if (this.securityCredentials) {\n const { roles, byExclusion } = this.securityCredentials;\n\n this.tokenCredentials = await this.tokenStorage.getToken();\n\n if (!this.allowedSecurityAccess(roles, byExclusion)) {\n this.navigateToErrorPage();\n return false;\n }\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuard implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n const { monkeyecxAuthenticationService } = this;\n\n if (await monkeyecxAuthenticationService.isAuthorized()) {\n return true;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","/* eslint-disable indent */\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\n\n@NgModule()\nexport class MonkeyEcxConfigModule {\n constructor(\n @Optional()\n @SkipSelf()\n parentModule: MonkeyEcxConfigModule\n ) {\n if (parentModule) {\n throw new Error('MonkeyEcxConfigModule is already loaded. Import it in the AppModule only!');\n }\n }\n\n static forRoot(): ModuleWithProviders<MonkeyEcxConfigModule> {\n return {\n ngModule: MonkeyEcxConfigModule,\n providers: [MonkeyEcxConfigService]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { first } from 'rxjs/operators';\nimport { MonkeyEcxConfig } from '../../interfaces';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\nimport { MonkeyEcxCookieStorageService } from '../storage';\nimport { CurrencyConfigComponent } from '../../../components/currency-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCurrencyConfigService {\n constructor(\n private modalService: MonkeyStyleGuideModalFixedService,\n private cookieService: MonkeyEcxCookieStorageService,\n private configService: MonkeyEcxConfigService\n ) {\n // not to do\n }\n\n private onHandleCurrencyConfig({ currency, environment }) {\n const { cookieService } = this;\n const settings: string = cookieService.getCookie('monkey-app-settings');\n const locale: string = cookieService.getCookie('monkey-app-locale');\n\n if (!settings) {\n cookieService.setCookie(\n 'monkey-app-settings',\n btoa(\n JSON.stringify({\n showedCurrencyConfig: true\n })\n ),\n environment\n );\n } else {\n const decoded = JSON.parse(atob(settings));\n\n cookieService.setCookie(\n 'monkey-app-settings',\n btoa(\n JSON.stringify({\n ...decoded,\n showedCurrencyConfig: true\n })\n ),\n environment\n );\n }\n\n if (locale) {\n const decoded = JSON.parse(atob(locale));\n\n cookieService.setCookie(\n 'monkey-app-locale',\n btoa(\n JSON.stringify({\n ...decoded,\n currency\n })\n ),\n environment\n );\n }\n }\n\n private async onShowCurrencyConfig(environment: any, force = false) {\n const { cookieService } = this;\n const settings: string = cookieService.getCookie('monkey-app-settings');\n let showed = false;\n if (settings) {\n const decoded = JSON.parse(atob(settings));\n showed = decoded.showedCurrencyConfig;\n }\n\n const config: MonkeyEcxConfig = await this.configService\n .config()\n .pipe(\n first((val: any) => {\n return !!val && JSON.stringify(val) !== '{}';\n })\n )\n .toPromise();\n\n const currency = config?.i18n?.currency;\n const currencies = config?.i18n?.currencies;\n\n if ((!showed || force) && currencies?.length) {\n this.modalService.open(CurrencyConfigComponent, {\n color: 'theme',\n size: 'md',\n data: {\n currency,\n currencies,\n callback: (currency = 'BRL') => {\n this.onHandleCurrencyConfig({\n currency,\n environment\n });\n }\n }\n });\n }\n }\n\n public apply(environment: any, force = false) {\n this.onShowCurrencyConfig(environment, force);\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, NgZone } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxAuthenticationService } from '../auth';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxHttpErrorHandlingService extends MonkeyEcxCommonsService {\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private router: Router,\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n super(monkeyecxService, tokenStorage);\n\n super.resolve(null, null);\n\n this.geti18n(this.translateService, 'SERVICES.WARNING');\n }\n\n private isHttpCodeIgnoreMessage(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private isHttpCodeIgnoreRedirect(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\n if (status === 409 || status === 400 || status === 401 || status === 429) {\n return 'warning';\n }\n\n return 'error';\n }\n\n private showMessage(message: string, error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { snackbarService } = this;\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\n snackbarService.show({\n title: this.__i18n?.TITLE,\n message,\n type: this.getMessageType(error.status),\n duration: 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n }\n\n private handleMessage(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n // eslint-disable-next-line camelcase\n const { notifications, error_description, message } = error?.error || {\n notifications: '',\n error_description: '',\n message: ''\n };\n\n let customMessage = '';\n\n if (message) {\n customMessage = message;\n }\n\n // eslint-disable-next-line camelcase\n if (error_description) {\n // eslint-disable-next-line camelcase\n customMessage = error_description;\n }\n\n if (notifications) {\n customMessage = notifications;\n }\n\n if (!customMessage) {\n if (error.error instanceof Blob) {\n const blob = new Blob([error.error], {\n type: 'application/json'\n });\n const reader = new FileReader();\n reader.addEventListener('loadend', (e) => {\n const text = e?.target?.result;\n const jsonResp = JSON.parse(text as string);\n customMessage = jsonResp.notifications;\n this.showMessage(customMessage, error, mkc);\n });\n reader.readAsText(blob);\n } else if (!error?.url?.includes('assets.monkey')) {\n const defaultMsg = this.__i18n['ERROR-HANDLING']?.ERROR;\n const msg =\n error.status === 429\n ? this.__i18n['ERROR-HANDLING']?.['TOO-MANY-REQUEST'] ?? defaultMsg\n : defaultMsg;\n\n this.showMessage(msg, error, mkc);\n }\n } else {\n this.showMessage(customMessage, error, mkc);\n }\n }\n\n public async handleError(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { router, tokenStorage } = this;\n const { status } = error;\n const { companyType } = (await tokenStorage?.getToken()) || { companyType: '' };\n\n const routes: any = {\n 403: 'forbidden',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n let route = '/app';\n if (companyType) {\n route = `${route}/${companyType}/pages`;\n } else {\n route = `${route}/pages`;\n }\n\n const found = routes[status];\n let timeout = 0;\n\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\n route = `${route}/${found}`.toLowerCase();\n timeout = 800;\n router.navigate([route]);\n }\n\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, timeout);\n }\n\n public handleErrorRefreshToken(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const hasToRefresh = this.monkeyecxAuthenticationService.refreshShouldHappen(error);\n if ((error.status === 401 || error.status === 400) && hasToRefresh) {\n NgZone.call(this.monkeyecxAuthenticationService.redirectLoginWelcomeBack(), {});\n } else if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\n this.handleMessage(error, mkc);\n }\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MECX_ENV } from '../../injectors';\nimport { MonkeyEcxLogs } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxOthersErrorsHandlingService {\n constructor(\n private modalService: MonkeyStyleGuideModalService,\n @Inject(MECX_ENV) private env: InjectionToken<string>\n ) {\n // not to do\n }\n\n public handleError(error: any) {\n const { modalService } = this;\n const { message } = error;\n\n try {\n if (this.env.toString() !== 'prod') {\n console.log('==> error <==');\n console.log(error);\n }\n\n MonkeyEcxLogs.log({\n message: '==> error <==',\n error\n });\n } catch (e) {\n // not to\n }\n\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(message)) {\n modalService.open(VersionChangedComponent, {\n color: 'theme',\n size: 'md',\n hideClose: true\n });\n }\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxHandlingService } from '../monkeyecx-handling.service';\nimport { MonkeyEcxHttpErrorHandlingService } from './monkeyecx-http-error-handling.service';\nimport { MonkeyEcxOthersErrorsHandlingService } from './monkeyecx-others-errors-handling.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxErrorHandlingService implements ErrorHandler {\n constructor(private injector: Injector) {\n // not to do\n }\n\n handleError(error: any, type?: string) {\n const { injector } = this;\n const handlingService = injector.get(MonkeyEcxHandlingService);\n const httpErrorHandlingService = injector.get(MonkeyEcxHttpErrorHandlingService);\n const othersErrorsHandlingService = injector.get(MonkeyEcxOthersErrorsHandlingService);\n\n if (error instanceof HttpErrorResponse) {\n const sCredentials: MonkeyEcxServiceCredentials =\n handlingService?.getMonkeyEcxServiceCredentials() || {};\n if (MonkeyEcxUtils.persistNullEmptyUndefined(type) && type === 'refresh_token') {\n httpErrorHandlingService.handleErrorRefreshToken(error, sCredentials);\n } else httpErrorHandlingService.handleError(error, sCredentials);\n } else {\n othersErrorsHandlingService.handleError(error);\n }\n }\n}\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxErrorHandlingService } from './monkeyecx-error-handling.service';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxErrorHandlingModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxErrorHandlingModule> {\n return {\n ngModule: MonkeyEcxErrorHandlingModule,\n providers: [\n {\n provide: ErrorHandler,\n useClass: MonkeyEcxErrorHandlingService,\n },\n ],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLoggedHandlingService {\n private schedules: MonkeyEcxRequestSchedule[] = [];\n\n private genericSchedules: MonkeyEcxRequestSchedule[] = [];\n\n constructor() {\n // not to do\n }\n\n private destroySchedule() {\n this.schedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.schedules = [];\n }\n\n private destroyGenericSchedule() {\n this.genericSchedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.genericSchedules = [];\n }\n\n public addSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.schedules = sch;\n }\n\n public addGenericSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.genericSchedules = sch;\n }\n\n public destroy() {\n this.destroySchedule();\n this.destroyGenericSchedule();\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxPaginationService {\n private callbacks: {\n [key: string]: Function;\n } = {};\n\n constructor() {\n // not to do\n }\n\n public setCallback(callback: Function, name: string = 'main') {\n this.callbacks = {\n ...this.callbacks,\n [name]: callback\n };\n }\n\n public execute(type: string, name: string = 'main') {\n const { callbacks } = this;\n const callback = callbacks?.[name];\n if (callback) callback(type);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestDownload } from '../../interfaces';\nimport { MonkeyEcxDownloadEvents } from '../../utils/statics';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadHandlingService {\n private download: MonkeyEcxRequestDownload[] = [];\n\n private download$: BehaviorSubject<MonkeyEcxRequestDownload[] | any>;\n\n constructor() {\n this.download$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownload) {\n this.download.push(q);\n this.download$.next(this.download);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownload, status?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved\n .map((val: any) => {\n if (val.status === MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || MonkeyEcxDownloadEvents.Finished\n };\n }\n return valSaved;\n }\n return null;\n })\n .filter((_: any) => {\n return _;\n })\n ];\n\n this.download = this.download.filter((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n this.download$.next(this.download);\n }\n\n private updateItem(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const currentPecentage = Math.floor(((loaded || 0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n };\n }\n return valSaved;\n })\n ];\n this.download$.next(this.download);\n }\n\n public set(q: MonkeyEcxRequestDownload) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownload[]> {\n return this.download$.asObservable();\n }\n\n public update(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n this.updateItem(q, loaded, total);\n }\n\n public finishItem(q: MonkeyEcxRequestDownload, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.download.find((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { Statics } from '../../utils';\nimport { MonkeyEcxRequestDownloaded } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadedHandlingService {\n private downloaded: MonkeyEcxRequestDownloaded[] = [];\n\n private downloaded$: BehaviorSubject<MonkeyEcxRequestDownloaded[] | any>;\n\n constructor() {\n this.downloaded$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownloaded) {\n this.downloaded.push(q);\n this.downloaded$.next(this.downloaded);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownloaded, status?: number) {\n const saved = [...this.downloaded];\n this.downloaded = [\n ...saved.map((val: any) => {\n if (val.status === Statics.MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxDownloadEvents.Finished,\n action: q.action\n };\n }\n return valSaved;\n }\n return val;\n })\n ];\n this.downloaded$.next(this.downloaded);\n }\n\n public set(q: MonkeyEcxRequestDownloaded) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownloaded[]> {\n return this.downloaded$.asObservable();\n }\n\n public finishItem(q: MonkeyEcxRequestDownloaded, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.downloaded.find((_: any) => {\n return _.status === Statics.MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n }\n\n public setQueue(q: MonkeyEcxRequestQueue | null) {\n if (!q) return;\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue | null, action?: Function, status?: number) {\n if (!q) return;\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueModalHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue$ = new BehaviorSubject(false);\n\n private allQueueFinished$ = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue$.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total||0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n if (this.queue.length <= 0) {\n this.allQueueFinished$.next(true);\n }\n }\n\n public setQueue(q: MonkeyEcxRequestQueue) {\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue, action?: Function, status?: number) {\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n\n public hasAllQueueFinished(): Observable<boolean> {\n return this.allQueueFinished$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { MonkeyEcxUtils } from '../../utils/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDiscoveryParamsService {\n constructor(private router: Router) {\n // not to do\n }\n\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.getLastChild(route.firstChild);\n }\n\n return route;\n }\n\n public setData(field: string, value: any): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n route.data[field] = value;\n }\n\n public getData(field: string): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\n return found;\n }\n\n public getDataFromCurrentNavigation(field: string, router?: Router): any {\n const navigation = this.router.getCurrentNavigation() || router?.getCurrentNavigation();\n let state: any = null;\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\n state = navigation?.extras.state;\n }\n\n return state ? state[field] : null;\n }\n\n public getParam(param: string): string | null {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\n ? route?.paramMap?.get(param) || ''\n : '';\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\n return found;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxLoggedHandlingService } from '../logged';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestScheduleService {\n private schedule: MonkeyEcxRequestSchedule[] | any[] = [];\n\n private genericSchedule: MonkeyEcxRequestSchedule[] | any[] = [];\n\n constructor(\n public monkeyecxService: MonkeyEcxService,\n private monkeyLoggedHandlingService: MonkeyEcxLoggedHandlingService\n ) {\n // not to do\n }\n\n private addToSchedule(q: MonkeyEcxRequestSchedule) {\n this.schedule.push(q);\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private addToGenericSchedule(q: MonkeyEcxRequestSchedule) {\n this.genericSchedule.push(q);\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\n }\n\n private removeFromSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private removeFromGenericSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.genericSchedule];\n this.genericSchedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\n }\n\n private removeFromScheduleById(id: string) {\n const q = this.getScheduleById(id);\n clearInterval(q?.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q?.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 403, 404, 500, 503]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n private doCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action, errorAction } = sch;\n\n const errAction = errorAction || ((...args) => {});\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp\n },\n sch\n );\n },\n (err: HttpErrorResponse) => {\n this.removeFromSchedule(sch);\n errAction(\n {\n ...data\n },\n sch,\n err\n );\n }\n );\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 401, 403, 404, 500, 503],\n httpCodeIgnoreRedirect: [503]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n private doGenericCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action, errorAction } = sch;\n\n const errAction = errorAction || ((...args) => {});\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp\n },\n sch\n );\n },\n (err: HttpErrorResponse) => {\n this.removeFromGenericSchedule(sch);\n errAction(\n {\n ...data\n },\n sch,\n err\n );\n }\n );\n }\n\n public setSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const id = q?.id || `${MonkeyEcxUtils.getRandomString(40)}`;\n const obj = {\n ...q,\n id\n };\n\n const interval = setInterval(() => {\n this.doCall({\n ...obj,\n interval\n });\n }, delay);\n\n const sch = {\n ...obj,\n interval\n };\n\n this.addToSchedule(sch);\n return sch;\n }\n\n public setGenericSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const interval = setInterval(() => {\n this.doGenericCall({\n ...q,\n interval\n });\n }, delay);\n\n const sch = {\n ...q,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n interval\n };\n\n this.addToGenericSchedule(sch);\n return sch;\n }\n\n public removeSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromSchedule(q);\n }\n\n public removeGenericSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromGenericSchedule(q);\n }\n\n public removeScheduleById(id: string) {\n this.removeFromScheduleById(id);\n }\n\n public getScheduleById(id: string) {\n const q = this.schedule.find((sch: MonkeyEcxRequestSchedule) => {\n return sch.id === id;\n });\n return q;\n }\n}\n","import { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreBaseService<\n T,\n K extends MonkeyEcxConfigStore\n> extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n protected store: Store,\n config: K\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links);\n }\n\n this.updatePage?.(page);\n } else data = resp;\n\n this.update?.(data);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[]): T | T[] {\n try {\n const handle = (item: T) => {\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[]) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(data: MonkeyEcxPage) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(data: MonkeyEcxLinks) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n },\n requestInProgress: {\n showProgress: true\n }\n })\n protected async loadData(url: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\n this.handleResponseData(data, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw new Error(`${e?.message}`);\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination) {\n const { store, selector } = this;\n const data = await store\n .select(selector.selectLinks())\n .pipe(take(1))\n .toPromise();\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport {\n MonkeyEcxPage,\n MonkeyEcxPaginationData,\n MonkeyEcxStoreControl,\n MonkeyEcxStoreLoadPageParams,\n MonkeyEcxStoreLoadParams\n} from '../../interfaces';\n\nexport abstract class MonkeyEcxCommonsActions {\n static getActions<T>(actionName: string) {\n const clear = createAction(`[${actionName}] Clear All`, props<{ identifier: string }>());\n const load = createAction(`[${actionName}] Load`, props<MonkeyEcxStoreLoadParams>());\n const loadPagination = createAction(\n `[${actionName} Pagination] Load`,\n props<MonkeyEcxStoreLoadPageParams>()\n );\n const updateAll = createAction(`[${actionName}] Update All`, props<{ data: T[] }>());\n const updateOne = createAction(`[${actionName}] Update One`, props<{ data: T }>());\n const removeOne = createAction(`[${actionName}] Remove One`, props<{ data: T }>());\n const updateControl = createAction(\n `[${actionName}] Update Control`,\n props<{ data: MonkeyEcxStoreControl }>()\n );\n const updatePage = createAction(\n `[${actionName}] Update Page`,\n props<{ data: MonkeyEcxPage }>()\n );\n const updateLinks = createAction(\n `[${actionName}] Update Links`,\n props<{ data: MonkeyEcxPaginationData }>()\n );\n\n return {\n clear,\n load,\n loadPagination,\n removeOne,\n updateAll,\n updateOne,\n updateControl,\n updateLinks,\n updatePage\n };\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { parseUrl } from 'query-string';\n\ninterface Identifiable {\n identifier?: string;\n}\n\ninterface IReducer {\n featureKey: string;\n selectAll: any;\n}\n\nconst urlHasField = (url: string, field: string) => {\n const obj: any = parseUrl(url);\n return !!obj?.query?.[field];\n};\n\nexport abstract class MonkeyEcxCommonsSelectors {\n static getSelectors<T extends Identifiable>(reducer: IReducer) {\n const selectState = createFeatureSelector(reducer.featureKey);\n\n const selectAll: any = createSelector(selectState, reducer.selectAll);\n\n const selectByIdentifier = (props: { identifier: string }) => {\n return createSelector(selectAll, (entities: T[]): T[] => {\n return entities.filter((_: T) => {\n return _.identifier === props.identifier;\n });\n });\n };\n\n const selectOneByIdentifier = (props: { identifier: string }) => {\n return createSelector(selectAll, (entities: T[]): T | null => {\n return (\n entities.find((_: T) => {\n return _.identifier === props.identifier;\n }) || null\n );\n });\n };\n\n const selectControl = () => {\n return createSelector(selectState, (state: any): any => {\n return state.control;\n });\n };\n\n const selectLinks = (props?: { identifier: string }) => {\n return createSelector(selectState, (state: any): any => {\n if (props?.identifier) {\n return state.links?.[props.identifier];\n }\n\n return state.links;\n });\n };\n\n const selectPage = (props?: { identifier: string }) => {\n return createSelector(selectState, (state: any): any => {\n if (props?.identifier) {\n return state.page?.[props.identifier];\n }\n\n return state.page;\n });\n };\n\n const selectData = () => {\n return createSelector(selectState, (state: any): any => {\n return state.data;\n });\n };\n\n const linksHasDifference = (props: { identifier: string; url: string }) => {\n return createSelector(selectState, (state: any): any => {\n const { pagination } = state;\n const { identifier, url } = props;\n let hasDifference = false;\n let hasField = false;\n\n try {\n const handlePaginationUrl = parseUrl(`${pagination?.[identifier]?.url}`);\n const handleUrl = parseUrl(`${url}`);\n hasDifference =\n handlePaginationUrl?.query?.search !== handleUrl?.query?.search ||\n handlePaginationUrl?.query?.sort !== handleUrl?.query?.sort;\n hasField = urlHasField(url, 'search') || urlHasField(url, 'sort');\n } catch (e) {\n // not to do\n }\n\n return {\n hasDifference,\n hasField\n };\n });\n };\n\n return {\n selectState,\n selectAll,\n selectData,\n selectControl,\n selectLinks,\n selectByIdentifier,\n selectOneByIdentifier,\n selectPage,\n linksHasDifference\n };\n }\n}\n","import { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreService<\n T,\n K extends MonkeyEcxConfigStore\n> extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n protected store: Store,\n config: K\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, identifier: string, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links, identifier);\n }\n\n this.updatePage?.(page, identifier);\n } else data = resp;\n\n this.update?.(data, identifier);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected async linksHasDifference(url: string, identifier: string) {\n try {\n const { action, store, selector } = this;\n\n const { hasDifference, hasField } = <any>(\n await store\n .select(selector.linksHasDifference({ identifier, url }))\n .pipe(take(1))\n .toPromise()\n );\n\n if (hasDifference && hasField) {\n store.dispatch(action.clear({ identifier }));\n }\n\n return { hasDifference };\n } catch (e) {\n throw new Error(`MECX Core - Method linksHasDifference -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[], identifier: string): T | T[] {\n try {\n const handle = (item: T) => {\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n identifier,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[], identifier: string) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args, identifier)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(args: MonkeyEcxPage, identifier: string) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data: {\n [identifier]: args\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(args: MonkeyEcxLinks, identifier: string) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data: {\n [identifier]: args\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n },\n requestInProgress: {\n showProgress: true\n }\n })\n protected async loadData(url: string, identifier: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\n this.handleResponseData(data, identifier, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw new Error(`${e?.message}`);\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination, identifier: string) {\n const { store, selector } = this;\n const data = await store\n .select(selector.selectLinks({ identifier }))\n .pipe(take(1))\n .toPromise();\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href, identifier);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url, identifier) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { base64ToBuffer } from '../../utils/utils';\nimport { MECX_ALPHA, MECX_BETA } from '../../injectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LService {\n constructor(\n @Inject(MECX_ALPHA) private alpha: InjectionToken<string>,\n @Inject(MECX_BETA) private beta: InjectionToken<string>\n ) {\n // not to do\n }\n\n async y(data: string): Promise<string> {\n if (!window.crypto || !window.crypto.subtle) {\n throw new Error('unsupported function');\n }\n\n const key = await this.w();\n const decrypted = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: base64ToBuffer(this.alpha.toString())\n },\n key,\n base64ToBuffer(data)\n );\n const decoder = new TextDecoder();\n return decoder.decode(decrypted);\n }\n\n private async w() {\n const parsedKey = JSON.parse(atob(this.beta.toString()));\n return window.crypto.subtle.importKey('jwk', parsedKey, { name: 'AES-GCM' }, true, [\n 'encrypt',\n 'decrypt'\n ]);\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxConfig } from '../interfaces';\nimport { MonkeyEcxConfigService } from '../services';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFeatureByProgram]'\n})\nexport class MonkeyEcxFeatureByProgramDirective implements OnInit {\n @Input('feature') feature: string = '';\n\n private config?: MonkeyEcxConfig;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private monkeyConfigService: MonkeyEcxConfigService\n ) {\n this.monkeyConfigService.config().subscribe((_: MonkeyEcxConfig) => {\n this.config = _;\n this.init();\n });\n }\n\n private init() {\n if (!this.feature) return;\n this.cdr.detectChanges();\n this.handleDisplay();\n }\n\n private handleDisplay(): void {\n const { feature, config } = this;\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\n return;\n }\n\n const disabled = config?.program?.settings?.[feature];\n\n if (!disabled) {\n display = 'block';\n }\n\n this.elementRef.nativeElement.style.display = display;\n\n if (display === 'none') {\n this.elementRef.nativeElement.remove();\n }\n\n this.cdr.detectChanges();\n }\n\n ngOnInit() {\n this.init();\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\n\n@Directive({\n selector: '[monkeyecxFeature]'\n})\nexport class MonkeyEcxFeatureDirective implements OnDestroy, OnInit {\n @Input('featureName') feature?: string;\n\n private unsubscribeAll = new Subject();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private monkeyecxFeatureToggleService: MonkeyEcxFeatureToggleService\n ) {\n // not to do\n }\n\n private getFeature(feature: string): boolean {\n const { monkeyecxFeatureToggleService } = this;\n\n if (!monkeyecxFeatureToggleService) {\n return false;\n }\n\n return monkeyecxFeatureToggleService?.getFlag(feature) || false;\n }\n\n private handleDisplay(): void {\n if (!this.feature) return;\n const flag = this.getFeature(this.feature);\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\n return;\n }\n\n if (flag) {\n display = 'block';\n }\n\n if (display === 'none') {\n this.elementRef.nativeElement.remove();\n }\n\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n\n ngOnInit() {\n if (!this.feature) return;\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.monkeyecxFeatureToggleService.onFlags\n .pipe(takeUntil(this.unsubscribeAll))\n .subscribe((val: boolean) => {\n if (val) {\n this.handleDisplay();\n }\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxLoading]'\n})\nexport class MonkeyEcxLoadingDirective implements OnChanges {\n private view: EmbeddedViewRef<any> | null = null;\n\n private loadingElement: HTMLElement | null = null;\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n @Input() monkeyecxLoading: boolean = false;\n\n @Input() monkeyecxLoadingSize: 'lg' | 'md' | 'sm' = 'sm';\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['monkeyecxLoading'] || changes['monkeyecxLoadingSize']) {\n this.updateView();\n }\n }\n\n updateView() {\n if (this.monkeyecxLoading) {\n if (this.view) this.viewContainer.clear();\n\n this.loadingElement = document.createElement('div');\n\n this.loadingElement.className = `mecx-loading ${this.monkeyecxLoadingSize}`;\n\n this.elementRef.nativeElement.parentNode.insertBefore(\n this.loadingElement,\n this.elementRef.nativeElement.nextSibling\n );\n } else {\n if (this.loadingElement && this.loadingElement.parentNode) {\n this.loadingElement.parentNode.removeChild(this.loadingElement);\n this.loadingElement = null;\n }\n\n this.viewContainer.clear();\n this.view = this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxDragDropDirective } from './monkeyecx-drag-drop';\nimport { MonkeyEcxFeatureByProgramDirective } from './monkeyecx-feature-by-program-directive';\nimport { MonkeyEcxFeatureDirective } from './monkeyecx-feature-directive';\nimport { MonkeyEcxFormatCurrency } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatUpper } from './monkeyecx-format-upper';\nimport { MonkeyEcxOnlyAlphaNumericDirective } from './monkeyecx-only-alpha-numeric-directive';\nimport { MonkeyEcxOnlyNumbersDirective } from './monkeyecx-only-number-directive';\nimport { MonkeyEcxPopoverOptionsDirective } from './monkeyecx-popover-options.directive';\nimport { MonkeyEcxPopoverDirective } from './monkeyecx-popover.directive';\nimport { MonkeyEcxSecurityDirective } from './monkeyecx-security-directive';\nimport { MonkeyEcxTooltipDirective } from './monkeyecx-tooltip-directive';\nimport { MonkeyEcxLoadingDirective } from './monkeyecx-loading';\n\n@NgModule({\n declarations: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFeatureByProgramDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxLoadingDirective,\n MonkeyEcxTooltipDirective,\n MonkeyEcxPopoverDirective,\n MonkeyEcxPopoverOptionsDirective\n ],\n imports: [CommonModule, OverlayModule],\n exports: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFeatureByProgramDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxLoadingDirective,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxTooltipDirective,\n MonkeyEcxPopoverDirective,\n MonkeyEcxPopoverOptionsDirective\n ]\n})\nexport class MonkeyEcxDirectivesModule {}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { from, Observable, throwError } from 'rxjs';\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\nexport interface Headers {\n name: string;\n value: string;\n}\n\n@Injectable()\nexport class MonkeyEcxHttpConfigErrorInterceptor implements HttpInterceptor {\n constructor(\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\n ) {\n // no to do\n }\n\n private async handle(request: HttpRequest<any>, error: HttpErrorResponse) {\n try {\n if (this.monkeyecxAuthenticationService.refreshShouldHappen(error)) {\n await this.monkeyecxAuthenticationService?.refreshToken();\n const headers = await this.monkeyecxAuthenticationService.getRequestWithHeadersAsync(\n request\n );\n return headers;\n }\n } catch (e) {\n return throwError(e);\n }\n\n return null;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(\n map((event: HttpEvent<any>) => {\n return event;\n }),\n catchError((error: HttpErrorResponse) => {\n return from(this.handle(request, error)).pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError(() => {\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\n return throwError(error);\n })\n );\n })\n );\n }\n}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { from, Observable, throwError } from 'rxjs';\nimport { catchError, first, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxConfigService } from '../services';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigHeaderInterceptor implements HttpInterceptor {\n constructor(\n private authService: MonkeyEcxAuthenticationService,\n private errorHandlingService: MonkeyEcxErrorHandlingService,\n private config: MonkeyEcxConfigService\n ) {\n // not to do\n }\n\n private async handle(request: HttpRequest<any>) {\n const { url } = request;\n if (this.authService.isTokenMandatory(url)) {\n try {\n await this.config\n .config()\n .pipe(\n first((val: any) => {\n return !!val && JSON.stringify(val) !== '{}';\n })\n )\n .toPromise();\n } catch (e) {\n // not to do\n }\n }\n let resp = null;\n try {\n resp = await this.authService.getRequestWithHeadersAsync(request);\n } catch (e) {\n this.errorHandlingService.handleError(e);\n return throwError(e);\n }\n\n return resp;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return from(this.handle(request)).pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError((error: HttpErrorResponse) => {\n this.errorHandlingService.handleError(error);\n return throwError(error);\n })\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxRequestQueueHandlingService } from '../services/request-queue';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestQueue } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigQueueInterceptor implements HttpInterceptor {\n constructor(\n private injector: Injector,\n private monkeyecxRequestQueueHandlingService: MonkeyEcxRequestQueueHandlingService\n ) {\n // not to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isQueueProperty } = this;\n const monkeyecxHandlingService = injector.get(MonkeyEcxHandlingService);\n\n const monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = monkeyecxHandlingService?.getMonkeyEcxRequestQueue();\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.setQueue(monkeyecxRequestQueue);\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.finishQueueItem(monkeyecxRequestQueue);\n }\n })\n );\n }\n\n private isQueueProperty(mrq?: MonkeyEcxRequestQueue | null): boolean {\n return (\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq?.item?.name)\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestLoadingInProgress } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxProgressBarService } from '../../components';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigLoadingInProgressInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {\n // no to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isLoadingInProgressProperty } = this;\n const handlingService: MonkeyEcxHandlingService = injector.get(MonkeyEcxHandlingService);\n const progressBarService: MonkeyEcxProgressBarService = injector.get(\n MonkeyEcxProgressBarService\n );\n\n const inProgress: MonkeyEcxRequestLoadingInProgress | null = handlingService?.getMonkeyEcxServiceCredentials()\n ? handlingService?.getMonkeyEcxServiceCredentials()?.requestInProgress || null\n : null;\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.show();\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.hide();\n }\n })\n );\n }\n\n private isLoadingInProgressProperty(mlp: MonkeyEcxRequestLoadingInProgress | null): boolean {\n if (!mlp) return false;\n return MonkeyEcxUtils.persistNullEmptyUndefined(mlp) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mlp.showProgress)\n ? mlp.showProgress\n : true;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxHttpConfigErrorInterceptor } from './monkeyecx-http-config-error.interceptor';\nimport { MonkeyEcxHttpConfigHeaderInterceptor } from './monkeyecx-http-config-header.interceptor';\nimport { MonkeyEcxHttpConfigQueueInterceptor } from './monkeyecx-http-config-queue.interceptor';\nimport { MonkeyEcxHttpConfigLoadingInProgressInterceptor } from './monkeyecx-http-config-loading-in-progress.interceptor';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxHttpConfigInterceptorModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxHttpConfigInterceptorModule> {\n return {\n ngModule: MonkeyEcxHttpConfigInterceptorModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigHeaderInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigErrorInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigQueueInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigLoadingInProgressInterceptor,\n multi: true,\n },\n ],\n };\n }\n}\n","/* eslint-disable no-unused-vars */\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport enum OpSearch {\n LIKE = ':\\'*:value*\\'',\n BETWEEN = ':first AND :last',\n OR = 'OR',\n AND = 'AND',\n GT = '>:value',\n LT = '<:value',\n EQUAL = '::value',\n IN = ' IN :value',\n NOT = ' !:value'\n}\n\nexport class MonkeyEcxSpecificationSearch {\n constructor() {\n // not to do\n }\n\n private handleValue(value: any) {\n return Object.entries(value).map(([key, value1]) => {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {\n return null;\n }\n if (Array.isArray(value1)) {\n if (key === OpSearch.BETWEEN) {\n return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);\n }\n }\n return `${key}`.replace(':value', `${value1}`);\n })[0];\n }\n\n private queryVisitor(value: any): any {\n const okay = Object.entries(value).map(([key1, value1]) => {\n if (key1 === OpSearch.OR || key1 === OpSearch.AND) {\n const join = (value1 as any[])\n .map((_: any) => {\n return Object.entries(_).map(([key2, value2]) => {\n if (value2 instanceof Object) {\n value2 = this.handleValue(value2);\n }\n return this.criteriaParser(key2, value2);\n })[0];\n })\n .filter((_: any) => {\n return _;\n })\n .join(` ${key1} `);\n return `${join ? `(${join})` : ''}`;\n }\n if (value1 instanceof Object) {\n value1 = this.handleValue(value1);\n }\n return this.criteriaParser(key1, value1);\n });\n return okay\n .filter((_: any) => {\n return _;\n })\n .join(' AND ');\n }\n\n private criteriaParser(key: string, value: any | any[]) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n return '';\n }\n if (value instanceof Object) {\n return this.queryVisitor(value);\n }\n return `${key}${value}`;\n }\n\n public build(spec: any): string {\n try {\n return this.queryVisitor(spec);\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public buildMoreThanOne(field: string, op = OpSearch.EQUAL, addSingleQuotes = false) {\n const self: any = this;\n try {\n if (!self[field]) return [];\n\n const filters = self[field]?.split(',')?.map((filter: string) => {\n if (!filter) return null;\n return {\n [field]: {\n [op]: addSingleQuotes ? `'${filter}'` : `${filter}`\n }\n };\n }).filter((val: any) => { return val; });\n return filters || [];\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public handleFieldSeparatedBy(field: string, signal = ',', op = OpSearch.EQUAL) {\n return this[field]?.split(signal)?.map((_) => {\n return {\n [field]: {\n [op]: _\n }\n };\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { StoreModule } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideModule,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n} from 'monkey-style-guide';\nimport {\n AlertsModule,\n ClosedToMaintenanceModule,\n CurrencyConfigModule,\n VersionChangedModule\n} from './components';\nimport { MonkeyEcxHttpConfigInterceptorModule } from './core/interceptors/monkeyecx-http-config-interceptor.module';\nimport { MonkeyEcxConfigModule } from './core/services/config/monkeyecx-config.module';\nimport { MonkeyEcxErrorHandlingModule } from './core/services/error/monkeyecx-error-handling.module';\nimport { reducers } from './store';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n TranslateModule.forRoot(),\n MonkeyEcxConfigModule.forRoot(),\n MonkeyEcxHttpConfigInterceptorModule.forRoot(),\n MonkeyEcxErrorHandlingModule.forRoot(),\n MonkeyStyleGuideModule,\n ServiceWorkerModule.register('ngsw-worker.js'),\n ClosedToMaintenanceModule,\n StoreModule.forFeature(\n reducers.fromMonkeyecxStorage.featureKey,\n reducers.fromMonkeyecxStorage.reducer\n ),\n VersionChangedModule,\n AlertsModule,\n CurrencyConfigModule\n ],\n providers: [\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n ]\n})\nexport class MonkeyFrontCoreModule {}\n","/*\n * Public API Surface of monkey-front-core\n */\nexport * from './lib/components';\nexport * from './lib/core';\nexport * from './lib/monkey-front-core.module';\nexport * as store from './lib/store';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","moment","i4.MonkeyEcxFormatDateTimelapsePipe","i2.MonkeyEcxHandlingService","i1.MonkeyEcxService","i2","Statics.MonkeyEcxQueueEvents","Statics.MonkeyEcxUploadEvents","i1.MonkeyEcxProgressBarService","DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties","DecoratorsUtils.buildQueuePropertys","DecoratorsUtils.buildDownloadPropertys","DecoratorsUtils.buildUploadPropertys","actions.monkeyecxStorage.clear","actions.monkeyecxStorage.create","actions.monkeyecxStorage.updateControl","actions.monkeyecxStorage.updateOne","actions.monkeyecxStorage.deleteOne","selectAll","reducers.fromMonkeyecxStorage.featureKey","reducers.fromMonkeyecxStorage.selectAll","window","i2.MonkeyEcxTokenStorageService","i4.MonkeyEcxErrorConfigService","i2.MonkeyEcxi18nConfigService","i3.MonkeyEcxLogsConfigService","i4","i5.MonkeyEcxServiceWorkerConfigService","i6.MonkeyEcxSecurityConsoleConfigService","i7.MonkeyEcxMaintenanceConfigService","i8.MonkeyEcxErrorConfigService","i9.MonkeyEcxFeatureToggleService","i10.MonkeyEcxGTMConfigService","i11.MonkeyEcxAlertsConfigService","selectors.monkeyecxStorage.select","i1.MonkeyEcxConfigService","i1.MonkeyEcxTokenStorageService","i1.MonkeyEcxAuthenticationService","i2.MonkeyEcxCookieStorageService","i3.MonkeyEcxConfigService","i3.MonkeyEcxAuthenticationService","i5","i6","Statics.MonkeyEcxDownloadEvents","i2.MonkeyEcxLoggedHandlingService","i1.MonkeyEcxFeatureToggleService","i2.MonkeyEcxErrorHandlingService","i1.MonkeyEcxRequestQueueHandlingService","i2.MonkeyEcxConfigModule","i3.MonkeyEcxHttpConfigInterceptorModule","i4.MonkeyEcxErrorHandlingModule","reducers.fromMonkeyecxStorage.reducer"],"mappings":"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"}
1
+ {"version":3,"file":"monkey-front-core.mjs","sources":["../../../projects/monkey-front-core/src/lib/components/alerts/alerts.component.ts","../../../projects/monkey-front-core/src/lib/components/alerts/alerts.component.html","../../../projects/monkey-front-core/src/lib/components/alerts/alerts.module.ts","../../../projects/monkey-front-core/src/lib/core/utils/statics.ts","../../../projects/monkey-front-core/src/lib/core/utils/utils.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-timelapse.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.html","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-service.service.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-blob-secure.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-first-name.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-initials.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-support-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-address.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-beautify-json.ts","../../../projects/monkey-front-core/src/lib/core/injectors/index.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-group.ts","../../../projects/monkey-front-core/src/lib/core/utils/decorators-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validate-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validators.ts","../../../projects/monkey-front-core/src/lib/core/utils/index.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-unix-timelapse.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-number.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-size.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-tax.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-type-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-value.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-zipcode.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-text-truncate.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-truncate-qtd.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-currency-code.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-pipes.module.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.module.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.html","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.module.ts","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.component.ts","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.component.html","../../../projects/monkey-front-core/src/lib/components/currency-config/currency-config.module.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-charts-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-download-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-upload-decorators.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-drag-drop.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-upper.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-alpha-numeric-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-number-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-popover-options.directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-popover.directive.ts","../../../projects/monkey-front-core/src/lib/store/actions/monkeyecx-storage.actions.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-seeder.reducer.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-storage.reducer.ts","../../../projects/monkey-front-core/src/lib/store/selectors/monkeyecx-storage.selector.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-model.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-links.model.ts","../../../projects/monkey-front-core/src/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons.service.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons-resolve-base.service.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons-resolve.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-error-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-i18n-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-logs-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-service-worker-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-security-console-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-maintenance-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-feature-toggle.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-gtm-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-alerts-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-token-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-security-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-tooltip-directive.ts","../../../projects/monkey-front-core/src/lib/core/services/alerts/monkeyecx-alerts.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-authentication.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-company.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-login.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-role.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.module.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-currency-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-http-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-others-errors-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.module.ts","../../../projects/monkey-front-core/src/lib/core/services/logged/monkeyecx-logged-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/pagination/monkeyecx-pagination.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-download-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/routes/monkeyecx-dicovery-params.service.ts","../../../projects/monkey-front-core/src/lib/core/services/schedules/monkeyecx-request-schedule.service.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store-base.service.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.actions.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.selector.ts","../../../projects/monkey-front-core/src/lib/core/services/store/monkeyecx-store.service.ts","../../../projects/monkey-front-core/src/lib/core/services/l/l.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-by-program-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-loading.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-directives-module.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-error.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-header.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-interceptor.module.ts","../../../projects/monkey-front-core/src/lib/core/specification-search/monkeyecx-specification-search.ts","../../../projects/monkey-front-core/src/lib/monkey-front-core.module.ts","../../../projects/monkey-front-core/src/public-api.ts","../../../projects/monkey-front-core/src/monkey-front-core.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.scss']\n})\nexport class AlertsComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _img = '';\n\n _title = '';\n\n _message = '';\n\n _action: {\n href: string,\n label: string\n } | null = null;\n\n _hideClose = false;\n\n constructor(\n private modalService: MonkeyStyleGuideModalService\n ) {\n // not to do\n }\n\n ngOnInit() {\n const { config } = this;\n this._img = config?.data?.img;\n this._title = config?.data?.title;\n this._message = config?.data?.message;\n this._action = config?.data?.action;\n this._hideClose = config?.data?.hideClose;\n }\n\n onClose() {\n this.modalService.close(this.modalRef);\n }\n\n onAction() {\n const { _action } = this;\n if (_action?.href) {\n window.location.href = _action?.href;\n }\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"alert-header\">\n <img [src]=\"_img\">\n </div>\n <div class=\"alert-body\">\n <span class=\"title\">\n {{ _title | translate }}\n </span>\n <span class=\"message\">\n {{ _message | translate }}\n </span>\n </div>\n <div class=\"alert-footer\">\n <ng-container *ngIf=\"!_hideClose\">\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'BUTTONS.CLOSE' | translate }}\n </monkey-button>\n </ng-container>\n \n <ng-container *ngIf=\"_action\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onAction()\">\n {{ _action.label | translate }}\n </monkey-button>\n </ng-container>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyModalModule } from 'monkey-style-guide';\nimport { AlertsComponent } from './alerts.component';\n\n@NgModule({\n declarations: [AlertsComponent],\n imports: [CommonModule, MonkeyButtonModule, MonkeyModalModule, TranslateModule.forChild()],\n exports: [AlertsComponent]\n})\nexport class AlertsModule {}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-shadow */\nexport enum MonkeyEcxQueueEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxDownloadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxUploadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsTokenNotMandatory {\n Assets = 'assets/',\n MonkeyEcx = '/monkeyecx',\n ViaCep = 'viacep.com.br/'\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsHeaderNotMandatory {\n Assets = '/assets',\n PayablesUpload = 'payables-upload',\n PictureUser = '/user-pictures',\n Documents = 'documents/',\n BuyerTaxFile = '/buyer-tax-file',\n ViaCep = 'viacep.com.br/'\n}\n\nexport enum CountryMasks {\n CPF = '000.000.000-00',\n CNPJ = '00.000.000/0000-00',\n RUT1 = '0000000-A',\n RUT2 = '00000000-A',\n RFC1 = 'AAAA000000AA0',\n RFC2 = 'AAA000000AA0'\n}\n","/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-useless-escape */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-cond-assign */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-redeclare */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { CountryMasks } from './statics';\n\n/* eslint-disable block-scoped-var */\nexport class MonkeyEcxUtils {\n static persistNullEmptyUndefined(tp: any): boolean {\n return tp !== null && tp !== undefined && tp !== '';\n }\n\n static getDocumentType(doc: string, country?: string) {\n if (!doc) return '';\n if (country === 'cl') return 'RUT';\n if (country === 'mx') return 'RFC';\n if (country === 'us') return 'EIN';\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\n }\n\n static getDocumentMask(type: string, country = '') {\n return {\n BR: {\n CPF: CountryMasks.CPF,\n CNPJ: CountryMasks.CNPJ,\n '': `${CountryMasks.CPF}||${CountryMasks.CNPJ}`\n },\n CL: {\n CPF: CountryMasks.RUT1,\n CNPJ: CountryMasks.RUT2,\n '': `${CountryMasks.RUT1}||${CountryMasks.RUT2}`\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2,\n '': `${CountryMasks.RFC1}||${CountryMasks.RFC2}`\n }\n }[country.toUpperCase()]?.[type];\n }\n\n static getDocumentPlaceholder(type: string, country = '') {\n return {\n BR: {\n CPF: '000.000.000-XX',\n CNPJ: '00.000.000/0000-00'\n },\n CL: {\n CPF: '0000000-A',\n CNPJ: '0000000-A'\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2\n }\n }[country.toUpperCase()]?.[type];\n }\n\n static formatDocumentWithMask(doc: string, withType?: boolean, country?: string): string {\n if (!doc) return doc;\n let formated: string = '';\n if (country === 'cl') {\n formated = doc.replace(/^(\\d{1,2})(\\d{3})(\\d{3})(\\w{1})$/, '$1.$2.$3-$4');\n return `${formated}`;\n }\n if (country === 'us') {\n return doc;\n }\n if (doc.length === 14) {\n formated = doc\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\n .replace(/(\\d{4})(\\d)/, '$1-$2');\n } else {\n formated = doc\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n }\n\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\n }\n\n static cutFirstLastName(value: string, tp: string = 'first') {\n const split = value?.trim()?.split(' ');\n\n if (tp === 'first') return split[0];\n return split?.splice(1, split.length)?.join(' ');\n }\n\n static isCPFCNPJValid(document: any): boolean {\n document = document.replace(/[^\\d]/g, '');\n\n const handled = document.replace(new RegExp(document.charAt(0), 'g'), '');\n if (!handled) return false;\n\n if (document.length === 11) {\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]) ;\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]) ;\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n return true;\n }\n if (document.length === 14 || /0{14}/.test(document)) {\n const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]) ;\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]) ;\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n }\n return false;\n }\n\n public static isValidRUT(document: string): boolean {\n if (!document || document.trim().length < 3) return false;\n const documentHandled = document.replace(/[^0-9kK]/g, '');\n\n if (documentHandled.length < 3) return false;\n\n const calcDv = (rut: string) => {\n const value: string = `${rut}`;\n let sum = 0;\n let mult = 2;\n\n for (let i = 1; i <= value.length; i++) {\n const index = mult * Number(value.charAt(value.length - i));\n\n sum += index;\n\n if (mult < 7) {\n mult += 1;\n } else {\n mult = 2;\n }\n }\n\n const dvEsperado = 11 - (sum % 11);\n if (dvEsperado === 10) return 'K';\n if (dvEsperado === 11) return '0';\n return `${dvEsperado}`;\n };\n\n const num = documentHandled.slice(0, -1);\n const dgv = documentHandled.slice(-1).toUpperCase();\n\n const dvCalc = calcDv(num);\n return dvCalc === dgv;\n }\n\n public static isValidRFC(document: string) {\n const RFC_REGEXP = /^([A-ZÑ\\x26]{3,4})([0-9]{6})([A-Z0-9]{3})$/;\n const SPECIAL_CASES = {\n XEXX010101000: 'foreign',\n XAXX010101000: 'generic'\n };\n const FORBIDDEN_WORDS = [\n 'BUEI',\n 'BUEY',\n 'CACA',\n 'CACO',\n 'CAGA',\n 'CAGO',\n 'CAKA',\n 'CAKO',\n 'COGE',\n 'COJA',\n 'COJE',\n 'COJI',\n 'COJO',\n 'CULO',\n 'FETO',\n 'GUEY',\n 'JOTO',\n 'KACA',\n 'KACO',\n 'KAGA',\n 'KAGO',\n 'KOGE',\n 'KOJO',\n 'KAKA',\n 'KULO',\n 'MAME',\n 'MAMO',\n 'MEAR',\n 'MEAS',\n 'MEON',\n 'MION',\n 'MOCO',\n 'MULA',\n 'PEDA',\n 'PEDO',\n 'PENE',\n 'PUTA',\n 'PUTO',\n 'QULO',\n 'RATA',\n 'RUIN'\n ];\n\n const VALUES_MAP = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 18,\n J: 19,\n K: 20,\n L: 21,\n M: 22,\n N: 23,\n '&': 24,\n O: 25,\n P: 26,\n Q: 27,\n R: 28,\n S: 29,\n T: 30,\n U: 31,\n V: 32,\n W: 33,\n X: 34,\n Y: 35,\n Z: 36,\n ' ': 37,\n Ñ: 38\n };\n\n const getScore = (doc: string) => {\n return doc.split('').reverse().reduce((sum, char, i) => {\n const index = i + 2;\n const value = VALUES_MAP[char] || 0;\n return sum + value * index;\n }, 0);\n };\n\n const parseInput = (doc: string) => {\n return String(doc)\n .trim()\n .toUpperCase()\n .replace(/[^0-9A-ZÑ\\x26]/g, '');\n };\n\n const validateDate = (doc: string) => {\n const dateStr = doc.slice(0, -3).slice(-6);\n const year = dateStr.slice(0, 2);\n const month = dateStr.slice(2, 4);\n const day = dateStr.slice(4, 6);\n const date = new Date(`20${year}-${month}-${day}`);\n // eslint-disable-next-line no-restricted-globals\n return !isNaN(date.getTime());\n };\n\n const validateVerificationDigit = (doc: string) => {\n const digit = doc.slice(-1);\n const rfc = doc.length === 12 ? ` ${doc}` : doc;\n const base = rfc.slice(0, -1);\n const score = getScore(base);\n const mod = (11000 - score) % 11;\n if (mod === 11) return digit === '0';\n if (mod === 10) return digit === 'A';\n return String(mod) === digit;\n };\n\n const isSpecialCase = (doc: string) => { return doc in SPECIAL_CASES; };\n\n const hasForbiddenWords = (doc: string) => {\n const prefix = (doc || '').slice(0, 4);\n return FORBIDDEN_WORDS.includes(prefix);\n };\n\n try {\n const input = parseInput(document);\n\n if (isSpecialCase(input)) return false;\n const hasValidFormat = RFC_REGEXP.test(input);\n if (!hasValidFormat) return false;\n const hasValidDate = validateDate(input);\n if (!hasValidDate) return false;\n const hasValidDigit = validateVerificationDigit(input);\n if (!hasValidDigit) return false;\n if (hasForbiddenWords(input)) return false;\n\n return true;\n } catch (e) {\n // not to do\n }\n\n return false;\n }\n\n static isValidUrl(txt: string): boolean {\n const regex = /(https?:\\/\\/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])(:?\\d*)\\/?([a-z_\\\\/0-9\\-#.]*)\\??([a-z_\\\\/0-9\\-#=&]*)/g;\n return regex.test(txt);\n }\n\n static isValidZipCode(zipCode: string, country?: string): boolean {\n const length = {\n br: 8,\n cl: 7,\n mx: 5\n }[country || 'br'];\n\n return `${this.handleOnlyNumbers(zipCode)}`.length === length;\n }\n\n static isValidEmail(email: string) {\n return /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/.test(email || '');\n }\n\n static getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomString: string = new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet?.length));\n })\n .join('');\n return randomString;\n }\n\n static handleOnlyNumbers(value: any) {\n if (!value) return null;\n return value.replace(new RegExp(/[^0-9]/g), '');\n }\n\n static handleOnlyAlphaNumeric(value: any) {\n if (!value) return '';\n return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');\n }\n\n static capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n }\n\n static formatZipCode(zipCode: string): string {\n if (!zipCode) return zipCode;\n const formated: string = zipCode\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n\n return `${formated}`;\n }\n\n static formatFileSize(size: number): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let l = 0;\n while (size >= 1024 && ++l) {\n size /= 1024;\n }\n return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;\n }\n\n static sufflue(data: any[]): any[] {\n for (let i = data.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * i);\n const temp = data[i];\n data[i] = data[j];\n data[j] = temp;\n }\n return data;\n }\n\n static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\n function blobToFile(theBlob: any, fileName: string) {\n const b = theBlob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n return b;\n }\n\n let file: any;\n if (!(navigator as any).msSaveBlob) {\n file = new File([theBlob], fileName, {\n type: fileType,\n });\n } else {\n file = new Blob([theBlob], {\n type: fileType,\n });\n file = blobToFile(file, fileName);\n }\n return file;\n }\n\n static truncate(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n\n static isLocalhost() {\n const { href } = window?.location;\n if (!href) return false;\n return href?.search('localhost') >= 0;\n }\n\n static isSameOrigin(frontend: string): boolean {\n const initialPath: string = window.location.origin;\n return (initialPath || '') === frontend;\n }\n\n static replaceVariables(data: string, obj: any) {\n let handled = data;\n Object.entries(obj).forEach(([key, value]) => {\n handled = handled.replace(new RegExp(`{${key}}`, 'g'), `${value}`);\n });\n return handled;\n }\n\n static trimValuesToSave(obj: any, fields: string[]) {\n let ret = obj;\n const grouped = fields.join('#');\n Object.entries(obj).map(([key, value]) => {\n if (grouped.includes(key)) {\n ret = {\n ...ret,\n [key]: `${value}`.trim()\n };\n }\n return null;\n });\n\n return ret;\n }\n}\n\nexport type MonkeyEcxLogsErrorTypes = 'ok' |\n 'debug' |\n 'info' |\n 'notice' |\n 'warn' |\n 'error' |\n 'critical' |\n 'alert' |\n 'emerg';\n\nexport type MonkeyEcxLogParams = {\n message: string;\n context?: any;\n error?: Error;\n type?: MonkeyEcxLogsErrorTypes;\n}\n\nexport class MonkeyEcxLogs {\n static log(params: MonkeyEcxLogParams) {\n try {\n const { type, message, context, error } = params;\n datadogLogs.logger[type || 'error'](message, context, error);\n } catch (e) {\n // not to do\n }\n }\n}\n\nexport function bufferToBase64(buffer: ArrayBuffer): string {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\nexport function base64ToBuffer(base64: string): ArrayBuffer {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateTimelapse'\n})\nexport class MonkeyEcxFormatDateTimelapsePipe implements PipeTransform {\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (!useUtc) stillUtc = moment.default(date).toDate();\n if (date.toString().indexOf(':') <= -1) {\n if (typeof date === 'string') {\n stillUtc = date;\n showTime = false;\n }\n }\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\n }\n}\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\nimport { MonkeyEcxConfigBootstrap } from '../../core/interfaces';\n\n@Component({\n selector: 'monkeyecx-closed-to-maintenance',\n templateUrl: './closed-to-maintenance.component.html',\n styleUrls: ['./closed-to-maintenance.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ClosedToMaintenanceComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _configBootstrap: MonkeyEcxConfigBootstrap | null = null;\n\n ngOnInit() {\n this._configBootstrap = this.config?.data;\n }\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-1' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-2' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-3' | translate }}\n {{ _configBootstrap?.maintenance?.endDate | monkeyecxFormatDateTimelapse: true }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-4' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.BUTTONS.UPDATE-MAINTENANCE' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","/* eslint-disable max-len */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestDownload } from '../interfaces/request-download/monkeyecx-request-download';\nimport { MonkeyEcxRequestQueue } from '../interfaces/request-queue/monkeyecx-request-queue';\nimport { MonkeyEcxRequestUpload } from '../interfaces/request-upload/monkeyecx-request-upload';\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class MonkeyEcxHandlingService {\n private monkeyecxServiceCredentials: MonkeyEcxServiceCredentials | null = null;\n\n private monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = null;\n\n private monkeyecxRequestDownload: MonkeyEcxRequestDownload | null = null;\n\n private monkeyecxRequestUpload: MonkeyEcxRequestUpload | null = null;\n\n public clearAll() {\n this.monkeyecxServiceCredentials = null;\n this.monkeyecxRequestQueue = null;\n this.monkeyecxRequestDownload = null;\n this.monkeyecxRequestUpload = null;\n }\n\n public setMonkeyEcxServiceCredentials(param: MonkeyEcxServiceCredentials) {\n this.monkeyecxServiceCredentials = param;\n }\n\n public getMonkeyEcxServiceCredentials(): MonkeyEcxServiceCredentials | null {\n return this.monkeyecxServiceCredentials;\n }\n\n public setMonkeyEcxRequestQueue(queue: MonkeyEcxRequestQueue) {\n this.monkeyecxRequestQueue = queue;\n }\n\n public getMonkeyEcxRequestQueue(): MonkeyEcxRequestQueue | null {\n return this.monkeyecxRequestQueue;\n }\n\n public setMonkeyEcxRequestDownload(download: MonkeyEcxRequestDownload) {\n this.monkeyecxRequestDownload = download;\n }\n\n public getMonkeyEcxRequestDownload(): MonkeyEcxRequestDownload | null {\n return this.monkeyecxRequestDownload;\n }\n\n public setMonkeyEcxRequestUpload(upload: MonkeyEcxRequestUpload) {\n this.monkeyecxRequestUpload = upload;\n }\n\n public getMonkeyEcxRequestUpload(): MonkeyEcxRequestUpload | null {\n return this.monkeyecxRequestUpload;\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from './monkeyecx-handling.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxService {\n constructor(\n protected http: HttpClient,\n public monkeyecxHandlingService: MonkeyEcxHandlingService\n ) {\n // not to do\n }\n\n private handlelize(params: any): any {\n if (!params) {\n return params;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const field of [\n 'createdAt',\n 'createUserId',\n 'updatedAt',\n 'lastUserId',\n '_links',\n 'governmentIdType',\n 'governmentIdMask',\n 'screenType',\n 'screenTab'\n ]) {\n delete params[field];\n }\n return params;\n }\n\n public get<T>(url: string, options?: any): Observable<any> {\n return this.http.get<T>(url, options);\n }\n\n public post<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.post<T>(url, params, options);\n }\n\n public put<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.put<T>(\n url,\n this.handlelize({\n ...params\n }),\n options\n );\n }\n\n public patch<T>(url: string, params: T, options?: any): Observable<any> {\n return this.http.patch<T>(\n url,\n this.handlelize({\n ...params\n }),\n options\n );\n }\n\n public delete<T>(url: string, params?: any): Observable<any> {\n return this.http.delete<T>(url, params);\n }\n\n public download<T>(url: string, options?: any, filename?: string) {\n this.http.get<T>(url, options).subscribe(\n (resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n return {\n filename,\n blob\n };\n },\n (err: HttpErrorResponse) => {\n throwError(err);\n }\n );\n }\n\n public downloadOb<T>(url: string, options?: any, filename?: string): Observable<any> {\n return this.http.get<any>(url, options).pipe(\n map((resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n return {\n filename,\n blob\n };\n }),\n catchError((err: any) => {\n return throwError(err);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxService } from '../services/monkeyecx-service.service';\n\n@Pipe({\n name: 'monkeyecxBlobSecure'\n})\nexport class MonkeyEcxBlobSecurePipe implements PipeTransform {\n constructor(private monkeyecxService: MonkeyEcxService, private sanitizer: DomSanitizer) {\n // not to do\n }\n\n transform(url: string): Observable<SafeUrl> {\n return this.monkeyecxService.get(url, { responseType: 'blob' }).pipe(\n map((val: any) => {\n return this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val));\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayFirstName'\n})\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n return MonkeyEcxUtils.cutFirstLastName(name);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayInitials'\n})\nexport class MonkeyEcxDisplayInitialsPipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n const first = MonkeyEcxUtils.cutFirstLastName(name, 'first');\n const second = MonkeyEcxUtils.cutFirstLastName(name, 'last');\n return `${first?.charAt(0)} ${second?.charAt(0)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxConfigSupportPhone } from '../interfaces';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxDisplaySupportPhone'\n})\nexport class MonkeyEcxDisplaySupportPhone implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(phones: MonkeyEcxConfigSupportPhone[]) {\n return phones.map((phone: MonkeyEcxConfigSupportPhone) => {\n const isOnline = this.isPhoneOnline(phone);\n\n return {\n ...phone,\n isOnline,\n color: isOnline ? '#00875A' : '#FA3838'\n };\n });\n }\n\n isPhoneOnline(phone: any): boolean {\n const start = moment.default().startOf('day').add(phone?.startHour, 'hours').format('YYYY-MM-DD HH:mm');\n const end = moment.default().startOf('day').add(phone?.endHour, 'hours').format('YYYY-MM-DD HH:mm');\n\n return moment.default().isSameOrAfter(start) && moment.default().isSameOrBefore(end);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatAddress',\n})\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\n transform({\n zipCode,\n address,\n neighborhood,\n city,\n state,\n }: {\n zipCode: string;\n address: string;\n neighborhood: string;\n city: string;\n state: string;\n country: string;\n }): string {\n return [address, neighborhood, zipCode, city, state]\n .filter((_: string) => {\n return _;\n })\n .join(', ');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatBeautifyJSON'\n})\nexport class MonkeyEcxFormatBeaufityJSONPipe implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(value: any) {\n const jsonLine = /^( *)(\"[\\w]+\": )?(\"[^\"]*\"|[\\w.+-]*)?([,[{])?$/gm;\n\n const replacer = (match, pIndent, pKey, pVal, pEnd) => {\n const key = '<span class=\"json-key\" style=\"color: brown\">';\n const val = '<span class=\"json-value\" style=\"color: navy\">';\n const str = '<span class=\"json-string\" style=\"color: olive\">';\n let r = pIndent || '';\n if (pKey) {\n r = `${r + key + pKey.replace(/[\": ]/g, '')}</span>: `;\n }\n if (pVal) {\n r = `${r + (pVal[0] === '\"' ? str : val) + pVal}</span>`;\n }\n return r + (pEnd || '');\n };\n\n return JSON.stringify(value, null, 3)\n .replace(/&/g, '&amp;')\n .replace(/\\\\\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(jsonLine, replacer);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const MECX_TIMEZONEOFFSET = new InjectionToken<string>('');\nexport const MECX_DATE_FORMAT = new InjectionToken<string>('');\nexport const MECX_LANG = new InjectionToken<string>('');\nexport const MECX_ENV = new InjectionToken<string>('');\nexport const MECX_ALPHA = new InjectionToken<string>('');\nexport const MECX_BETA = new InjectionToken<string>('');\n","import { CurrencyPipe } from '@angular/common';\nimport { DEFAULT_CURRENCY_CODE, Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\nimport { MECX_LANG } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatCurrency'\n})\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\n constructor(\n private currencyPipe: CurrencyPipe,\n @Inject(DEFAULT_CURRENCY_CODE) private defaultCurencyCode: InjectionToken<string>,\n @Inject(MECX_LANG) private lang: InjectionToken<string>\n ) {\n // not to do\n }\n\n transform(value: any, symbol = 'symbol') {\n const currency = this.defaultCurencyCode.toString();\n const locale = this.lang.toString();\n\n try {\n if (currency === 'CLP') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '1.0-0', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n if (currency === 'MXN') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n return this.currencyPipe.transform(value, currency, symbol, '', locale);\n } catch (e) {\n // not to do\n }\n return value;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\nimport { MECX_DATE_FORMAT, MECX_TIMEZONEOFFSET } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatDate'\n})\nexport class MonkeyEcxFormatDatePipe implements PipeTransform {\n constructor(\n private dt: DatePipe,\n @Inject(MECX_DATE_FORMAT) private dateFormat: InjectionToken<string>,\n @Inject(MECX_TIMEZONEOFFSET) private timezone: InjectionToken<string>\n ) {\n // not to do\n }\n\n transform(date: any | Date, format = this.dateFormat.toString()) {\n return this.dt.transform(date, format, this.timezone.toString());\n }\n}\n","import { Injector, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateGroup',\n})\nexport class MonkeyEcxFormatDateGroupPipe implements PipeTransform {\n private lang = 'pt-BR';\n\n constructor(private injector: Injector) {\n const translateService = this.injector.get(TranslateService);\n this.lang = translateService.getDefaultLang();\n }\n\n private format(date: string | Date) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (date.toString()?.indexOf(':') <= -1) {\n stillUtc = date;\n }\n const formatFrom = 'YYYY/MM/DD';\n const fmt = moment.default(stillUtc, formatFrom).locale(this.lang);\n const dayFormated = fmt.format('DD/');\n const monthFormated = MonkeyEcxUtils.capitalize(fmt.format('MMMM'));\n const yearFormated = fmt.format('YYYY');\n return `${`${dayFormated}${monthFormated}`.substring(0, 6)}, ${yearFormated}`;\n }\n\n transform(obj: any): string {\n if (!obj || !obj?.start || !obj?.end) return '';\n const { start, end } = obj;\n const formatedStart = this.format(start);\n const formatedEnd = this.format(end);\n return `${formatedStart} - ${formatedEnd}`;\n }\n}\n","import {\n MonkeyEcxRequestDownload,\n MonkeyEcxRequestItemQueue,\n MonkeyEcxRequestQueue,\n MonkeyEcxRequestUpload\n} from '../interfaces';\nimport * as Statics from './statics';\nimport { MonkeyEcxUtils } from './utils';\n\nexport function buildQueuePropertys(queue: MonkeyEcxRequestItemQueue): MonkeyEcxRequestQueue {\n const params: MonkeyEcxRequestQueue = {\n item: {\n ...queue,\n id: MonkeyEcxUtils.getRandomString(40)\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildDownloadPropertys(\n name: string,\n description?: string,\n size?: number\n): MonkeyEcxRequestDownload {\n const params: MonkeyEcxRequestDownload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n size,\n createdAt: new Date()\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildUploadPropertys(name: string, description?: string): MonkeyEcxRequestUpload {\n const params: MonkeyEcxRequestUpload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`\n },\n status: Statics.MonkeyEcxUploadEvents.OnGoing\n };\n\n return params;\n}\n\nexport function hasMonkeyEcxServiceAndHandlingProperties(context: any): boolean {\n return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');\n}\n","/* eslint-disable max-classes-per-file */\nimport { AbstractControl } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nexport class DateValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRutValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidRut: true\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRFCValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidRfc: true\n };\n }\n }\n return null;\n }\n}\n\nexport class ZipCodeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\n return {\n invalidZipCode: true\n };\n }\n }\n return null;\n }\n}\n\nexport class ComboValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n return {\n invalidCombo: true\n };\n }\n}\n\nexport class isTrueValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n return {\n invalidTrue: true\n };\n }\n}\n\nexport class PasswordMatchValidation {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n return {\n passwordsNotMatching: true\n };\n }\n}\n\nexport class UrlValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n invalidUrl: true\n };\n }\n }\n return null;\n }\n}\n\nexport class CustomDatesStartValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateStart || !dateEnd) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n return null;\n }\n}\n\nexport class CustomDatesEndValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateEnd < dateStart) {\n return {\n dateEndMustBeGreaterThanStart: true\n };\n }\n return null;\n }\n}\n\nexport class UnlockRegisterBuyerValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYBUYER') {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n }\n}\n\nexport class UnlockRegisterSponsorValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYSPONSOR') {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n }\n}\n\nexport class DateRangeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))\n ) {\n return {\n invalidDateRange: true\n };\n }\n\n return null;\n }\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nconst EMAIL_REGEXP = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/;\n\nfunction isEmptyInputValue(value: any): boolean {\n return value == null || value.length === 0;\n}\n\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n const test = EMAIL_REGEXP.test(control.value);\n if (test) return null;\n return {\n email: true\n };\n}\n\nexport function dateRangeValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))\n ) {\n return {\n dateRange: true\n };\n }\n\n return null;\n}\n\nexport function registerValidator(control: AbstractControl, type: string): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n}\n\nexport function dateStartEndValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) {\n return null;\n }\n\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n\n return null;\n}\n\nexport function urlValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n url: true\n };\n }\n\n return null;\n}\n\nexport function passwordConfirmValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n\n return {\n passwordsNotMatching: true\n };\n}\n\nexport function trueValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n\n return {\n invalidTrue: true\n };\n}\n\nexport function comboValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n\n return {\n invalidCombo: true\n };\n}\n\nexport function zipCodeValidator(\n control: AbstractControl,\n country?: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value, country)) {\n return {\n invalidZipCode: true\n };\n }\n }\n\n return null;\n}\n\nexport function documentValidator(\n control: AbstractControl,\n country: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n country = `${country}`.toUpperCase();\n if (country === 'BR') {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n } else if (country === 'CL') {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n } else if (country === 'MX') {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidCpfCnpj: true\n };\n }\n }\n\n return null;\n}\n\nexport function minYearsValidator(\n param: number,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const date = moment.default(control.value);\n const dif = moment.default().diff(date, 'years');\n\n if (dif < param) {\n return {\n invalidMinYears: {\n year: param\n }\n };\n }\n return null;\n}\n\nexport function dateValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true\n };\n }\n return null;\n}\n\nexport function valueGreaterThanZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (control && `${control?.value}` === '0') {\n return {\n invalidValueGreaterThanZero: true\n };\n }\n return null;\n}\n\nexport function requiredWithTrimValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n if (control && !`${control?.value}`.trim()) {\n return {\n required: true\n };\n }\n return null;\n}\n\nexport function differentFromZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n const handled = `${control?.value}`.trim().replace(/0/g, '');\n if (control && !handled) {\n return {\n differentFromZero: true\n };\n }\n\n return null;\n}\n\nexport function documentValidatorByType(\n type: string,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const handle = MonkeyEcxUtils.handleOnlyNumbers(control.value);\n let valid = false;\n if (type === 'CPF' || type === 'CNPJ') {\n if ((type === 'CNPJ' && `${handle}`.length !== 14) ||\n (type === 'CPF' && `${handle}`.length !== 11)) {\n valid = false;\n } else {\n valid = MonkeyEcxUtils.isCPFCNPJValid(control.value);\n }\n } else if (type === 'RUT') {\n valid = MonkeyEcxUtils.isValidRUT(control.value);\n } else if (type === 'RFC') {\n valid = MonkeyEcxUtils.isValidRFC(control.value);\n }\n\n if (!valid) {\n return {\n [`invalid${MonkeyEcxUtils.capitalize(type.toLowerCase())}`]: true\n };\n }\n\n return null;\n}\n\nexport function validateFullName(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n const fullName = value.split(/\\s+/);\n const hasShortPart = fullName.some(part => part.length < 2);\n\n if (fullName.length < 2 || hasShortPart) {\n return { fullName: true };\n }\n\n return null;\n}\n\nexport class Validators {\n static email(control: AbstractControl): ValidationErrors | null {\n return emailValidator(control);\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n return dateRangeValidator(control);\n }\n\n static unlockSponsorRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'sponsor');\n }\n\n static unlockBuyerRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'buyer');\n }\n\n static dateStartEnd(control: AbstractControl): ValidationErrors | null {\n return dateStartEndValidator(control);\n }\n\n static url(control: AbstractControl): ValidationErrors | null {\n return urlValidator(control);\n }\n\n static passwordConfirm(control: AbstractControl): ValidationErrors | null {\n return passwordConfirmValidator(control);\n }\n\n static true(control: AbstractControl): ValidationErrors | null {\n return trueValidator(control);\n }\n\n static combo(control: AbstractControl): ValidationErrors | null {\n return comboValidator(control);\n }\n\n static zipCode(control: AbstractControl): ValidationErrors | null {\n return zipCodeValidator(control);\n }\n\n static zipCodeByCountry(country: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return zipCodeValidator(control, country);\n };\n }\n\n static documentBR(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'BR');\n }\n\n static documentCL(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'CL');\n }\n\n static documentMX(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'MX');\n }\n\n static date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\n }\n\n static minYears(param: number): ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n return minYearsValidator(param, control);\n };\n }\n\n static greaterThanZero(control: AbstractControl): ValidationErrors | null {\n return valueGreaterThanZero(control);\n }\n\n static required(control: AbstractControl): ValidationErrors | null {\n return requiredWithTrimValidator(control);\n }\n\n static differentFromZero(control: AbstractControl): ValidationErrors | null {\n return differentFromZero(control);\n }\n\n static documentValidatorByType(type: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return documentValidatorByType(type, control);\n };\n }\n\n static validateFullName(control: AbstractControl): ValidationErrors | null {\n return validateFullName(control);\n }\n}\n","/* eslint-disable object-curly-newline */\nimport * as DecoratorsUtils from './decorators-utils';\nimport * as Statics from './statics';\nimport { MonkeyEcxLogs, MonkeyEcxUtils } from './utils';\nimport * as ValidateUtils from './validate-utils';\n\nexport * from './validators';\nexport { DecoratorsUtils, MonkeyEcxLogs, MonkeyEcxUtils, Statics, ValidateUtils };\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from '../utils';\n\nconst moment: any = moment_;\n\n@Pipe({\n name: 'monkeyecxFormatDateUnixTimelapse'\n})\nexport class MonkeyEcxFormatDateUnixTimelapsePipe implements PipeTransform {\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\n let stillUtc: any = moment.default.utc(date).toDate();\n if (!useUtc) stillUtc = moment.default(date).toDate();\n if (\n moment.default\n .utc(date)\n .toDate()\n .toLocaleString()\n .indexOf(':') <= -1\n ) {\n if (typeof date === 'string') {\n stillUtc = date;\n showTime = false;\n }\n }\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocument',\n})\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\n transform(document: string, withType = false, country?: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) {\n return '';\n }\n\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType, country);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatNumber } from '@angular/common';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatNumber'\n})\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n\n return formatNumber(Number(number), 'ptbr');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatPhone'\n})\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\n transform(phone: string): string {\n if (phone) {\n const value = `${phone || ''}`.replace(/\\D/g, '');\n\n let formated = '';\n\n if (value.length > 12) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 11) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 10) {\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 9) {\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 5) {\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\n } else if (value.length > 1) {\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\n } else if (phone !== '') {\n formated = value.replace(/^(\\d*)/, '($1');\n }\n return formated;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatSize'\n})\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\n transform(size: string): string {\n if (!size) return '0 B';\n const sizeNum = Number(size);\n return MonkeyEcxUtils.formatFileSize(sizeNum);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils';\n\n@Pipe({\n name: 'monkeyecxFormatTax',\n})\nexport class MonkeyEcxFormatTaxPipe implements PipeTransform {\n transform(tax: number, decimalDigits: number = 7) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tax)) return '0 %';\n const stringTax = tax.toString();\n const stringTaxLimited = stringTax.slice(0, stringTax.indexOf('.') + decimalDigits + 1);\n return `${Number(stringTaxLimited).toLocaleString('pt-br', {\n maximumFractionDigits: decimalDigits,\n })} %`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocumentType'\n})\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\n transform(document: string, country?: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\n return MonkeyEcxUtils.getDocumentType(document, country);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatValue'\n})\nexport class MonkeyEcxFormatValue implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n return number;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatZipCode'\n})\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\n transform(zipCode: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\n return MonkeyEcxUtils.formatZipCode(zipCode);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTextTruncate'\n})\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\n transform(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTruncateQtd'\n})\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\n transform(number: number, threshold: number): string {\n return `${number > threshold ? `${threshold}+` : number}`;\n }\n}\n","import { DEFAULT_CURRENCY_CODE, Inject, InjectionToken, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxCurrencyCode'\n})\nexport class MonkeyEcxCurrencyCodePipe implements PipeTransform {\n constructor(@Inject(DEFAULT_CURRENCY_CODE) private defaultCurencyCode: InjectionToken<string>) {\n // not to do\n }\n\n transform(value: any, type: 'symbol' | 'code' = 'symbol') {\n const currency = this.defaultCurencyCode?.toString() || 'BRL';\n\n const symbol = {\n BRL: 'R$',\n CLP: '$',\n MXN: '$',\n USD: '$'\n }[currency];\n\n return `${value} (${type === 'symbol' ? symbol : currency})`;\n }\n}\n","import { CurrencyPipe, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxBlobSecurePipe } from './monkeyecx-blob-secure';\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\nimport { MonkeyEcxDisplayInitialsPipe } from './monkeyecx-display-initials';\nimport { MonkeyEcxDisplaySupportPhone } from './monkeyecx-display-support-phone';\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\nimport { MonkeyEcxFormatBeaufityJSONPipe } from './monkeyecx-format-beautify-json';\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatDatePipe } from './monkeyecx-format-date';\nimport { MonkeyEcxFormatDateGroupPipe } from './monkeyecx-format-date-group';\nimport { MonkeyEcxFormatDateTimelapsePipe } from './monkeyecx-format-date-timelapse';\nimport { MonkeyEcxFormatDateUnixTimelapsePipe } from './monkeyecx-format-date-unix-timelapse';\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\nimport { MonkeyEcxFormatTaxPipe } from './monkeyecx-format-tax';\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\nimport { MonkeyEcxCurrencyCodePipe } from './monkeyecx-currency-code';\n\n@NgModule({\n declarations: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxDisplaySupportPhone,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDateGroupPipe,\n MonkeyEcxFormatDateTimelapsePipe,\n MonkeyEcxFormatDateUnixTimelapsePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n exports: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxDisplaySupportPhone,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDateGroupPipe,\n MonkeyEcxFormatDateTimelapsePipe,\n MonkeyEcxFormatDateUnixTimelapsePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n providers: [CurrencyPipe, DatePipe]\n})\nexport class MonkeyEcxPipesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { MonkeyEcxPipesModule } from '../../core/pipes/monkeyecx-pipes.module';\nimport { ClosedToMaintenanceComponent } from './closed-to-maintenance.component';\n\n@NgModule({\n declarations: [ClosedToMaintenanceComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n MonkeyEcxPipesModule,\n TranslateModule.forChild()\n ],\n exports: [ClosedToMaintenanceComponent]\n})\nexport class ClosedToMaintenanceModule {}\n","import { Injectable } from '@angular/core';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router\n} from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxProgressBarService {\n private visible: BehaviorSubject<any> | null = null;\n\n constructor(private router: Router) {\n this.init();\n }\n\n private init() {\n this.visible = new BehaviorSubject(false);\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.show();\n });\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return (\n event instanceof NavigationEnd ||\n event instanceof NavigationError ||\n event instanceof NavigationCancel\n );\n })\n )\n .subscribe(() => {\n this.hide();\n });\n }\n\n show() {\n this.visible?.next(true);\n }\n\n hide() {\n this.visible?.next(false);\n }\n\n visibleConfig(): Observable<any> | null {\n return this.visible?.asObservable() || null;\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyEcxProgressBarService } from './progress-bar.service';\n\n@Component({\n selector: 'monkeyecx-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MonkeyEcxProgressBarComponent implements OnInit {\n visible: boolean = false;\n\n constructor(private progressBarService: MonkeyEcxProgressBarService) {\n //not to do\n }\n\n ngOnInit() {\n this.progressBarService?.visibleConfig()?.subscribe((visible: boolean) => {\n this.visible = visible;\n });\n }\n}\n","<ng-container *ngIf=\"visible\">\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [MonkeyEcxProgressBarComponent],\n imports: [CommonModule],\n exports: [MonkeyEcxProgressBarComponent]\n})\nexport class MonkeyEcxProgressBarModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-version-changed',\n templateUrl: './version-changed.component.html',\n styleUrls: ['./version-changed.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class VersionChangedComponent {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.VERSION-CHANGED.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-1' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-2' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.VERSION-CHANGED.BUTTONS.UPDATE-VERSION' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { VersionChangedComponent } from './version-changed.component';\n\n@NgModule({\n declarations: [VersionChangedComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [VersionChangedComponent]\n})\nexport class VersionChangedModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-currency-config',\n templateUrl: './currency-config.component.html',\n styleUrls: ['./currency-config.component.scss']\n})\nexport class CurrencyConfigComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _currency = 'BRL';\n\n _currencies = ['BRL'];\n\n private callback: Function = () => {};\n\n constructor(\n private modalService: MonkeyStyleGuideModalService\n ) {\n // not to do\n }\n\n ngOnInit() {\n const { config } = this;\n this._currency = config?.data?.currency;\n this._currencies = config?.data?.currencies;\n this.callback = config?.data?.callback;\n }\n\n onClose() {\n this.modalService.close(this.modalRef);\n this.callback?.(this._currency);\n }\n\n onHandleChangeCurrency(currency: string) {\n this._currency = currency;\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"alert-body\">\n <span class=\"title\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.TITLE' | translate }}\n </span>\n <span class=\"message\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.SUB-TITLE' | translate }}\n </span>\n <monkey-radiobutton [value]=\"_currency\"\n (onChange)=\"onHandleChangeCurrency($event)\">\n <monkey-option \n [label]=\"'CURRENCIES.'+currency | translate\"\n [value]=\"currency\"\n *ngFor=\"let currency of _currencies\">\n </monkey-option>\n </monkey-radiobutton>\n <span class=\"info\">\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.INFO' | translate }}\n </span>\n </div>\n <div class=\"alert-footer\">\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'BUTTONS.CONFIRM' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyModalModule, MonkeyOptionModule, MonkeyRadioButtonModule } from 'monkey-style-guide';\nimport { CurrencyConfigComponent } from './currency-config.component';\n\n@NgModule({\n declarations: [CurrencyConfigComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyRadioButtonModule,\n MonkeyOptionModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [CurrencyConfigComponent]\n})\nexport class CurrencyConfigModule {}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\nexport function MonkeyEcxCoreCharts(render = true) {\n return (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor => {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function(...args: any[]) {\n const context = this;\n if (render) {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n const node = document.createElement('script');\n node.src = 'https://www.gstatic.com/charts/loader.js';\n node.type = 'text/javascript';\n node.async = true;\n node.id = 'monkeyecx-charts-settings';\n node.onload = () => {\n method.apply(context, args);\n };\n document.getElementsByTagName('head')[0].appendChild(node);\n } else {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n method.apply(context, args);\n }\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable no-console */\n/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport function MonkeyEcxCoreServiceConstructor() {\n return (target: any) => {\n Object.entries(target.prototype).forEach(([key, value]) => {\n const method = target.prototype[key];\n if (key !== 'constructor') {\n target.prototype[key] = function (...args: any[]) {\n const context = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context.monkeyecxService.monkeyecxHandlingService.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n }\n });\n return target;\n };\n}\n\nexport function MonkeyEcxCoreLog(tp: string) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n propertyDescriptor.value = function (...args: any[]) {\n const params = args\n .map((a: any) => {\n return JSON.stringify(a);\n })\n .join();\n const result = method.apply(this, args);\n const r = JSON.stringify(result);\n console.log(`Call: ${propertyName}(${params}) => ${r}`);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreClearDecorators() {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(params);\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServicePaged(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n const credentials =\n context?.monkeyecxService?.monkeyecxHandlingService?.getMonkeyEcxServiceCredentials();\n let requestPaged = null;\n if (credentials) {\n requestPaged = credentials.requestPaged;\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials({\n ...params,\n ...(requestPaged || {}),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServiceQueue(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService.monkeyecxHandlingService.setMonkeyEcxRequestQueue(\n DecoratorsUtils.buildQueuePropertys({\n name,\n description,\n })\n );\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceDownload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestDownload({\n ...DecoratorsUtils.buildDownloadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceUpload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestUpload({\n ...DecoratorsUtils.buildUploadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","import { Directive, HostListener, Output, HostBinding, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxDragDrop]',\n})\nexport class MonkeyEcxDragDropDirective {\n @Output() onFileDropped: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding('style.background-color') private background = '#f5fcff';\n\n @HostBinding('style.opacity') private opacity = '1';\n\n @HostListener('dragover', ['$event'])\n onDragOver(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#9ecbec';\n this.opacity = '0.8';\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n const { files } = evt?.dataTransfer;\n if (files.length > 0) {\n this.onFileDropped.emit(files);\n }\n }\n}\n","import { Directive, ElementRef, HostListener, OnInit, Injector } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFormatCurrency]',\n providers: [CurrencyPipe]\n})\nexport class MonkeyEcxFormatCurrency implements OnInit {\n private el: HTMLInputElement;\n\n private currency: any;\n\n private currencyCode: string = 'BRL';\n\n private currentLocale: string = 'pt-BR';\n\n constructor(private elementRef: ElementRef, private injector: Injector) {\n this.el = this.elementRef.nativeElement;\n this.currency = this.injector.get(CurrencyPipe);\n\n const translateService = this.injector.get(TranslateService);\n translateService.get('MONKEY-CURRENCY-CODE').subscribe((_: any) => {\n this.currencyCode = _;\n this.currentLocale = translateService.getDefaultLang();\n });\n }\n\n private handle(value: any): string {\n const { currencyCode, currentLocale } = this;\n const newValue = MonkeyEcxUtils.handleOnlyNumbers(value);\n return this.currency.transform(newValue / 100, currencyCode, 'symbol', '', currentLocale);\n }\n\n ngOnInit() {\n this.el.value = this.handle(this.el.value);\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: any) {\n this.el.value = this.handle(value);\n }\n}\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2, Self } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n selector: '[monkeyecxFormatUpper]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxFormatUpper;\n }),\n multi: true,\n },\n ],\n})\nexport class MonkeyEcxFormatUpper implements ControlValueAccessor {\n _onChange?: (_: any) => void;\n\n _touched?: () => void;\n\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('keyup', ['$event'])\n onKeyDown(evt: KeyboardEvent) {\n const value = this._el.nativeElement.value.toUpperCase();\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n this._onChange?.(value);\n evt.preventDefault();\n }\n\n @HostListener('blur', ['$event'])\n onBlur() {\n this._touched?.();\n }\n\n writeValue(value: any): void {\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._touched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyAlphaNumeric]'\n})\nexport class MonkeyEcxOnlyAlphaNumericDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyAlphaNumeric(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyNumbers]'\n})\nexport class MonkeyEcxOnlyNumbersDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyNumbers(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, forwardRef, InjectionToken, Input } from '@angular/core';\n\nexport const POPOVER_OPTIONS = new InjectionToken('POPOVER_OPTIONS');\n\nexport type PopoverDir =\n | 'rtl'\n | 'ltr'\n | 'trtl'\n | 'tltr'\n | 'ct'\n | 'cc'\n | 'cr'\n | 'rt'\n | 'rb'\n | 'lt'\n | 'lb';\n\nexport interface MonkeyEcxPopoverOptions {\n dir?: PopoverDir;\n minwidth?: boolean;\n backdrop?: boolean;\n contextmenu?: boolean;\n}\n\n@Directive({\n selector: '[monkeyecxPopoverOptions]',\n providers: [\n {\n provide: POPOVER_OPTIONS,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxPopoverOptionsDirective;\n })\n }\n ]\n})\nexport class MonkeyEcxPopoverOptionsDirective implements MonkeyEcxPopoverOptions {\n @Input('monkeyecxPopoverOptions')\n set options(options: MonkeyEcxPopoverOptions) {\n Object.entries(options).forEach(([k, v]) => {\n this[k] = v;\n });\n }\n\n minwidth?: boolean;\n\n dir?: PopoverDir;\n\n backdrop?: boolean;\n\n contextmenu?: boolean;\n}\n","import {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy, FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { POPOVER_OPTIONS } from './monkeyecx-popover-options.directive';\nimport type { PopoverDir, MonkeyEcxPopoverOptions } from './monkeyecx-popover-options.directive';\n\n@Directive({\n selector: '[monkeyecxPopover]'\n})\nexport class MonkeyEcxPopoverDirective implements OnDestroy {\n private _popover!: boolean;\n\n get popover() {\n return this._popover;\n }\n\n @Input('monkeyecxPopover')\n set popover(show: boolean) {\n this._popover = show;\n if (show) {\n this.createPopover();\n } else if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n @Input('monkeyecxPopoverClosed') closed!: (e?: MouseEvent) => void;\n\n private _target!: HTMLElement;\n\n get target() {\n return this._target;\n }\n\n @Input('monkeyecxPopoverTarget')\n set target(target: HTMLElement) {\n this._target = target;\n }\n\n @Input('monkeyecxPopoverMinwidth') minwidth = false;\n\n @Input('monkeyecxPopoverBackdrop') backdrop = true;\n\n @Input('monkeyecxPopoverWatch') watch = false;\n\n @Input('monkeyecxPopoverDir') dir: PopoverDir = 'ltr';\n\n @Input('monkeyecxPopoverContextmenu') contextmenu = false;\n\n @Input('monkeyecxPopoverHeight') height!: number | string;\n\n private overlayRef!: OverlayRef;\n\n private positionStrategy!: FlexibleConnectedPositionStrategy;\n\n private templatePortal!: TemplatePortal;\n\n private subs = new Subscription();\n\n private eventsSubs = new Subscription();\n\n private resizeObserver: any;\n\n constructor(\n private tpl: TemplateRef<any>,\n private vcr: ViewContainerRef,\n private el: ElementRef,\n private zone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n private _cd: ChangeDetectorRef,\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private router: Router,\n @Inject(POPOVER_OPTIONS) @Optional() private options: MonkeyEcxPopoverOptions\n ) {\n this.eventsSubs = this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.onHandleClose();\n });\n }\n\n private onHandleClose(e?: MouseEvent) {\n this.popover = false;\n this.subs.unsubscribe();\n this.resizeObserver?.disconnect();\n this.zone.run(() => {\n if (this.closed) {\n this.closed(e);\n }\n });\n }\n\n getDirPositions(dir?: PopoverDir): ConnectedPosition[] {\n const revert = {\n start: 'end', end: 'start', bottom: 'top', top: 'bottom', center: 'center'\n };\n const centerY = (pos: any): ConnectedPosition => {\n return {\n originX: 'center', originY: pos, overlayX: 'center', overlayY: revert[pos]\n };\n };\n const centerX = (pos: any): ConnectedPosition => {\n return {\n originX: revert[pos], originY: 'center', overlayX: pos, overlayY: 'center'\n };\n };\n const ltr = (axis: any): ConnectedPosition => {\n return {\n originX: 'start', originY: axis, overlayX: 'start', overlayY: revert[axis]\n };\n };\n const rtl = (axis: any): ConnectedPosition => {\n return {\n originX: 'end', originY: axis, overlayX: 'end', overlayY: revert[axis]\n };\n };\n const side = (axis: any, axis2: any): ConnectedPosition => {\n return {\n originX: axis, originY: axis2, overlayX: revert[axis], overlayY: axis2\n };\n };\n\n const cmp = dir || this.options?.dir || this.dir;\n if (cmp === 'ct') {\n return [centerY('top'), centerY('bottom'), centerX('start'), centerX('end')];\n }\n if (cmp === 'cr') {\n return [centerX('end'), centerX('start'), centerY('top'), centerY('bottom')];\n }\n if (cmp === 'cc') {\n return [centerX('center')];\n }\n if (cmp === 'ltr') {\n return [ltr('bottom'), ltr('top')];\n }\n if (cmp === 'rtl') {\n return [rtl('bottom'), rtl('top')];\n }\n if (cmp === 'tltr') {\n return [ltr('top'), ltr('bottom')];\n }\n if (cmp === 'trtl') {\n return [rtl('top'), rtl('bottom')];\n }\n if (cmp === 'rt') {\n return [side('end', 'top'), side('end', 'bottom'), ltr('top')];\n }\n if (cmp === 'rb') {\n return [side('end', 'bottom'), side('end', 'top'), ltr('bottom'), rtl('bottom')];\n }\n if (cmp === 'lt') {\n return [side('start', 'top'), side('start', 'bottom'), rtl('top')];\n }\n if (cmp === 'lb') {\n return [side('start', 'bottom'), side('start', 'top'), rtl('bottom')];\n }\n\n return [];\n }\n\n createPopover(\n origin?: FlexibleConnectedPositionStrategyOrigin,\n options?: MonkeyEcxPopoverOptions\n ) {\n this.templatePortal = new TemplatePortal(this.tpl, this._viewContainerRef);\n this.positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(origin || this.target)\n .withPush(true)\n .withGrowAfterOpen(true)\n .withPositions(this.getDirPositions(options?.dir));\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.positionStrategy,\n disposeOnNavigation: true,\n direction: 'ltr',\n hasBackdrop: this.backdrop,\n scrollStrategy: this.overlay.scrollStrategies.reposition({\n }),\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: (this.options?.minwidth || this.minwidth) ? (this.target.offsetWidth - 2) : undefined,\n maxHeight: '95%',\n height: this.height\n });\n\n this.subs = this.overlayRef.backdropClick().subscribe((e) => {\n this.onHandleClose(e);\n });\n\n const attached = this.overlayRef.attach(this.templatePortal);\n\n if (this.watch) {\n try {\n if ('ResizeObserver' in window) {\n this.resizeObserver = new ResizeObserver(([{ contentRect }]) => {\n this.overlayRef.updatePosition();\n })\n .observe(attached.rootNodes[0]);\n }\n } catch (e) {\n // not to do\n }\n }\n }\n\n ngOnDestroy() {\n this.popover = false;\n this.subs.unsubscribe();\n this.eventsSubs.unsubscribe();\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core/interfaces';\n\nconst clear = createAction('[MECX Core Storage] Clear All');\nconst create = createAction('[MECX Core Storage] Create', props<{ data: MonkeyEcxStorage[] }>());\nconst deleteOne = createAction(\n '[MECX Core Storage] Delete One',\n props<{ data: MonkeyEcxStorage }>()\n);\nconst updateControl = createAction('[MECX Core Storage] Update Control', props<{ data: any }>());\nconst updateOne = createAction(\n '[MECX Core Storage] Update One',\n props<{ data: MonkeyEcxStorage }>()\n);\n\nexport { clear, create, deleteOne, updateControl, updateOne };\n","import { ActionReducer, INIT } from '@ngrx/store';\n\nexport const seederReducer = (keys: string[]) => {\n return (reducer: ActionReducer<any>): ActionReducer<any> => {\n return (state, action) => {\n const handledState = reducer(state, action);\n if (action.type === INIT) {\n let data: any = null;\n try {\n const storage = localStorage.getItem('mecx-store');\n const handled = atob(storage || '');\n if (handled !== '{}') {\n const storageValue = JSON.parse(atob(storage || ''));\n keys.forEach((key: string) => {\n let value: any = null;\n if (storageValue?.[key]) {\n value = {\n [key]: storageValue?.[key]\n };\n }\n\n data = {\n ...data,\n ...value\n };\n });\n }\n\n return data;\n } catch (e) {\n localStorage.removeItem('mecx-store');\n return handledState;\n }\n }\n\n let data: any = null;\n try {\n keys.forEach((key: string) => {\n data = {\n ...data,\n [key]: handledState[key]\n };\n });\n const handled = JSON.stringify(data);\n if (handled !== '{}') {\n localStorage.setItem('mecx-store', btoa(JSON.stringify(data)));\n }\n } catch (e) {\n localStorage.removeItem('mecx-store');\n }\n\n return handledState;\n };\n };\n};\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { createReducer, on } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core';\nimport * as actions from '../actions';\n\nexport const featureKey = 'mecx-core-storage';\n\nexport interface State extends EntityState<MonkeyEcxStorage> {\n control: {\n isLoading: boolean;\n };\n error: any;\n}\n\nexport const adapter: EntityAdapter<MonkeyEcxStorage> = createEntityAdapter<MonkeyEcxStorage>({\n selectId: (item: MonkeyEcxStorage) => {\n return item.username;\n }\n});\n\nexport const initialState: State = adapter.getInitialState({\n control: {\n isLoading: false\n },\n error: null\n});\n\nexport const reducer = createReducer(\n initialState,\n on(actions.monkeyecxStorage.clear, (state: any) => {\n return adapter.removeAll(state);\n }),\n on(actions.monkeyecxStorage.create, (state, action) => {\n return adapter.upsertMany(action.data, {\n ...state\n });\n }),\n on(actions.monkeyecxStorage.updateControl, (state, action) => {\n return {\n ...state,\n control: {\n ...state.control,\n ...action.data\n }\n };\n }),\n on(actions.monkeyecxStorage.updateOne, (state, action) => {\n const { username } = action.data;\n return adapter.upsertOne(\n { ...action.data, username },\n {\n ...state\n }\n );\n }),\n on(actions.monkeyecxStorage.deleteOne, (state, action) => {\n const { username } = action.data;\n return adapter.removeOne(username, state);\n })\n);\n\nexport const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors();\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../core';\nimport * as reducers from '../reducers';\n\ndeclare type State = reducers.fromMonkeyecxStorage.State;\n\nexport const selectState = createFeatureSelector<reducers.fromMonkeyecxStorage.State>(\n reducers.fromMonkeyecxStorage.featureKey\n);\n\nexport const selectAll = createSelector(selectState, reducers.fromMonkeyecxStorage.selectAll);\n\nexport const select = (props: { username: string }) => {\n return createSelector(\n selectAll,\n (entities: MonkeyEcxStorage[]): MonkeyEcxStorage | undefined => {\n return entities.find((_: MonkeyEcxStorage) => {\n return _.username === props.username;\n });\n }\n );\n};\n\nexport const selectControl = () => {\n return createSelector(\n selectState,\n (state: State): any => {\n return state.control;\n }\n );\n};\n","export class Link {\n href: string;\n\n type: string;\n\n profile: string;\n\n templated: boolean;\n\n constructor(data?: any) {\n this.href = data?.href;\n this.type = data?.type;\n this.profile = data?.profile;\n this.templated = data?.templated;\n }\n}\n\nexport class MonkeyEcxModel {\n _links: any;\n\n public getAction(\n type: string,\n replaceOptions?: {\n from: string;\n to: string;\n }\n ): Link | null {\n const { _links } = this;\n if (!_links) return null;\n let link: Link = _links[type.toLowerCase()];\n link = new Link(link);\n if (link && replaceOptions && link?.templated) {\n const { from, to } = replaceOptions;\n link = new Link({\n ...link,\n href: `${link.href}`.replace(from, to)\n });\n }\n return link;\n }\n}\n","import { MonkeyEcxModel } from './monkeyecx-model';\n\nexport class MonkeyEcxLinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n\n this._links = data?._links;\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { MonkeyEcxRequestPaged } from '../../interfaces/monkeyecx-request-paged';\nimport { MonkeyEcxResponseLinks } from '../../interfaces/monkeyecx-response-links';\n\nexport class MonkeyEcxRequestPagedHandling {\n private url?: string;\n\n private pagedParams: MonkeyEcxRequestPaged;\n\n private links: MonkeyEcxResponseLinks;\n\n private samePage = false;\n\n constructor(\n url?: string,\n pagedParams?: MonkeyEcxRequestPaged,\n links?: any,\n samePage: boolean = false\n ) {\n this.url = url;\n this.pagedParams = pagedParams || {\n page: {},\n };\n this.links = links;\n this.samePage = samePage;\n }\n\n private handlePagedValuesFromApi(url: string = '') {\n if (url.search('\\\\?') < 0) return url;\n const params = url.substring(url.search('\\\\?') + 1, url.length);\n url = url.substring(0, url.search('\\\\?'));\n return `${url}?${new HttpParams({\n fromString: params,\n })\n .delete('size')\n .delete('page')\n .toString()}`;\n }\n\n private getUrlParams(url: string): string {\n const { pagedParams } = this;\n const { number, size } = pagedParams?.page || {};\n const hasInitialQueryParams = url.search('\\\\?') > 0;\n return `${!hasInitialQueryParams ? '?' : '&'}page=${number || 0}&size=${size || 20}`;\n }\n\n public getRequestWithPagedParams(): string {\n const { url, links, samePage } = this;\n if (samePage && links.self) {\n return links.self.href;\n }\n if (links && links.next) {\n return links.next.href;\n }\n const handled = this.handlePagedValuesFromApi(url);\n return `${handled}${this.getUrlParams(handled)}`;\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport {\n ActivatedRouteSnapshot,\n NavigationStart,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { filter, take, takeWhile } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport {\n MonkeyEcxCompanyPendenciesValidated,\n MonkeyEcxConfig,\n MonkeyEcxCountrySecurity,\n MonkeyEcxErrorResponse,\n MonkeyEcxHandledErrorResponse,\n MonkeyEcxRequestPaged,\n MonkeyEcxRequestSchedule,\n MonkeyEcxResponseLinks,\n MonkeyEcxResponsePaged,\n MonkeyEcxSavedState,\n MonkeyEcxTranslateOptions\n} from '../../interfaces';\nimport { MonkeyEcxModel } from '../../model';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxFeatureToggleService } from '../config/monkeyecx-feature-toggle.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxPaginationService } from '../pagination';\nimport { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';\nimport { MonkeyEcxRequestQueueHandlingService } from '../request-queue/monkeyecx-request-queue-handling.service';\nimport { MonkeyEcxRequestScheduleService } from '../schedules/monkeyecx-request-schedule.service';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\n\nclass LinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n this._links = data?._links;\n }\n}\n\nexport class MonkeyEcxCommonsService {\n private flagValidator = true;\n\n private destroyed = false;\n\n __data$: Observable<any> | null = null;\n\n __pagination$: Observable<any> | null = null;\n\n __control$: Observable<any> | null = null;\n\n __page$: Observable<any> | null = null;\n\n __data: any | any[];\n\n __savedState: MonkeyEcxSavedState | null = null;\n\n __params: any | any[];\n\n __error: MonkeyEcxErrorResponse | null = null;\n\n __handledError: MonkeyEcxHandledErrorResponse | null = null;\n\n __page: MonkeyEcxResponsePaged | null = null;\n\n __links: MonkeyEcxResponseLinks | null = null;\n\n __search: any;\n\n __requestPaged: MonkeyEcxRequestPaged | null = null;\n\n __onSearchChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onLoadingInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onUploadInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onDataDeleted$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onErrorChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onGovernmentIdDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onZipCodeDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __oni18nDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDoSearch$: BehaviorSubject<MonkeyEcxRequestPaged> = new BehaviorSubject({});\n\n __schedule: MonkeyEcxRequestSchedule | null = null;\n\n __i18n: any;\n\n __callbackPagination: Function = () => {\n // eslint-disable-next-line no-console\n return console.error('Method callbackPagination needs to be declared');\n };\n\n __paginationOptions: {\n service: MonkeyEcxPaginationService;\n callback: Function;\n name?: string;\n } | undefined;\n\n __isAbleToDoPagination = {};\n\n constructor(\n public monkeyecxService?: MonkeyEcxService,\n public tokenStorage?: MonkeyEcxTokenStorageService,\n public otherArgs?: {\n router?: Router;\n schedule?: {\n service: MonkeyEcxRequestScheduleService;\n options?: {\n clearOnChangeRoute?: boolean;\n };\n };\n queue?: {\n service: MonkeyEcxRequestQueueHandlingService;\n };\n }\n ) {\n this.handleInit();\n }\n\n private handleInit() {\n if (this.otherArgs?.router) {\n const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {\n clearOnChangeRoute: false\n };\n\n this.otherArgs.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n }),\n takeWhile(() => {\n return !this.destroyed;\n })\n )\n .subscribe(() => {\n if (this.__schedule && clearOnChangeRoute) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n });\n }\n }\n\n private navigateToPendencyPage(\n arg: MonkeyEcxCompanyPendenciesValidated,\n companyType?: string,\n router?: Router\n ) {\n let route = '/app';\n\n if (companyType) {\n route = `${route}/${companyType}/pages`;\n } else {\n route = `${route}/user/profile/pages`;\n }\n\n if (!router) {\n // eslint-disable-next-line no-console\n console.error('Router must be declared');\n } else {\n router.navigate([`${route}/company-pendency`.toLowerCase()], {\n state: {\n pendencyData: arg\n }\n });\n }\n }\n\n private allowedSecurityAccessByPendency(args: any): MonkeyEcxCompanyPendenciesValidated {\n if (!args) {\n return {\n hasPendencies: false\n };\n }\n const { service, type } = args;\n return service.hasPendencies(type);\n }\n\n private allowedSecurityAccessByFeature(args: any): boolean {\n if (!args) {\n return true;\n }\n const { config, feature } = args;\n try {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\n return true;\n }\n return !config?.program?.settings?.[feature];\n } catch (e) {\n // not to do\n }\n return true;\n }\n\n private allowedSecurityAccessByCountry(arg?: MonkeyEcxCountrySecurity): boolean {\n if (!arg) return true;\n return arg.country === arg.envCountry;\n }\n\n private handlePaginationOptions() {\n const { __paginationOptions } = this;\n if (__paginationOptions) {\n const { service, callback, name } = __paginationOptions;\n service?.setCallback((type: string) => {\n this.doPaginationv2(type, callback);\n }, name || 'main');\n }\n }\n\n setPage(requestPaged: MonkeyEcxRequestPaged) {\n this.__requestPaged = {\n ...this.__requestPaged,\n ...requestPaged\n };\n return this;\n }\n\n nextPage(): boolean {\n if (this.__links) {\n return !!this.__links?.next;\n }\n if (!this.__requestPaged) return false;\n const { page } = this.__requestPaged as any;\n const { number, totalPages } = page;\n if (number < totalPages) {\n this.__requestPaged = {\n ...this.__requestPaged,\n page: {\n ...page,\n number: number + 1\n }\n };\n return true;\n }\n return false;\n }\n\n getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n getNormalizedUrl(url: string, samePage = false): string {\n const { __requestPaged, __links } = this;\n return new MonkeyEcxRequestPagedHandling(\n url,\n __requestPaged || {},\n __links,\n samePage\n ).getRequestWithPagedParams();\n }\n\n clear(clearData: boolean) {\n if (clearData) {\n this.__data = null;\n this.__requestPaged = null;\n this.__params = null;\n this.__page = null;\n this.__links = null;\n\n if (this.__schedule) {\n const { queue } = this.__schedule;\n if (queue) {\n this.otherArgs?.queue?.service?.removeQueueItem(queue);\n }\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n }\n this.__error = null;\n this.__handledError = null;\n this.flagValidator = false;\n this.destroyed = true;\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: {\n companyType?: string,\n callbackMain: Function;\n router?: Router;\n callbackPagination?: Function;\n translateOptions?: MonkeyEcxTranslateOptions;\n feature?: {\n service: MonkeyEcxFeatureToggleService;\n flag: string;\n };\n featureByProgram?: {\n config: MonkeyEcxConfig;\n feature: string;\n };\n countrySecurity?: MonkeyEcxCountrySecurity;\n pendency?: {\n service: {\n hasPendencies: Function;\n };\n type: string;\n };\n paginationOptions?: {\n service: MonkeyEcxPaginationService,\n callback: Function,\n name?: string\n }\n }\n ) {\n if (JSON.stringify(route?.queryParams) === '{}') {\n this.__data = null;\n this.__page = null;\n }\n\n this.__requestPaged = null;\n this.flagValidator = true;\n\n const pend = this.allowedSecurityAccessByPendency(otherArgs?.pendency);\n const allowedByProgram = this.allowedSecurityAccessByFeature(otherArgs?.featureByProgram);\n\n if (\n this.allowedSecurityAccessByCountry(otherArgs?.countrySecurity) &&\n !pend.hasPendencies &&\n allowedByProgram\n ) {\n if (this.__schedule) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n\n const { __requestPaged } = this;\n if (!__requestPaged) {\n this.setPage({\n page: {\n number: 0,\n size: 10\n }\n });\n }\n\n if (otherArgs?.translateOptions) {\n const { service, keys } = otherArgs?.translateOptions;\n this.geti18n(service, keys || '');\n }\n\n if (otherArgs?.callbackPagination) {\n this.__callbackPagination = otherArgs.callbackPagination;\n }\n\n if (otherArgs?.paginationOptions) {\n this.__paginationOptions = otherArgs?.paginationOptions;\n this.handlePaginationOptions();\n }\n\n if (otherArgs?.feature) {\n const { flag, service } = otherArgs.feature;\n\n service.onFlags\n .pipe(\n takeWhile(() => {\n return this.flagValidator;\n })\n )\n .subscribe((val: boolean) => {\n if (val) {\n const hasFlag = service.getFlag(flag);\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {\n if (!hasFlag) {\n this.navigateToErrorPage(404, otherArgs?.router);\n }\n }\n }\n });\n }\n\n otherArgs?.callbackMain();\n } else if (!allowedByProgram) {\n this.navigateToErrorPage(404, otherArgs?.router);\n } else if (pend.hasPendencies) {\n this.navigateToPendencyPage(pend, otherArgs?.companyType, otherArgs?.router);\n } else {\n this.navigateToErrorPage(403, otherArgs?.router);\n }\n }\n\n getHTTPHeaderApplicationPDF(): Object {\n return {\n observe: 'response',\n responseType: 'blob'\n };\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true\n }\n })\n genericMethod(link: any, data?: any, callback?: Function) {\n const { href, type = 'get' } = link;\n\n this.monkeyecxService?.[type.toLowerCase()](`${href}`, data)?.subscribe(\n (resp: any) => {\n if (callback) callback(resp);\n },\n (err: HttpErrorResponse) => {\n if (callback) callback();\n throwError(err);\n }\n );\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true\n }\n })\n async getGenericData(data: any, action: string) {\n const { monkeyecxService } = this;\n if (!monkeyecxService) return null;\n const { href, type } = new LinksModel(data)?.getAction(action) || {\n href: '', type: 'get'\n };\n\n return monkeyecxService[type.toLowerCase()]<any>(href)\n .pipe(take(1)).toPromise();\n }\n\n geti18n(translateService: TranslateService, keys: string | string[]) {\n translateService.onDefaultLangChange.subscribe(() => {\n this.__i18n = translateService.instant(keys);\n this.__oni18nDataChanged$.next(null);\n });\n translateService.getStreamOnTranslationChange(keys).subscribe(() => {\n this.__i18n = translateService.instant(keys);\n this.__oni18nDataChanged$.next(null);\n });\n }\n\n doPagination() {\n if (!this.__onLoadingInProgress$.value) {\n const hasMorePages = this.setPage({\n page: {\n ...this.__page\n }\n }).nextPage();\n\n if (hasMorePages && this.__callbackPagination) {\n this.__callbackPagination();\n }\n }\n }\n\n doPaginationv2(type: string, callback: Function) {\n if (!this.__onLoadingInProgress$.value) {\n if (callback) {\n callback(type);\n }\n }\n }\n\n setLinks(links: any) {\n this.__isAbleToDoPagination = {\n first: !!links?.first,\n next: !!links?.next\n };\n this.__links = links;\n }\n\n setSearchByUrl(router: Router, url: string, search: any, extras?: any) {\n this.__data = null;\n this.__page = null;\n this.__onDataChanged$.next(null);\n this.__onLoadingInProgress$.next(false);\n\n router.navigate([url], {\n queryParams: {\n ...search,\n r: MonkeyEcxUtils.getRandomString(30)\n },\n queryParamsHandling: 'merge',\n ...extras\n });\n }\n\n saveState(state: MonkeyEcxSavedState) {\n this.__savedState = {\n page: this.__page,\n ...state\n };\n }\n\n navigateToErrorPage(statusCode: number, router?: Router) {\n const routes: any = {\n 403: 'forbidden',\n 404: 'not-found',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n if (!router) {\n console.error('Router must be declared');\n } else {\n router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()]);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Action, Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '.';\nimport {\n MonkeyEcxDiscoveryParamsService,\n MonkeyEcxPaginationService,\n MonkeyEcxTokenStorageService\n} from '../..';\nimport {\n MonkeyEcxCommonsConfig,\n MonkeyEcxCommonsSearch,\n MonkeyEcxInitialResolverConfig\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\nexport abstract class MonkeyEcxCommonsResolveBaseService extends MonkeyEcxCommonsService {\n private action: any;\n\n protected route: string | null = null;\n\n protected currentRoute: string | null = null;\n\n protected paginationService = inject(MonkeyEcxPaginationService);\n\n protected translateService = inject(TranslateService);\n\n protected router = inject(Router);\n\n protected store = inject(Store);\n\n protected monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n config: {\n actions: {\n load: Action;\n loadPagination?: Action;\n }\n }\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions } = config;\n this.action = actions;\n }\n\n protected async getData() {\n try {\n const { store, route, action, tokenStorage } = this;\n const { companyId, governmentId } = await tokenStorage?.getToken();\n\n if (!route) return;\n\n const url = MonkeyEcxUtils.replaceVariables(route, { companyId, governmentId });\n\n store.dispatch(action.load({ url }));\n } catch (e) {\n throw new Error(`MECX Core - Method getData -> ${e}`);\n }\n }\n\n protected async loadPage(actionType: string) {\n try {\n const { store, action } = this;\n store.dispatch(\n action.loadPagination({\n pagination: {\n action: actionType\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method loadPage -> ${e}`);\n }\n }\n\n /**\n * @description Inicializar a class genérica\n * @param (args: MonkeyEcxInitialResolverConfig)\n * => route é obrigátorio pois ele quem inicializa a store.\n * A searchClass só se faz necessaria quando for usar filtros\n */\n protected init(args: MonkeyEcxInitialResolverConfig) {\n try {\n const { searchClass, route } = args;\n\n this.route = route;\n\n if (searchClass) {\n // eslint-disable-next-line new-cap\n const searchInstance: MonkeyEcxCommonsSearch = new searchClass(this.__search);\n\n this.route = `${route}${searchInstance.buildParams()}`;\n\n this.__onSearchChanged$.next(searchInstance);\n }\n\n this.getData();\n } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: MonkeyEcxCommonsConfig\n ) {\n this.__search = route?.queryParams;\n\n const [currentRoute] = state?.url.split('?') || [null];\n\n this.currentRoute = currentRoute;\n\n super.resolve(route, state, otherArgs);\n }\n\n /**\n * @description Atualizar os filtros da tela\n * @param (search: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public setSearch<T>(search: T, route?: string): void {\n try {\n const { currentRoute, router } = this;\n\n this.setSearchByUrl(router, route || `${currentRoute}`, search);\n } catch (e) {\n throw new Error(`MECX Core - Method setSearch -> ${e}`);\n }\n }\n\n /**\n * @description Navegação para details.\n * Por padrão sera redirecionado para '${currentRoute}/details'\n * @param (detailsData: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public navigateToDetails<T>(detailsData: T, route?: string) {\n try {\n const { router, currentRoute } = this;\n\n router.navigate([route || `${currentRoute}/details`], {\n state: {\n detailsData\n }\n });\n } catch (e) {\n throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Action, Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '.';\nimport {\n MonkeyEcxDiscoveryParamsService,\n MonkeyEcxPaginationService,\n MonkeyEcxTokenStorageService\n} from '../..';\nimport {\n MonkeyEcxCommonsConfig,\n MonkeyEcxCommonsSearch,\n MonkeyEcxInitialResolverConfig\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\ndeclare type Selectors =\n | {\n selectByIdentifier: Function;\n selectOneByIdentifier?: never;\n selectControl: Function;\n selectLinks?: Function;\n selectPage?: Function;\n }\n | {\n selectOneByIdentifier: Function;\n selectByIdentifier?: never;\n selectControl: Function;\n };\n\nexport abstract class MonkeyEcxCommonsResolveService extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n protected route: string | null = null;\n\n protected currentRoute: string | null = null;\n\n protected paginationService = inject(MonkeyEcxPaginationService);\n\n protected translateService = inject(TranslateService);\n\n protected router = inject(Router);\n\n protected store = inject(Store);\n\n protected monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n config: {\n actions: {\n load: Action;\n loadPagination?: Action;\n };\n selectors: Selectors;\n }\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n protected async getData() {\n try {\n const { store, route, action, selector, tokenStorage } = this;\n\n const { companyId, companyType, governmentId } = await tokenStorage?.getToken();\n\n const identifier = `${companyId || governmentId}-${companyType}`;\n\n if (!route) return;\n\n const url = MonkeyEcxUtils.replaceVariables(route, { companyId });\n\n store.dispatch(action.load({ url, identifier }));\n\n this.__control$ = store.select(selector.selectControl());\n\n if (selector?.selectByIdentifier) {\n this.__data$ = store.select(selector.selectByIdentifier({ identifier }));\n }\n\n if (selector?.selectOneByIdentifier) {\n this.__data$ = store.select(selector.selectOneByIdentifier({ identifier }));\n }\n\n if (selector?.selectLinks) {\n this.__pagination$ = store.select(selector.selectLinks({ identifier }));\n }\n\n if (selector?.selectPage) {\n this.__page$ = store.select(selector.selectPage({ identifier }));\n }\n\n this.__onDataChanged$.next(null);\n } catch (e) {\n throw new Error(`MECX Core - Method getData -> ${e}`);\n }\n }\n\n protected async loadPage() {\n try {\n const { store, tokenStorage, action } = this;\n const { companyId, companyType, governmentId } = await tokenStorage?.getToken();\n\n store.dispatch(\n action.loadPagination({\n identifier: `${companyId || governmentId}-${companyType}`,\n pagination: {\n action: 'next'\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method loadPage -> ${e}`);\n }\n }\n\n /**\n * @description Inicializar a class genérica\n * @param (args: MonkeyEcxInitialResolverConfig)\n * => route é obrigátorio pois ele quem inicializa a store.\n * A searchClass só se faz necessaria quando for usar filtros\n */\n protected init(args: MonkeyEcxInitialResolverConfig) {\n try {\n const { searchClass, route } = args;\n\n this.route = route;\n\n if (searchClass) {\n // eslint-disable-next-line new-cap\n const searchInstance: MonkeyEcxCommonsSearch = new searchClass(this.__search);\n\n this.route = `${route}${searchInstance.buildParams()}`;\n\n this.__onSearchChanged$.next(searchInstance);\n }\n\n this.getData();\n } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: MonkeyEcxCommonsConfig\n ) {\n this.__search = route?.queryParams;\n\n const [currentRoute] = state?.url.split('?') || [null];\n\n this.currentRoute = currentRoute;\n\n super.resolve(route, state, otherArgs);\n }\n\n /**\n * @description Atualizar os filtros da tela\n * @param (search: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public setSearch<T>(search: T, route?: string): void {\n try {\n const { currentRoute, router } = this;\n\n this.setSearchByUrl(router, route || `${currentRoute}`, search);\n } catch (e) {\n throw new Error(`MECX Core - Method setSearch -> ${e}`);\n }\n }\n\n /**\n * @description Navegação para details.\n * Por padrão sera redirecionado para '${currentRoute}/details'\n * @param (detailsData: T, route?: string)\n * => route é opcional, passar ele apenas se a rota for diferente do padrão\n */\n public navigateToDetails<T>(detailsData: T, route?: string) {\n try {\n const { router, currentRoute } = this;\n\n router.navigate([route || `${currentRoute}/details`], {\n state: {\n detailsData\n }\n });\n } catch (e) {\n throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nlet window: any;\n\nconst text: any = {\n i18n: {\n title: 'We have an quick update for you',\n message: 'Click anywhere here to reload your locale',\n },\n theme: {\n title: 'We have an quick update for you',\n message: 'Click anywhere here to reload your theme',\n },\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonkeyEcxErrorConfigService {\n constructor() {\n // not to do\n }\n\n private enableSupport() {\n window.zE('webWidget', 'updateSettings', {\n webWidget: {\n color: {\n theme: '#0273E8',\n launcherText: '#fff',\n header: '#0273E8',\n button: '#0273E8',\n },\n zIndex: 99,\n offset: {\n horizontal: '1px',\n vertical: '20px',\n },\n mobile: {\n labelVisible: true,\n },\n launcher: {\n mobile: {\n labelVisible: true,\n },\n },\n },\n });\n window.zE('webWidget', 'setLocale', 'en-US');\n window.zE('webWidget', 'show');\n }\n\n public apply(type: string) {\n const { title, message } = text?.[type];\n\n const element = document.createElement('div');\n element.id = 'monkeyecx-information';\n\n const elementImg = document.createElement('img');\n elementImg.width = 128;\n elementImg.src = 'assets/images/monkey.svg';\n elementImg.style.marginBottom = '50px';\n\n const elementTitle = document.createElement('span');\n elementTitle.id = 'title';\n elementTitle.innerText = title;\n elementTitle.style.marginBottom = '20px';\n\n const elementMessage = document.createElement('span');\n elementMessage.id = 'message';\n elementMessage.innerText = message;\n elementMessage.style.marginBottom = '20px';\n\n const elementChat = document.createElement('span');\n elementChat.id = 'message';\n elementChat.innerText =\n \"If you're having trouble to update, please use the support icon bellow\";\n\n element.appendChild(elementImg);\n element.appendChild(elementTitle);\n element.appendChild(elementMessage);\n element.appendChild(elementChat);\n\n element.addEventListener('click', () => {\n document.location.reload();\n });\n\n document.body.appendChild(element);\n\n document.body.getElementsByTagName('app-root')[0].remove();\n this.enableSupport();\n }\n}\n","/* eslint-disable no-console */\nimport { registerLocaleData } from '@angular/common';\nimport esCL from '@angular/common/locales/es-CL';\nimport esMX from '@angular/common/locales/es-MX';\nimport ptBr from '@angular/common/locales/pt';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxMeCredentials } from '../../interfaces/monkeyecx-me-credentials';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxErrorConfigService } from '../config/monkeyecx-error-config.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxi18nConfigService extends MonkeyEcxCommonsService {\n private i18nNotFound = false;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private translateService: TranslateService,\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService\n ) {\n super(monkeyecxService, tokenStorage);\n }\n\n private async loadInternalDefaultFromError(environment: any) {\n const lang = 'pt-BR';\n\n const url = `${environment.localAssets}/i18n/${lang}.json`;\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n this.i18nNotFound = true;\n }\n\n private async loadDefaultFromError(environment: any, name: string) {\n const lang = 'pt-BR';\n\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name,\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n this.i18nNotFound = true;\n }\n\n private async loadAuth(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'auth',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadAuth i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'auth');\n }\n }\n\n private async loadAlerts(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'alerts',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadAlerts i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'alerts');\n }\n }\n\n private async loadShared(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'shared',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadShared i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'shared');\n }\n }\n\n private async loadRegister(environment: any, lang: string) {\n try {\n const url = MonkeyEcxUtils.replaceVariables(environment.urli18nAssets, {\n name: 'register',\n lang\n });\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadRegister i18n ${lang} not found!`);\n await this.loadDefaultFromError(environment, 'register');\n }\n }\n\n private async loadInternal(environment: any, lang: string) {\n try {\n const url = `${environment.localAssets}/i18n/${lang}.json`;\n\n const resp = await this.monkeyecxService?.get<any>(url).pipe(take(1)).toPromise();\n this.translateService.setTranslation(lang, resp.data, true);\n } catch (e) {\n console.error(`loadInternal i18n ${lang} not found!`);\n await this.loadInternalDefaultFromError(environment);\n }\n }\n\n public async apply(environment: any) {\n let lang = environment?.locale?.lang || 'pt-BR';\n\n try {\n const me: MonkeyEcxMeCredentials = JSON.parse(localStorage.getItem('me') || '{}');\n lang = me?.locale || lang;\n } catch (e) {\n // not to do\n }\n\n if (lang === 'es-CL') {\n registerLocaleData(esCL);\n } else if (lang === 'es-MX') {\n registerLocaleData(esMX);\n } else {\n registerLocaleData(ptBr);\n }\n\n await this.loadAuth(environment, lang);\n await this.loadInternal(environment, lang);\n this.loadAlerts(environment, lang);\n this.loadShared(environment, lang);\n this.loadRegister(environment, lang);\n\n if (this.i18nNotFound) {\n this.translateService.setDefaultLang('pt-BR');\n this.translateService.use('pt-BR');\n return;\n }\n\n this.translateService.setDefaultLang(lang);\n this.translateService.use(lang);\n }\n\n public applyExternal(params: MonkeyEcxConfig, lang: string) {\n try {\n const currentExternali18n = params?.externali18n?.[`${lang}`];\n\n let data = {};\n if (currentExternali18n) {\n data = {\n EXTERNAL: currentExternali18n\n };\n }\n\n this.translateService.setTranslation(lang, data, true);\n } catch (e) {\n console.error(`loadExternal i18n ${lang} not found!`);\n this.monkeyecxErrorConfigService.apply('i18n');\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\nimport { MonkeyEcxMeCredentials } from '../../interfaces/monkeyecx-me-credentials';\nimport { MonkeyEcxTokenCredentials } from '../../interfaces/monkeyecx-token-credentials';\nimport { MonkeyEcxTokenStorageService } from '../../services/storage/monkeyecx-token-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLogsConfigService {\n private allSet = false;\n\n constructor(\n private injector: Injector\n ) {\n // not to do\n }\n\n public apply(\n params: MonkeyEcxConfig,\n configBootstrap: MonkeyEcxConfigBootstrap,\n environment: any,\n identifyCode: string\n ) {\n const { program, logs } = params;\n if (logs?.enabled && environment.environment !== 'dev' && !this.allSet) {\n datadogRum.init({\n applicationId: environment?.dataDogApplicationId,\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n sessionSampleRate: 100,\n sessionReplaySampleRate: 100,\n env: `monkey-front-${identifyCode}-${environment.environment}`,\n version: configBootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n trackResources: true,\n trackLongTasks: true,\n trackUserInteractions: true,\n defaultPrivacyLevel: 'mask-user-input'\n });\n datadogRum.startSessionReplayRecording();\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.init({\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n env: `monkey-front-${identifyCode}-${environment.environment}`,\n version: configBootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n forwardErrorsToLogs: true,\n sessionSampleRate: 100,\n forwardConsoleLogs: 'all'\n });\n }\n\n this.allSet = true;\n }\n this.applyInfoToDataDog(environment);\n }\n\n public async applyInfoToDataDog(environment: any) {\n try {\n const tokenStorage = this.injector.get(MonkeyEcxTokenStorageService);\n const token: MonkeyEcxTokenCredentials = await tokenStorage.getToken();\n if (token.accessToken && environment.dataDogApplicationId) {\n const me: MonkeyEcxMeCredentials = await tokenStorage.getMe();\n\n const user = {\n id: token.username,\n email: token.username,\n name: me.name,\n locale: me.locale\n };\n\n datadogRum.setUser(user);\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.setUser(user);\n }\n }\n } catch (e) {\n // not to do\n }\n }\n\n public clearDataDogInfo() {\n datadogRum.clearUser();\n }\n}\n","import { ApplicationRef, Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { concat, interval } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxServiceWorkerConfigService {\n constructor(\n private appRef: ApplicationRef,\n private updates: SwUpdate,\n private modalService: MonkeyStyleGuideModalFixedService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\n const { updates, modalService } = this;\n updates?.available?.subscribe(() => {\n if (!config.showNewVersion || config.maintenance.closed) {\n document.location.reload();\n } else {\n modalService.closeAll();\n modalService.open(VersionChangedComponent, {\n hideClose: true,\n color: 'theme',\n size: 'md'\n });\n }\n });\n }\n\n private verify() {\n const { appRef, updates } = this;\n const appIsStable$ = appRef.isStable\n .pipe(first((isStable: boolean) => { return isStable === true; }));\n const everyHour$ = interval(1 * 60 * 60 * 1000);\n const everyHourOnceAppIsStable$ = concat(appIsStable$, everyHour$);\n everyHourOnceAppIsStable$.subscribe(() => {\n updates.checkForUpdate();\n });\n updates.checkForUpdate();\n }\n\n public apply(config: MonkeyEcxConfigBootstrap) {\n this.handleValidation(config);\n this.verify();\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyEcxCommonsService } from '../commons';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxSecurityConsoleConfigService extends MonkeyEcxCommonsService {\n private unsubscribeAll = new Subject();\n\n constructor(private translateService: TranslateService) {\n super();\n\n this.geti18n(this.translateService, 'SERVICES.WARNING.CONSOLE');\n }\n\n private handleValidation() {\n this.__oni18nDataChanged$\n .pipe(takeUntil(this.unsubscribeAll)).subscribe(() => {\n const { __i18n } = this;\n const title = __i18n?.TITLE;\n const message = __i18n?.MESSAGE;\n if (title) {\n console.log(`%c${title}`, 'background: #f2f061; color: #ff0000; font-size: 18px');\n console.log(`%c${message}`, 'font-size: x-large');\n console.log(\n '%c __ __ _ ______ \\n ' +\n '| \\\\/ | ___ _ __ | | _____ _ _\\\\ \\\\ \\\\ \\\\ \\n ' +\n \"| |\\\\/| |/ _ \\\\| '_ \\\\| |/ / _ \\\\ | | |\\\\ \\\\ \\\\ \\\\ \\n \" +\n '| | | | (_) | | | | < __/ |_| |/ / / / \\n ' +\n '|_| |_|\\\\___/|_| |_|_|\\\\_\\\\___|\\\\__, /_/_/_/ \\n ' +\n ' |___/ \\n ' +\n '', 'background: #1976d2; color: #fff'\n );\n\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n });\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { ClosedToMaintenanceComponent } from '../../../components/closed-to-maintenance/closed-to-maintenance.component';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxMaintenanceConfigService {\n constructor(private modalService: MonkeyStyleGuideModalService, private router: Router) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\n if (config.maintenance.closed) {\n localStorage.clear();\n this.router.navigate(['']);\n\n setTimeout(() => {\n this.modalService.open(ClosedToMaintenanceComponent, {\n color: 'theme',\n size: 'md',\n data: config\n });\n }, 200);\n }\n }\n\n public apply(config: MonkeyEcxConfigBootstrap) {\n this.handleValidation(config);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LDClient, LDFlagSet, initialize } from 'launchdarkly-js-client-sdk';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxFeatureToggleService {\n private readonly flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n private flags: LDFlagSet | undefined = undefined;\n\n private ldClient: LDClient | undefined = undefined;\n\n constructor() {\n // not to do\n }\n\n private getAllFlags(): void {\n if (!this) return;\n this.flags = this.ldClient?.allFlags();\n\n this.flagSubject$.next(true);\n }\n\n private identify(config: MonkeyEcxConfig, environment: any): void {\n if (config) {\n const email = 'monkey@monkey.exchange';\n const user = {\n email,\n kind: 'user',\n key: `${config.program?.token}#${email}`\n };\n\n if (!this.ldClient) {\n this.ldClient = initialize(environment.launchDarklyClientSideID, user, {\n streaming: true,\n sendEvents: true,\n logger: {\n debug: () => {},\n warn: () => {},\n info: () => {},\n error: (args: any) => {\n console.log('Monkey Client => ', args);\n }\n }\n });\n\n this.ldClient.on('change', this.getAllFlags.bind(this));\n this.ldClient.on('ready', this.getAllFlags.bind(this));\n } else {\n this.ldClient.identify(user, undefined, this.getAllFlags);\n }\n }\n }\n\n public apply(configSubject$: BehaviorSubject<MonkeyEcxConfig>, environment: any) {\n if (environment.launchDarklyClientSideID) {\n configSubject$.subscribe((config) => {\n this.identify(config, environment);\n });\n } else {\n this.flagSubject$.next(true);\n }\n }\n\n public get onFlags(): Observable<any> {\n return this.flagSubject$.asObservable();\n }\n\n public getFlag(flag: string): boolean | null {\n const flagValue = this.flags?.[flag];\n\n return MonkeyUtils.persistNullEmptyUndefined(flagValue) ? flagValue : null;\n }\n\n public sendEvent(key: string, data: any) {\n this.ldClient?.track(key, data);\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\n\ndeclare const window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxGTMConfigService {\n constructor() {\n // not to do\n }\n\n private handleCode(key: string) {\n try {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js'\n });\n const head = document.querySelector('head');\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=GTM-${key}`;\n head?.appendChild(script);\n\n const body = document.querySelector('body');\n const noscript = document.createElement('noscript');\n const iframe = document.createElement('iframe');\n iframe.src = `https://www.googletagmanager.com/ns.html?id=GTM-${key}`;\n iframe.height = '0';\n iframe.width = '0';\n iframe.style.display = 'none';\n iframe.style.visibility = 'hidden';\n noscript.appendChild(iframe);\n body?.appendChild(noscript);\n } catch (e) {\n console.error('GTM Configuration Error!');\n }\n }\n\n public apply(environment: any) {\n const { gtm } = environment;\n const { enabled, key } = gtm || { enabled: false, key: '' };\n if (enabled && environment.environment !== 'dev') {\n this.handleCode(key);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as moment_ from 'moment';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { AlertsComponent } from '../../../components/alerts/alerts.component';\nimport { MonkeyEcxConfig } from '../../interfaces';\n\nconst moment: any = moment_;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsConfigService {\n constructor(private modalService: MonkeyStyleGuideModalFixedService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfig) {\n if (config.alert) {\n const { img, title, message, endDate, noEndDate, action, hideClose } = config.alert;\n if (moment.default().isSameOrBefore(moment.default(endDate)) || noEndDate) {\n this.modalService.open(AlertsComponent, {\n hideClose: true,\n color: 'theme',\n size: 'md',\n data: {\n img,\n title,\n message,\n action,\n hideClose\n }\n });\n }\n }\n }\n\n public apply(config: MonkeyEcxConfig) {\n this.handleValidation(config);\n }\n}\n","/* eslint-disable no-console */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideSettingsService } from 'monkey-style-guide';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\nimport { MonkeyEcxCommonsService } from '../commons/monkeyecx-commons.service';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxAlertsConfigService } from './monkeyecx-alerts-config.service';\nimport { MonkeyEcxErrorConfigService } from './monkeyecx-error-config.service';\nimport { MonkeyEcxFeatureToggleService } from './monkeyecx-feature-toggle.service';\nimport { MonkeyEcxGTMConfigService } from './monkeyecx-gtm-config.service';\nimport { MonkeyEcxi18nConfigService } from './monkeyecx-i18n-config.service';\nimport { MonkeyEcxLogsConfigService } from './monkeyecx-logs-config.service';\nimport { MonkeyEcxMaintenanceConfigService } from './monkeyecx-maintenance-config.service';\nimport { MonkeyEcxSecurityConsoleConfigService } from './monkeyecx-security-console-config.service';\nimport { MonkeyEcxServiceWorkerConfigService } from './monkeyecx-service-worker-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxConfigService extends MonkeyEcxCommonsService {\n private readonly configSubject$: BehaviorSubject<MonkeyEcxConfig>;\n\n private readonly configBootstrapSubject$: BehaviorSubject<MonkeyEcxConfig>;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n private monkeyecxi18nConfigService: MonkeyEcxi18nConfigService,\n private monkeyecxLogsConfigService: MonkeyEcxLogsConfigService,\n private monkeyStyleGuideSettingsService: MonkeyStyleGuideSettingsService,\n private monkeyecxServiceWorkerConfigService: MonkeyEcxServiceWorkerConfigService,\n private monkeyecxSecurityConsoleConfigService: MonkeyEcxSecurityConsoleConfigService,\n private monkeyecxMaintenanceConfigService: MonkeyEcxMaintenanceConfigService,\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService,\n private monkeyEcxFeatureToggleService: MonkeyEcxFeatureToggleService,\n private monkeyGTMConfigService: MonkeyEcxGTMConfigService,\n private monkeyEcxAlertsConfigService: MonkeyEcxAlertsConfigService\n ) {\n super(monkeyecxService);\n this.configSubject$ = new BehaviorSubject({});\n this.configBootstrapSubject$ = new BehaviorSubject({});\n }\n\n private async getSettings(\n monkeyecxCode: string,\n configBootstrap: MonkeyEcxConfigBootstrap,\n callback: Function,\n environment: any,\n identifyCode: string\n ) {\n const {\n monkeyecxSecurityConsoleConfigService,\n monkeyecxServiceWorkerConfigService,\n monkeyecxMaintenanceConfigService,\n monkeyStyleGuideSettingsService,\n monkeyGTMConfigService,\n getWhiteLabel,\n monkeyecxi18nConfigService\n } = this;\n\n monkeyecxServiceWorkerConfigService.apply(configBootstrap);\n monkeyecxMaintenanceConfigService.apply(configBootstrap);\n monkeyecxSecurityConsoleConfigService.apply();\n monkeyGTMConfigService.apply(environment);\n\n const url = `${environment.urlAssets}/${monkeyecxCode.toLowerCase()}`;\n\n await monkeyecxi18nConfigService.apply(environment);\n\n monkeyStyleGuideSettingsService.bootstrap(\n `${url}/monkey-style-guide-settings.json`,\n getWhiteLabel.bind(this, configBootstrap, callback, environment, identifyCode, url)\n );\n }\n\n private getWhiteLabel(\n configBootstrap: MonkeyEcxConfigBootstrap,\n callback: Function,\n environment: any,\n identifyCode: string,\n url: string\n ) {\n const {\n monkeyecxService,\n configSubject$,\n monkeyecxLogsConfigService,\n monkeyecxErrorConfigService,\n monkeyEcxFeatureToggleService,\n monkeyecxi18nConfigService,\n monkeyEcxAlertsConfigService\n } = this;\n\n monkeyecxService?.get<any>(`${url}/white-label.json`)?.subscribe(\n async (config: MonkeyEcxConfig) => {\n monkeyecxi18nConfigService.applyExternal(config, environment?.locale?.lang || 'pt-BR');\n monkeyecxLogsConfigService.apply(config, configBootstrap, environment, identifyCode);\n monkeyEcxFeatureToggleService.apply(configSubject$, environment);\n monkeyEcxAlertsConfigService.apply(config);\n configSubject$.next(config);\n\n if (callback) callback();\n },\n (err: HttpErrorResponse) => {\n monkeyecxErrorConfigService.apply('theme');\n console.error('Program Configuration not found!');\n throwError(err);\n }\n );\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [404]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n public init(callback: Function, environment: any, identifyCode: string, monkeyecxCode?: string) {\n const {\n monkeyecxService,\n configBootstrapSubject$,\n monkeyecxErrorConfigService\n } = this;\n\n monkeyecxService\n ?.get<any>(`${environment.bootstrapAssets}`, {\n observe: 'response'\n })\n ?.subscribe(\n ({ headers, body }) => {\n const monkeyCode = headers.get('monkey-code') || monkeyecxCode;\n if (monkeyCode) {\n this.getSettings(monkeyCode, body, callback, environment, identifyCode);\n configBootstrapSubject$.next(body);\n } else {\n monkeyecxErrorConfigService.apply('theme');\n console.error(`Bootstrap ${monkeyCode} Configuration not found!`);\n }\n },\n (err: HttpErrorResponse) => {\n monkeyecxErrorConfigService.apply('theme');\n console.error('Bootstrap Configuration not found!');\n throwError(err);\n }\n );\n }\n\n public config(): Observable<any> {\n return this.configSubject$.asObservable();\n }\n\n public bootstrapConfig(): Observable<any> {\n return this.configBootstrapSubject$.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { actions, selectors } from '../../../store';\nimport {\n MonkeyEcxMeCredentials,\n MonkeyEcxStorage,\n MonkeyEcxTokenCredentials\n} from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxConfigService } from '../config/monkeyecx-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxTokenStorageService {\n private token: MonkeyEcxTokenCredentials | null;\n\n private token$: BehaviorSubject<MonkeyEcxTokenCredentials | any>;\n\n private me$: BehaviorSubject<MonkeyEcxMeCredentials | any>;\n\n constructor(\n private monkeyecxConfigService: MonkeyEcxConfigService,\n private store: Store\n ) {\n this.token = {\n username: '',\n program: '',\n accessToken: '',\n refreshToken: '',\n companyId: '',\n governmentId: '',\n companyTypeUrl: '',\n companyType: '',\n programAdmin: false,\n programType: '',\n accessType: '',\n role: '',\n ownerGovernmentId: '',\n name: '',\n _clearIgnore: {\n ignore: ['username', 'program', 'accessType']\n }\n };\n this.token$ = new BehaviorSubject(null);\n this.me$ = new BehaviorSubject(null);\n }\n\n private setAllTokens(token: MonkeyEcxTokenCredentials) {\n const { token$, store } = this;\n // #TODO - Remover esse código e apenas deixar o username\n // todo o restante ficou salvo na store com a keu sendo o username\n Object.entries(token).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n localStorage.setItem(key, value);\n }\n });\n\n const username = token.username || localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n ...token\n }\n ]\n })\n );\n }\n\n token$.next(token);\n }\n\n private async getAllTokens() {\n try {\n const { store, monkeyecxConfigService } = this;\n const username = localStorage.getItem('username');\n\n let data: any = {\n username: username || '',\n program: '',\n accessToken: ''\n };\n\n if (username) {\n data = await store.select(\n selectors.monkeyecxStorage.select({ username })\n ).pipe(take(1)).toPromise();\n if (!data?.program) {\n const program = localStorage.getItem('program');\n data = {\n ...data,\n program\n };\n }\n }\n\n const config = await monkeyecxConfigService.config()\n .pipe(take(1)).toPromise();\n\n const accessType = localStorage.getItem('accessType');\n const companyType = localStorage.getItem('companyType');\n\n if (!data.accessToken) {\n const accessToken = localStorage.getItem('accessToken');\n const refreshToken = localStorage.getItem('refreshToken');\n data = {\n ...data,\n accessToken,\n refreshToken\n };\n }\n\n if (!data.role) {\n const role = localStorage.getItem('role');\n data = {\n ...data,\n role\n };\n }\n\n const handledData = {\n ...data,\n accessType,\n companyType\n };\n if (!data?.program && config?.program) {\n handledData.program = config?.program?.token;\n }\n delete handledData?.me;\n\n return handledData;\n } catch (e) {\n // not to do\n }\n return null;\n }\n\n private setAllMe(me: MonkeyEcxMeCredentials) {\n const { me$, store } = this;\n let previousMe = JSON.parse(localStorage?.getItem('me') || '{}');\n Object.entries(me).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n previousMe = {\n ...previousMe,\n [key]: value\n };\n }\n });\n\n const username = me.username || localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n me\n }\n ]\n })\n );\n }\n\n localStorage.setItem('me', JSON.stringify(previousMe));\n me$.next(previousMe);\n }\n\n private async getAllMe() {\n const { store } = this;\n const username = localStorage.getItem('username');\n let data: MonkeyEcxStorage | undefined = {\n username: username || '',\n program: ''\n };\n\n if (username) {\n data = await store.select(\n selectors.monkeyecxStorage.select({ username })\n ).pipe(take(1)).toPromise();\n }\n\n let handledData: any = {\n ...data\n };\n\n if (!handledData.me) {\n try {\n handledData = {\n me: JSON.parse(localStorage.getItem('me') || '{}')\n };\n } catch (e) {\n // not to do\n }\n }\n\n return handledData?.me;\n }\n\n public tokenHasChanged(): Observable<MonkeyEcxTokenCredentials> {\n return this.token$.asObservable();\n }\n\n public meHasChanged(): Observable<MonkeyEcxMeCredentials> {\n return this.me$.asObservable() || null;\n }\n\n public async getToken() {\n return this.getAllTokens();\n }\n\n public async getMe() {\n return this.getAllMe();\n }\n\n public setToken(token: MonkeyEcxTokenCredentials) {\n this.setAllTokens(token);\n }\n\n public setMe(me: MonkeyEcxMeCredentials) {\n this.setAllMe(me);\n }\n\n public clear(force?: boolean): Observable<boolean> {\n const { token, store } = this;\n try {\n Object.entries(token || {}).forEach(([key, value]) => {\n if (\n (token?._clearIgnore?.ignore || []).filter((val: any) => {\n return val === key;\n }).length <= 0 ||\n force === true\n ) {\n localStorage.removeItem(key);\n }\n });\n\n localStorage.removeItem('me');\n localStorage.removeItem('mecx-store');\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(actions.monkeyecxStorage.deleteOne({ data: { username } }));\n }\n } catch (error) {\n return of(false);\n }\n return of(true);\n }\n\n /**\n * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])\n */\n public clearCredentials(\n fields = ['companyId', 'governmentId', 'companyType', 'programAdmin', 'role']\n ) {\n const { store } = this;\n let obj: any = null;\n fields?.forEach((key: string) => {\n obj = {\n ...obj,\n [key]: null\n };\n localStorage.removeItem(key);\n });\n\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: [\n {\n username,\n ...obj\n }\n ]\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCookieStorageService {\n constructor(private cookieService: CookieService) {\n // not to do\n }\n\n public setCookie(name: string, value: any, environment: any) {\n this.removeCookie(name, environment);\n const { urlDomain } = environment;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.set(name, value, undefined, '/', handledDomain, true, 'None');\n }\n\n public getCookie(name: string) {\n return this.cookieService.get(name);\n }\n\n public removeCookie(name: string, environment: any) {\n const { urlDomain } = environment;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.delete(name, '/', handledDomain, true, 'None');\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxTokenStorageService } from '../services/storage';\n\n@Directive({\n selector: '[monkeyecxSecurity]'\n})\nexport class MonkeyEcxSecurityDirective implements OnInit {\n @Input('securityRoles') roles: string[] = [];\n\n @Input('securityByExclusion') byExclusion: boolean = false;\n\n private tokenCredentials: any = null;\n\n constructor(\n private elementRef: ElementRef,\n private tokenStorageService: MonkeyEcxTokenStorageService,\n private cdr: ChangeDetectorRef\n ) {\n // not to do\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n const handledRole = localStorage.getItem('role');\n\n return tokenCredentials?.role || handledRole || '';\n }\n\n private handleAccess() {\n const { roles, byExclusion } = this;\n let display = 'none';\n const found = roles?.indexOf(this.getRole());\n if (byExclusion) {\n display = 'block';\n if (found > -1) {\n display = 'none';\n }\n } else {\n display = 'none';\n if (found > -1) {\n display = 'block';\n }\n }\n\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n private async handleData() {\n this.tokenCredentials = await this.tokenStorageService.getToken();\n this.handleAccess();\n }\n\n ngOnInit() {\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.tokenStorageService.tokenHasChanged().subscribe(() => {\n this.handleData();\n });\n\n this.handleData();\n }\n}\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxTooltip]',\n})\nexport class MonkeyEcxTooltipDirective {\n @Input() tooltipDelay?: number;\n\n @Input() tooltipPosition?: string;\n\n @Input() tooltipText?: string;\n\n @Input() tooltipTitle?: string;\n\n @Input() enableToShow = true;\n\n offset = 10;\n\n tooltip: HTMLElement | null = null;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('mouseenter')\n onMouseEnter() {\n if (!this.tooltip) {\n this.show();\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (this.tooltip) {\n this.hide();\n }\n }\n\n @HostListener('click')\n clickout() {\n if (this.tooltip) {\n this.hide();\n }\n }\n\n show() {\n if (this.enableToShow) {\n this.create();\n this.setPosition();\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip-show');\n setTimeout(() => {\n this.hide();\n }, 5000);\n }\n }\n\n hide() {\n if (!this.tooltip) return;\n this.renderer.removeClass(this.tooltip, 'monkeyecx-tooltip-show');\n this.renderer.removeChild(document.body, this.tooltip);\n\n this.tooltip = null;\n }\n\n create() {\n const tooltipElement = document.createElement('div');\n\n this.tooltip = this.renderer.createElement('span');\n\n if (this.tooltipTitle) {\n const tooltipTitleElement = document.createElement('span');\n\n tooltipTitleElement.innerText = `${this.tooltipTitle}`;\n tooltipTitleElement.className = 'monkeyecx-tooltip-title';\n\n tooltipElement.appendChild(tooltipTitleElement);\n }\n\n if (this.tooltipText) {\n const tooltipTextElement = document.createElement('span');\n\n tooltipTextElement.innerText = `${this.tooltipText}`;\n tooltipTextElement.className = 'monkeyecx-tooltip-description';\n tooltipElement.appendChild(tooltipTextElement);\n }\n\n this.renderer.appendChild(this.tooltip, tooltipElement);\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip');\n this.renderer.addClass(this.tooltip, `monkeyecx-tooltip-${this.tooltipPosition}`);\n\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.tooltipDelay}ms`);\n }\n\n setPosition() {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n const tooltipPos = this.tooltip?.getBoundingClientRect();\n if (!tooltipPos) return;\n const scrollPos =\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n let top: number = 0;\n let left: number = 0;\n\n if (this.tooltipPosition === 'top') {\n top = hostPos.top - tooltipPos.height - this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPosition === 'bottom') {\n top = hostPos.bottom + this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPosition === 'left') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - this.offset;\n }\n\n if (this.tooltipPosition === 'right') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + this.offset;\n }\n\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsService {\n constructor(\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n // not to do\n }\n\n show({\n type = 'warning',\n title,\n message,\n duration\n }: {\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading',\n title: string,\n message: string,\n duration: number\n }) {\n const i18n = this.translateService.instant(`MECX-ALERTS.${type}`.toUpperCase());\n\n this.snackbarService.show({\n title: i18n?.TITLES?.[title],\n message: i18n?.MESSAGES[message],\n type,\n duration: duration || 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n\n showWarning({\n title,\n message,\n duration\n }: {\n title: string,\n message: string,\n duration: number\n }) {\n const i18n = this.translateService.instant('MECX-ALERTS.WARNING');\n\n this.snackbarService.show({\n title: i18n?.TITLES?.[title],\n message: i18n?.MESSAGES[message],\n type: 'warning',\n duration: duration || 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n}\n","/* eslint-disable no-console */\nimport { HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthenticationService {\n constructor() {\n // not to do\n }\n\n hadAtLeastOneLogin = async () => {\n console.error('hadAtLeastOneLogin needs to be declared!');\n return null;\n };\n\n redirectApp = () => {\n console.error('redirectApp needs to be declared!');\n return null;\n };\n\n redirectLoginWelcomeBack = (route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot) => {\n console.error('redirectLoginWelcomeBack needs to be declared!');\n return null;\n };\n\n isAuthorized = async () => {\n console.error('isAuthorized needs to be declared!');\n return false;\n };\n\n isCompanyAuthorized = async () => {\n console.error('isCompanyAuthorized needs to be declared!');\n return false;\n };\n\n isTokenMandatory = (url: string): boolean => {\n console.error('isTokenMandatory needs to be declared!');\n return false;\n };\n\n getRequestWithHeaders = (request: HttpRequest<any>): HttpRequest<any> | any => {\n console.error('getRequestWithHeaders needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersOb = (request: HttpRequest<any>): Observable<any> | any => {\n console.error('getRequestWithHeadersOb needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersAsync = async (request: HttpRequest<any>) => {\n console.error('getRequestWithHeadersAsync needs to be declared!');\n return null;\n };\n\n refreshShouldHappen = (response: HttpErrorResponse): boolean => {\n console.error('refreshShouldHappen needs to be declared!');\n return false;\n };\n\n refreshToken = async () => {\n console.error('refreshToken needs to be declared!');\n return null;\n };\n\n getToken = async () => {\n console.error('getToken needs to be declared!');\n return null;\n };\n\n init(args: {\n hadAtLeastOneLogin?: any;\n redirectApp?: any;\n redirectLoginWelcomeBack?: any;\n isAuthorized?: any;\n isTokenMandatory?: any;\n isCompanyAuthorized?: any;\n getRequestWithHeaders?: any;\n getRequestWithHeadersAsync?: any;\n getRequestWithHeadersOb?: any;\n refreshShouldHappen?: any;\n refreshToken?: any;\n getToken?: any;\n }) {\n this.hadAtLeastOneLogin = args?.hadAtLeastOneLogin || this.hadAtLeastOneLogin.bind(this);\n this.redirectApp = args?.redirectApp || this.redirectApp.bind(this);\n this.redirectLoginWelcomeBack =\n args?.redirectLoginWelcomeBack || this.redirectLoginWelcomeBack.bind(this);\n this.isAuthorized = args?.isAuthorized || this.isAuthorized.bind(this);\n this.isTokenMandatory = args?.isTokenMandatory || this.isTokenMandatory.bind(this);\n this.isCompanyAuthorized = args?.isCompanyAuthorized || this.isCompanyAuthorized.bind(this);\n this.getRequestWithHeaders =\n args?.getRequestWithHeaders || this.getRequestWithHeaders.bind(this);\n this.getRequestWithHeadersAsync =\n args?.getRequestWithHeadersAsync || this.getRequestWithHeadersAsync.bind(this);\n this.getRequestWithHeadersOb = args?.getRequestWithHeadersOb.bind(this);\n this.refreshShouldHappen = args?.refreshShouldHappen || this.refreshShouldHappen.bind(this);\n this.refreshToken = args?.refreshToken || this.refreshToken.bind(this);\n this.getToken = args?.getToken || this.getToken.bind(this);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardCompany implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n const { monkeyecxAuthenticationService } = this;\n\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\n if (await monkeyecxAuthenticationService.isCompanyAuthorized()) {\n return true;\n }\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n if (await this.monkeyecxAuthenticationService.hadAtLeastOneLogin()) {\n this.monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n return false;\n }\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuardByRole implements CanActivate {\n private securityCredentials: {\n roles: string[],\n byExclusion: boolean\n } | null = null;\n\n private tokenCredentials: any = null;\n\n constructor(\n private tokenStorage: MonkeyEcxTokenStorageService,\n private router: Router\n ) {\n // not to do\n }\n\n private navigateToErrorPage() {\n const { tokenCredentials } = this;\n const companyType = tokenCredentials?.companyType;\n let path = '/app/pages/forbidden';\n if (companyType) {\n path = `/app/${companyType}/pages/forbidden`;\n }\n this.router?.navigate([path.toLowerCase()]);\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n return tokenCredentials?.role || '';\n }\n\n private allowedSecurityAccess(roles: string[], byExclusion: boolean): boolean {\n if (!roles?.length) return true;\n\n const found = roles?.indexOf(this.getRole());\n let ret = false;\n if (byExclusion) {\n ret = true;\n if (found > -1) {\n ret = false;\n }\n } else {\n ret = false;\n if (found > -1) {\n ret = true;\n }\n }\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\n ret = true;\n }\n return ret;\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\n this.securityCredentials = route.data?.securityCredentials;\n if (this.securityCredentials) {\n const { roles, byExclusion } = this.securityCredentials;\n\n this.tokenCredentials = await this.tokenStorage.getToken();\n\n if (!this.allowedSecurityAccess(roles, byExclusion)) {\n this.navigateToErrorPage();\n return false;\n }\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuard implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n async canActivate(): Promise<boolean> {\n const { monkeyecxAuthenticationService } = this;\n\n if (await monkeyecxAuthenticationService.isAuthorized()) {\n return true;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","/* eslint-disable indent */\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\n\n@NgModule()\nexport class MonkeyEcxConfigModule {\n constructor(\n @Optional()\n @SkipSelf()\n parentModule: MonkeyEcxConfigModule\n ) {\n if (parentModule) {\n throw new Error('MonkeyEcxConfigModule is already loaded. Import it in the AppModule only!');\n }\n }\n\n static forRoot(): ModuleWithProviders<MonkeyEcxConfigModule> {\n return {\n ngModule: MonkeyEcxConfigModule,\n providers: [MonkeyEcxConfigService]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\nimport { first } from 'rxjs/operators';\nimport { MonkeyEcxConfig } from '../../interfaces';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\nimport { MonkeyEcxCookieStorageService } from '../storage';\nimport { CurrencyConfigComponent } from '../../../components/currency-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCurrencyConfigService {\n constructor(\n private modalService: MonkeyStyleGuideModalFixedService,\n private cookieService: MonkeyEcxCookieStorageService,\n private configService: MonkeyEcxConfigService\n ) {\n // not to do\n }\n\n private onHandleCurrencyConfig({ currency, environment }) {\n const { cookieService } = this;\n const settings: string = cookieService.getCookie('monkey-app-settings');\n const locale: string = cookieService.getCookie('monkey-app-locale');\n\n if (!settings) {\n cookieService.setCookie(\n 'monkey-app-settings',\n btoa(\n JSON.stringify({\n showedCurrencyConfig: true\n })\n ),\n environment\n );\n } else {\n const decoded = JSON.parse(atob(settings));\n\n cookieService.setCookie(\n 'monkey-app-settings',\n btoa(\n JSON.stringify({\n ...decoded,\n showedCurrencyConfig: true\n })\n ),\n environment\n );\n }\n\n if (locale) {\n const decoded = JSON.parse(atob(locale));\n\n cookieService.setCookie(\n 'monkey-app-locale',\n btoa(\n JSON.stringify({\n ...decoded,\n currency\n })\n ),\n environment\n );\n }\n }\n\n private async onShowCurrencyConfig(environment: any, force = false) {\n const { cookieService } = this;\n const settings: string = cookieService.getCookie('monkey-app-settings');\n let showed = false;\n if (settings) {\n const decoded = JSON.parse(atob(settings));\n showed = decoded.showedCurrencyConfig;\n }\n\n const config: MonkeyEcxConfig = await this.configService\n .config()\n .pipe(\n first((val: any) => {\n return !!val && JSON.stringify(val) !== '{}';\n })\n )\n .toPromise();\n\n const currency = config?.i18n?.currency;\n const currencies = config?.i18n?.currencies;\n\n if ((!showed || force) && currencies?.length) {\n this.modalService.open(CurrencyConfigComponent, {\n color: 'theme',\n size: 'md',\n data: {\n currency,\n currencies,\n callback: (currency = 'BRL') => {\n this.onHandleCurrencyConfig({\n currency,\n environment\n });\n }\n }\n });\n }\n }\n\n public apply(environment: any, force = false) {\n this.onShowCurrencyConfig(environment, force);\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, NgZone } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxAuthenticationService } from '../auth';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxHttpErrorHandlingService extends MonkeyEcxCommonsService {\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private router: Router,\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n super(monkeyecxService, tokenStorage);\n\n super.resolve(null, null);\n\n this.geti18n(this.translateService, 'SERVICES.WARNING');\n }\n\n private isHttpCodeIgnoreMessage(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private isHttpCodeIgnoreRedirect(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\n if (status === 409 || status === 400 || status === 401 || status === 429) {\n return 'warning';\n }\n\n return 'error';\n }\n\n private showMessage(message: string, error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { snackbarService } = this;\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\n const keepOnUrlChange = error.status === 401;\n\n snackbarService.show({\n title: this.__i18n?.TITLE,\n message,\n type: this.getMessageType(error.status),\n duration: 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top',\n keepOnUrlChange\n });\n }\n }\n\n private handleMessage(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n // eslint-disable-next-line camelcase\n const { notifications, error_description, message } = error?.error || {\n notifications: '',\n error_description: '',\n message: ''\n };\n\n let customMessage = '';\n\n if (message) {\n customMessage = message;\n }\n\n // eslint-disable-next-line camelcase\n if (error_description) {\n // eslint-disable-next-line camelcase\n customMessage = error_description;\n }\n\n if (notifications) {\n customMessage = notifications;\n }\n\n if (!customMessage) {\n if (error.error instanceof Blob) {\n const blob = new Blob([error.error], {\n type: 'application/json'\n });\n const reader = new FileReader();\n reader.addEventListener('loadend', (e) => {\n const text = e?.target?.result;\n const jsonResp = JSON.parse(text as string);\n customMessage = jsonResp.notifications;\n this.showMessage(customMessage, error, mkc);\n });\n reader.readAsText(blob);\n } else if (!error?.url?.includes('assets.monkey')) {\n const defaultMsg = this.__i18n['ERROR-HANDLING']?.ERROR;\n const msg =\n error.status === 429\n ? this.__i18n['ERROR-HANDLING']?.['TOO-MANY-REQUEST'] ?? defaultMsg\n : defaultMsg;\n\n this.showMessage(msg, error, mkc);\n }\n } else {\n this.showMessage(customMessage, error, mkc);\n }\n }\n\n public async handleError(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { router, tokenStorage } = this;\n const { status } = error;\n const { companyType } = (await tokenStorage?.getToken()) || { companyType: '' };\n\n const routes: any = {\n 403: 'forbidden',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n let route = '/app';\n if (companyType) {\n route = `${route}/${companyType}/pages`;\n } else {\n route = `${route}/pages`;\n }\n\n const found = routes[status];\n let timeout = 0;\n\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\n route = `${route}/${found}`.toLowerCase();\n timeout = 800;\n router.navigate([route]);\n }\n\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, timeout);\n }\n\n public handleErrorRefreshToken(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const hasToRefresh = this.monkeyecxAuthenticationService.refreshShouldHappen(error);\n if ((error.status === 401 || error.status === 400) && hasToRefresh) {\n NgZone.call(this.monkeyecxAuthenticationService.redirectLoginWelcomeBack(), {});\n } else if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\n this.handleMessage(error, mkc);\n }\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MECX_ENV } from '../../injectors';\nimport { MonkeyEcxLogs } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxOthersErrorsHandlingService {\n constructor(\n private modalService: MonkeyStyleGuideModalService,\n @Inject(MECX_ENV) private env: InjectionToken<string>\n ) {\n // not to do\n }\n\n public handleError(error: any) {\n const { modalService } = this;\n const { message } = error;\n\n try {\n if (this.env.toString() !== 'prod') {\n console.log('==> error <==');\n console.log(error);\n }\n\n MonkeyEcxLogs.log({\n message: '==> error <==',\n error\n });\n } catch (e) {\n // not to\n }\n\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(message)) {\n modalService.open(VersionChangedComponent, {\n color: 'theme',\n size: 'md',\n hideClose: true\n });\n }\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxHandlingService } from '../monkeyecx-handling.service';\nimport { MonkeyEcxHttpErrorHandlingService } from './monkeyecx-http-error-handling.service';\nimport { MonkeyEcxOthersErrorsHandlingService } from './monkeyecx-others-errors-handling.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxErrorHandlingService implements ErrorHandler {\n constructor(private injector: Injector) {\n // not to do\n }\n\n handleError(error: any, type?: string) {\n const { injector } = this;\n const handlingService = injector.get(MonkeyEcxHandlingService);\n const httpErrorHandlingService = injector.get(MonkeyEcxHttpErrorHandlingService);\n const othersErrorsHandlingService = injector.get(MonkeyEcxOthersErrorsHandlingService);\n\n if (error instanceof HttpErrorResponse) {\n const sCredentials: MonkeyEcxServiceCredentials =\n handlingService?.getMonkeyEcxServiceCredentials() || {};\n if (MonkeyEcxUtils.persistNullEmptyUndefined(type) && type === 'refresh_token') {\n httpErrorHandlingService.handleErrorRefreshToken(error, sCredentials);\n } else httpErrorHandlingService.handleError(error, sCredentials);\n } else {\n othersErrorsHandlingService.handleError(error);\n }\n }\n}\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxErrorHandlingService } from './monkeyecx-error-handling.service';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxErrorHandlingModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxErrorHandlingModule> {\n return {\n ngModule: MonkeyEcxErrorHandlingModule,\n providers: [\n {\n provide: ErrorHandler,\n useClass: MonkeyEcxErrorHandlingService,\n },\n ],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLoggedHandlingService {\n private schedules: MonkeyEcxRequestSchedule[] = [];\n\n private genericSchedules: MonkeyEcxRequestSchedule[] = [];\n\n constructor() {\n // not to do\n }\n\n private destroySchedule() {\n this.schedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.schedules = [];\n }\n\n private destroyGenericSchedule() {\n this.genericSchedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.genericSchedules = [];\n }\n\n public addSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.schedules = sch;\n }\n\n public addGenericSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.genericSchedules = sch;\n }\n\n public destroy() {\n this.destroySchedule();\n this.destroyGenericSchedule();\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxPaginationService {\n private callbacks: {\n [key: string]: Function;\n } = {};\n\n constructor() {\n // not to do\n }\n\n public setCallback(callback: Function, name: string = 'main') {\n this.callbacks = {\n ...this.callbacks,\n [name]: callback\n };\n }\n\n public execute(type: string, name: string = 'main') {\n const { callbacks } = this;\n const callback = callbacks?.[name];\n if (callback) callback(type);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestDownload } from '../../interfaces';\nimport { MonkeyEcxDownloadEvents } from '../../utils/statics';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadHandlingService {\n private download: MonkeyEcxRequestDownload[] = [];\n\n private download$: BehaviorSubject<MonkeyEcxRequestDownload[] | any>;\n\n constructor() {\n this.download$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownload) {\n this.download.push(q);\n this.download$.next(this.download);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownload, status?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved\n .map((val: any) => {\n if (val.status === MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || MonkeyEcxDownloadEvents.Finished\n };\n }\n return valSaved;\n }\n return null;\n })\n .filter((_: any) => {\n return _;\n })\n ];\n\n this.download = this.download.filter((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n this.download$.next(this.download);\n }\n\n private updateItem(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const currentPecentage = Math.floor(((loaded || 0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n };\n }\n return valSaved;\n })\n ];\n this.download$.next(this.download);\n }\n\n public set(q: MonkeyEcxRequestDownload) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownload[]> {\n return this.download$.asObservable();\n }\n\n public update(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n this.updateItem(q, loaded, total);\n }\n\n public finishItem(q: MonkeyEcxRequestDownload, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.download.find((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { Statics } from '../../utils';\nimport { MonkeyEcxRequestDownloaded } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadedHandlingService {\n private downloaded: MonkeyEcxRequestDownloaded[] = [];\n\n private downloaded$: BehaviorSubject<MonkeyEcxRequestDownloaded[] | any>;\n\n constructor() {\n this.downloaded$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownloaded) {\n this.downloaded.push(q);\n this.downloaded$.next(this.downloaded);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownloaded, status?: number) {\n const saved = [...this.downloaded];\n this.downloaded = [\n ...saved.map((val: any) => {\n if (val.status === Statics.MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxDownloadEvents.Finished,\n action: q.action\n };\n }\n return valSaved;\n }\n return val;\n })\n ];\n this.downloaded$.next(this.downloaded);\n }\n\n public set(q: MonkeyEcxRequestDownloaded) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownloaded[]> {\n return this.downloaded$.asObservable();\n }\n\n public finishItem(q: MonkeyEcxRequestDownloaded, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.downloaded.find((_: any) => {\n return _.status === Statics.MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n }\n\n public setQueue(q: MonkeyEcxRequestQueue | null) {\n if (!q) return;\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue | null, action?: Function, status?: number) {\n if (!q) return;\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueModalHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue$ = new BehaviorSubject(false);\n\n private allQueueFinished$ = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue$.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total||0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n if (this.queue.length <= 0) {\n this.allQueueFinished$.next(true);\n }\n }\n\n public setQueue(q: MonkeyEcxRequestQueue) {\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue, action?: Function, status?: number) {\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n\n public hasAllQueueFinished(): Observable<boolean> {\n return this.allQueueFinished$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { MonkeyEcxUtils } from '../../utils/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDiscoveryParamsService {\n constructor(private router: Router) {\n // not to do\n }\n\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.getLastChild(route.firstChild);\n }\n\n return route;\n }\n\n public setData(field: string, value: any): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n route.data[field] = value;\n }\n\n public getData(field: string): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\n return found;\n }\n\n public getDataFromCurrentNavigation(field: string, router?: Router): any {\n const navigation = this.router.getCurrentNavigation() || router?.getCurrentNavigation();\n let state: any = null;\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\n state = navigation?.extras.state;\n }\n\n return state ? state[field] : null;\n }\n\n public getParam(param: string): string | null {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\n ? route?.paramMap?.get(param) || ''\n : '';\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\n return found;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxLoggedHandlingService } from '../logged';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestScheduleService {\n private schedule: MonkeyEcxRequestSchedule[] | any[] = [];\n\n private genericSchedule: MonkeyEcxRequestSchedule[] | any[] = [];\n\n constructor(\n public monkeyecxService: MonkeyEcxService,\n private monkeyLoggedHandlingService: MonkeyEcxLoggedHandlingService\n ) {\n // not to do\n }\n\n private addToSchedule(q: MonkeyEcxRequestSchedule) {\n this.schedule.push(q);\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private addToGenericSchedule(q: MonkeyEcxRequestSchedule) {\n this.genericSchedule.push(q);\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\n }\n\n private removeFromSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private removeFromGenericSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.genericSchedule];\n this.genericSchedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\n }\n\n private removeFromScheduleById(id: string) {\n const q = this.getScheduleById(id);\n clearInterval(q?.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch\n };\n if (sch.id === q?.id) {\n return null;\n }\n return savedLocal;\n })\n ].filter((_: any) => {\n return _;\n });\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 403, 404, 500, 503]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n private doCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action, errorAction } = sch;\n\n const errAction = errorAction || ((...args) => {});\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp\n },\n sch\n );\n },\n (err: HttpErrorResponse) => {\n this.removeFromSchedule(sch);\n errAction(\n {\n ...data\n },\n sch,\n err\n );\n }\n );\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 401, 403, 404, 500, 503],\n httpCodeIgnoreRedirect: [503]\n },\n requestInProgress: {\n showProgress: false\n }\n })\n private doGenericCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action, errorAction } = sch;\n\n const errAction = errorAction || ((...args) => {});\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp\n },\n sch\n );\n },\n (err: HttpErrorResponse) => {\n this.removeFromGenericSchedule(sch);\n errAction(\n {\n ...data\n },\n sch,\n err\n );\n }\n );\n }\n\n public setSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const id = q?.id || `${MonkeyEcxUtils.getRandomString(40)}`;\n const obj = {\n ...q,\n id\n };\n\n const interval = setInterval(() => {\n this.doCall({\n ...obj,\n interval\n });\n }, delay);\n\n const sch = {\n ...obj,\n interval\n };\n\n this.addToSchedule(sch);\n return sch;\n }\n\n public setGenericSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const interval = setInterval(() => {\n this.doGenericCall({\n ...q,\n interval\n });\n }, delay);\n\n const sch = {\n ...q,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n interval\n };\n\n this.addToGenericSchedule(sch);\n return sch;\n }\n\n public removeSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromSchedule(q);\n }\n\n public removeGenericSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromGenericSchedule(q);\n }\n\n public removeScheduleById(id: string) {\n this.removeFromScheduleById(id);\n }\n\n public getScheduleById(id: string) {\n const q = this.schedule.find((sch: MonkeyEcxRequestSchedule) => {\n return sch.id === id;\n });\n return q;\n }\n}\n","import { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreBaseService<\n T,\n K extends MonkeyEcxConfigStore\n> extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n protected store: Store,\n config: K\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links);\n }\n\n this.updatePage?.(page);\n } else data = resp;\n\n this.update?.(data);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[]): T | T[] {\n try {\n const handle = (item: T) => {\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[]) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(data: MonkeyEcxPage) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(data: MonkeyEcxLinks) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n },\n requestInProgress: {\n showProgress: true\n }\n })\n protected async loadData(url: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\n this.handleResponseData(data, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw new Error(`${e?.message}`);\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination) {\n const { store, selector } = this;\n const data = await store\n .select(selector.selectLinks())\n .pipe(take(1))\n .toPromise();\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport {\n MonkeyEcxPage,\n MonkeyEcxPaginationData,\n MonkeyEcxStoreControl,\n MonkeyEcxStoreLoadPageParams,\n MonkeyEcxStoreLoadParams\n} from '../../interfaces';\n\nexport abstract class MonkeyEcxCommonsActions {\n static getActions<T>(actionName: string) {\n const clear = createAction(`[${actionName}] Clear All`, props<{ identifier: string }>());\n const load = createAction(`[${actionName}] Load`, props<MonkeyEcxStoreLoadParams>());\n const loadPagination = createAction(\n `[${actionName} Pagination] Load`,\n props<MonkeyEcxStoreLoadPageParams>()\n );\n const updateAll = createAction(`[${actionName}] Update All`, props<{ data: T[] }>());\n const updateOne = createAction(`[${actionName}] Update One`, props<{ data: T }>());\n const removeOne = createAction(`[${actionName}] Remove One`, props<{ data: T }>());\n const updateControl = createAction(\n `[${actionName}] Update Control`,\n props<{ data: MonkeyEcxStoreControl }>()\n );\n const updatePage = createAction(\n `[${actionName}] Update Page`,\n props<{ data: MonkeyEcxPage }>()\n );\n const updateLinks = createAction(\n `[${actionName}] Update Links`,\n props<{ data: MonkeyEcxPaginationData }>()\n );\n\n return {\n clear,\n load,\n loadPagination,\n removeOne,\n updateAll,\n updateOne,\n updateControl,\n updateLinks,\n updatePage\n };\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { parseUrl } from 'query-string';\n\ninterface Identifiable {\n identifier?: string;\n}\n\ninterface IReducer {\n featureKey: string;\n selectAll: any;\n}\n\nconst urlHasField = (url: string, field: string) => {\n const obj: any = parseUrl(url);\n return !!obj?.query?.[field];\n};\n\nexport abstract class MonkeyEcxCommonsSelectors {\n static getSelectors<T extends Identifiable>(reducer: IReducer) {\n const selectState = createFeatureSelector(reducer.featureKey);\n\n const selectAll: any = createSelector(selectState, reducer.selectAll);\n\n const selectByIdentifier = (props: { identifier: string }) => {\n return createSelector(selectAll, (entities: T[]): T[] => {\n return entities.filter((_: T) => {\n return _.identifier === props.identifier;\n });\n });\n };\n\n const selectOneByIdentifier = (props: { identifier: string }) => {\n return createSelector(selectAll, (entities: T[]): T | null => {\n return (\n entities.find((_: T) => {\n return _.identifier === props.identifier;\n }) || null\n );\n });\n };\n\n const selectControl = () => {\n return createSelector(selectState, (state: any): any => {\n return state.control;\n });\n };\n\n const selectLinks = (props?: { identifier: string }) => {\n return createSelector(selectState, (state: any): any => {\n if (props?.identifier) {\n return state.links?.[props.identifier];\n }\n\n return state.links;\n });\n };\n\n const selectPage = (props?: { identifier: string }) => {\n return createSelector(selectState, (state: any): any => {\n if (props?.identifier) {\n return state.page?.[props.identifier];\n }\n\n return state.page;\n });\n };\n\n const selectData = () => {\n return createSelector(selectState, (state: any): any => {\n return state.data;\n });\n };\n\n const linksHasDifference = (props: { identifier: string; url: string }) => {\n return createSelector(selectState, (state: any): any => {\n const { pagination } = state;\n const { identifier, url } = props;\n let hasDifference = false;\n let hasField = false;\n\n try {\n const handlePaginationUrl = parseUrl(`${pagination?.[identifier]?.url}`);\n const handleUrl = parseUrl(`${url}`);\n hasDifference =\n handlePaginationUrl?.query?.search !== handleUrl?.query?.search ||\n handlePaginationUrl?.query?.sort !== handleUrl?.query?.sort;\n hasField = urlHasField(url, 'search') || urlHasField(url, 'sort');\n } catch (e) {\n // not to do\n }\n\n return {\n hasDifference,\n hasField\n };\n });\n };\n\n return {\n selectState,\n selectAll,\n selectData,\n selectControl,\n selectLinks,\n selectByIdentifier,\n selectOneByIdentifier,\n selectPage,\n linksHasDifference\n };\n }\n}\n","import { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreService<\n T,\n K extends MonkeyEcxConfigStore\n> extends MonkeyEcxCommonsService {\n private action: any;\n\n private selector: any;\n\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n protected store: Store,\n config: K\n ) {\n super(monkeyecxService, tokenStorage);\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, identifier: string, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links, identifier);\n }\n\n this.updatePage?.(page, identifier);\n } else data = resp;\n\n this.update?.(data, identifier);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected async linksHasDifference(url: string, identifier: string) {\n try {\n const { action, store, selector } = this;\n\n const { hasDifference, hasField } = <any>(\n await store\n .select(selector.linksHasDifference({ identifier, url }))\n .pipe(take(1))\n .toPromise()\n );\n\n if (hasDifference && hasField) {\n store.dispatch(action.clear({ identifier }));\n }\n\n return { hasDifference };\n } catch (e) {\n throw new Error(`MECX Core - Method linksHasDifference -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[], identifier: string): T | T[] {\n try {\n const handle = (item: T) => {\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n identifier,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[], identifier: string) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args, identifier)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(args: MonkeyEcxPage, identifier: string) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data: {\n [identifier]: args\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(args: MonkeyEcxLinks, identifier: string) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data: {\n [identifier]: args\n }\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n },\n requestInProgress: {\n showProgress: true\n }\n })\n protected async loadData(url: string, identifier: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\n this.handleResponseData(data, identifier, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw new Error(`${e?.message}`);\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination, identifier: string) {\n const { store, selector } = this;\n const data = await store\n .select(selector.selectLinks({ identifier }))\n .pipe(take(1))\n .toPromise();\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href, identifier);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url, identifier) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { base64ToBuffer } from '../../utils/utils';\nimport { MECX_ALPHA, MECX_BETA } from '../../injectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LService {\n constructor(\n @Inject(MECX_ALPHA) private alpha: InjectionToken<string>,\n @Inject(MECX_BETA) private beta: InjectionToken<string>\n ) {\n // not to do\n }\n\n async y(data: string): Promise<string> {\n if (!window.crypto || !window.crypto.subtle) {\n throw new Error('unsupported function');\n }\n\n const key = await this.w();\n const decrypted = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: base64ToBuffer(this.alpha.toString())\n },\n key,\n base64ToBuffer(data)\n );\n const decoder = new TextDecoder();\n return decoder.decode(decrypted);\n }\n\n private async w() {\n const parsedKey = JSON.parse(atob(this.beta.toString()));\n return window.crypto.subtle.importKey('jwk', parsedKey, { name: 'AES-GCM' }, true, [\n 'encrypt',\n 'decrypt'\n ]);\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxConfig } from '../interfaces';\nimport { MonkeyEcxConfigService } from '../services';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFeatureByProgram]'\n})\nexport class MonkeyEcxFeatureByProgramDirective implements OnInit {\n @Input('feature') feature: string = '';\n\n private config?: MonkeyEcxConfig;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private monkeyConfigService: MonkeyEcxConfigService\n ) {\n this.monkeyConfigService.config().subscribe((_: MonkeyEcxConfig) => {\n this.config = _;\n this.init();\n });\n }\n\n private init() {\n if (!this.feature) return;\n this.cdr.detectChanges();\n this.handleDisplay();\n }\n\n private handleDisplay(): void {\n const { feature, config } = this;\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\n return;\n }\n\n const disabled = config?.program?.settings?.[feature];\n\n if (!disabled) {\n display = 'block';\n }\n\n this.elementRef.nativeElement.style.display = display;\n\n if (display === 'none') {\n this.elementRef.nativeElement.remove();\n }\n\n this.cdr.detectChanges();\n }\n\n ngOnInit() {\n this.init();\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\n\n@Directive({\n selector: '[monkeyecxFeature]'\n})\nexport class MonkeyEcxFeatureDirective implements OnDestroy, OnInit {\n @Input('featureName') feature?: string;\n\n private unsubscribeAll = new Subject();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private monkeyecxFeatureToggleService: MonkeyEcxFeatureToggleService\n ) {\n // not to do\n }\n\n private getFeature(feature: string): boolean {\n const { monkeyecxFeatureToggleService } = this;\n\n if (!monkeyecxFeatureToggleService) {\n return false;\n }\n\n return monkeyecxFeatureToggleService?.getFlag(feature) || false;\n }\n\n private handleDisplay(): void {\n if (!this.feature) return;\n const flag = this.getFeature(this.feature);\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\n return;\n }\n\n if (flag) {\n display = 'block';\n }\n\n if (display === 'none') {\n this.elementRef.nativeElement.remove();\n }\n\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n\n ngOnInit() {\n if (!this.feature) return;\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.monkeyecxFeatureToggleService.onFlags\n .pipe(takeUntil(this.unsubscribeAll))\n .subscribe((val: boolean) => {\n if (val) {\n this.handleDisplay();\n }\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxLoading]'\n})\nexport class MonkeyEcxLoadingDirective implements OnChanges {\n private view: EmbeddedViewRef<any> | null = null;\n\n private loadingElement: HTMLElement | null = null;\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n @Input() monkeyecxLoading: boolean = false;\n\n @Input() monkeyecxLoadingSize: 'lg' | 'md' | 'sm' = 'sm';\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['monkeyecxLoading'] || changes['monkeyecxLoadingSize']) {\n this.updateView();\n }\n }\n\n updateView() {\n if (this.monkeyecxLoading) {\n if (this.view) this.viewContainer.clear();\n\n this.loadingElement = document.createElement('div');\n\n this.loadingElement.className = `mecx-loading ${this.monkeyecxLoadingSize}`;\n\n this.elementRef.nativeElement.parentNode.insertBefore(\n this.loadingElement,\n this.elementRef.nativeElement.nextSibling\n );\n } else {\n if (this.loadingElement && this.loadingElement.parentNode) {\n this.loadingElement.parentNode.removeChild(this.loadingElement);\n this.loadingElement = null;\n }\n\n this.viewContainer.clear();\n this.view = this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxDragDropDirective } from './monkeyecx-drag-drop';\nimport { MonkeyEcxFeatureByProgramDirective } from './monkeyecx-feature-by-program-directive';\nimport { MonkeyEcxFeatureDirective } from './monkeyecx-feature-directive';\nimport { MonkeyEcxFormatCurrency } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatUpper } from './monkeyecx-format-upper';\nimport { MonkeyEcxOnlyAlphaNumericDirective } from './monkeyecx-only-alpha-numeric-directive';\nimport { MonkeyEcxOnlyNumbersDirective } from './monkeyecx-only-number-directive';\nimport { MonkeyEcxPopoverOptionsDirective } from './monkeyecx-popover-options.directive';\nimport { MonkeyEcxPopoverDirective } from './monkeyecx-popover.directive';\nimport { MonkeyEcxSecurityDirective } from './monkeyecx-security-directive';\nimport { MonkeyEcxTooltipDirective } from './monkeyecx-tooltip-directive';\nimport { MonkeyEcxLoadingDirective } from './monkeyecx-loading';\n\n@NgModule({\n declarations: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFeatureByProgramDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxLoadingDirective,\n MonkeyEcxTooltipDirective,\n MonkeyEcxPopoverDirective,\n MonkeyEcxPopoverOptionsDirective\n ],\n imports: [CommonModule, OverlayModule],\n exports: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFeatureByProgramDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxLoadingDirective,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxTooltipDirective,\n MonkeyEcxPopoverDirective,\n MonkeyEcxPopoverOptionsDirective\n ]\n})\nexport class MonkeyEcxDirectivesModule {}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { from, Observable, throwError } from 'rxjs';\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\nexport interface Headers {\n name: string;\n value: string;\n}\n\n@Injectable()\nexport class MonkeyEcxHttpConfigErrorInterceptor implements HttpInterceptor {\n constructor(\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\n ) {\n // no to do\n }\n\n private async handle(request: HttpRequest<any>, error: HttpErrorResponse) {\n try {\n if (this.monkeyecxAuthenticationService.refreshShouldHappen(error)) {\n await this.monkeyecxAuthenticationService?.refreshToken();\n const headers = await this.monkeyecxAuthenticationService.getRequestWithHeadersAsync(\n request\n );\n return headers;\n }\n } catch (e) {\n return throwError(e);\n }\n\n return null;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(\n map((event: HttpEvent<any>) => {\n return event;\n }),\n catchError((error: HttpErrorResponse) => {\n return from(this.handle(request, error)).pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError(() => {\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\n return throwError(error);\n })\n );\n })\n );\n }\n}\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { from, Observable, throwError } from 'rxjs';\nimport { catchError, first, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxConfigService } from '../services';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigHeaderInterceptor implements HttpInterceptor {\n constructor(\n private authService: MonkeyEcxAuthenticationService,\n private errorHandlingService: MonkeyEcxErrorHandlingService,\n private config: MonkeyEcxConfigService\n ) {\n // not to do\n }\n\n private async handle(request: HttpRequest<any>) {\n const { url } = request;\n if (this.authService.isTokenMandatory(url)) {\n try {\n await this.config\n .config()\n .pipe(\n first((val: any) => {\n return !!val && JSON.stringify(val) !== '{}';\n })\n )\n .toPromise();\n } catch (e) {\n // not to do\n }\n }\n let resp = null;\n try {\n resp = await this.authService.getRequestWithHeadersAsync(request);\n } catch (e) {\n this.errorHandlingService.handleError(e);\n return throwError(e);\n }\n\n return resp;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return from(this.handle(request)).pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError((error: HttpErrorResponse) => {\n this.errorHandlingService.handleError(error);\n return throwError(error);\n })\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxRequestQueueHandlingService } from '../services/request-queue';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestQueue } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigQueueInterceptor implements HttpInterceptor {\n constructor(\n private injector: Injector,\n private monkeyecxRequestQueueHandlingService: MonkeyEcxRequestQueueHandlingService\n ) {\n // not to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isQueueProperty } = this;\n const monkeyecxHandlingService = injector.get(MonkeyEcxHandlingService);\n\n const monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = monkeyecxHandlingService?.getMonkeyEcxRequestQueue();\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.setQueue(monkeyecxRequestQueue);\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.finishQueueItem(monkeyecxRequestQueue);\n }\n })\n );\n }\n\n private isQueueProperty(mrq?: MonkeyEcxRequestQueue | null): boolean {\n return (\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq?.item?.name)\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestLoadingInProgress } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxProgressBarService } from '../../components';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigLoadingInProgressInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {\n // no to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isLoadingInProgressProperty } = this;\n const handlingService: MonkeyEcxHandlingService = injector.get(MonkeyEcxHandlingService);\n const progressBarService: MonkeyEcxProgressBarService = injector.get(\n MonkeyEcxProgressBarService\n );\n\n const inProgress: MonkeyEcxRequestLoadingInProgress | null = handlingService?.getMonkeyEcxServiceCredentials()\n ? handlingService?.getMonkeyEcxServiceCredentials()?.requestInProgress || null\n : null;\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.show();\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.hide();\n }\n })\n );\n }\n\n private isLoadingInProgressProperty(mlp: MonkeyEcxRequestLoadingInProgress | null): boolean {\n if (!mlp) return false;\n return MonkeyEcxUtils.persistNullEmptyUndefined(mlp) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mlp.showProgress)\n ? mlp.showProgress\n : true;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxHttpConfigErrorInterceptor } from './monkeyecx-http-config-error.interceptor';\nimport { MonkeyEcxHttpConfigHeaderInterceptor } from './monkeyecx-http-config-header.interceptor';\nimport { MonkeyEcxHttpConfigQueueInterceptor } from './monkeyecx-http-config-queue.interceptor';\nimport { MonkeyEcxHttpConfigLoadingInProgressInterceptor } from './monkeyecx-http-config-loading-in-progress.interceptor';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxHttpConfigInterceptorModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxHttpConfigInterceptorModule> {\n return {\n ngModule: MonkeyEcxHttpConfigInterceptorModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigHeaderInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigErrorInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigQueueInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigLoadingInProgressInterceptor,\n multi: true,\n },\n ],\n };\n }\n}\n","/* eslint-disable no-unused-vars */\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport enum OpSearch {\n LIKE = ':\\'*:value*\\'',\n BETWEEN = ':first AND :last',\n OR = 'OR',\n AND = 'AND',\n GT = '>:value',\n LT = '<:value',\n EQUAL = '::value',\n IN = ' IN :value',\n NOT = ' !:value'\n}\n\nexport class MonkeyEcxSpecificationSearch {\n constructor() {\n // not to do\n }\n\n private handleValue(value: any) {\n return Object.entries(value).map(([key, value1]) => {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {\n return null;\n }\n if (Array.isArray(value1)) {\n if (key === OpSearch.BETWEEN) {\n return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);\n }\n }\n return `${key}`.replace(':value', `${value1}`);\n })[0];\n }\n\n private queryVisitor(value: any): any {\n const okay = Object.entries(value).map(([key1, value1]) => {\n if (key1 === OpSearch.OR || key1 === OpSearch.AND) {\n const join = (value1 as any[])\n .map((_: any) => {\n return Object.entries(_).map(([key2, value2]) => {\n if (value2 instanceof Object) {\n value2 = this.handleValue(value2);\n }\n return this.criteriaParser(key2, value2);\n })[0];\n })\n .filter((_: any) => {\n return _;\n })\n .join(` ${key1} `);\n return `${join ? `(${join})` : ''}`;\n }\n if (value1 instanceof Object) {\n value1 = this.handleValue(value1);\n }\n return this.criteriaParser(key1, value1);\n });\n return okay\n .filter((_: any) => {\n return _;\n })\n .join(' AND ');\n }\n\n private criteriaParser(key: string, value: any | any[]) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n return '';\n }\n if (value instanceof Object) {\n return this.queryVisitor(value);\n }\n return `${key}${value}`;\n }\n\n public build(spec: any): string {\n try {\n return this.queryVisitor(spec);\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public buildMoreThanOne(field: string, op = OpSearch.EQUAL, addSingleQuotes = false) {\n const self: any = this;\n try {\n if (!self[field]) return [];\n\n const filters = self[field]?.split(',')?.map((filter: string) => {\n if (!filter) return null;\n return {\n [field]: {\n [op]: addSingleQuotes ? `'${filter}'` : `${filter}`\n }\n };\n }).filter((val: any) => { return val; });\n return filters || [];\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public handleFieldSeparatedBy(field: string, signal = ',', op = OpSearch.EQUAL) {\n return this[field]?.split(signal)?.map((_) => {\n return {\n [field]: {\n [op]: _\n }\n };\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { StoreModule } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideModule,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n} from 'monkey-style-guide';\nimport {\n AlertsModule,\n ClosedToMaintenanceModule,\n CurrencyConfigModule,\n VersionChangedModule\n} from './components';\nimport { MonkeyEcxHttpConfigInterceptorModule } from './core/interceptors/monkeyecx-http-config-interceptor.module';\nimport { MonkeyEcxConfigModule } from './core/services/config/monkeyecx-config.module';\nimport { MonkeyEcxErrorHandlingModule } from './core/services/error/monkeyecx-error-handling.module';\nimport { reducers } from './store';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n TranslateModule.forRoot(),\n MonkeyEcxConfigModule.forRoot(),\n MonkeyEcxHttpConfigInterceptorModule.forRoot(),\n MonkeyEcxErrorHandlingModule.forRoot(),\n MonkeyStyleGuideModule,\n ServiceWorkerModule.register('ngsw-worker.js'),\n ClosedToMaintenanceModule,\n StoreModule.forFeature(\n reducers.fromMonkeyecxStorage.featureKey,\n reducers.fromMonkeyecxStorage.reducer\n ),\n VersionChangedModule,\n AlertsModule,\n CurrencyConfigModule\n ],\n providers: [\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n ]\n})\nexport class MonkeyFrontCoreModule {}\n","/*\n * Public API Surface of monkey-front-core\n */\nexport * from './lib/components';\nexport * from './lib/core';\nexport * from './lib/monkey-front-core.module';\nexport * as store from './lib/store';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","moment","i4.MonkeyEcxFormatDateTimelapsePipe","i2.MonkeyEcxHandlingService","i1.MonkeyEcxService","i2","Statics.MonkeyEcxQueueEvents","Statics.MonkeyEcxUploadEvents","i1.MonkeyEcxProgressBarService","DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties","DecoratorsUtils.buildQueuePropertys","DecoratorsUtils.buildDownloadPropertys","DecoratorsUtils.buildUploadPropertys","actions.monkeyecxStorage.clear","actions.monkeyecxStorage.create","actions.monkeyecxStorage.updateControl","actions.monkeyecxStorage.updateOne","actions.monkeyecxStorage.deleteOne","selectAll","reducers.fromMonkeyecxStorage.featureKey","reducers.fromMonkeyecxStorage.selectAll","window","i2.MonkeyEcxTokenStorageService","i4.MonkeyEcxErrorConfigService","i2.MonkeyEcxi18nConfigService","i3.MonkeyEcxLogsConfigService","i4","i5.MonkeyEcxServiceWorkerConfigService","i6.MonkeyEcxSecurityConsoleConfigService","i7.MonkeyEcxMaintenanceConfigService","i8.MonkeyEcxErrorConfigService","i9.MonkeyEcxFeatureToggleService","i10.MonkeyEcxGTMConfigService","i11.MonkeyEcxAlertsConfigService","selectors.monkeyecxStorage.select","i1.MonkeyEcxConfigService","i1.MonkeyEcxTokenStorageService","i1.MonkeyEcxAuthenticationService","i2.MonkeyEcxCookieStorageService","i3.MonkeyEcxConfigService","i3.MonkeyEcxAuthenticationService","i5","i6","Statics.MonkeyEcxDownloadEvents","i2.MonkeyEcxLoggedHandlingService","i1.MonkeyEcxFeatureToggleService","i2.MonkeyEcxErrorHandlingService","i1.MonkeyEcxRequestQueueHandlingService","i2.MonkeyEcxConfigModule","i3.MonkeyEcxHttpConfigInterceptorModule","i4.MonkeyEcxErrorHandlingModule","reducers.fromMonkeyecxStorage.reducer"],"mappings":"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"}