monkey-front-core 0.0.483 → 0.0.484

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/services/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-group.ts","../../../projects/monkey-front-core/src/lib/core/utils/validate-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/decorators-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-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/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/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-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/core/injectors/index.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';\r\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\n\r\n@Component({\r\n selector: 'monkeyecx-alerts',\r\n templateUrl: './alerts.component.html',\r\n styleUrls: ['./alerts.component.scss']\r\n})\r\nexport class AlertsComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n _img = '';\r\n\r\n _title = '';\r\n\r\n _message = '';\r\n\r\n _action: {\r\n href: string,\r\n label: string\r\n } | null = null;\r\n\r\n _hideClose = false;\r\n\r\n constructor(\r\n private modalService: MonkeyStyleGuideModalService\r\n ) {\r\n // not to do\r\n }\r\n\r\n ngOnInit() {\r\n const { config } = this;\r\n this._img = config?.data?.img;\r\n this._title = config?.data?.title;\r\n this._message = config?.data?.message;\r\n this._action = config?.data?.action;\r\n this._hideClose = config?.data?.hideClose;\r\n }\r\n\r\n onClose() {\r\n this.modalService.close(this.modalRef);\r\n }\r\n\r\n onAction() {\r\n const { _action } = this;\r\n if (_action?.href) {\r\n window.location.href = _action?.href;\r\n }\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"alert-header\">\r\n <img [src]=\"_img\">\r\n </div>\r\n <div class=\"alert-body\">\r\n <span class=\"title\">\r\n {{ _title | translate }}\r\n </span>\r\n <span class=\"message\">\r\n {{ _message | translate }}\r\n </span>\r\n </div>\r\n <div class=\"alert-footer\">\r\n <ng-container *ngIf=\"!_hideClose\">\r\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'BUTTONS.CLOSE' | translate }}\r\n </monkey-button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"_action\">\r\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onAction()\">\r\n {{ _action.label | translate }}\r\n </monkey-button>\r\n </ng-container>\r\n </div>\r\n</monkey-modal>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyButtonModule, MonkeyModalModule } from 'monkey-style-guide';\r\nimport { AlertsComponent } from './alerts.component';\r\n\r\n@NgModule({\r\n declarations: [AlertsComponent],\r\n imports: [CommonModule, MonkeyButtonModule, MonkeyModalModule, TranslateModule.forChild()],\r\n exports: [AlertsComponent]\r\n})\r\nexport class AlertsModule {}\r\n","/* eslint-disable no-unused-vars */\r\n/* eslint-disable no-shadow */\r\nexport enum MonkeyEcxQueueEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\nexport enum MonkeyEcxDownloadEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\nexport enum MonkeyEcxUploadEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\n// TODO pegar do json de config\r\nexport enum ApiEndPointsTokenNotMandatory {\r\n Assets = 'assets/',\r\n MonkeyEcx = '/monkeyecx',\r\n ViaCep = 'viacep.com.br/'\r\n}\r\n\r\n// TODO pegar do json de config\r\nexport enum ApiEndPointsHeaderNotMandatory {\r\n Assets = '/assets',\r\n PayablesUpload = 'payables-upload',\r\n PictureUser = '/user-pictures',\r\n Documents = 'documents/',\r\n BuyerTaxFile = '/buyer-tax-file',\r\n ViaCep = 'viacep.com.br/'\r\n}\r\n\r\nexport enum CountryMasks {\r\n CPF = '000.000.000-00',\r\n CNPJ = '00.000.000/0000-00',\r\n RUT1 = '0000000-A',\r\n RUT2 = '00000000-A'\r\n}\r\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 { 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 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 }[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 }[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 (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 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 = (country === 'cl') ? 7 : 8;\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","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateTimelapse'\r\n})\r\nexport class MonkeyEcxFormatDateTimelapsePipe implements PipeTransform {\r\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (!useUtc) stillUtc = moment.default(date).toDate();\r\n if (date.toString().indexOf(':') <= -1) {\r\n if (typeof date === 'string') {\r\n stillUtc = date;\r\n showTime = false;\r\n }\r\n }\r\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\r\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\r\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyModalConfig } from 'monkey-style-guide';\r\nimport { MonkeyEcxConfigBootstrap } from '../../core/interfaces';\r\n\r\n@Component({\r\n selector: 'monkeyecx-closed-to-maintenance',\r\n templateUrl: './closed-to-maintenance.component.html',\r\n styleUrls: ['./closed-to-maintenance.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ClosedToMaintenanceComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n _configBootstrap: MonkeyEcxConfigBootstrap | null = null;\r\n\r\n ngOnInit() {\r\n this._configBootstrap = this.config?.data;\r\n }\r\n\r\n onClose() {\r\n document.location.reload();\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\r\n <span class=\"h2\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.TITLE' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-1' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-2' | translate }}\r\n </span>\r\n <span class=\"information mt-3\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-3' | translate }}\r\n {{ _configBootstrap?.maintenance?.endDate | monkeyecxFormatDateTimelapse: true }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-4' | translate }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\r\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.BUTTONS.UPDATE-MAINTENANCE' | translate }}\r\n </monkey-button>\r\n </div>\r\n</monkey-modal>","/* eslint-disable max-len */\r\nimport { Injectable } from '@angular/core';\r\nimport { MonkeyEcxRequestDownload } from '../interfaces/request-download/monkeyecx-request-download';\r\nimport { MonkeyEcxRequestQueue } from '../interfaces/request-queue/monkeyecx-request-queue';\r\nimport { MonkeyEcxRequestUpload } from '../interfaces/request-upload/monkeyecx-request-upload';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class MonkeyEcxHandlingService {\r\n private monkeyecxServiceCredentials: MonkeyEcxServiceCredentials | null = null;\r\n\r\n private monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = null;\r\n\r\n private monkeyecxRequestDownload: MonkeyEcxRequestDownload | null = null;\r\n\r\n private monkeyecxRequestUpload: MonkeyEcxRequestUpload | null = null;\r\n\r\n public clearAll() {\r\n this.monkeyecxServiceCredentials = null;\r\n this.monkeyecxRequestQueue = null;\r\n this.monkeyecxRequestDownload = null;\r\n this.monkeyecxRequestUpload = null;\r\n }\r\n\r\n public setMonkeyEcxServiceCredentials(param: MonkeyEcxServiceCredentials) {\r\n this.monkeyecxServiceCredentials = param;\r\n }\r\n\r\n public getMonkeyEcxServiceCredentials(): MonkeyEcxServiceCredentials | null {\r\n return this.monkeyecxServiceCredentials;\r\n }\r\n\r\n public setMonkeyEcxRequestQueue(queue: MonkeyEcxRequestQueue) {\r\n this.monkeyecxRequestQueue = queue;\r\n }\r\n\r\n public getMonkeyEcxRequestQueue(): MonkeyEcxRequestQueue | null {\r\n return this.monkeyecxRequestQueue;\r\n }\r\n\r\n public setMonkeyEcxRequestDownload(download: MonkeyEcxRequestDownload) {\r\n this.monkeyecxRequestDownload = download;\r\n }\r\n\r\n public getMonkeyEcxRequestDownload(): MonkeyEcxRequestDownload | null {\r\n return this.monkeyecxRequestDownload;\r\n }\r\n\r\n public setMonkeyEcxRequestUpload(upload: MonkeyEcxRequestUpload) {\r\n this.monkeyecxRequestUpload = upload;\r\n }\r\n\r\n public getMonkeyEcxRequestUpload(): MonkeyEcxRequestUpload | null {\r\n return this.monkeyecxRequestUpload;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { MonkeyEcxHandlingService } from './monkeyecx-handling.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxService {\r\n constructor(\r\n protected http: HttpClient,\r\n public monkeyecxHandlingService: MonkeyEcxHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private handlelize(params: any): any {\r\n if (!params) {\r\n return params;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const field of [\r\n 'createdAt',\r\n 'createUserId',\r\n 'updatedAt',\r\n 'lastUserId',\r\n '_links',\r\n 'governmentIdType',\r\n 'governmentIdMask',\r\n 'screenType',\r\n 'screenTab',\r\n ]) {\r\n delete params[field];\r\n }\r\n return params;\r\n }\r\n\r\n public get<T>(url: string, options?: T): Observable<T> {\r\n return this.http.get<T>(url, options);\r\n }\r\n\r\n public post<T>(url: string, params: T, options?: T): Observable<T> {\r\n return this.http.post<T>(url, params, options);\r\n }\r\n\r\n public put<T>(url: string, params: T): Observable<T> {\r\n return this.http.put<T>(\r\n url,\r\n this.handlelize({\r\n ...params,\r\n })\r\n );\r\n }\r\n\r\n public delete<T>(url: string, params?: T): Observable<T> {\r\n return this.http.delete<T>(url, params);\r\n }\r\n\r\n public download<T>(url: string, options?: T, filename?: string) {\r\n this.http.get<T>(url, options).subscribe(\r\n (resp: any) => {\r\n const { headers, body } = resp;\r\n const contentType = headers.get('Content-Type');\r\n const contentDisposition = headers.get('Content-Disposition');\r\n if (contentDisposition) {\r\n filename = contentDisposition\r\n .split(';')[1]\r\n .split('filename')[1]\r\n .split('=')[1]\r\n .trim()\r\n .replace(new RegExp(/\"/g), '');\r\n }\r\n const blob = new Blob([body], {\r\n type: `${contentType}`,\r\n });\r\n return {\r\n filename,\r\n blob,\r\n };\r\n },\r\n (err: HttpErrorResponse) => {\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n public downloadOb<T>(url: string, options?: T, filename?: string): Observable<any> {\r\n return this.http.get<any>(url, options).pipe(\r\n map((resp: any) => {\r\n const { headers, body } = resp;\r\n const contentType = headers.get('Content-Type');\r\n const contentDisposition = headers.get('Content-Disposition');\r\n if (contentDisposition) {\r\n filename = contentDisposition\r\n .split(';')[1]\r\n .split('filename')[1]\r\n .split('=')[1]\r\n .trim()\r\n .replace(new RegExp(/\"/g), '');\r\n }\r\n const blob = new Blob([body], {\r\n type: `${contentType}`,\r\n });\r\n return {\r\n filename,\r\n blob,\r\n };\r\n }),\r\n catchError((err: any) => {\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MonkeyEcxService } from '../services/monkeyecx-service.service';\r\n\r\n@Pipe({\r\n name: 'monkeyecxBlobSecure'\r\n})\r\nexport class MonkeyEcxBlobSecurePipe implements PipeTransform {\r\n constructor(private monkeyecxService: MonkeyEcxService, private sanitizer: DomSanitizer) {\r\n // not to do\r\n }\r\n\r\n transform(url: string): Observable<SafeUrl> {\r\n return this.monkeyecxService.get(url, { responseType: 'blob' }).pipe(\r\n map((val: any) => {\r\n return this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val));\r\n })\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxDisplayFirstName'\r\n})\r\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\r\n transform(name: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\r\n return MonkeyEcxUtils.cutFirstLastName(name);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxDisplayInitials'\r\n})\r\nexport class MonkeyEcxDisplayInitialsPipe implements PipeTransform {\r\n transform(name: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\r\n const first = MonkeyEcxUtils.cutFirstLastName(name, 'first');\r\n const second = MonkeyEcxUtils.cutFirstLastName(name, 'last');\r\n return `${first?.charAt(0)} ${second?.charAt(0)}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxConfigSupportPhone } from '../interfaces';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxDisplaySupportPhone'\r\n})\r\nexport class MonkeyEcxDisplaySupportPhone implements PipeTransform {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n transform(phones: MonkeyEcxConfigSupportPhone[]) {\r\n return phones.map((phone: MonkeyEcxConfigSupportPhone) => {\r\n const isOnline = this.isPhoneOnline(phone);\r\n\r\n return {\r\n ...phone,\r\n isOnline,\r\n color: isOnline ? '#00875A' : '#FA3838'\r\n };\r\n });\r\n }\r\n\r\n isPhoneOnline(phone: any): boolean {\r\n const start = moment.default().startOf('day').add(phone?.startHour, 'hours').format('YYYY-MM-DD HH:mm');\r\n const end = moment.default().startOf('day').add(phone?.endHour, 'hours').format('YYYY-MM-DD HH:mm');\r\n\r\n return moment.default().isSameOrAfter(start) && moment.default().isSameOrBefore(end);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatAddress',\r\n})\r\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\r\n transform({\r\n zipCode,\r\n address,\r\n neighborhood,\r\n city,\r\n state,\r\n }: {\r\n zipCode: string;\r\n address: string;\r\n neighborhood: string;\r\n city: string;\r\n state: string;\r\n country: string;\r\n }): string {\r\n return [address, neighborhood, zipCode, city, state]\r\n .filter((_: string) => {\r\n return _;\r\n })\r\n .join(', ');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatBeautifyJSON'\r\n})\r\nexport class MonkeyEcxFormatBeaufityJSONPipe implements PipeTransform {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n transform(value: any) {\r\n const jsonLine = /^( *)(\"[\\w]+\": )?(\"[^\"]*\"|[\\w.+-]*)?([,[{])?$/gm;\r\n\r\n const replacer = (match, pIndent, pKey, pVal, pEnd) => {\r\n const key = '<span class=\"json-key\" style=\"color: brown\">';\r\n const val = '<span class=\"json-value\" style=\"color: navy\">';\r\n const str = '<span class=\"json-string\" style=\"color: olive\">';\r\n let r = pIndent || '';\r\n if (pKey) {\r\n r = `${r + key + pKey.replace(/[\": ]/g, '')}</span>: `;\r\n }\r\n if (pVal) {\r\n r = `${r + (pVal[0] === '\"' ? str : val) + pVal}</span>`;\r\n }\r\n return r + (pEnd || '');\r\n };\r\n\r\n return JSON.stringify(value, null, 3)\r\n .replace(/&/g, '&amp;')\r\n .replace(/\\\\\"/g, '&quot;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(jsonLine, replacer);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxCookieStorageService {\r\n constructor(private cookieService: CookieService) {\r\n // not to do\r\n }\r\n\r\n public setCookie(name: string, value: any, environment: any) {\r\n this.removeCookie(name, environment);\r\n const { urlDomain } = environment;\r\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\r\n this.cookieService.set(name, value, undefined, '/', handledDomain, true, 'None');\r\n }\r\n\r\n public getCookie(name: string) {\r\n return this.cookieService.get(name);\r\n }\r\n\r\n public removeCookie(name: string, environment: any) {\r\n const { urlDomain } = environment;\r\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\r\n this.cookieService.delete(name, '/', handledDomain, true, 'None');\r\n }\r\n}\r\n","import { Pipe, PipeTransform, Injector } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { MonkeyEcxCookieStorageService } from '../services/storage/monkeyecx-cookie-storage.service';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatCurrency'\r\n})\r\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\r\n constructor(private injector: Injector, private currencyPipe: CurrencyPipe) {\r\n // not to do\r\n }\r\n\r\n transform(value: any, symbol = 'symbol') {\r\n const cookieStorageService = this.injector.get(MonkeyEcxCookieStorageService);\r\n const cookie = cookieStorageService.getCookie('monkey-app-locale');\r\n const i18n = JSON.parse(atob(cookie));\r\n const { currency } = i18n;\r\n return this.currencyPipe.transform(value, currency, symbol);\r\n }\r\n}\r\n","import { Injector, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateGroup',\r\n})\r\nexport class MonkeyEcxFormatDateGroupPipe implements PipeTransform {\r\n private lang = 'pt-BR';\r\n\r\n constructor(private injector: Injector) {\r\n const translateService = this.injector.get(TranslateService);\r\n this.lang = translateService.getDefaultLang();\r\n }\r\n\r\n private format(date: string | Date) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (date.toString()?.indexOf(':') <= -1) {\r\n stillUtc = date;\r\n }\r\n const formatFrom = 'YYYY/MM/DD';\r\n const fmt = moment.default(stillUtc, formatFrom).locale(this.lang);\r\n const dayFormated = fmt.format('DD/');\r\n const monthFormated = MonkeyEcxUtils.capitalize(fmt.format('MMMM'));\r\n const yearFormated = fmt.format('YYYY');\r\n return `${`${dayFormated}${monthFormated}`.substring(0, 6)}, ${yearFormated}`;\r\n }\r\n\r\n transform(obj: any): string {\r\n if (!obj || !obj?.start || !obj?.end) return '';\r\n const { start, end } = obj;\r\n const formatedStart = this.format(start);\r\n const formatedEnd = this.format(end);\r\n return `${formatedStart} - ${formatedEnd}`;\r\n }\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nimport { AbstractControl } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from './utils';\r\n\r\nconst moment: any = moment_;\r\n\r\nexport class DateValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n const dateFormat = 'MM-DD-YYYY';\r\n if (\r\n !moment\r\n .default(\r\n moment.default(control.value).format(dateFormat),\r\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\r\n true\r\n )\r\n .isValid()\r\n ) {\r\n return {\r\n invalidDate: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class DocumentValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\r\n return {\r\n invalidCpfCnpj: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class DocumentRutValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\r\n return {\r\n invalidRut: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class ZipCodeValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\r\n return {\r\n invalidZipCode: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class ComboValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value !== '0') return null;\r\n return {\r\n invalidCombo: true\r\n };\r\n }\r\n}\r\n\r\nexport class isTrueValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value !== false) return null;\r\n return {\r\n invalidTrue: true\r\n };\r\n }\r\n}\r\n\r\nexport class PasswordMatchValidation {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n const password = parent?.get('password')?.value;\r\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\r\n if (!password || !passwordConfirm) return null;\r\n if (password === passwordConfirm) return null;\r\n return {\r\n passwordsNotMatching: true\r\n };\r\n }\r\n}\r\n\r\nexport class UrlValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\r\n return {\r\n invalidUrl: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class CustomDatesStartValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n\r\n const valueStart = parent?.get('dateStart')?.value;\r\n const valueEnd = parent?.get('dateEnd')?.value;\r\n let dateStart: Date | null = null;\r\n let dateEnd: Date | null = null;\r\n if (valueStart) {\r\n dateStart = new Date(valueStart);\r\n }\r\n if (valueEnd) {\r\n dateEnd = new Date(valueEnd);\r\n }\r\n\r\n if (!dateStart || !dateEnd) return null;\r\n if (dateStart > dateEnd) {\r\n return {\r\n dateStartMustBeLessThanAnd: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class CustomDatesEndValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n\r\n const valueStart = parent?.get('dateStart')?.value;\r\n const valueEnd = parent?.get('dateEnd')?.value;\r\n let dateStart: Date | null = null;\r\n let dateEnd: Date | null = null;\r\n if (valueStart) {\r\n dateStart = new Date(valueStart);\r\n }\r\n if (valueEnd) {\r\n dateEnd = new Date(valueEnd);\r\n }\r\n\r\n if (!dateEnd || !dateStart) return null;\r\n if (dateEnd < dateStart) {\r\n return {\r\n dateEndMustBeGreaterThanStart: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class UnlockRegisterBuyerValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n\r\n if (control && control.value !== '#MONKEYBUYER') {\r\n return {\r\n invalidUnlockRegister: true\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class UnlockRegisterSponsorValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n\r\n if (control && control.value !== '#MONKEYSPONSOR') {\r\n return {\r\n invalidUnlockRegister: true\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class DateRangeValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) {\r\n return null;\r\n }\r\n\r\n const dates = control?.parent?.get('dates')?.value;\r\n\r\n if (\r\n dates &&\r\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||\r\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))\r\n ) {\r\n return {\r\n invalidDateRange: true\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import {\r\n MonkeyEcxRequestDownload,\r\n MonkeyEcxRequestItemQueue,\r\n MonkeyEcxRequestQueue,\r\n MonkeyEcxRequestUpload\r\n} from '../interfaces';\r\nimport * as Statics from './statics';\r\nimport { MonkeyEcxUtils } from './utils';\r\n\r\nexport function buildQueuePropertys(queue: MonkeyEcxRequestItemQueue): MonkeyEcxRequestQueue {\r\n const params: MonkeyEcxRequestQueue = {\r\n item: {\r\n ...queue,\r\n id: MonkeyEcxUtils.getRandomString(40)\r\n },\r\n status: Statics.MonkeyEcxQueueEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function buildDownloadPropertys(\r\n name: string,\r\n description?: string,\r\n size?: number\r\n): MonkeyEcxRequestDownload {\r\n const params: MonkeyEcxRequestDownload = {\r\n item: {\r\n name,\r\n description,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\r\n size,\r\n createdAt: new Date()\r\n },\r\n status: Statics.MonkeyEcxQueueEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function buildUploadPropertys(name: string, description?: string): MonkeyEcxRequestUpload {\r\n const params: MonkeyEcxRequestUpload = {\r\n item: {\r\n name,\r\n description,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`\r\n },\r\n status: Statics.MonkeyEcxUploadEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function hasMonkeyEcxServiceAndHandlingProperties(context: any): boolean {\r\n return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');\r\n}\r\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 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 }\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 }\n\n if (!valid) {\n return {\n [`invalid${MonkeyEcxUtils.capitalize(type.toLowerCase())}`]: true\n };\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 date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\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","/* eslint-disable object-curly-newline */\r\nimport { MonkeyEcxUtils } from './utils';\r\nimport * as ValidateUtils from './validate-utils';\r\nimport * as DecoratorsUtils from './decorators-utils';\r\nimport * as Statics from './statics';\r\n\r\nexport { MonkeyEcxUtils, ValidateUtils, DecoratorsUtils, Statics };\r\nexport * from './validators';\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateUnixTimelapse'\r\n})\r\nexport class MonkeyEcxFormatDateUnixTimelapsePipe implements PipeTransform {\r\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (!useUtc) stillUtc = moment.default(date).toDate();\r\n if (\r\n moment.default\r\n .utc(date)\r\n .toDate()\r\n .toLocaleString()\r\n .indexOf(':') <= -1\r\n ) {\r\n if (typeof date === 'string') {\r\n stillUtc = date;\r\n showTime = false;\r\n }\r\n }\r\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\r\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\r\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDocument',\r\n})\r\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\r\n transform(document: string, withType = false, country?: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) {\r\n return '';\r\n }\r\n\r\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType, country);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatNumber } from '@angular/common';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatNumber'\r\n})\r\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\r\n transform(number: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\r\n\r\n return formatNumber(Number(number), 'ptbr');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatPhone'\r\n})\r\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\r\n transform(phone: string): string {\r\n if (phone) {\r\n const value = `${phone || ''}`.replace(/\\D/g, '');\r\n\r\n let formated = '';\r\n\r\n if (value.length > 12) {\r\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\r\n } else if (value.length > 11) {\r\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\r\n } else if (value.length > 10) {\r\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (value.length > 9) {\r\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\r\n } else if (value.length > 5) {\r\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\r\n } else if (value.length > 1) {\r\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\r\n } else if (phone !== '') {\r\n formated = value.replace(/^(\\d*)/, '($1');\r\n }\r\n return formated;\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatSize'\r\n})\r\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\r\n transform(size: string): string {\r\n if (!size) return '0 B';\r\n const sizeNum = Number(size);\r\n return MonkeyEcxUtils.formatFileSize(sizeNum);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatTax',\r\n})\r\nexport class MonkeyEcxFormatTaxPipe implements PipeTransform {\r\n transform(tax: number, decimalDigits: number = 7) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tax)) return '0 %';\r\n const stringTax = tax.toString();\r\n const stringTaxLimited = stringTax.slice(0, stringTax.indexOf('.') + decimalDigits + 1);\r\n return `${Number(stringTaxLimited).toLocaleString('pt-br', {\r\n maximumFractionDigits: decimalDigits,\r\n })} %`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDocumentType'\r\n})\r\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\r\n transform(document: string, country?: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\r\n return MonkeyEcxUtils.getDocumentType(document, country);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatValue'\r\n})\r\nexport class MonkeyEcxFormatValue implements PipeTransform {\r\n transform(number: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\r\n return number;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatZipCode'\r\n})\r\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\r\n transform(zipCode: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\r\n return MonkeyEcxUtils.formatZipCode(zipCode);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxTextTruncate'\r\n})\r\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\r\n transform(text: string, maxLength: number = 25): string {\r\n const midChar = '...';\r\n if (!text) return midChar;\r\n if (text && text.length <= maxLength) return text;\r\n\r\n const left = Math.ceil(maxLength / 2);\r\n const right = text.length - left + 1;\r\n\r\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxTruncateQtd'\r\n})\r\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\r\n transform(number: number, threshold: number): string {\r\n return `${number > threshold ? `${threshold}+` : number}`;\r\n }\r\n}\r\n","import { CurrencyPipe } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MonkeyEcxBlobSecurePipe } from './monkeyecx-blob-secure';\r\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\r\nimport { MonkeyEcxDisplayInitialsPipe } from './monkeyecx-display-initials';\r\nimport { MonkeyEcxDisplaySupportPhone } from './monkeyecx-display-support-phone';\r\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\r\nimport { MonkeyEcxFormatBeaufityJSONPipe } from './monkeyecx-format-beautify-json';\r\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\r\nimport { MonkeyEcxFormatDateGroupPipe } from './monkeyecx-format-date-group';\r\nimport { MonkeyEcxFormatDateTimelapsePipe } from './monkeyecx-format-date-timelapse';\r\nimport { MonkeyEcxFormatDateUnixTimelapsePipe } from './monkeyecx-format-date-unix-timelapse';\r\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\r\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\r\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\r\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\r\nimport { MonkeyEcxFormatTaxPipe } from './monkeyecx-format-tax';\r\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\r\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\r\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\r\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\r\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyEcxBlobSecurePipe,\r\n MonkeyEcxDisplayFirstNamePipe,\r\n MonkeyEcxDisplayInitialsPipe,\r\n MonkeyEcxDisplaySupportPhone,\r\n MonkeyEcxFormatAddressPipe,\r\n MonkeyEcxFormatBeaufityJSONPipe,\r\n MonkeyEcxFormatCurrencyPipe,\r\n MonkeyEcxFormatDateGroupPipe,\r\n MonkeyEcxFormatDateTimelapsePipe,\r\n MonkeyEcxFormatDateUnixTimelapsePipe,\r\n MonkeyEcxFormatDocumentPipe,\r\n MonkeyEcxFormatDocumentTypePipe,\r\n MonkeyEcxFormatNumberPipe,\r\n MonkeyEcxFormatPhonePipe,\r\n MonkeyEcxFormatSizePipe,\r\n MonkeyEcxFormatTaxPipe,\r\n MonkeyEcxFormatValue,\r\n MonkeyEcxFormatZipCodePipe,\r\n MonkeyEcxTextTruncatePipe,\r\n MonkeyEcxTruncateQtdPipe\r\n ],\r\n exports: [\r\n MonkeyEcxBlobSecurePipe,\r\n MonkeyEcxDisplayFirstNamePipe,\r\n MonkeyEcxDisplayInitialsPipe,\r\n MonkeyEcxDisplaySupportPhone,\r\n MonkeyEcxFormatAddressPipe,\r\n MonkeyEcxFormatBeaufityJSONPipe,\r\n MonkeyEcxFormatCurrencyPipe,\r\n MonkeyEcxFormatDateGroupPipe,\r\n MonkeyEcxFormatDateTimelapsePipe,\r\n MonkeyEcxFormatDateUnixTimelapsePipe,\r\n MonkeyEcxFormatDocumentPipe,\r\n MonkeyEcxFormatDocumentTypePipe,\r\n MonkeyEcxFormatNumberPipe,\r\n MonkeyEcxFormatPhonePipe,\r\n MonkeyEcxFormatSizePipe,\r\n MonkeyEcxFormatTaxPipe,\r\n MonkeyEcxFormatValue,\r\n MonkeyEcxFormatZipCodePipe,\r\n MonkeyEcxTextTruncatePipe,\r\n MonkeyEcxTruncateQtdPipe\r\n ],\r\n providers: [CurrencyPipe]\r\n})\r\nexport class MonkeyEcxPipesModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule\r\n} from 'monkey-style-guide';\r\nimport { MonkeyEcxPipesModule } from '../../core/pipes/monkeyecx-pipes.module';\r\nimport { ClosedToMaintenanceComponent } from './closed-to-maintenance.component';\r\n\r\n@NgModule({\r\n declarations: [ClosedToMaintenanceComponent],\r\n imports: [\r\n CommonModule,\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule,\r\n MonkeyEcxPipesModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [ClosedToMaintenanceComponent]\r\n})\r\nexport class ClosedToMaintenanceModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router\r\n} from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxProgressBarService {\r\n private visible: BehaviorSubject<any> | null = null;\r\n\r\n constructor(private router: Router) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.visible = new BehaviorSubject(false);\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.show();\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return (\r\n event instanceof NavigationEnd ||\r\n event instanceof NavigationError ||\r\n event instanceof NavigationCancel\r\n );\r\n })\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n show() {\r\n this.visible?.next(true);\r\n }\r\n\r\n hide() {\r\n this.visible?.next(false);\r\n }\r\n\r\n visibleConfig(): Observable<any> | null {\r\n return this.visible?.asObservable() || null;\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyEcxProgressBarService } from './progress-bar.service';\r\n\r\n@Component({\r\n selector: 'monkeyecx-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MonkeyEcxProgressBarComponent implements OnInit {\r\n visible: boolean = false;\r\n\r\n constructor(private progressBarService: MonkeyEcxProgressBarService) {\r\n //not to do\r\n }\r\n\r\n ngOnInit() {\r\n this.progressBarService?.visibleConfig()?.subscribe((visible: boolean) => {\r\n this.visible = visible;\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MonkeyEcxProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [MonkeyEcxProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [MonkeyEcxProgressBarComponent]\r\n})\r\nexport class MonkeyEcxProgressBarModule {}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyModalConfig } from 'monkey-style-guide';\r\n\r\n@Component({\r\n selector: 'monkeyecx-version-changed',\r\n templateUrl: './version-changed.component.html',\r\n styleUrls: ['./version-changed.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VersionChangedComponent {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n onClose() {\r\n document.location.reload();\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\r\n <span class=\"h2\">\r\n {{ 'SCREENS.VERSION-CHANGED.TITLE' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-1' | translate }}\r\n </span>\r\n <span class=\"information mt-3\">\r\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-2' | translate }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\r\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'SCREENS.VERSION-CHANGED.BUTTONS.UPDATE-VERSION' | translate }}\r\n </monkey-button>\r\n </div>\r\n</monkey-modal>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule\r\n} from 'monkey-style-guide';\r\nimport { VersionChangedComponent } from './version-changed.component';\r\n\r\n@NgModule({\r\n declarations: [VersionChangedComponent],\r\n imports: [\r\n CommonModule,\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [VersionChangedComponent]\r\n})\r\nexport class VersionChangedModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\n\r\n@Component({\r\n selector: 'monkeyecx-currency-config',\r\n templateUrl: './currency-config.component.html',\r\n styleUrls: ['./currency-config.component.scss']\r\n})\r\nexport class CurrencyConfigComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n _currency = 'BRL';\r\n\r\n _currencies = ['BRL'];\r\n\r\n private callback: Function = () => {};\r\n\r\n constructor(\r\n private modalService: MonkeyStyleGuideModalService\r\n ) {\r\n // not to do\r\n }\r\n\r\n ngOnInit() {\r\n const { config } = this;\r\n this._currency = config?.data?.currency;\r\n this._currencies = config?.data?.currencies;\r\n this.callback = config?.data?.callback;\r\n }\r\n\r\n onClose() {\r\n this.modalService.close(this.modalRef);\r\n this.callback?.(this._currency);\r\n }\r\n\r\n onHandleChangeCurrency(currency: string) {\r\n this._currency = currency;\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"alert-body\">\r\n <span class=\"title\">\r\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.TITLE' | translate }}\r\n </span>\r\n <span class=\"message\">\r\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.SUB-TITLE' | translate }}\r\n </span>\r\n <monkey-radiobutton [value]=\"_currency\"\r\n (onChange)=\"onHandleChangeCurrency($event)\">\r\n <monkey-option \r\n [label]=\"'CURRENCIES.'+currency | translate\"\r\n [value]=\"currency\"\r\n *ngFor=\"let currency of _currencies\">\r\n </monkey-option>\r\n </monkey-radiobutton>\r\n <span class=\"info\">\r\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.INFO' | translate }}\r\n </span>\r\n </div>\r\n <div class=\"alert-footer\">\r\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'BUTTONS.CONFIRM' | translate }}\r\n </monkey-button>\r\n </div>\r\n</monkey-modal>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyButtonModule, MonkeyModalModule, MonkeyOptionModule, MonkeyRadioButtonModule } from 'monkey-style-guide';\r\nimport { CurrencyConfigComponent } from './currency-config.component';\r\n\r\n@NgModule({\r\n declarations: [CurrencyConfigComponent],\r\n imports: [\r\n CommonModule,\r\n MonkeyButtonModule,\r\n MonkeyRadioButtonModule,\r\n MonkeyOptionModule,\r\n MonkeyModalModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [CurrencyConfigComponent]\r\n})\r\nexport class CurrencyConfigModule {}\r\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\nexport function MonkeyEcxCoreCharts(render = true) {\r\n return (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor => {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function(...args: any[]) {\r\n const context = this;\r\n if (render) {\r\n const scriptsLoaded = Array.from(document.scripts);\r\n scriptsLoaded.forEach((script: any) => {\r\n const { src } = script;\r\n if (src.search('www.gstatic.com/charts') > 0) {\r\n document.getElementsByTagName('head')[0].removeChild(script);\r\n }\r\n });\r\n\r\n const node = document.createElement('script');\r\n node.src = 'https://www.gstatic.com/charts/loader.js';\r\n node.type = 'text/javascript';\r\n node.async = true;\r\n node.id = 'monkeyecx-charts-settings';\r\n node.onload = () => {\r\n method.apply(context, args);\r\n };\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n } else {\r\n const scriptsLoaded = Array.from(document.scripts);\r\n scriptsLoaded.forEach((script: any) => {\r\n const { src } = script;\r\n if (src.search('www.gstatic.com/charts') > 0) {\r\n document.getElementsByTagName('head')[0].removeChild(script);\r\n }\r\n });\r\n\r\n method.apply(context, args);\r\n }\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable no-console */\r\n/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nexport function MonkeyEcxCoreServiceConstructor() {\r\n return (target: any) => {\r\n Object.entries(target.prototype).forEach(([key, value]) => {\r\n const method = target.prototype[key];\r\n if (key !== 'constructor') {\r\n target.prototype[key] = function (...args: any[]) {\r\n const context = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context.monkeyecxService.monkeyecxHandlingService.clearAll();\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n }\r\n });\r\n return target;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreLog(tp: string) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const params = args\r\n .map((a: any) => {\r\n return JSON.stringify(a);\r\n })\r\n .join();\r\n const result = method.apply(this, args);\r\n const r = JSON.stringify(result);\r\n console.log(`Call: ${propertyName}(${params}) => ${r}`);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreClearDecorators() {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(params);\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreServicePaged(params: MonkeyEcxServiceCredentials) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n const credentials =\r\n context?.monkeyecxService?.monkeyecxHandlingService?.getMonkeyEcxServiceCredentials();\r\n let requestPaged = null;\r\n if (credentials) {\r\n requestPaged = credentials.requestPaged;\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials({\r\n ...params,\r\n ...(requestPaged || {}),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreServiceQueue(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService.monkeyecxHandlingService.setMonkeyEcxRequestQueue(\r\n DecoratorsUtils.buildQueuePropertys({\r\n name,\r\n description,\r\n })\r\n );\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\n\r\nexport function MonkeyEcxServiceDownload(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestDownload({\r\n ...DecoratorsUtils.buildDownloadPropertys(name, description),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\n\r\nexport function MonkeyEcxServiceUpload(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestUpload({\r\n ...DecoratorsUtils.buildUploadPropertys(name, description),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","import { Directive, HostListener, Output, HostBinding, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[monkeyecxDragDrop]',\r\n})\r\nexport class MonkeyEcxDragDropDirective {\r\n @Output() onFileDropped: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @HostBinding('style.background-color') private background = '#f5fcff';\r\n\r\n @HostBinding('style.opacity') private opacity = '1';\r\n\r\n @HostListener('dragover', ['$event'])\r\n onDragOver(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#9ecbec';\r\n this.opacity = '0.8';\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#f5fcff';\r\n this.opacity = '1';\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public ondrop(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#f5fcff';\r\n this.opacity = '1';\r\n const { files } = evt?.dataTransfer;\r\n if (files.length > 0) {\r\n this.onFileDropped.emit(files);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit, Injector } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFormatCurrency]',\r\n providers: [CurrencyPipe]\r\n})\r\nexport class MonkeyEcxFormatCurrency implements OnInit {\r\n private el: HTMLInputElement;\r\n\r\n private currency: any;\r\n\r\n private currencyCode: string = 'BRL';\r\n\r\n private currentLocale: string = 'pt-BR';\r\n\r\n constructor(private elementRef: ElementRef, private injector: Injector) {\r\n this.el = this.elementRef.nativeElement;\r\n this.currency = this.injector.get(CurrencyPipe);\r\n\r\n const translateService = this.injector.get(TranslateService);\r\n translateService.get('MONKEY-CURRENCY-CODE').subscribe((_: any) => {\r\n this.currencyCode = _;\r\n this.currentLocale = translateService.getDefaultLang();\r\n });\r\n }\r\n\r\n private handle(value: any): string {\r\n const { currencyCode, currentLocale } = this;\r\n const newValue = MonkeyEcxUtils.handleOnlyNumbers(value);\r\n return this.currency.transform(newValue / 100, currencyCode, 'symbol', '', currentLocale);\r\n }\r\n\r\n ngOnInit() {\r\n this.el.value = this.handle(this.el.value);\r\n }\r\n\r\n @HostListener('input', ['$event.target.value'])\r\n onInput(value: any) {\r\n this.el.value = this.handle(value);\r\n }\r\n}\r\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2, Self } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFormatUpper]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => {\r\n // eslint-disable-next-line no-use-before-define\r\n return MonkeyEcxFormatUpper;\r\n }),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyEcxFormatUpper implements ControlValueAccessor {\r\n _onChange?: (_: any) => void;\r\n\r\n _touched?: () => void;\r\n\r\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) {\r\n // not to do\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyDown(evt: KeyboardEvent) {\r\n const value = this._el.nativeElement.value.toUpperCase();\r\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n this._onChange?.(value);\r\n evt.preventDefault();\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur() {\r\n this._touched?.();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._touched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxOnlyAlphaNumeric]'\r\n})\r\nexport class MonkeyEcxOnlyAlphaNumericDirective {\r\n constructor(private elementRef: ElementRef) {\r\n // not to do\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: Event) {\r\n const initalValue = this.elementRef.nativeElement.value;\r\n\r\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyAlphaNumeric(initalValue);\r\n if (initalValue !== this.elementRef.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxOnlyNumbers]'\r\n})\r\nexport class MonkeyEcxOnlyNumbersDirective {\r\n constructor(private elementRef: ElementRef) {\r\n // not to do\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: Event) {\r\n const initalValue = this.elementRef.nativeElement.value;\r\n\r\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyNumbers(initalValue);\r\n if (initalValue !== this.elementRef.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Directive, forwardRef, InjectionToken, Input } from '@angular/core';\r\n\r\nexport const POPOVER_OPTIONS = new InjectionToken('POPOVER_OPTIONS');\r\n\r\nexport type PopoverDir =\r\n | 'rtl'\r\n | 'ltr'\r\n | 'trtl'\r\n | 'tltr'\r\n | 'ct'\r\n | 'cc'\r\n | 'cr'\r\n | 'rt'\r\n | 'rb'\r\n | 'lt'\r\n | 'lb';\r\n\r\nexport interface MonkeyEcxPopoverOptions {\r\n dir?: PopoverDir;\r\n minwidth?: boolean;\r\n backdrop?: boolean;\r\n contextmenu?: boolean;\r\n}\r\n\r\n@Directive({\r\n selector: '[monkeyecxPopoverOptions]',\r\n providers: [\r\n {\r\n provide: POPOVER_OPTIONS,\r\n useExisting: forwardRef(() => {\r\n // eslint-disable-next-line no-use-before-define\r\n return MonkeyEcxPopoverOptionsDirective;\r\n })\r\n }\r\n ]\r\n})\r\nexport class MonkeyEcxPopoverOptionsDirective implements MonkeyEcxPopoverOptions {\r\n @Input('monkeyecxPopoverOptions')\r\n set options(options: MonkeyEcxPopoverOptions) {\r\n Object.entries(options).forEach(([k, v]) => {\r\n this[k] = v;\r\n });\r\n }\r\n\r\n minwidth?: boolean;\r\n\r\n dir?: PopoverDir;\r\n\r\n backdrop?: boolean;\r\n\r\n contextmenu?: boolean;\r\n}\r\n","import {\r\n ConnectedPosition,\r\n FlexibleConnectedPositionStrategy, FlexibleConnectedPositionStrategyOrigin,\r\n Overlay,\r\n OverlayPositionBuilder,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n Optional,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { POPOVER_OPTIONS } from './monkeyecx-popover-options.directive';\r\nimport type { PopoverDir, MonkeyEcxPopoverOptions } from './monkeyecx-popover-options.directive';\r\n\r\n@Directive({\r\n selector: '[monkeyecxPopover]'\r\n})\r\nexport class MonkeyEcxPopoverDirective implements OnDestroy {\r\n private _popover!: boolean;\r\n\r\n get popover() {\r\n return this._popover;\r\n }\r\n\r\n @Input('monkeyecxPopover')\r\n set popover(show: boolean) {\r\n this._popover = show;\r\n if (show) {\r\n this.createPopover();\r\n } else if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n }\r\n }\r\n\r\n @Input('monkeyecxPopoverClosed') closed!: (e?: MouseEvent) => void;\r\n\r\n private _target!: HTMLElement;\r\n\r\n get target() {\r\n return this._target;\r\n }\r\n\r\n @Input('monkeyecxPopoverTarget')\r\n set target(target: HTMLElement) {\r\n this._target = target;\r\n }\r\n\r\n @Input('monkeyecxPopoverMinwidth') minwidth = false;\r\n\r\n @Input('monkeyecxPopoverBackdrop') backdrop = true;\r\n\r\n @Input('monkeyecxPopoverWatch') watch = false;\r\n\r\n @Input('monkeyecxPopoverDir') dir: PopoverDir = 'ltr';\r\n\r\n @Input('monkeyecxPopoverContextmenu') contextmenu = false;\r\n\r\n @Input('monkeyecxPopoverHeight') height!: number | string;\r\n\r\n private overlayRef!: OverlayRef;\r\n\r\n private positionStrategy!: FlexibleConnectedPositionStrategy;\r\n\r\n private templatePortal!: TemplatePortal;\r\n\r\n private subs = new Subscription();\r\n\r\n private eventsSubs = new Subscription();\r\n\r\n private resizeObserver: any;\r\n\r\n constructor(\r\n private tpl: TemplateRef<any>,\r\n private vcr: ViewContainerRef,\r\n private el: ElementRef,\r\n private zone: NgZone,\r\n private _viewContainerRef: ViewContainerRef,\r\n private _cd: ChangeDetectorRef,\r\n private overlay: Overlay,\r\n private overlayPositionBuilder: OverlayPositionBuilder,\r\n private router: Router,\r\n @Inject(POPOVER_OPTIONS) @Optional() private options: MonkeyEcxPopoverOptions\r\n ) {\r\n this.eventsSubs = this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.onHandleClose();\r\n });\r\n }\r\n\r\n private onHandleClose(e?: MouseEvent) {\r\n this.popover = false;\r\n this.subs.unsubscribe();\r\n this.resizeObserver?.disconnect();\r\n this.zone.run(() => {\r\n if (this.closed) {\r\n this.closed(e);\r\n }\r\n });\r\n }\r\n\r\n getDirPositions(dir?: PopoverDir): ConnectedPosition[] {\r\n const revert = {\r\n start: 'end', end: 'start', bottom: 'top', top: 'bottom', center: 'center'\r\n };\r\n const centerY = (pos: any): ConnectedPosition => {\r\n return {\r\n originX: 'center', originY: pos, overlayX: 'center', overlayY: revert[pos]\r\n };\r\n };\r\n const centerX = (pos: any): ConnectedPosition => {\r\n return {\r\n originX: revert[pos], originY: 'center', overlayX: pos, overlayY: 'center'\r\n };\r\n };\r\n const ltr = (axis: any): ConnectedPosition => {\r\n return {\r\n originX: 'start', originY: axis, overlayX: 'start', overlayY: revert[axis]\r\n };\r\n };\r\n const rtl = (axis: any): ConnectedPosition => {\r\n return {\r\n originX: 'end', originY: axis, overlayX: 'end', overlayY: revert[axis]\r\n };\r\n };\r\n const side = (axis: any, axis2: any): ConnectedPosition => {\r\n return {\r\n originX: axis, originY: axis2, overlayX: revert[axis], overlayY: axis2\r\n };\r\n };\r\n\r\n const cmp = dir || this.options?.dir || this.dir;\r\n if (cmp === 'ct') {\r\n return [centerY('top'), centerY('bottom'), centerX('start'), centerX('end')];\r\n }\r\n if (cmp === 'cr') {\r\n return [centerX('end'), centerX('start'), centerY('top'), centerY('bottom')];\r\n }\r\n if (cmp === 'cc') {\r\n return [centerX('center')];\r\n }\r\n if (cmp === 'ltr') {\r\n return [ltr('bottom'), ltr('top')];\r\n }\r\n if (cmp === 'rtl') {\r\n return [rtl('bottom'), rtl('top')];\r\n }\r\n if (cmp === 'tltr') {\r\n return [ltr('top'), ltr('bottom')];\r\n }\r\n if (cmp === 'trtl') {\r\n return [rtl('top'), rtl('bottom')];\r\n }\r\n if (cmp === 'rt') {\r\n return [side('end', 'top'), side('end', 'bottom'), ltr('top')];\r\n }\r\n if (cmp === 'rb') {\r\n return [side('end', 'bottom'), side('end', 'top'), ltr('bottom'), rtl('bottom')];\r\n }\r\n if (cmp === 'lt') {\r\n return [side('start', 'top'), side('start', 'bottom'), rtl('top')];\r\n }\r\n if (cmp === 'lb') {\r\n return [side('start', 'bottom'), side('start', 'top'), rtl('bottom')];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n createPopover(\r\n origin?: FlexibleConnectedPositionStrategyOrigin,\r\n options?: MonkeyEcxPopoverOptions\r\n ) {\r\n this.templatePortal = new TemplatePortal(this.tpl, this._viewContainerRef);\r\n this.positionStrategy = this.overlayPositionBuilder\r\n .flexibleConnectedTo(origin || this.target)\r\n .withPush(true)\r\n .withGrowAfterOpen(true)\r\n .withPositions(this.getDirPositions(options?.dir));\r\n\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy: this.positionStrategy,\r\n disposeOnNavigation: true,\r\n direction: 'ltr',\r\n hasBackdrop: this.backdrop,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition({\r\n }),\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n width: (this.options?.minwidth || this.minwidth) ? (this.target.offsetWidth - 2) : undefined,\r\n maxHeight: '95%',\r\n height: this.height\r\n });\r\n\r\n this.subs = this.overlayRef.backdropClick().subscribe((e) => {\r\n this.onHandleClose(e);\r\n });\r\n\r\n const attached = this.overlayRef.attach(this.templatePortal);\r\n\r\n if (this.watch) {\r\n try {\r\n if ('ResizeObserver' in window) {\r\n this.resizeObserver = new ResizeObserver(([{ contentRect }]) => {\r\n this.overlayRef.updatePosition();\r\n })\r\n .observe(attached.rootNodes[0]);\r\n }\r\n } catch (e) {\r\n // not to do\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.popover = false;\r\n this.subs.unsubscribe();\r\n this.eventsSubs.unsubscribe();\r\n }\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { MonkeyEcxStorage } from '../../core/interfaces';\r\n\r\nconst clear = createAction('[MECX Core Storage] Clear All');\r\nconst create = createAction('[MECX Core Storage] Create', props<{ data: MonkeyEcxStorage[] }>());\r\nconst deleteOne = createAction(\r\n '[MECX Core Storage] Delete One',\r\n props<{ data: MonkeyEcxStorage }>()\r\n);\r\nconst updateControl = createAction('[MECX Core Storage] Update Control', props<{ data: any }>());\r\nconst updateOne = createAction(\r\n '[MECX Core Storage] Update One',\r\n props<{ data: MonkeyEcxStorage }>()\r\n);\r\n\r\nexport { clear, create, deleteOne, updateControl, updateOne };\r\n","import { ActionReducer, INIT } from '@ngrx/store';\r\n\r\nexport const seederReducer = (keys: string[]) => {\r\n return (reducer: ActionReducer<any>): ActionReducer<any> => {\r\n return (state, action) => {\r\n const handledState = reducer(state, action);\r\n if (action.type === INIT) {\r\n let data: any = null;\r\n try {\r\n const storage = localStorage.getItem('mecx-store');\r\n const handled = atob(storage || '');\r\n if (handled !== '{}') {\r\n const storageValue = JSON.parse(atob(storage || ''));\r\n keys.forEach((key: string) => {\r\n let value: any = null;\r\n if (storageValue?.[key]) {\r\n value = {\r\n [key]: storageValue?.[key]\r\n };\r\n }\r\n\r\n data = {\r\n ...data,\r\n ...value\r\n };\r\n });\r\n }\r\n\r\n return data;\r\n } catch (e) {\r\n localStorage.removeItem('mecx-store');\r\n return handledState;\r\n }\r\n }\r\n\r\n let data: any = null;\r\n try {\r\n keys.forEach((key: string) => {\r\n data = {\r\n ...data,\r\n [key]: handledState[key]\r\n };\r\n });\r\n const handled = JSON.stringify(data);\r\n if (handled !== '{}') {\r\n localStorage.setItem('mecx-store', btoa(JSON.stringify(data)));\r\n }\r\n } catch (e) {\r\n localStorage.removeItem('mecx-store');\r\n }\r\n\r\n return handledState;\r\n };\r\n };\r\n};\r\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\r\nimport { createReducer, on } from '@ngrx/store';\r\nimport { MonkeyEcxStorage } from '../../core';\r\nimport * as actions from '../actions';\r\n\r\nexport const featureKey = 'mecx-core-storage';\r\n\r\nexport interface State extends EntityState<MonkeyEcxStorage> {\r\n control: {\r\n isLoading: boolean;\r\n };\r\n error: any;\r\n}\r\n\r\nexport const adapter: EntityAdapter<MonkeyEcxStorage> = createEntityAdapter<MonkeyEcxStorage>({\r\n selectId: (item: MonkeyEcxStorage) => {\r\n return item.username;\r\n }\r\n});\r\n\r\nexport const initialState: State = adapter.getInitialState({\r\n control: {\r\n isLoading: false\r\n },\r\n error: null\r\n});\r\n\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(actions.monkeyecxStorage.clear, (state: any) => {\r\n return adapter.removeAll(state);\r\n }),\r\n on(actions.monkeyecxStorage.create, (state, action) => {\r\n return adapter.upsertMany(action.data, {\r\n ...state\r\n });\r\n }),\r\n on(actions.monkeyecxStorage.updateControl, (state, action) => {\r\n return {\r\n ...state,\r\n control: {\r\n ...state.control,\r\n ...action.data\r\n }\r\n };\r\n }),\r\n on(actions.monkeyecxStorage.updateOne, (state, action) => {\r\n const { username } = action.data;\r\n return adapter.upsertOne(\r\n { ...action.data, username },\r\n {\r\n ...state\r\n }\r\n );\r\n }),\r\n on(actions.monkeyecxStorage.deleteOne, (state, action) => {\r\n const { username } = action.data;\r\n return adapter.removeOne(username, state);\r\n })\r\n);\r\n\r\nexport const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors();\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { MonkeyEcxStorage } from '../../core';\r\nimport * as reducers from '../reducers';\r\n\r\ndeclare type State = reducers.fromMonkeyecxStorage.State;\r\n\r\nexport const selectState = createFeatureSelector<reducers.fromMonkeyecxStorage.State>(\r\n reducers.fromMonkeyecxStorage.featureKey\r\n);\r\n\r\nexport const selectAll = createSelector(selectState, reducers.fromMonkeyecxStorage.selectAll);\r\n\r\nexport const select = (props: { username: string }) => {\r\n return createSelector(\r\n selectAll,\r\n (entities: MonkeyEcxStorage[]): MonkeyEcxStorage | undefined => {\r\n return entities.find((_: MonkeyEcxStorage) => {\r\n return _.username === props.username;\r\n });\r\n }\r\n );\r\n};\r\n\r\nexport const selectControl = () => {\r\n return createSelector(\r\n selectState,\r\n (state: State): any => {\r\n return state.control;\r\n }\r\n );\r\n};\r\n","export class Link {\r\n href: string;\r\n\r\n type: string;\r\n\r\n profile: string;\r\n\r\n templated: boolean;\r\n\r\n constructor(data?: any) {\r\n this.href = data?.href;\r\n this.type = data?.type;\r\n this.profile = data?.profile;\r\n this.templated = data?.templated;\r\n }\r\n}\r\n\r\nexport class MonkeyEcxModel {\r\n _links: any;\r\n\r\n public getAction(\r\n type: string,\r\n replaceOptions?: {\r\n from: string;\r\n to: string;\r\n }\r\n ): Link | null {\r\n const { _links } = this;\r\n if (!_links) return null;\r\n let link: Link = _links[type.toLowerCase()];\r\n link = new Link(link);\r\n if (link && replaceOptions && link?.templated) {\r\n const { from, to } = replaceOptions;\r\n link = new Link({\r\n ...link,\r\n href: `${link.href}`.replace(from, to)\r\n });\r\n }\r\n return link;\r\n }\r\n}\r\n","import { MonkeyEcxModel } from './monkeyecx-model';\r\n\r\nexport class MonkeyEcxLinksModel extends MonkeyEcxModel {\r\n constructor(data?: any) {\r\n super();\r\n\r\n this._links = data?._links;\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { MonkeyEcxRequestPaged } from '../../interfaces/monkeyecx-request-paged';\r\nimport { MonkeyEcxResponseLinks } from '../../interfaces/monkeyecx-response-links';\r\n\r\nexport class MonkeyEcxRequestPagedHandling {\r\n private url?: string;\r\n\r\n private pagedParams: MonkeyEcxRequestPaged;\r\n\r\n private links: MonkeyEcxResponseLinks;\r\n\r\n private samePage = false;\r\n\r\n constructor(\r\n url?: string,\r\n pagedParams?: MonkeyEcxRequestPaged,\r\n links?: any,\r\n samePage: boolean = false\r\n ) {\r\n this.url = url;\r\n this.pagedParams = pagedParams || {\r\n page: {},\r\n };\r\n this.links = links;\r\n this.samePage = samePage;\r\n }\r\n\r\n private handlePagedValuesFromApi(url: string = '') {\r\n if (url.search('\\\\?') < 0) return url;\r\n const params = url.substring(url.search('\\\\?') + 1, url.length);\r\n url = url.substring(0, url.search('\\\\?'));\r\n return `${url}?${new HttpParams({\r\n fromString: params,\r\n })\r\n .delete('size')\r\n .delete('page')\r\n .toString()}`;\r\n }\r\n\r\n private getUrlParams(url: string): string {\r\n const { pagedParams } = this;\r\n const { number, size } = pagedParams?.page || {};\r\n const hasInitialQueryParams = url.search('\\\\?') > 0;\r\n return `${!hasInitialQueryParams ? '?' : '&'}page=${number || 0}&size=${size || 20}`;\r\n }\r\n\r\n public getRequestWithPagedParams(): string {\r\n const { url, links, samePage } = this;\r\n if (samePage && links.self) {\r\n return links.self.href;\r\n }\r\n if (links && links.next) {\r\n return links.next.href;\r\n }\r\n const handled = this.handlePagedValuesFromApi(url);\r\n return `${handled}${this.getUrlParams(handled)}`;\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n NavigationStart,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport {\r\n MonkeyEcxCompanyPendenciesValidated,\r\n MonkeyEcxConfig,\r\n MonkeyEcxCountrySecurity,\r\n MonkeyEcxErrorResponse,\r\n MonkeyEcxHandledErrorResponse,\r\n MonkeyEcxRequestPaged,\r\n MonkeyEcxRequestSchedule,\r\n MonkeyEcxResponseLinks,\r\n MonkeyEcxResponsePaged,\r\n MonkeyEcxSavedState,\r\n MonkeyEcxTranslateOptions\r\n} from '../../interfaces';\r\nimport { MonkeyEcxModel } from '../../model';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxFeatureToggleService } from '../config/monkeyecx-feature-toggle.service';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxPaginationService } from '../pagination';\r\nimport { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';\r\nimport { MonkeyEcxRequestQueueHandlingService } from '../request-queue/monkeyecx-request-queue-handling.service';\r\nimport { MonkeyEcxRequestScheduleService } from '../schedules/monkeyecx-request-schedule.service';\r\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\r\n\r\nclass LinksModel extends MonkeyEcxModel {\r\n constructor(data?: any) {\r\n super();\r\n this._links = data?._links;\r\n }\r\n}\r\n\r\nexport class MonkeyEcxCommonsService {\r\n private flagValidator = true;\r\n\r\n private destroyed = false;\r\n\r\n __data$: Observable<any> | null = null;\r\n\r\n __pagination$: Observable<any> | null = null;\r\n\r\n __control$: Observable<any> | null = null;\r\n\r\n __page$: Observable<any> | null = null;\r\n\r\n __data: any | any[];\r\n\r\n __savedState: MonkeyEcxSavedState | null = null;\r\n\r\n __params: any | any[];\r\n\r\n __error: MonkeyEcxErrorResponse | null = null;\r\n\r\n __handledError: MonkeyEcxHandledErrorResponse | null = null;\r\n\r\n __page: MonkeyEcxResponsePaged | null = null;\r\n\r\n __links: MonkeyEcxResponseLinks | null = null;\r\n\r\n __search: any;\r\n\r\n __requestPaged: MonkeyEcxRequestPaged | null = null;\r\n\r\n __onSearchChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onLoadingInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n __onUploadInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n __onDataDeleted$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onErrorChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onGovernmentIdDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onZipCodeDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __oni18nDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onDoSearch$: BehaviorSubject<MonkeyEcxRequestPaged> = new BehaviorSubject({});\r\n\r\n __schedule: MonkeyEcxRequestSchedule | null = null;\r\n\r\n __i18n: any;\r\n\r\n __callbackPagination: Function = () => {\r\n // eslint-disable-next-line no-console\r\n return console.error('Method callbackPagination needs to be declared');\r\n };\r\n\r\n __paginationOptions: {\r\n service: MonkeyEcxPaginationService;\r\n callback: Function;\r\n name?: string;\r\n } | undefined;\r\n\r\n __isAbleToDoPagination = {};\r\n\r\n constructor(\r\n public monkeyecxService?: MonkeyEcxService,\r\n public tokenStorage?: MonkeyEcxTokenStorageService,\r\n public otherArgs?: {\r\n router?: Router;\r\n schedule?: {\r\n service: MonkeyEcxRequestScheduleService;\r\n options?: {\r\n clearOnChangeRoute?: boolean;\r\n };\r\n };\r\n queue?: {\r\n service: MonkeyEcxRequestQueueHandlingService;\r\n };\r\n }\r\n ) {\r\n this.handleInit();\r\n }\r\n\r\n private handleInit() {\r\n if (this.otherArgs?.router) {\r\n const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {\r\n clearOnChangeRoute: false\r\n };\r\n\r\n this.otherArgs.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n }),\r\n takeWhile(() => {\r\n return !this.destroyed;\r\n })\r\n )\r\n .subscribe(() => {\r\n if (this.__schedule && clearOnChangeRoute) {\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private navigateToPendencyPage(\r\n arg: MonkeyEcxCompanyPendenciesValidated,\r\n companyType?: string,\r\n router?: Router\r\n ) {\r\n let route = '/app';\r\n\r\n if (companyType) {\r\n route = `${route}/${companyType}/pages`;\r\n } else {\r\n route = `${route}/user/profile/pages`;\r\n }\r\n\r\n if (!router) {\r\n // eslint-disable-next-line no-console\r\n console.error('Router must be declared');\r\n } else {\r\n router.navigate([`${route}/company-pendency`.toLowerCase()], {\r\n state: {\r\n pendencyData: arg\r\n }\r\n });\r\n }\r\n }\r\n\r\n private allowedSecurityAccessByPendency(args: any): MonkeyEcxCompanyPendenciesValidated {\r\n if (!args) {\r\n return {\r\n hasPendencies: false\r\n };\r\n }\r\n const { service, type } = args;\r\n return service.hasPendencies(type);\r\n }\r\n\r\n private allowedSecurityAccessByFeature(args: any): boolean {\r\n if (!args) {\r\n return true;\r\n }\r\n const { config, feature } = args;\r\n try {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\r\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\r\n return true;\r\n }\r\n return !config?.program?.settings?.[feature];\r\n } catch (e) {\r\n // not to do\r\n }\r\n return true;\r\n }\r\n\r\n private allowedSecurityAccessByCountry(arg?: MonkeyEcxCountrySecurity): boolean {\r\n if (!arg) return true;\r\n return arg.country === arg.envCountry;\r\n }\r\n\r\n private handlePaginationOptions() {\r\n const { __paginationOptions } = this;\r\n if (__paginationOptions) {\r\n const { service, callback, name } = __paginationOptions;\r\n service?.setCallback((type: string) => {\r\n this.doPaginationv2(type, callback);\r\n }, name || 'main');\r\n }\r\n }\r\n\r\n setPage(requestPaged: MonkeyEcxRequestPaged) {\r\n this.__requestPaged = {\r\n ...this.__requestPaged,\r\n ...requestPaged\r\n };\r\n return this;\r\n }\r\n\r\n nextPage(): boolean {\r\n if (this.__links) {\r\n return !!this.__links?.next;\r\n }\r\n if (!this.__requestPaged) return false;\r\n const { page } = this.__requestPaged as any;\r\n const { number, totalPages } = page;\r\n if (number < totalPages) {\r\n this.__requestPaged = {\r\n ...this.__requestPaged,\r\n page: {\r\n ...page,\r\n number: number + 1\r\n }\r\n };\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getEmbeddedData(data: any, field: string): any[] | any {\r\n const { _embedded } = data;\r\n return _embedded ? _embedded[field] : null;\r\n }\r\n\r\n getNormalizedUrl(url: string, samePage = false): string {\r\n const { __requestPaged, __links } = this;\r\n return new MonkeyEcxRequestPagedHandling(\r\n url,\r\n __requestPaged || {},\r\n __links,\r\n samePage\r\n ).getRequestWithPagedParams();\r\n }\r\n\r\n clear(clearData: boolean) {\r\n if (clearData) {\r\n this.__data = null;\r\n this.__requestPaged = null;\r\n this.__params = null;\r\n this.__page = null;\r\n this.__links = null;\r\n\r\n if (this.__schedule) {\r\n const { queue } = this.__schedule;\r\n if (queue) {\r\n this.otherArgs?.queue?.service?.removeQueueItem(queue);\r\n }\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n }\r\n this.__error = null;\r\n this.__handledError = null;\r\n this.flagValidator = false;\r\n this.destroyed = true;\r\n }\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot | null,\r\n state: RouterStateSnapshot | null,\r\n otherArgs?: {\r\n companyType?: string,\r\n callbackMain: Function;\r\n router?: Router;\r\n callbackPagination?: Function;\r\n translateOptions?: MonkeyEcxTranslateOptions;\r\n feature?: {\r\n service: MonkeyEcxFeatureToggleService;\r\n flag: string;\r\n };\r\n featureByProgram?: {\r\n config: MonkeyEcxConfig;\r\n feature: string;\r\n };\r\n countrySecurity?: MonkeyEcxCountrySecurity;\r\n pendency?: {\r\n service: {\r\n hasPendencies: Function;\r\n };\r\n type: string;\r\n };\r\n paginationOptions?: {\r\n service: MonkeyEcxPaginationService,\r\n callback: Function,\r\n name?: string\r\n }\r\n }\r\n ) {\r\n if (JSON.stringify(route?.queryParams) === '{}') {\r\n this.__data = null;\r\n this.__page = null;\r\n }\r\n\r\n this.__requestPaged = null;\r\n this.flagValidator = true;\r\n\r\n const pend = this.allowedSecurityAccessByPendency(otherArgs?.pendency);\r\n const allowedByProgram = this.allowedSecurityAccessByFeature(otherArgs?.featureByProgram);\r\n\r\n if (\r\n this.allowedSecurityAccessByCountry(otherArgs?.countrySecurity) &&\r\n !pend.hasPendencies &&\r\n allowedByProgram\r\n ) {\r\n if (this.__schedule) {\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n\r\n const { __requestPaged } = this;\r\n if (!__requestPaged) {\r\n this.setPage({\r\n page: {\r\n number: 0,\r\n size: 10\r\n }\r\n });\r\n }\r\n\r\n if (otherArgs?.translateOptions) {\r\n const { service, keys } = otherArgs?.translateOptions;\r\n this.geti18n(service, keys || '');\r\n }\r\n\r\n if (otherArgs?.callbackPagination) {\r\n this.__callbackPagination = otherArgs.callbackPagination;\r\n }\r\n\r\n if (otherArgs?.paginationOptions) {\r\n this.__paginationOptions = otherArgs?.paginationOptions;\r\n this.handlePaginationOptions();\r\n }\r\n\r\n if (otherArgs?.feature) {\r\n const { flag, service } = otherArgs.feature;\r\n\r\n service.onFlags\r\n .pipe(\r\n takeWhile(() => {\r\n return this.flagValidator;\r\n })\r\n )\r\n .subscribe((val: boolean) => {\r\n if (val) {\r\n const hasFlag = service.getFlag(flag);\r\n\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {\r\n if (!hasFlag) {\r\n this.navigateToErrorPage(404, otherArgs?.router);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n otherArgs?.callbackMain();\r\n } else if (!allowedByProgram) {\r\n this.navigateToErrorPage(404, otherArgs?.router);\r\n } else if (pend.hasPendencies) {\r\n this.navigateToPendencyPage(pend, otherArgs?.companyType, otherArgs?.router);\r\n } else {\r\n this.navigateToErrorPage(403, otherArgs?.router);\r\n }\r\n }\r\n\r\n getHTTPHeaderApplicationPDF(): Object {\r\n return {\r\n observe: 'response',\r\n responseType: 'blob'\r\n };\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n requestInProgress: {\r\n showProgress: true\r\n }\r\n })\r\n genericMethod(link: any, data?: any, callback?: Function) {\r\n const { href, type = 'get' } = link;\r\n\r\n this.monkeyecxService?.[type.toLowerCase()](`${href}`, data)?.subscribe(\r\n (resp: any) => {\r\n if (callback) callback(resp);\r\n },\r\n (err: HttpErrorResponse) => {\r\n if (callback) callback();\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n requestInProgress: {\r\n showProgress: true\r\n }\r\n })\r\n async getGenericData(data: any, action: string) {\r\n const { monkeyecxService } = this;\r\n if (!monkeyecxService) return null;\r\n const { href, type } = new LinksModel(data)?.getAction(action) || {\r\n href: '', type: 'get'\r\n };\r\n\r\n return monkeyecxService[type.toLowerCase()]<any>(href)\r\n .pipe(take(1)).toPromise();\r\n }\r\n\r\n geti18n(translateService: TranslateService, keys: string | string[]) {\r\n translateService.onDefaultLangChange.subscribe(() => {\r\n this.__i18n = translateService.instant(keys);\r\n this.__oni18nDataChanged$.next(null);\r\n });\r\n translateService.getStreamOnTranslationChange(keys).subscribe(() => {\r\n this.__i18n = translateService.instant(keys);\r\n this.__oni18nDataChanged$.next(null);\r\n });\r\n }\r\n\r\n doPagination() {\r\n if (!this.__onLoadingInProgress$.value) {\r\n const hasMorePages = this.setPage({\r\n page: {\r\n ...this.__page\r\n }\r\n }).nextPage();\r\n\r\n if (hasMorePages && this.__callbackPagination) {\r\n this.__callbackPagination();\r\n }\r\n }\r\n }\r\n\r\n doPaginationv2(type: string, callback: Function) {\r\n if (!this.__onLoadingInProgress$.value) {\r\n if (callback) {\r\n callback(type);\r\n }\r\n }\r\n }\r\n\r\n setLinks(links: any) {\r\n this.__isAbleToDoPagination = {\r\n first: !!links?.first,\r\n next: !!links?.next\r\n };\r\n this.__links = links;\r\n }\r\n\r\n setSearchByUrl(router: Router, url: string, search: any, extras?: any) {\r\n this.__data = null;\r\n this.__page = null;\r\n this.__onDataChanged$.next(null);\r\n this.__onLoadingInProgress$.next(false);\r\n\r\n router.navigate([url], {\r\n queryParams: {\r\n ...search,\r\n r: MonkeyEcxUtils.getRandomString(30)\r\n },\r\n queryParamsHandling: 'merge',\r\n ...extras\r\n });\r\n }\r\n\r\n saveState(state: MonkeyEcxSavedState) {\r\n this.__savedState = {\r\n page: this.__page,\r\n ...state\r\n };\r\n }\r\n\r\n navigateToErrorPage(statusCode: number, router?: Router) {\r\n const routes: any = {\r\n 403: 'forbidden',\r\n 404: 'not-found',\r\n 500: 'service-problems',\r\n 503: 'service-problems'\r\n };\r\n\r\n if (!router) {\r\n console.error('Router must be declared');\r\n } else {\r\n router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()]);\r\n }\r\n }\r\n}\r\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';\r\n\r\nlet window: any;\r\n\r\nconst text: any = {\r\n i18n: {\r\n title: 'We have an quick update for you',\r\n message: 'Click anywhere here to reload your locale',\r\n },\r\n theme: {\r\n title: 'We have an quick update for you',\r\n message: 'Click anywhere here to reload your theme',\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxErrorConfigService {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private enableSupport() {\r\n window.zE('webWidget', 'updateSettings', {\r\n webWidget: {\r\n color: {\r\n theme: '#0273E8',\r\n launcherText: '#fff',\r\n header: '#0273E8',\r\n button: '#0273E8',\r\n },\r\n zIndex: 99,\r\n offset: {\r\n horizontal: '1px',\r\n vertical: '20px',\r\n },\r\n mobile: {\r\n labelVisible: true,\r\n },\r\n launcher: {\r\n mobile: {\r\n labelVisible: true,\r\n },\r\n },\r\n },\r\n });\r\n window.zE('webWidget', 'setLocale', 'en-US');\r\n window.zE('webWidget', 'show');\r\n }\r\n\r\n public apply(type: string) {\r\n const { title, message } = text?.[type];\r\n\r\n const element = document.createElement('div');\r\n element.id = 'monkeyecx-information';\r\n\r\n const elementImg = document.createElement('img');\r\n elementImg.width = 128;\r\n elementImg.src = 'assets/images/monkey.svg';\r\n elementImg.style.marginBottom = '50px';\r\n\r\n const elementTitle = document.createElement('span');\r\n elementTitle.id = 'title';\r\n elementTitle.innerText = title;\r\n elementTitle.style.marginBottom = '20px';\r\n\r\n const elementMessage = document.createElement('span');\r\n elementMessage.id = 'message';\r\n elementMessage.innerText = message;\r\n elementMessage.style.marginBottom = '20px';\r\n\r\n const elementChat = document.createElement('span');\r\n elementChat.id = 'message';\r\n elementChat.innerText =\r\n \"If you're having trouble to update, please use the support icon bellow\";\r\n\r\n element.appendChild(elementImg);\r\n element.appendChild(elementTitle);\r\n element.appendChild(elementMessage);\r\n element.appendChild(elementChat);\r\n\r\n element.addEventListener('click', () => {\r\n document.location.reload();\r\n });\r\n\r\n document.body.appendChild(element);\r\n\r\n document.body.getElementsByTagName('app-root')[0].remove();\r\n this.enableSupport();\r\n }\r\n}\r\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 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 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 this.monkeyecxErrorConfigService.apply('i18n');\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 this.monkeyecxErrorConfigService.apply('i18n');\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 this.monkeyecxErrorConfigService.apply('i18n');\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 this.monkeyecxErrorConfigService.apply('i18n');\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 this.monkeyecxErrorConfigService.apply('i18n');\n }\n }\n\n public async apply(environment: any) {\n let lang = environment?.locale?.lang || 'pt-BR';\n\n console.log('@@@@@@@@@');\n try {\n const me: MonkeyEcxMeCredentials = JSON.parse(localStorage.getItem('me') || '');\n console.log('**********************');\n console.log(me);\n console.log('**********************');\n lang = me?.locale || lang;\n } catch (e) {\n console.log(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 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 } from '@angular/core';\r\nimport { datadogRum } from '@datadog/browser-rum';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigBootstrap } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxLogsConfigService {\r\n public apply(\r\n params: MonkeyEcxConfig,\r\n configBootstrap: MonkeyEcxConfigBootstrap,\r\n environment: any,\r\n identifyCode: string\r\n ) {\r\n const { program, logs } = params;\r\n if (logs?.enabled && environment.environment !== 'dev') {\r\n datadogRum.init({\r\n applicationId: environment?.dataDogApplicationId,\r\n clientToken: environment?.dataDogClientToken,\r\n service: program?.token,\r\n site: 'datadoghq.com',\r\n sampleRate: 100,\r\n replaySampleRate: 100,\r\n env: `monkey-front-${identifyCode}-${environment.environment}`,\r\n version: configBootstrap?.version,\r\n trackInteractions: true,\r\n trackSessionAcrossSubdomains: true,\r\n useSecureSessionCookie: true,\r\n useCrossSiteSessionCookie: true\r\n });\r\n datadogRum.startSessionReplayRecording();\r\n }\r\n }\r\n}\r\n","import { ApplicationRef, Injectable } from '@angular/core';\r\nimport { SwUpdate } from '@angular/service-worker';\r\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\nimport { concat, interval } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\nimport { VersionChangedComponent } from '../../../components/version-changed';\r\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxServiceWorkerConfigService {\r\n constructor(\r\n private appRef: ApplicationRef,\r\n private updates: SwUpdate,\r\n private modalService: MonkeyStyleGuideModalService) {\r\n // not to do\r\n }\r\n\r\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\r\n const { updates, modalService } = this;\r\n updates?.available?.subscribe(() => {\r\n if (!config.showNewVersion || config.maintenance.closed) {\r\n document.location.reload();\r\n } else {\r\n modalService.open(VersionChangedComponent, {\r\n color: 'theme',\r\n size: 'md'\r\n });\r\n }\r\n });\r\n }\r\n\r\n private verify() {\r\n const { appRef, updates } = this;\r\n const appIsStable$ = appRef.isStable\r\n .pipe(first((isStable: boolean) => { return isStable === true; }));\r\n const everyHour$ = interval(1 * 60 * 60 * 1000);\r\n const everyHourOnceAppIsStable$ = concat(appIsStable$, everyHour$);\r\n everyHourOnceAppIsStable$.subscribe(() => {\r\n updates.checkForUpdate();\r\n });\r\n updates.checkForUpdate();\r\n }\r\n\r\n public apply(config: MonkeyEcxConfigBootstrap) {\r\n this.handleValidation(config);\r\n this.verify();\r\n }\r\n}\r\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';\r\nimport { Router } from '@angular/router';\r\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\nimport { ClosedToMaintenanceComponent } from '../../../components/closed-to-maintenance/closed-to-maintenance.component';\r\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxMaintenanceConfigService {\r\n constructor(private modalService: MonkeyStyleGuideModalService, private router: Router) {\r\n // not to do\r\n }\r\n\r\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\r\n if (config.maintenance.closed) {\r\n localStorage.clear();\r\n this.router.navigate(['']);\r\n\r\n setTimeout(() => {\r\n this.modalService.open(ClosedToMaintenanceComponent, {\r\n color: 'theme',\r\n size: 'md',\r\n data: config\r\n });\r\n }, 200);\r\n }\r\n }\r\n\r\n public apply(config: MonkeyEcxConfigBootstrap) {\r\n this.handleValidation(config);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { initialize, LDClient, LDFlagSet } from 'launchdarkly-js-client-sdk';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxFeatureToggleService {\r\n private readonly flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n private flags: LDFlagSet | undefined = undefined;\r\n\r\n private ldClient: LDClient | undefined = undefined;\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private getAllFlags(): void {\r\n if (!this) return;\r\n this.flags = this.ldClient?.allFlags();\r\n\r\n this.flagSubject$.next(true);\r\n }\r\n\r\n private identify(config: MonkeyEcxConfig, environment: any): void {\r\n if (config) {\r\n const email = 'monkey@monkey.exchange';\r\n const user = {\r\n email,\r\n kind: 'user',\r\n key: `${config.program?.token}#${email}`\r\n };\r\n\r\n if (!this.ldClient) {\r\n this.ldClient = initialize(environment.launchDarklyClientSideID, user, {\r\n streaming: true,\r\n disableSyncEventPost: true,\r\n sendEvents: false,\r\n diagnosticOptOut: true,\r\n logger: {\r\n debug: () => {},\r\n warn: () => {},\r\n info: () => {},\r\n error: (args: any) => {\r\n console.log('Monkey Client => ', args);\r\n }\r\n }\r\n });\r\n\r\n this.ldClient.on('change', this.getAllFlags.bind(this));\r\n this.ldClient.on('ready', this.getAllFlags.bind(this));\r\n } else {\r\n this.ldClient.identify(user, undefined, this.getAllFlags);\r\n }\r\n }\r\n }\r\n\r\n public apply(configSubject$: BehaviorSubject<MonkeyEcxConfig>, environment: any) {\r\n if (environment.launchDarklyClientSideID) {\r\n configSubject$.subscribe((config) => {\r\n this.identify(config, environment);\r\n });\r\n } else {\r\n this.flagSubject$.next(true);\r\n }\r\n }\r\n\r\n public get onFlags(): Observable<any> {\r\n return this.flagSubject$.asObservable();\r\n }\r\n\r\n public getFlag(flag: string): boolean | null {\r\n const flagValue = this.flags?.[flag];\r\n\r\n return MonkeyUtils.persistNullEmptyUndefined(flagValue) ? flagValue : null;\r\n }\r\n}\r\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';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\r\nimport { AlertsComponent } from '../../../components/alerts/alerts.component';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAlertsConfigService {\r\n constructor(private modalService: MonkeyStyleGuideModalFixedService) {\r\n // not to do\r\n }\r\n\r\n private handleValidation(config: MonkeyEcxConfig) {\r\n if (config.alert) {\r\n const { img, title, message, endDate, noEndDate, action, hideClose } = config.alert;\r\n if (moment.default().isSameOrBefore(moment.default(endDate)) || noEndDate) {\r\n this.modalService.open(AlertsComponent, {\r\n color: 'theme',\r\n size: 'md',\r\n data: {\r\n img,\r\n title,\r\n message,\r\n action,\r\n hideClose\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n public apply(config: MonkeyEcxConfig) {\r\n this.handleValidation(config);\r\n }\r\n}\r\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);\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 { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { MonkeyEcxTokenStorageService } from '../services/storage';\r\n\r\n@Directive({\r\n selector: '[monkeyecxSecurity]'\r\n})\r\nexport class MonkeyEcxSecurityDirective implements OnInit {\r\n @Input('securityRoles') roles: string[] = [];\r\n\r\n @Input('securityByExclusion') byExclusion: boolean = false;\r\n\r\n private tokenCredentials: any = null;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private tokenStorageService: MonkeyEcxTokenStorageService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n // not to do\r\n }\r\n\r\n private getRole(): string {\r\n const { tokenCredentials } = this;\r\n\r\n if (!tokenCredentials) return '';\r\n\r\n if (tokenCredentials?.programAdmin === 'true') {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n\r\n if (tokenCredentials?.programAdmin === true) {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n\r\n const handledRole = localStorage.getItem('role');\r\n\r\n return tokenCredentials?.role || handledRole || '';\r\n }\r\n\r\n private handleAccess() {\r\n const { roles, byExclusion } = this;\r\n let display = 'none';\r\n const found = roles?.indexOf(this.getRole());\r\n if (byExclusion) {\r\n display = 'block';\r\n if (found > -1) {\r\n display = 'none';\r\n }\r\n } else {\r\n display = 'none';\r\n if (found > -1) {\r\n display = 'block';\r\n }\r\n }\r\n\r\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\r\n this.elementRef.nativeElement.style.display = display;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private async handleData() {\r\n this.tokenCredentials = await this.tokenStorageService.getToken();\r\n this.handleAccess();\r\n }\r\n\r\n ngOnInit() {\r\n this.elementRef.nativeElement.style.display = 'none';\r\n this.cdr.detectChanges();\r\n\r\n this.tokenStorageService.tokenHasChanged().subscribe(() => {\r\n this.handleData();\r\n });\r\n\r\n this.handleData();\r\n }\r\n}\r\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[monkeyecxTooltip]',\r\n})\r\nexport class MonkeyEcxTooltipDirective {\r\n @Input() tooltipDelay?: number;\r\n\r\n @Input() tooltipPosition?: string;\r\n\r\n @Input() tooltipText?: string;\r\n\r\n @Input() tooltipTitle?: string;\r\n\r\n @Input() enableToShow = true;\r\n\r\n offset = 10;\r\n\r\n tooltip: HTMLElement | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n // not to do\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter() {\r\n if (!this.tooltip) {\r\n this.show();\r\n }\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n clickout() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n if (this.enableToShow) {\r\n this.create();\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip-show');\r\n setTimeout(() => {\r\n this.hide();\r\n }, 5000);\r\n }\r\n }\r\n\r\n hide() {\r\n if (!this.tooltip) return;\r\n this.renderer.removeClass(this.tooltip, 'monkeyecx-tooltip-show');\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n\r\n this.tooltip = null;\r\n }\r\n\r\n create() {\r\n const tooltipElement = document.createElement('div');\r\n\r\n this.tooltip = this.renderer.createElement('span');\r\n\r\n if (this.tooltipTitle) {\r\n const tooltipTitleElement = document.createElement('span');\r\n\r\n tooltipTitleElement.innerText = `${this.tooltipTitle}`;\r\n tooltipTitleElement.className = 'monkeyecx-tooltip-title';\r\n\r\n tooltipElement.appendChild(tooltipTitleElement);\r\n }\r\n\r\n if (this.tooltipText) {\r\n const tooltipTextElement = document.createElement('span');\r\n\r\n tooltipTextElement.innerText = `${this.tooltipText}`;\r\n tooltipTextElement.className = 'monkeyecx-tooltip-description';\r\n tooltipElement.appendChild(tooltipTextElement);\r\n }\r\n\r\n this.renderer.appendChild(this.tooltip, tooltipElement);\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip');\r\n this.renderer.addClass(this.tooltip, `monkeyecx-tooltip-${this.tooltipPosition}`);\r\n\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.tooltipDelay}ms`);\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip?.getBoundingClientRect();\r\n if (!tooltipPos) return;\r\n const scrollPos =\r\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n let top: number = 0;\r\n let left: number = 0;\r\n\r\n if (this.tooltipPosition === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPosition === 'bottom') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPosition === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.tooltipPosition === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAlertsService {\r\n constructor(\r\n private snackbarService: MonkeyStyleGuideSnackbarService,\r\n private translateService: TranslateService\r\n ) {\r\n // not to do\r\n }\r\n\r\n show({\r\n type = 'warning',\r\n title,\r\n message,\r\n duration\r\n }: {\r\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading',\r\n title: string,\r\n message: string,\r\n duration: number\r\n }) {\r\n const i18n = this.translateService.instant(`MECX-ALERTS.${type}`.toUpperCase());\r\n\r\n this.snackbarService.show({\r\n title: i18n?.TITLES?.[title],\r\n message: i18n?.MESSAGES[message],\r\n type,\r\n duration: duration || 4000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n\r\n showWarning({\r\n title,\r\n message,\r\n duration\r\n }: {\r\n title: string,\r\n message: string,\r\n duration: number\r\n }) {\r\n const i18n = this.translateService.instant('MECX-ALERTS.WARNING');\r\n\r\n this.snackbarService.show({\r\n title: i18n?.TITLES?.[title],\r\n message: i18n?.MESSAGES[message],\r\n type: 'warning',\r\n duration: duration || 4000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n}\r\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';\r\nimport { CanActivate } from '@angular/router';\r\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MonkeyEcxAuthGuardCompany implements CanActivate {\r\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\r\n // not to do\r\n }\r\n\r\n async canActivate(): Promise<boolean> {\r\n const { monkeyecxAuthenticationService } = this;\r\n\r\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\r\n if (await monkeyecxAuthenticationService.isCompanyAuthorized()) {\r\n return true;\r\n }\r\n this.monkeyecxAuthenticationService.redirectApp();\r\n return false;\r\n }\r\n\r\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\r\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\r\n // not to do\r\n }\r\n\r\n async canActivate(): Promise<boolean> {\r\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\r\n this.monkeyecxAuthenticationService.redirectApp();\r\n return false;\r\n }\r\n if (await this.monkeyecxAuthenticationService.hadAtLeastOneLogin()) {\r\n this.monkeyecxAuthenticationService.redirectLoginWelcomeBack();\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { MonkeyEcxTokenStorageService } from '../storage';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAuthGuardByRole implements CanActivate {\r\n private securityCredentials: {\r\n roles: string[],\r\n byExclusion: boolean\r\n } | null = null;\r\n\r\n private tokenCredentials: any = null;\r\n\r\n constructor(\r\n private tokenStorage: MonkeyEcxTokenStorageService,\r\n private router: Router\r\n ) {\r\n // not to do\r\n }\r\n\r\n private navigateToErrorPage() {\r\n const { tokenCredentials } = this;\r\n const companyType = tokenCredentials?.companyType;\r\n let path = '/app/pages/forbidden';\r\n if (companyType) {\r\n path = `/app/${companyType}/pages/forbidden`;\r\n }\r\n this.router?.navigate([path.toLowerCase()]);\r\n }\r\n\r\n private getRole(): string {\r\n const { tokenCredentials } = this;\r\n\r\n if (!tokenCredentials) return '';\r\n if (tokenCredentials?.programAdmin === 'true') {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n if (tokenCredentials?.programAdmin === true) {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n\r\n return tokenCredentials?.role || '';\r\n }\r\n\r\n private allowedSecurityAccess(roles: string[], byExclusion: boolean): boolean {\r\n if (!roles?.length) return true;\r\n\r\n const found = roles?.indexOf(this.getRole());\r\n let ret = false;\r\n if (byExclusion) {\r\n ret = true;\r\n if (found > -1) {\r\n ret = false;\r\n }\r\n } else {\r\n ret = false;\r\n if (found > -1) {\r\n ret = true;\r\n }\r\n }\r\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\r\n ret = true;\r\n }\r\n return ret;\r\n }\r\n\r\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\r\n this.securityCredentials = route.data?.securityCredentials;\r\n if (this.securityCredentials) {\r\n const { roles, byExclusion } = this.securityCredentials;\r\n if (!this.tokenCredentials) {\r\n this.tokenCredentials = await this.tokenStorage.getToken();\r\n }\r\n\r\n if (!this.allowedSecurityAccess(roles, byExclusion)) {\r\n this.navigateToErrorPage();\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAuthGuard implements CanActivate {\r\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\r\n // not to do\r\n }\r\n\r\n async canActivate(): Promise<boolean> {\r\n const { monkeyecxAuthenticationService } = this;\r\n\r\n if (await monkeyecxAuthenticationService.isAuthorized()) {\r\n return true;\r\n }\r\n\r\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\r\n\r\n return false;\r\n }\r\n}\r\n","/* eslint-disable indent */\r\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\r\n\r\n@NgModule()\r\nexport class MonkeyEcxConfigModule {\r\n constructor(\r\n @Optional()\r\n @SkipSelf()\r\n parentModule: MonkeyEcxConfigModule\r\n ) {\r\n if (parentModule) {\r\n throw new Error('MonkeyEcxConfigModule is already loaded. Import it in the AppModule only!');\r\n }\r\n }\r\n\r\n static forRoot(): ModuleWithProviders<MonkeyEcxConfigModule> {\r\n return {\r\n ngModule: MonkeyEcxConfigModule,\r\n providers: [MonkeyEcxConfigService]\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\r\nimport { first } from 'rxjs/operators';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\r\nimport { MonkeyEcxCookieStorageService } from '../storage';\r\nimport { CurrencyConfigComponent } from '../../../components/currency-config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxCurrencyConfigService {\r\n constructor(\r\n private modalService: MonkeyStyleGuideModalFixedService,\r\n private cookieService: MonkeyEcxCookieStorageService,\r\n private configService: MonkeyEcxConfigService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private onHandleCurrencyConfig({ currency, environment }) {\r\n const { cookieService } = this;\r\n const settings: string = cookieService.getCookie('monkey-app-settings');\r\n const locale: string = cookieService.getCookie('monkey-app-locale');\r\n\r\n if (!settings) {\r\n cookieService.setCookie(\r\n 'monkey-app-settings',\r\n btoa(\r\n JSON.stringify({\r\n showedCurrencyConfig: true\r\n })\r\n ),\r\n environment\r\n );\r\n } else {\r\n const decoded = JSON.parse(atob(settings));\r\n\r\n cookieService.setCookie(\r\n 'monkey-app-settings',\r\n btoa(\r\n JSON.stringify({\r\n ...decoded,\r\n showedCurrencyConfig: true\r\n })\r\n ),\r\n environment\r\n );\r\n }\r\n\r\n if (locale) {\r\n const decoded = JSON.parse(atob(locale));\r\n\r\n cookieService.setCookie(\r\n 'monkey-app-locale',\r\n btoa(\r\n JSON.stringify({\r\n ...decoded,\r\n currency\r\n })\r\n ),\r\n environment\r\n );\r\n }\r\n }\r\n\r\n private async onShowCurrencyConfig(environment: any, force = false) {\r\n const { cookieService } = this;\r\n const settings: string = cookieService.getCookie('monkey-app-settings');\r\n let showed = false;\r\n if (settings) {\r\n const decoded = JSON.parse(atob(settings));\r\n showed = decoded.showedCurrencyConfig;\r\n }\r\n\r\n const config: MonkeyEcxConfig = await this.configService\r\n .config()\r\n .pipe(\r\n first((val: any) => {\r\n return !!val && JSON.stringify(val) !== '{}';\r\n })\r\n )\r\n .toPromise();\r\n\r\n const currency = config?.i18n?.currency;\r\n const currencies = config?.i18n?.currencies;\r\n\r\n if ((!showed || force) && currencies?.length) {\r\n this.modalService.open(CurrencyConfigComponent, {\r\n color: 'theme',\r\n size: 'md',\r\n data: {\r\n currency,\r\n currencies,\r\n callback: (currency = 'BRL') => {\r\n this.onHandleCurrencyConfig({\r\n currency,\r\n environment\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public apply(environment: any, force = false) {\r\n this.onShowCurrencyConfig(environment, force);\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\r\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxAuthenticationService } from '../auth';\r\nimport { MonkeyEcxCommonsService } from '../commons';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxTokenStorageService } from '../storage';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxHttpErrorHandlingService extends MonkeyEcxCommonsService {\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n tokenStorage: MonkeyEcxTokenStorageService,\r\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\r\n private router: Router,\r\n private snackbarService: MonkeyStyleGuideSnackbarService,\r\n private translateService: TranslateService\r\n ) {\r\n super(monkeyecxService, tokenStorage);\r\n\r\n super.resolve(null, null);\r\n\r\n this.geti18n(this.translateService, 'SERVICES.WARNING');\r\n }\r\n\r\n private isHttpCodeIgnoreMessage(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\r\n return false;\r\n }\r\n\r\n const found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\r\n\r\n return found;\r\n }\r\n\r\n private isHttpCodeIgnoreRedirect(\r\n tp: MonkeyEcxServiceCredentials,\r\n httpCode: number\r\n ): boolean {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\r\n return false;\r\n }\r\n\r\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\r\n\r\n return found;\r\n }\r\n\r\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\r\n if (status === 409 || status === 400 || status === 401) {\r\n return 'warning';\r\n }\r\n\r\n return 'error';\r\n }\r\n\r\n private showMessage(\r\n message: string,\r\n error: HttpErrorResponse,\r\n mkc: MonkeyEcxServiceCredentials\r\n ) {\r\n const { snackbarService } = this;\r\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\r\n snackbarService.show({\r\n title: this.__i18n?.TITLE,\r\n message,\r\n type: this.getMessageType(error.status),\r\n duration: 4000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n }\r\n\r\n private handleMessage(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n // eslint-disable-next-line camelcase\r\n const { notifications, error_description, message } = error?.error || {\r\n notifications: '', error_description: '', message: ''\r\n };\r\n\r\n let customMessage = '';\r\n\r\n if (message) {\r\n customMessage = message;\r\n }\r\n\r\n // eslint-disable-next-line camelcase\r\n if (error_description) {\r\n // eslint-disable-next-line camelcase\r\n customMessage = error_description;\r\n }\r\n\r\n if (notifications) {\r\n customMessage = notifications;\r\n }\r\n\r\n if (!customMessage) {\r\n if (error.error instanceof Blob) {\r\n const blob = new Blob([error.error], {\r\n type: 'application/json'\r\n });\r\n const reader = new FileReader();\r\n reader.addEventListener('loadend', (e) => {\r\n const text = e?.target?.result;\r\n const jsonResp = JSON.parse(text as string);\r\n customMessage = jsonResp.notifications;\r\n this.showMessage(customMessage, error, mkc);\r\n });\r\n reader.readAsText(blob);\r\n } else {\r\n this.showMessage(this.__i18n['ERROR-HANDLING']?.ERROR, error, mkc);\r\n }\r\n } else {\r\n this.showMessage(customMessage, error, mkc);\r\n }\r\n }\r\n\r\n public async handleError(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n const { router, tokenStorage } = this;\r\n const { status } = error;\r\n const { companyType } = await tokenStorage?.getToken() || { companyType: '' };\r\n\r\n const routes: any = {\r\n 403: 'forbidden',\r\n 500: 'service-problems',\r\n 503: 'service-problems'\r\n };\r\n\r\n let route = '/app';\r\n if (companyType) {\r\n route = `${route}/${companyType}/pages`;\r\n } else {\r\n route = `${route}/pages`;\r\n }\r\n\r\n const found = routes[status];\r\n let timeout = 0;\r\n\r\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\r\n route = `${route}/${found}`.toLowerCase();\r\n timeout = 800;\r\n router.navigate([route]);\r\n }\r\n\r\n setTimeout(() => {\r\n this.handleMessage(error, mkc);\r\n }, timeout);\r\n }\r\n\r\n public handleErrorRefreshToken(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n const hasToRefresh = this.monkeyecxAuthenticationService.refreshShouldHappen(error);\r\n if ((error.status === 401 || error.status === 400) && hasToRefresh) {\r\n NgZone.call(this.monkeyecxAuthenticationService.redirectLoginWelcomeBack(), {});\r\n } else if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\r\n this.handleMessage(error, mkc);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\nimport { VersionChangedComponent } from '../../../components/version-changed';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxOthersErrorsHandlingService {\r\n constructor(private modalService: MonkeyStyleGuideModalService) {\r\n // not to do\r\n }\r\n\r\n public handleError(error: any) {\r\n const { modalService } = this;\r\n const { message } = error;\r\n\r\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(message)) {\r\n modalService.open(VersionChangedComponent, {\r\n color: 'theme',\r\n size: 'md'\r\n });\r\n }\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\r\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxHandlingService } from '../monkeyecx-handling.service';\r\nimport { MonkeyEcxHttpErrorHandlingService } from './monkeyecx-http-error-handling.service';\r\nimport { MonkeyEcxOthersErrorsHandlingService } from './monkeyecx-others-errors-handling.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MonkeyEcxErrorHandlingService implements ErrorHandler {\r\n constructor(private injector: Injector) {\r\n // not to do\r\n }\r\n\r\n handleError(error: any, type?: string) {\r\n const { injector } = this;\r\n const handlingService = injector.get(MonkeyEcxHandlingService);\r\n const httpErrorHandlingService = injector.get(MonkeyEcxHttpErrorHandlingService);\r\n const othersErrorsHandlingService = injector.get(MonkeyEcxOthersErrorsHandlingService);\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n const sCredentials: MonkeyEcxServiceCredentials =\r\n handlingService?.getMonkeyEcxServiceCredentials() || {};\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(type) && type === 'refresh_token') {\r\n httpErrorHandlingService.handleErrorRefreshToken(error, sCredentials);\r\n } else httpErrorHandlingService.handleError(error, sCredentials);\r\n } else {\r\n othersErrorsHandlingService.handleError(error);\r\n }\r\n }\r\n}\r\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyEcxErrorHandlingService } from './monkeyecx-error-handling.service';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class MonkeyEcxErrorHandlingModule {\r\n public static forRoot(): ModuleWithProviders<MonkeyEcxErrorHandlingModule> {\r\n return {\r\n ngModule: MonkeyEcxErrorHandlingModule,\r\n providers: [\r\n {\r\n provide: ErrorHandler,\r\n useClass: MonkeyEcxErrorHandlingService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxLoggedHandlingService {\r\n private schedules: MonkeyEcxRequestSchedule[] = [];\r\n\r\n private genericSchedules: MonkeyEcxRequestSchedule[] = [];\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private destroySchedule() {\r\n this.schedules.forEach((sch: MonkeyEcxRequestSchedule) => {\r\n clearInterval(sch.interval);\r\n });\r\n this.schedules = [];\r\n }\r\n\r\n private destroyGenericSchedule() {\r\n this.genericSchedules.forEach((sch: MonkeyEcxRequestSchedule) => {\r\n clearInterval(sch.interval);\r\n });\r\n this.genericSchedules = [];\r\n }\r\n\r\n public addSchedule(sch: MonkeyEcxRequestSchedule[]) {\r\n this.schedules = sch;\r\n }\r\n\r\n public addGenericSchedule(sch: MonkeyEcxRequestSchedule[]) {\r\n this.genericSchedules = sch;\r\n }\r\n\r\n public destroy() {\r\n this.destroySchedule();\r\n this.destroyGenericSchedule();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxPaginationService {\r\n private callbacks: {\r\n [key: string]: Function;\r\n } = {};\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n public setCallback(callback: Function, name: string = 'main') {\r\n this.callbacks = {\r\n ...this.callbacks,\r\n [name]: callback\r\n };\r\n }\r\n\r\n public execute(type: string, name: string = 'main') {\r\n const { callbacks } = this;\r\n const callback = callbacks?.[name];\r\n if (callback) callback(type);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxRequestDownload } from '../../interfaces';\r\nimport { MonkeyEcxDownloadEvents } from '../../utils/statics';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestDownloadHandlingService {\r\n private download: MonkeyEcxRequestDownload[] = [];\r\n\r\n private download$: BehaviorSubject<MonkeyEcxRequestDownload[] | any>;\r\n\r\n constructor() {\r\n this.download$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addTo(q: MonkeyEcxRequestDownload) {\r\n this.download.push(q);\r\n this.download$.next(this.download);\r\n }\r\n\r\n private markItemAsFinish(q: MonkeyEcxRequestDownload, status?: number) {\r\n const saved = [...this.download];\r\n this.download = [\r\n ...saved\r\n .map((val: any) => {\r\n if (val.status === MonkeyEcxDownloadEvents.OnGoing) {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || MonkeyEcxDownloadEvents.Finished\r\n };\r\n }\r\n return valSaved;\r\n }\r\n return null;\r\n })\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n ];\r\n\r\n this.download = this.download.filter((_: any) => {\r\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n this.download$.next(this.download);\r\n }\r\n\r\n private updateItem(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\r\n const saved = [...this.download];\r\n this.download = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const currentPecentage = Math.floor(((loaded || 0) / (total || 0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.download$.next(this.download);\r\n }\r\n\r\n public set(q: MonkeyEcxRequestDownload) {\r\n this.addTo(q);\r\n }\r\n\r\n public get(): Observable<MonkeyEcxRequestDownload[]> {\r\n return this.download$.asObservable();\r\n }\r\n\r\n public update(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\r\n this.updateItem(q, loaded, total);\r\n }\r\n\r\n public finishItem(q: MonkeyEcxRequestDownload, status?: number) {\r\n this.markItemAsFinish(q, status);\r\n }\r\n\r\n public hasDownloadOnGoing(): boolean {\r\n const found = this.download.find((_: any) => {\r\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { Statics } from '../../utils';\r\nimport { MonkeyEcxRequestDownloaded } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestDownloadedHandlingService {\r\n private downloaded: MonkeyEcxRequestDownloaded[] = [];\r\n\r\n private downloaded$: BehaviorSubject<MonkeyEcxRequestDownloaded[] | any>;\r\n\r\n constructor() {\r\n this.downloaded$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addTo(q: MonkeyEcxRequestDownloaded) {\r\n this.downloaded.push(q);\r\n this.downloaded$.next(this.downloaded);\r\n }\r\n\r\n private markItemAsFinish(q: MonkeyEcxRequestDownloaded, status?: number) {\r\n const saved = [...this.downloaded];\r\n this.downloaded = [\r\n ...saved.map((val: any) => {\r\n if (val.status === Statics.MonkeyEcxDownloadEvents.OnGoing) {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxDownloadEvents.Finished,\r\n action: q.action\r\n };\r\n }\r\n return valSaved;\r\n }\r\n return val;\r\n })\r\n ];\r\n this.downloaded$.next(this.downloaded);\r\n }\r\n\r\n public set(q: MonkeyEcxRequestDownloaded) {\r\n this.addTo(q);\r\n }\r\n\r\n public get(): Observable<MonkeyEcxRequestDownloaded[]> {\r\n return this.downloaded$.asObservable();\r\n }\r\n\r\n public finishItem(q: MonkeyEcxRequestDownloaded, status?: number) {\r\n this.markItemAsFinish(q, status);\r\n }\r\n\r\n public hasDownloadOnGoing(): boolean {\r\n const found = this.downloaded.find((_: any) => {\r\n return _.status === Statics.MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\r\nimport { Statics } from '../../utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestQueueHandlingService {\r\n private queue: MonkeyEcxRequestQueue[] = [];\r\n\r\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\r\n\r\n private newQueue = new BehaviorSubject(false);\r\n\r\n constructor() {\r\n this.queues$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addToQueue(q: MonkeyEcxRequestQueue) {\r\n this.queue.push(q);\r\n this.queues$.next(this.queue);\r\n this.newQueue.next(true);\r\n }\r\n\r\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\r\n action\r\n };\r\n }\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const { total, loaded } = progress;\r\n const currentPecentage = Math.floor(((loaded||0) / (total || 0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n progress: {\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n }\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private deleteQueue(q: MonkeyEcxRequestQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return null;\r\n }\r\n return valSaved;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n public setQueue(q: MonkeyEcxRequestQueue | null) {\r\n if (!q) return;\r\n this.addToQueue(q);\r\n }\r\n\r\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\r\n return this.queues$.asObservable();\r\n }\r\n\r\n public finishQueueItem(q: MonkeyEcxRequestQueue | null, action?: Function, status?: number) {\r\n if (!q) return;\r\n this.markQueueItemAsFinish(q, status, action);\r\n }\r\n\r\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\r\n this.deleteQueue(q);\r\n }\r\n\r\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n this.updateQueue(q, progress);\r\n }\r\n\r\n public hasNewQueue(): Observable<boolean> {\r\n return this.newQueue.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\r\nimport { Statics } from '../../utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestQueueModalHandlingService {\r\n private queue: MonkeyEcxRequestQueue[] = [];\r\n\r\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\r\n\r\n private newQueue$ = new BehaviorSubject(false);\r\n\r\n private allQueueFinished$ = new BehaviorSubject(false);\r\n\r\n constructor() {\r\n this.queues$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addToQueue(q: MonkeyEcxRequestQueue) {\r\n this.queue.push(q);\r\n this.queues$.next(this.queue);\r\n this.newQueue$.next(true);\r\n }\r\n\r\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\r\n action\r\n };\r\n }\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const { total, loaded } = progress;\r\n const currentPecentage = Math.floor(((loaded||0) / (total||0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n progress: {\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n }\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private deleteQueue(q: MonkeyEcxRequestQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return null;\r\n }\r\n return valSaved;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n\r\n this.queues$.next(this.queue);\r\n if (this.queue.length <= 0) {\r\n this.allQueueFinished$.next(true);\r\n }\r\n }\r\n\r\n public setQueue(q: MonkeyEcxRequestQueue) {\r\n this.addToQueue(q);\r\n }\r\n\r\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\r\n return this.queues$.asObservable();\r\n }\r\n\r\n public finishQueueItem(q: MonkeyEcxRequestQueue, action?: Function, status?: number) {\r\n this.markQueueItemAsFinish(q, status, action);\r\n }\r\n\r\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\r\n this.deleteQueue(q);\r\n }\r\n\r\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n this.updateQueue(q, progress);\r\n }\r\n\r\n public hasNewQueue(): Observable<boolean> {\r\n return this.newQueue$.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n\r\n public hasAllQueueFinished(): Observable<boolean> {\r\n return this.allQueueFinished$.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxDiscoveryParamsService {\r\n constructor(private router: Router) {\r\n // not to do\r\n }\r\n\r\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\r\n if (route.firstChild) {\r\n return this.getLastChild(route.firstChild);\r\n }\r\n\r\n return route;\r\n }\r\n\r\n public setData(field: string, value: any): any {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n route.data[field] = value;\r\n }\r\n\r\n public getData(field: string): any {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n\r\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\r\n return found;\r\n }\r\n\r\n public getDataFromCurrentNavigation(field: string, router?: Router): any {\r\n const navigation = this.router.getCurrentNavigation() || router?.getCurrentNavigation();\r\n let state: any = null;\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\r\n state = navigation?.extras.state;\r\n }\r\n\r\n return state ? state[field] : null;\r\n }\r\n\r\n public getParam(param: string): string | null {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\r\n ? route?.paramMap?.get(param) || ''\r\n : '';\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\r\n return found;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxLoggedHandlingService } from '../logged';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestScheduleService {\r\n private schedule: MonkeyEcxRequestSchedule[] | any[] = [];\r\n\r\n private genericSchedule: MonkeyEcxRequestSchedule[] | any[] = [];\r\n\r\n constructor(\r\n public monkeyecxService: MonkeyEcxService,\r\n private monkeyLoggedHandlingService: MonkeyEcxLoggedHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private addToSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.schedule.push(q);\r\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n private addToGenericSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.genericSchedule.push(q);\r\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\r\n }\r\n\r\n private removeFromSchedule(q: MonkeyEcxRequestSchedule) {\r\n clearInterval(q.interval);\r\n const saved = [...this.schedule];\r\n this.schedule = [\r\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\r\n const savedLocal = {\r\n ...sch\r\n };\r\n if (sch.id === q.id) {\r\n return null;\r\n }\r\n return savedLocal;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n private removeFromGenericSchedule(q: MonkeyEcxRequestSchedule) {\r\n clearInterval(q.interval);\r\n const saved = [...this.genericSchedule];\r\n this.genericSchedule = [\r\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\r\n const savedLocal = {\r\n ...sch\r\n };\r\n if (sch.id === q.id) {\r\n return null;\r\n }\r\n return savedLocal;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\r\n }\r\n\r\n private removeFromScheduleById(id: string) {\r\n const q = this.getScheduleById(id);\r\n clearInterval(q?.interval);\r\n const saved = [...this.schedule];\r\n this.schedule = [\r\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\r\n const savedLocal = {\r\n ...sch\r\n };\r\n if (sch.id === q?.id) {\r\n return null;\r\n }\r\n return savedLocal;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [400, 403, 404, 500, 503]\r\n },\r\n requestInProgress: {\r\n showProgress: false\r\n }\r\n })\r\n private doCall(sch: MonkeyEcxRequestSchedule) {\r\n const { url, method, params, data, action, errorAction } = sch;\r\n\r\n const errAction = errorAction || ((...args) => {});\r\n\r\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\r\n (resp: any) => {\r\n action(\r\n {\r\n ...data,\r\n ...resp\r\n },\r\n sch\r\n );\r\n },\r\n (err: HttpErrorResponse) => {\r\n this.removeFromSchedule(sch);\r\n errAction(\r\n {\r\n ...data\r\n },\r\n sch,\r\n err\r\n );\r\n }\r\n );\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [400, 401, 403, 404, 500, 503],\r\n httpCodeIgnoreRedirect: [503]\r\n },\r\n requestInProgress: {\r\n showProgress: false\r\n }\r\n })\r\n private doGenericCall(sch: MonkeyEcxRequestSchedule) {\r\n const { url, method, params, data, action, errorAction } = sch;\r\n\r\n const errAction = errorAction || ((...args) => {});\r\n\r\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\r\n (resp: any) => {\r\n action(\r\n {\r\n ...data,\r\n ...resp\r\n },\r\n sch\r\n );\r\n },\r\n (err: HttpErrorResponse) => {\r\n this.removeFromGenericSchedule(sch);\r\n errAction(\r\n {\r\n ...data\r\n },\r\n sch,\r\n err\r\n );\r\n }\r\n );\r\n }\r\n\r\n public setSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\r\n const id = q?.id || `${MonkeyEcxUtils.getRandomString(40)}`;\r\n const obj = {\r\n ...q,\r\n id\r\n };\r\n\r\n const interval = setInterval(() => {\r\n this.doCall({\r\n ...obj,\r\n interval\r\n });\r\n }, delay);\r\n\r\n const sch = {\r\n ...obj,\r\n interval\r\n };\r\n\r\n this.addToSchedule(sch);\r\n return sch;\r\n }\r\n\r\n public setGenericSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\r\n const interval = setInterval(() => {\r\n this.doGenericCall({\r\n ...q,\r\n interval\r\n });\r\n }, delay);\r\n\r\n const sch = {\r\n ...q,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\r\n interval\r\n };\r\n\r\n this.addToGenericSchedule(sch);\r\n return sch;\r\n }\r\n\r\n public removeSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.removeFromSchedule(q);\r\n }\r\n\r\n public removeGenericSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.removeFromGenericSchedule(q);\r\n }\r\n\r\n public removeScheduleById(id: string) {\r\n this.removeFromScheduleById(id);\r\n }\r\n\r\n public getScheduleById(id: string) {\r\n const q = this.schedule.find((sch: MonkeyEcxRequestSchedule) => {\r\n return sch.id === id;\r\n });\r\n return q;\r\n }\r\n}\r\n","import { Store } from '@ngrx/store';\r\nimport { take } from 'rxjs/operators';\r\nimport { MonkeyEcxCoreService } from '../../decorators';\r\nimport {\r\n MonkeyEcxConfigStore,\r\n MonkeyEcxControlStore,\r\n MonkeyEcxLinks,\r\n MonkeyEcxPage,\r\n MonkeyEcxPagination\r\n} from '../../interfaces';\r\nimport { MonkeyEcxLinksModel } from '../../model';\r\nimport { MonkeyEcxCommonsService } from '../commons';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxTokenStorageService } from '../storage';\r\n\r\n/**\r\n * Classe genérica que recebe duas interfaces como tipos genéricos.\r\n *\r\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\r\n * @typeparam K faz referência ao tipo de configuração.\r\n *\r\n * @description interfaces de configuração:\r\n * ```\r\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\r\n * ```\r\n */\r\nexport abstract class MonkeyEcxCommonsStoreBaseService<\r\n T,\r\n K extends MonkeyEcxConfigStore\r\n> extends MonkeyEcxCommonsService {\r\n private action: any;\r\n\r\n private selector: any;\r\n\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n tokenStorage: MonkeyEcxTokenStorageService,\r\n protected store: Store,\r\n config: K\r\n ) {\r\n super(monkeyecxService, tokenStorage);\r\n const { actions, selectors } = config;\r\n\r\n this.action = actions;\r\n this.selector = selectors;\r\n }\r\n\r\n private handleResponseData(resp: any, updateLinks = true) {\r\n try {\r\n let data: T;\r\n\r\n if (resp?._embedded) {\r\n const { _embedded, _links, page } = resp;\r\n const key = Object.keys(_embedded)[0];\r\n\r\n data = _embedded[key];\r\n\r\n if (updateLinks) {\r\n this.updateLinks?.(_links);\r\n }\r\n\r\n this.updatePage?.(page);\r\n } else data = resp;\r\n\r\n this.update?.(data);\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\r\n }\r\n }\r\n\r\n protected updateControl(data: MonkeyEcxControlStore) {\r\n try {\r\n this.store.dispatch(\r\n this.action.updateControl({\r\n data\r\n })\r\n );\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\r\n }\r\n }\r\n\r\n protected mappingData(args: T | T[]): T | T[] {\r\n try {\r\n const handle = (item: T) => {\r\n let id = '';\r\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\r\n href: ''\r\n };\r\n\r\n if (href) {\r\n id = href.split('/').pop() || '';\r\n }\r\n\r\n return {\r\n ...item,\r\n id\r\n };\r\n };\r\n\r\n if (args instanceof Array) {\r\n return args.map((item: T) => {\r\n return handle(item);\r\n });\r\n }\r\n\r\n return handle(args);\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\r\n }\r\n }\r\n\r\n protected update?(args: T | T[]) {\r\n try {\r\n let typeAction = 'updateOne';\r\n\r\n if (args instanceof Array) {\r\n typeAction = 'updateAll';\r\n }\r\n\r\n this.store.dispatch(\r\n this.action[typeAction]({\r\n data: this.mappingData(args)\r\n })\r\n );\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method update -> ${e}`);\r\n }\r\n }\r\n\r\n protected updatePage?(data: MonkeyEcxPage) {\r\n try {\r\n this.store.dispatch(\r\n this.action.updatePage({\r\n data\r\n })\r\n );\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\r\n }\r\n }\r\n\r\n protected updateLinks?(data: MonkeyEcxLinks) {\r\n try {\r\n this.store.dispatch(\r\n this.action.updateLinks({\r\n data\r\n })\r\n );\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\r\n }\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n requestInProgress: {\r\n showProgress: true\r\n }\r\n })\r\n protected async loadData(url: string, updateLinks = true) {\r\n this.updateControl({ isLoading: true });\r\n\r\n try {\r\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\r\n this.handleResponseData(data, updateLinks);\r\n this.updateControl({ isLoading: false });\r\n } catch (e: any) {\r\n this.updateControl({ isLoading: false });\r\n throw new Error(`${e?.message}`);\r\n }\r\n }\r\n\r\n protected async loadPageData(pagination: MonkeyEcxPagination) {\r\n const { store, selector } = this;\r\n const data = await store\r\n .select(selector.selectLinks())\r\n .pipe(take(1))\r\n .toPromise();\r\n\r\n const { action } = pagination;\r\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\r\n href: ''\r\n };\r\n\r\n if (href) {\r\n this.loadData(href);\r\n }\r\n }\r\n\r\n /**\r\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\r\n * entidade ou não\r\n * E depois precisa invocar o método loadData\r\n * @param (url) ou de acordo com a action criada\r\n * @example\r\n * ```\r\n * const hasDifference = .....\r\n * if(hasDifference) {\r\n * store.dispatch(clear)\r\n * }\r\n *\r\n * this.loadData(...)\r\n * ```\r\n */\r\n public load?(args: any) {\r\n throw new Error('MECX Core - Method load not implemented.');\r\n }\r\n\r\n public loadPage?(args: any) {\r\n throw new Error('MECX Core - Method loadPage not implemented.');\r\n }\r\n}\r\n","import { createAction, props } from '@ngrx/store';\nimport {\n MonkeyEcxPage,\n MonkeyEcxPagination,\n MonkeyEcxPaginationData,\n MonkeyEcxStoreControl\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(\n `[${actionName}] Load`,\n props<{ url: string; identifier: string; force?: boolean }>()\n );\n const loadPagination = createAction(\n `[${actionName} Pagination] Load`,\n props<{ pagination: MonkeyEcxPagination; identifier: string }>()\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 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 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 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 } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n\n this.updateControl({ isLoading: false });\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 { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { MonkeyEcxConfig } from '../interfaces';\r\nimport { MonkeyEcxConfigService } from '../services';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFeatureByProgram]'\r\n})\r\nexport class MonkeyEcxFeatureByProgramDirective implements OnInit {\r\n @Input('feature') feature: string = '';\r\n\r\n private config?: MonkeyEcxConfig;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private monkeyConfigService: MonkeyEcxConfigService\r\n ) {\r\n this.monkeyConfigService.config().subscribe((_: MonkeyEcxConfig) => {\r\n this.config = _;\r\n this.init();\r\n });\r\n }\r\n\r\n private init() {\r\n if (!this.feature) return;\r\n this.cdr.detectChanges();\r\n this.handleDisplay();\r\n }\r\n\r\n private handleDisplay(): void {\r\n const { feature, config } = this;\r\n let display = 'none';\r\n\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\r\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\r\n return;\r\n }\r\n\r\n const disabled = config?.program?.settings?.[feature];\r\n\r\n if (!disabled) {\r\n display = 'block';\r\n }\r\n\r\n this.elementRef.nativeElement.style.display = display;\r\n\r\n if (display === 'none') {\r\n this.elementRef.nativeElement.remove();\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFeature]'\r\n})\r\nexport class MonkeyEcxFeatureDirective implements OnDestroy, OnInit {\r\n @Input('featureName') feature?: string;\r\n\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private monkeyecxFeatureToggleService: MonkeyEcxFeatureToggleService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private getFeature(feature: string): boolean {\r\n const { monkeyecxFeatureToggleService } = this;\r\n\r\n if (!monkeyecxFeatureToggleService) {\r\n return false;\r\n }\r\n\r\n return monkeyecxFeatureToggleService?.getFlag(feature) || false;\r\n }\r\n\r\n private handleDisplay(): void {\r\n if (!this.feature) return;\r\n const flag = this.getFeature(this.feature);\r\n let display = 'none';\r\n\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\r\n return;\r\n }\r\n\r\n if (flag) {\r\n display = 'block';\r\n }\r\n\r\n if (display === 'none') {\r\n this.elementRef.nativeElement.remove();\r\n }\r\n\r\n this.elementRef.nativeElement.style.display = display;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.feature) return;\r\n this.elementRef.nativeElement.style.display = 'none';\r\n this.cdr.detectChanges();\r\n\r\n this.monkeyecxFeatureToggleService.onFlags\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe((val: boolean) => {\r\n if (val) {\r\n this.handleDisplay();\r\n }\r\n });\r\n }\r\n}\r\n","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MonkeyEcxDragDropDirective } from './monkeyecx-drag-drop';\r\nimport { MonkeyEcxFeatureByProgramDirective } from './monkeyecx-feature-by-program-directive';\r\nimport { MonkeyEcxFeatureDirective } from './monkeyecx-feature-directive';\r\nimport { MonkeyEcxFormatCurrency } from './monkeyecx-format-currency';\r\nimport { MonkeyEcxFormatUpper } from './monkeyecx-format-upper';\r\nimport { MonkeyEcxOnlyAlphaNumericDirective } from './monkeyecx-only-alpha-numeric-directive';\r\nimport { MonkeyEcxOnlyNumbersDirective } from './monkeyecx-only-number-directive';\r\nimport { MonkeyEcxPopoverOptionsDirective } from './monkeyecx-popover-options.directive';\r\nimport { MonkeyEcxPopoverDirective } from './monkeyecx-popover.directive';\r\nimport { MonkeyEcxSecurityDirective } from './monkeyecx-security-directive';\r\nimport { MonkeyEcxTooltipDirective } from './monkeyecx-tooltip-directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyEcxDragDropDirective,\r\n MonkeyEcxFormatCurrency,\r\n MonkeyEcxFeatureDirective,\r\n MonkeyEcxFeatureByProgramDirective,\r\n MonkeyEcxFormatUpper,\r\n MonkeyEcxOnlyAlphaNumericDirective,\r\n MonkeyEcxOnlyNumbersDirective,\r\n MonkeyEcxSecurityDirective,\r\n MonkeyEcxTooltipDirective,\r\n MonkeyEcxPopoverDirective,\r\n MonkeyEcxPopoverOptionsDirective\r\n ],\r\n imports: [CommonModule, OverlayModule],\r\n exports: [\r\n MonkeyEcxDragDropDirective,\r\n MonkeyEcxFormatCurrency,\r\n MonkeyEcxFeatureDirective,\r\n MonkeyEcxFeatureByProgramDirective,\r\n MonkeyEcxFormatUpper,\r\n MonkeyEcxOnlyAlphaNumericDirective,\r\n MonkeyEcxOnlyNumbersDirective,\r\n MonkeyEcxSecurityDirective,\r\n MonkeyEcxTooltipDirective,\r\n MonkeyEcxPopoverDirective,\r\n MonkeyEcxPopoverOptionsDirective\r\n ]\r\n})\r\nexport class MonkeyEcxDirectivesModule {}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { from, Observable, throwError } from 'rxjs';\r\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\r\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\r\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\r\n\r\nexport interface Headers {\r\n name: string;\r\n value: string;\r\n}\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\r\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\r\n ) {\r\n // no to do\r\n }\r\n\r\n private async handle(request: HttpRequest<any>, error: HttpErrorResponse) {\r\n try {\r\n if (this.monkeyecxAuthenticationService.refreshShouldHappen(error)) {\r\n await this.monkeyecxAuthenticationService?.refreshToken();\r\n const headers = await this.monkeyecxAuthenticationService.getRequestWithHeadersAsync(\r\n request\r\n );\r\n return headers;\r\n }\r\n } catch (e) {\r\n return throwError(e);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n return from(this.handle(request, error)).pipe(\r\n take(1),\r\n map((event: any) => {\r\n return event;\r\n }),\r\n mergeMap((resp: any) => {\r\n request = request.clone({\r\n setHeaders: resp\r\n });\r\n return next.handle(request);\r\n }),\r\n catchError(() => {\r\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\r\n return throwError(error);\r\n })\r\n );\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { from, Observable, throwError } from 'rxjs';\r\nimport { catchError, first, map, mergeMap, take } from 'rxjs/operators';\r\nimport { MonkeyEcxConfigService } from '../services';\r\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\r\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigHeaderInterceptor implements HttpInterceptor {\r\n constructor(\r\n private authService: MonkeyEcxAuthenticationService,\r\n private errorHandlingService: MonkeyEcxErrorHandlingService,\r\n private config: MonkeyEcxConfigService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private async handle(request: HttpRequest<any>) {\r\n const { url } = request;\r\n if (this.authService.isTokenMandatory(url)) {\r\n try {\r\n await this.config\r\n .config()\r\n .pipe(\r\n first((val: any) => {\r\n return !!val && JSON.stringify(val) !== '{}';\r\n })\r\n )\r\n .toPromise();\r\n } catch (e) {\r\n // not to do\r\n }\r\n }\r\n let resp = null;\r\n try {\r\n resp = await this.authService.getRequestWithHeadersAsync(request);\r\n } catch (e) {\r\n this.errorHandlingService.handleError(e);\r\n return throwError(e);\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return from(this.handle(request)).pipe(\r\n take(1),\r\n map((event: any) => {\r\n return event;\r\n }),\r\n mergeMap((resp: any) => {\r\n request = request.clone({\r\n setHeaders: resp\r\n });\r\n return next.handle(request);\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.errorHandlingService.handleError(error);\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestQueueHandlingService } from '../services/request-queue';\r\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\r\nimport { MonkeyEcxRequestQueue } from '../interfaces';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigQueueInterceptor implements HttpInterceptor {\r\n constructor(\r\n private injector: Injector,\r\n private monkeyecxRequestQueueHandlingService: MonkeyEcxRequestQueueHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const { injector, isQueueProperty } = this;\r\n const monkeyecxHandlingService = injector.get(MonkeyEcxHandlingService);\r\n\r\n const monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = monkeyecxHandlingService?.getMonkeyEcxRequestQueue();\r\n if (isQueueProperty(monkeyecxRequestQueue)) {\r\n this.monkeyecxRequestQueueHandlingService.setQueue(monkeyecxRequestQueue);\r\n }\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n if (isQueueProperty(monkeyecxRequestQueue)) {\r\n this.monkeyecxRequestQueueHandlingService.finishQueueItem(monkeyecxRequestQueue);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private isQueueProperty(mrq?: MonkeyEcxRequestQueue | null): boolean {\r\n return (\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq) &&\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq?.item?.name)\r\n );\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\r\nimport { MonkeyEcxRequestLoadingInProgress } from '../interfaces';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\nimport { MonkeyEcxProgressBarService } from '../../components';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigLoadingInProgressInterceptor implements HttpInterceptor {\r\n constructor(private injector: Injector) {\r\n // no to do\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const { injector, isLoadingInProgressProperty } = this;\r\n const handlingService: MonkeyEcxHandlingService = injector.get(MonkeyEcxHandlingService);\r\n const progressBarService: MonkeyEcxProgressBarService = injector.get(\r\n MonkeyEcxProgressBarService\r\n );\r\n\r\n const inProgress: MonkeyEcxRequestLoadingInProgress | null = handlingService?.getMonkeyEcxServiceCredentials()\r\n ? handlingService?.getMonkeyEcxServiceCredentials()?.requestInProgress || null\r\n : null;\r\n if (isLoadingInProgressProperty(inProgress)) {\r\n progressBarService.show();\r\n }\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n if (isLoadingInProgressProperty(inProgress)) {\r\n progressBarService.hide();\r\n }\r\n })\r\n );\r\n }\r\n\r\n private isLoadingInProgressProperty(mlp: MonkeyEcxRequestLoadingInProgress | null): boolean {\r\n if (!mlp) return false;\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(mlp) &&\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mlp.showProgress)\r\n ? mlp.showProgress\r\n : true;\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyEcxHttpConfigErrorInterceptor } from './monkeyecx-http-config-error.interceptor';\r\nimport { MonkeyEcxHttpConfigHeaderInterceptor } from './monkeyecx-http-config-header.interceptor';\r\nimport { MonkeyEcxHttpConfigQueueInterceptor } from './monkeyecx-http-config-queue.interceptor';\r\nimport { MonkeyEcxHttpConfigLoadingInProgressInterceptor } from './monkeyecx-http-config-loading-in-progress.interceptor';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class MonkeyEcxHttpConfigInterceptorModule {\r\n public static forRoot(): ModuleWithProviders<MonkeyEcxHttpConfigInterceptorModule> {\r\n return {\r\n ngModule: MonkeyEcxHttpConfigInterceptorModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigHeaderInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigErrorInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigQueueInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigLoadingInProgressInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nexport enum OpSearch {\r\n LIKE = ':\\'*:value*\\'',\r\n BETWEEN = ':first AND :last',\r\n OR = 'OR',\r\n AND = 'AND',\r\n GT = '>:value',\r\n LT = '<:value',\r\n EQUAL = '::value',\r\n IN = ' IN :value',\r\n NOT = ' !:value'\r\n}\r\n\r\nexport class MonkeyEcxSpecificationSearch {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private handleValue(value: any) {\r\n return Object.entries(value).map(([key, value1]) => {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {\r\n return null;\r\n }\r\n if (Array.isArray(value1)) {\r\n if (key === OpSearch.BETWEEN) {\r\n return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);\r\n }\r\n }\r\n return `${key}`.replace(':value', `${value1}`);\r\n })[0];\r\n }\r\n\r\n private queryVisitor(value: any): any {\r\n const okay = Object.entries(value).map(([key1, value1]) => {\r\n if (key1 === OpSearch.OR || key1 === OpSearch.AND) {\r\n const join = (value1 as any[])\r\n .map((_: any) => {\r\n return Object.entries(_).map(([key2, value2]) => {\r\n if (value2 instanceof Object) {\r\n value2 = this.handleValue(value2);\r\n }\r\n return this.criteriaParser(key2, value2);\r\n })[0];\r\n })\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n .join(` ${key1} `);\r\n return `${join ? `(${join})` : ''}`;\r\n }\r\n if (value1 instanceof Object) {\r\n value1 = this.handleValue(value1);\r\n }\r\n return this.criteriaParser(key1, value1);\r\n });\r\n return okay\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n .join(' AND ');\r\n }\r\n\r\n private criteriaParser(key: string, value: any | any[]) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n return '';\r\n }\r\n if (value instanceof Object) {\r\n return this.queryVisitor(value);\r\n }\r\n return `${key}${value}`;\r\n }\r\n\r\n public build(spec: any): string {\r\n try {\r\n return this.queryVisitor(spec);\r\n } catch (e) {\r\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\r\n }\r\n }\r\n\r\n public buildMoreThanOne(field: string, op = OpSearch.EQUAL, addSingleQuotes = false) {\r\n const self: any = this;\r\n try {\r\n if (!self[field]) return [];\r\n\r\n const filters = self[field]?.split(',')?.map((filter: string) => {\r\n if (!filter) return null;\r\n return {\r\n [field]: {\r\n [op]: addSingleQuotes ? `'${filter}'` : `${filter}`\r\n }\r\n };\r\n }).filter((val: any) => { return val; });\r\n return filters || [];\r\n } catch (e) {\r\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\r\n }\r\n }\r\n\r\n public handleFieldSeparatedBy(field: string, signal = ',', op = OpSearch.EQUAL) {\r\n return this[field]?.split(signal)?.map((_) => {\r\n return {\r\n [field]: {\r\n [op]: _\r\n }\r\n };\r\n });\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\n\nexport const MECX_TIMEZONEOFFSET = new InjectionToken<string>('');\nexport const MECX_DATE_FORMAT = new InjectionToken<string>('');\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyStyleGuideModalService,\r\n MonkeyStyleGuideModule,\r\n MonkeyStyleGuideSettingsService,\r\n MonkeyStyleGuideSnackbarService\r\n} from 'monkey-style-guide';\r\nimport {\r\n AlertsModule,\r\n ClosedToMaintenanceModule,\r\n CurrencyConfigModule,\r\n VersionChangedModule\r\n} from './components';\r\nimport { MonkeyEcxHttpConfigInterceptorModule } from './core/interceptors/monkeyecx-http-config-interceptor.module';\r\nimport { MonkeyEcxConfigModule } from './core/services/config/monkeyecx-config.module';\r\nimport { MonkeyEcxErrorHandlingModule } from './core/services/error/monkeyecx-error-handling.module';\r\nimport { reducers } from './store';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot(),\r\n MonkeyEcxConfigModule.forRoot(),\r\n MonkeyEcxHttpConfigInterceptorModule.forRoot(),\r\n MonkeyEcxErrorHandlingModule.forRoot(),\r\n MonkeyStyleGuideModule,\r\n ServiceWorkerModule.register('ngsw-worker.js'),\r\n ClosedToMaintenanceModule,\r\n StoreModule.forFeature(\r\n reducers.fromMonkeyecxStorage.featureKey,\r\n reducers.fromMonkeyecxStorage.reducer\r\n ),\r\n VersionChangedModule,\r\n AlertsModule,\r\n CurrencyConfigModule\r\n ],\r\n providers: [\r\n MonkeyStyleGuideModalService,\r\n MonkeyStyleGuideSettingsService,\r\n MonkeyStyleGuideSnackbarService\r\n ]\r\n})\r\nexport class MonkeyFrontCoreModule {}\r\n","/*\r\n * Public API Surface of monkey-front-core\r\n */\r\nexport * from './lib/components';\r\nexport * from './lib/core';\r\nexport * from './lib/monkey-front-core.module';\r\nexport * as store from './lib/store';\r\n\r\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/services/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-group.ts","../../../projects/monkey-front-core/src/lib/core/utils/validate-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/decorators-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-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/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/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-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/core/injectors/index.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';\r\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\n\r\n@Component({\r\n selector: 'monkeyecx-alerts',\r\n templateUrl: './alerts.component.html',\r\n styleUrls: ['./alerts.component.scss']\r\n})\r\nexport class AlertsComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n _img = '';\r\n\r\n _title = '';\r\n\r\n _message = '';\r\n\r\n _action: {\r\n href: string,\r\n label: string\r\n } | null = null;\r\n\r\n _hideClose = false;\r\n\r\n constructor(\r\n private modalService: MonkeyStyleGuideModalService\r\n ) {\r\n // not to do\r\n }\r\n\r\n ngOnInit() {\r\n const { config } = this;\r\n this._img = config?.data?.img;\r\n this._title = config?.data?.title;\r\n this._message = config?.data?.message;\r\n this._action = config?.data?.action;\r\n this._hideClose = config?.data?.hideClose;\r\n }\r\n\r\n onClose() {\r\n this.modalService.close(this.modalRef);\r\n }\r\n\r\n onAction() {\r\n const { _action } = this;\r\n if (_action?.href) {\r\n window.location.href = _action?.href;\r\n }\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"alert-header\">\r\n <img [src]=\"_img\">\r\n </div>\r\n <div class=\"alert-body\">\r\n <span class=\"title\">\r\n {{ _title | translate }}\r\n </span>\r\n <span class=\"message\">\r\n {{ _message | translate }}\r\n </span>\r\n </div>\r\n <div class=\"alert-footer\">\r\n <ng-container *ngIf=\"!_hideClose\">\r\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'BUTTONS.CLOSE' | translate }}\r\n </monkey-button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"_action\">\r\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onAction()\">\r\n {{ _action.label | translate }}\r\n </monkey-button>\r\n </ng-container>\r\n </div>\r\n</monkey-modal>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyButtonModule, MonkeyModalModule } from 'monkey-style-guide';\r\nimport { AlertsComponent } from './alerts.component';\r\n\r\n@NgModule({\r\n declarations: [AlertsComponent],\r\n imports: [CommonModule, MonkeyButtonModule, MonkeyModalModule, TranslateModule.forChild()],\r\n exports: [AlertsComponent]\r\n})\r\nexport class AlertsModule {}\r\n","/* eslint-disable no-unused-vars */\r\n/* eslint-disable no-shadow */\r\nexport enum MonkeyEcxQueueEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\nexport enum MonkeyEcxDownloadEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\nexport enum MonkeyEcxUploadEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\n// TODO pegar do json de config\r\nexport enum ApiEndPointsTokenNotMandatory {\r\n Assets = 'assets/',\r\n MonkeyEcx = '/monkeyecx',\r\n ViaCep = 'viacep.com.br/'\r\n}\r\n\r\n// TODO pegar do json de config\r\nexport enum ApiEndPointsHeaderNotMandatory {\r\n Assets = '/assets',\r\n PayablesUpload = 'payables-upload',\r\n PictureUser = '/user-pictures',\r\n Documents = 'documents/',\r\n BuyerTaxFile = '/buyer-tax-file',\r\n ViaCep = 'viacep.com.br/'\r\n}\r\n\r\nexport enum CountryMasks {\r\n CPF = '000.000.000-00',\r\n CNPJ = '00.000.000/0000-00',\r\n RUT1 = '0000000-A',\r\n RUT2 = '00000000-A'\r\n}\r\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 { 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 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 }[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 }[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 (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 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 = (country === 'cl') ? 7 : 8;\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","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateTimelapse'\r\n})\r\nexport class MonkeyEcxFormatDateTimelapsePipe implements PipeTransform {\r\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (!useUtc) stillUtc = moment.default(date).toDate();\r\n if (date.toString().indexOf(':') <= -1) {\r\n if (typeof date === 'string') {\r\n stillUtc = date;\r\n showTime = false;\r\n }\r\n }\r\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\r\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\r\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyModalConfig } from 'monkey-style-guide';\r\nimport { MonkeyEcxConfigBootstrap } from '../../core/interfaces';\r\n\r\n@Component({\r\n selector: 'monkeyecx-closed-to-maintenance',\r\n templateUrl: './closed-to-maintenance.component.html',\r\n styleUrls: ['./closed-to-maintenance.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ClosedToMaintenanceComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n _configBootstrap: MonkeyEcxConfigBootstrap | null = null;\r\n\r\n ngOnInit() {\r\n this._configBootstrap = this.config?.data;\r\n }\r\n\r\n onClose() {\r\n document.location.reload();\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\r\n <span class=\"h2\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.TITLE' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-1' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-2' | translate }}\r\n </span>\r\n <span class=\"information mt-3\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-3' | translate }}\r\n {{ _configBootstrap?.maintenance?.endDate | monkeyecxFormatDateTimelapse: true }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-4' | translate }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\r\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.BUTTONS.UPDATE-MAINTENANCE' | translate }}\r\n </monkey-button>\r\n </div>\r\n</monkey-modal>","/* eslint-disable max-len */\r\nimport { Injectable } from '@angular/core';\r\nimport { MonkeyEcxRequestDownload } from '../interfaces/request-download/monkeyecx-request-download';\r\nimport { MonkeyEcxRequestQueue } from '../interfaces/request-queue/monkeyecx-request-queue';\r\nimport { MonkeyEcxRequestUpload } from '../interfaces/request-upload/monkeyecx-request-upload';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class MonkeyEcxHandlingService {\r\n private monkeyecxServiceCredentials: MonkeyEcxServiceCredentials | null = null;\r\n\r\n private monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = null;\r\n\r\n private monkeyecxRequestDownload: MonkeyEcxRequestDownload | null = null;\r\n\r\n private monkeyecxRequestUpload: MonkeyEcxRequestUpload | null = null;\r\n\r\n public clearAll() {\r\n this.monkeyecxServiceCredentials = null;\r\n this.monkeyecxRequestQueue = null;\r\n this.monkeyecxRequestDownload = null;\r\n this.monkeyecxRequestUpload = null;\r\n }\r\n\r\n public setMonkeyEcxServiceCredentials(param: MonkeyEcxServiceCredentials) {\r\n this.monkeyecxServiceCredentials = param;\r\n }\r\n\r\n public getMonkeyEcxServiceCredentials(): MonkeyEcxServiceCredentials | null {\r\n return this.monkeyecxServiceCredentials;\r\n }\r\n\r\n public setMonkeyEcxRequestQueue(queue: MonkeyEcxRequestQueue) {\r\n this.monkeyecxRequestQueue = queue;\r\n }\r\n\r\n public getMonkeyEcxRequestQueue(): MonkeyEcxRequestQueue | null {\r\n return this.monkeyecxRequestQueue;\r\n }\r\n\r\n public setMonkeyEcxRequestDownload(download: MonkeyEcxRequestDownload) {\r\n this.monkeyecxRequestDownload = download;\r\n }\r\n\r\n public getMonkeyEcxRequestDownload(): MonkeyEcxRequestDownload | null {\r\n return this.monkeyecxRequestDownload;\r\n }\r\n\r\n public setMonkeyEcxRequestUpload(upload: MonkeyEcxRequestUpload) {\r\n this.monkeyecxRequestUpload = upload;\r\n }\r\n\r\n public getMonkeyEcxRequestUpload(): MonkeyEcxRequestUpload | null {\r\n return this.monkeyecxRequestUpload;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { MonkeyEcxHandlingService } from './monkeyecx-handling.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxService {\r\n constructor(\r\n protected http: HttpClient,\r\n public monkeyecxHandlingService: MonkeyEcxHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private handlelize(params: any): any {\r\n if (!params) {\r\n return params;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const field of [\r\n 'createdAt',\r\n 'createUserId',\r\n 'updatedAt',\r\n 'lastUserId',\r\n '_links',\r\n 'governmentIdType',\r\n 'governmentIdMask',\r\n 'screenType',\r\n 'screenTab',\r\n ]) {\r\n delete params[field];\r\n }\r\n return params;\r\n }\r\n\r\n public get<T>(url: string, options?: T): Observable<T> {\r\n return this.http.get<T>(url, options);\r\n }\r\n\r\n public post<T>(url: string, params: T, options?: T): Observable<T> {\r\n return this.http.post<T>(url, params, options);\r\n }\r\n\r\n public put<T>(url: string, params: T): Observable<T> {\r\n return this.http.put<T>(\r\n url,\r\n this.handlelize({\r\n ...params,\r\n })\r\n );\r\n }\r\n\r\n public delete<T>(url: string, params?: T): Observable<T> {\r\n return this.http.delete<T>(url, params);\r\n }\r\n\r\n public download<T>(url: string, options?: T, filename?: string) {\r\n this.http.get<T>(url, options).subscribe(\r\n (resp: any) => {\r\n const { headers, body } = resp;\r\n const contentType = headers.get('Content-Type');\r\n const contentDisposition = headers.get('Content-Disposition');\r\n if (contentDisposition) {\r\n filename = contentDisposition\r\n .split(';')[1]\r\n .split('filename')[1]\r\n .split('=')[1]\r\n .trim()\r\n .replace(new RegExp(/\"/g), '');\r\n }\r\n const blob = new Blob([body], {\r\n type: `${contentType}`,\r\n });\r\n return {\r\n filename,\r\n blob,\r\n };\r\n },\r\n (err: HttpErrorResponse) => {\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n public downloadOb<T>(url: string, options?: T, filename?: string): Observable<any> {\r\n return this.http.get<any>(url, options).pipe(\r\n map((resp: any) => {\r\n const { headers, body } = resp;\r\n const contentType = headers.get('Content-Type');\r\n const contentDisposition = headers.get('Content-Disposition');\r\n if (contentDisposition) {\r\n filename = contentDisposition\r\n .split(';')[1]\r\n .split('filename')[1]\r\n .split('=')[1]\r\n .trim()\r\n .replace(new RegExp(/\"/g), '');\r\n }\r\n const blob = new Blob([body], {\r\n type: `${contentType}`,\r\n });\r\n return {\r\n filename,\r\n blob,\r\n };\r\n }),\r\n catchError((err: any) => {\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MonkeyEcxService } from '../services/monkeyecx-service.service';\r\n\r\n@Pipe({\r\n name: 'monkeyecxBlobSecure'\r\n})\r\nexport class MonkeyEcxBlobSecurePipe implements PipeTransform {\r\n constructor(private monkeyecxService: MonkeyEcxService, private sanitizer: DomSanitizer) {\r\n // not to do\r\n }\r\n\r\n transform(url: string): Observable<SafeUrl> {\r\n return this.monkeyecxService.get(url, { responseType: 'blob' }).pipe(\r\n map((val: any) => {\r\n return this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val));\r\n })\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxDisplayFirstName'\r\n})\r\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\r\n transform(name: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\r\n return MonkeyEcxUtils.cutFirstLastName(name);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxDisplayInitials'\r\n})\r\nexport class MonkeyEcxDisplayInitialsPipe implements PipeTransform {\r\n transform(name: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\r\n const first = MonkeyEcxUtils.cutFirstLastName(name, 'first');\r\n const second = MonkeyEcxUtils.cutFirstLastName(name, 'last');\r\n return `${first?.charAt(0)} ${second?.charAt(0)}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxConfigSupportPhone } from '../interfaces';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxDisplaySupportPhone'\r\n})\r\nexport class MonkeyEcxDisplaySupportPhone implements PipeTransform {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n transform(phones: MonkeyEcxConfigSupportPhone[]) {\r\n return phones.map((phone: MonkeyEcxConfigSupportPhone) => {\r\n const isOnline = this.isPhoneOnline(phone);\r\n\r\n return {\r\n ...phone,\r\n isOnline,\r\n color: isOnline ? '#00875A' : '#FA3838'\r\n };\r\n });\r\n }\r\n\r\n isPhoneOnline(phone: any): boolean {\r\n const start = moment.default().startOf('day').add(phone?.startHour, 'hours').format('YYYY-MM-DD HH:mm');\r\n const end = moment.default().startOf('day').add(phone?.endHour, 'hours').format('YYYY-MM-DD HH:mm');\r\n\r\n return moment.default().isSameOrAfter(start) && moment.default().isSameOrBefore(end);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatAddress',\r\n})\r\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\r\n transform({\r\n zipCode,\r\n address,\r\n neighborhood,\r\n city,\r\n state,\r\n }: {\r\n zipCode: string;\r\n address: string;\r\n neighborhood: string;\r\n city: string;\r\n state: string;\r\n country: string;\r\n }): string {\r\n return [address, neighborhood, zipCode, city, state]\r\n .filter((_: string) => {\r\n return _;\r\n })\r\n .join(', ');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatBeautifyJSON'\r\n})\r\nexport class MonkeyEcxFormatBeaufityJSONPipe implements PipeTransform {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n transform(value: any) {\r\n const jsonLine = /^( *)(\"[\\w]+\": )?(\"[^\"]*\"|[\\w.+-]*)?([,[{])?$/gm;\r\n\r\n const replacer = (match, pIndent, pKey, pVal, pEnd) => {\r\n const key = '<span class=\"json-key\" style=\"color: brown\">';\r\n const val = '<span class=\"json-value\" style=\"color: navy\">';\r\n const str = '<span class=\"json-string\" style=\"color: olive\">';\r\n let r = pIndent || '';\r\n if (pKey) {\r\n r = `${r + key + pKey.replace(/[\": ]/g, '')}</span>: `;\r\n }\r\n if (pVal) {\r\n r = `${r + (pVal[0] === '\"' ? str : val) + pVal}</span>`;\r\n }\r\n return r + (pEnd || '');\r\n };\r\n\r\n return JSON.stringify(value, null, 3)\r\n .replace(/&/g, '&amp;')\r\n .replace(/\\\\\"/g, '&quot;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(jsonLine, replacer);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxCookieStorageService {\r\n constructor(private cookieService: CookieService) {\r\n // not to do\r\n }\r\n\r\n public setCookie(name: string, value: any, environment: any) {\r\n this.removeCookie(name, environment);\r\n const { urlDomain } = environment;\r\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\r\n this.cookieService.set(name, value, undefined, '/', handledDomain, true, 'None');\r\n }\r\n\r\n public getCookie(name: string) {\r\n return this.cookieService.get(name);\r\n }\r\n\r\n public removeCookie(name: string, environment: any) {\r\n const { urlDomain } = environment;\r\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\r\n this.cookieService.delete(name, '/', handledDomain, true, 'None');\r\n }\r\n}\r\n","import { Pipe, PipeTransform, Injector } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { MonkeyEcxCookieStorageService } from '../services/storage/monkeyecx-cookie-storage.service';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatCurrency'\r\n})\r\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\r\n constructor(private injector: Injector, private currencyPipe: CurrencyPipe) {\r\n // not to do\r\n }\r\n\r\n transform(value: any, symbol = 'symbol') {\r\n const cookieStorageService = this.injector.get(MonkeyEcxCookieStorageService);\r\n const cookie = cookieStorageService.getCookie('monkey-app-locale');\r\n const i18n = JSON.parse(atob(cookie));\r\n const { currency } = i18n;\r\n return this.currencyPipe.transform(value, currency, symbol);\r\n }\r\n}\r\n","import { Injector, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateGroup',\r\n})\r\nexport class MonkeyEcxFormatDateGroupPipe implements PipeTransform {\r\n private lang = 'pt-BR';\r\n\r\n constructor(private injector: Injector) {\r\n const translateService = this.injector.get(TranslateService);\r\n this.lang = translateService.getDefaultLang();\r\n }\r\n\r\n private format(date: string | Date) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (date.toString()?.indexOf(':') <= -1) {\r\n stillUtc = date;\r\n }\r\n const formatFrom = 'YYYY/MM/DD';\r\n const fmt = moment.default(stillUtc, formatFrom).locale(this.lang);\r\n const dayFormated = fmt.format('DD/');\r\n const monthFormated = MonkeyEcxUtils.capitalize(fmt.format('MMMM'));\r\n const yearFormated = fmt.format('YYYY');\r\n return `${`${dayFormated}${monthFormated}`.substring(0, 6)}, ${yearFormated}`;\r\n }\r\n\r\n transform(obj: any): string {\r\n if (!obj || !obj?.start || !obj?.end) return '';\r\n const { start, end } = obj;\r\n const formatedStart = this.format(start);\r\n const formatedEnd = this.format(end);\r\n return `${formatedStart} - ${formatedEnd}`;\r\n }\r\n}\r\n","/* eslint-disable max-classes-per-file */\r\nimport { AbstractControl } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from './utils';\r\n\r\nconst moment: any = moment_;\r\n\r\nexport class DateValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n const dateFormat = 'MM-DD-YYYY';\r\n if (\r\n !moment\r\n .default(\r\n moment.default(control.value).format(dateFormat),\r\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\r\n true\r\n )\r\n .isValid()\r\n ) {\r\n return {\r\n invalidDate: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class DocumentValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\r\n return {\r\n invalidCpfCnpj: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class DocumentRutValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\r\n return {\r\n invalidRut: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class ZipCodeValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\r\n return {\r\n invalidZipCode: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class ComboValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value !== '0') return null;\r\n return {\r\n invalidCombo: true\r\n };\r\n }\r\n}\r\n\r\nexport class isTrueValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value !== false) return null;\r\n return {\r\n invalidTrue: true\r\n };\r\n }\r\n}\r\n\r\nexport class PasswordMatchValidation {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n const password = parent?.get('password')?.value;\r\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\r\n if (!password || !passwordConfirm) return null;\r\n if (password === passwordConfirm) return null;\r\n return {\r\n passwordsNotMatching: true\r\n };\r\n }\r\n}\r\n\r\nexport class UrlValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\r\n return {\r\n invalidUrl: true\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class CustomDatesStartValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n\r\n const valueStart = parent?.get('dateStart')?.value;\r\n const valueEnd = parent?.get('dateEnd')?.value;\r\n let dateStart: Date | null = null;\r\n let dateEnd: Date | null = null;\r\n if (valueStart) {\r\n dateStart = new Date(valueStart);\r\n }\r\n if (valueEnd) {\r\n dateEnd = new Date(valueEnd);\r\n }\r\n\r\n if (!dateStart || !dateEnd) return null;\r\n if (dateStart > dateEnd) {\r\n return {\r\n dateStartMustBeLessThanAnd: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class CustomDatesEndValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n\r\n const valueStart = parent?.get('dateStart')?.value;\r\n const valueEnd = parent?.get('dateEnd')?.value;\r\n let dateStart: Date | null = null;\r\n let dateEnd: Date | null = null;\r\n if (valueStart) {\r\n dateStart = new Date(valueStart);\r\n }\r\n if (valueEnd) {\r\n dateEnd = new Date(valueEnd);\r\n }\r\n\r\n if (!dateEnd || !dateStart) return null;\r\n if (dateEnd < dateStart) {\r\n return {\r\n dateEndMustBeGreaterThanStart: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class UnlockRegisterBuyerValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n\r\n if (control && control.value !== '#MONKEYBUYER') {\r\n return {\r\n invalidUnlockRegister: true\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class UnlockRegisterSponsorValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n\r\n if (control && control.value !== '#MONKEYSPONSOR') {\r\n return {\r\n invalidUnlockRegister: true\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class DateRangeValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) {\r\n return null;\r\n }\r\n\r\n const dates = control?.parent?.get('dates')?.value;\r\n\r\n if (\r\n dates &&\r\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||\r\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))\r\n ) {\r\n return {\r\n invalidDateRange: true\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import {\r\n MonkeyEcxRequestDownload,\r\n MonkeyEcxRequestItemQueue,\r\n MonkeyEcxRequestQueue,\r\n MonkeyEcxRequestUpload\r\n} from '../interfaces';\r\nimport * as Statics from './statics';\r\nimport { MonkeyEcxUtils } from './utils';\r\n\r\nexport function buildQueuePropertys(queue: MonkeyEcxRequestItemQueue): MonkeyEcxRequestQueue {\r\n const params: MonkeyEcxRequestQueue = {\r\n item: {\r\n ...queue,\r\n id: MonkeyEcxUtils.getRandomString(40)\r\n },\r\n status: Statics.MonkeyEcxQueueEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function buildDownloadPropertys(\r\n name: string,\r\n description?: string,\r\n size?: number\r\n): MonkeyEcxRequestDownload {\r\n const params: MonkeyEcxRequestDownload = {\r\n item: {\r\n name,\r\n description,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\r\n size,\r\n createdAt: new Date()\r\n },\r\n status: Statics.MonkeyEcxQueueEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function buildUploadPropertys(name: string, description?: string): MonkeyEcxRequestUpload {\r\n const params: MonkeyEcxRequestUpload = {\r\n item: {\r\n name,\r\n description,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`\r\n },\r\n status: Statics.MonkeyEcxUploadEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function hasMonkeyEcxServiceAndHandlingProperties(context: any): boolean {\r\n return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');\r\n}\r\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 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 }\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 }\n\n if (!valid) {\n return {\n [`invalid${MonkeyEcxUtils.capitalize(type.toLowerCase())}`]: true\n };\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 date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\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","/* eslint-disable object-curly-newline */\r\nimport { MonkeyEcxUtils } from './utils';\r\nimport * as ValidateUtils from './validate-utils';\r\nimport * as DecoratorsUtils from './decorators-utils';\r\nimport * as Statics from './statics';\r\n\r\nexport { MonkeyEcxUtils, ValidateUtils, DecoratorsUtils, Statics };\r\nexport * from './validators';\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateUnixTimelapse'\r\n})\r\nexport class MonkeyEcxFormatDateUnixTimelapsePipe implements PipeTransform {\r\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (!useUtc) stillUtc = moment.default(date).toDate();\r\n if (\r\n moment.default\r\n .utc(date)\r\n .toDate()\r\n .toLocaleString()\r\n .indexOf(':') <= -1\r\n ) {\r\n if (typeof date === 'string') {\r\n stillUtc = date;\r\n showTime = false;\r\n }\r\n }\r\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\r\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\r\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDocument',\r\n})\r\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\r\n transform(document: string, withType = false, country?: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) {\r\n return '';\r\n }\r\n\r\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType, country);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatNumber } from '@angular/common';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatNumber'\r\n})\r\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\r\n transform(number: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\r\n\r\n return formatNumber(Number(number), 'ptbr');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatPhone'\r\n})\r\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\r\n transform(phone: string): string {\r\n if (phone) {\r\n const value = `${phone || ''}`.replace(/\\D/g, '');\r\n\r\n let formated = '';\r\n\r\n if (value.length > 12) {\r\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\r\n } else if (value.length > 11) {\r\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\r\n } else if (value.length > 10) {\r\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (value.length > 9) {\r\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\r\n } else if (value.length > 5) {\r\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\r\n } else if (value.length > 1) {\r\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\r\n } else if (phone !== '') {\r\n formated = value.replace(/^(\\d*)/, '($1');\r\n }\r\n return formated;\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatSize'\r\n})\r\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\r\n transform(size: string): string {\r\n if (!size) return '0 B';\r\n const sizeNum = Number(size);\r\n return MonkeyEcxUtils.formatFileSize(sizeNum);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatTax',\r\n})\r\nexport class MonkeyEcxFormatTaxPipe implements PipeTransform {\r\n transform(tax: number, decimalDigits: number = 7) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tax)) return '0 %';\r\n const stringTax = tax.toString();\r\n const stringTaxLimited = stringTax.slice(0, stringTax.indexOf('.') + decimalDigits + 1);\r\n return `${Number(stringTaxLimited).toLocaleString('pt-br', {\r\n maximumFractionDigits: decimalDigits,\r\n })} %`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDocumentType'\r\n})\r\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\r\n transform(document: string, country?: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\r\n return MonkeyEcxUtils.getDocumentType(document, country);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatValue'\r\n})\r\nexport class MonkeyEcxFormatValue implements PipeTransform {\r\n transform(number: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\r\n return number;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatZipCode'\r\n})\r\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\r\n transform(zipCode: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\r\n return MonkeyEcxUtils.formatZipCode(zipCode);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxTextTruncate'\r\n})\r\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\r\n transform(text: string, maxLength: number = 25): string {\r\n const midChar = '...';\r\n if (!text) return midChar;\r\n if (text && text.length <= maxLength) return text;\r\n\r\n const left = Math.ceil(maxLength / 2);\r\n const right = text.length - left + 1;\r\n\r\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxTruncateQtd'\r\n})\r\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\r\n transform(number: number, threshold: number): string {\r\n return `${number > threshold ? `${threshold}+` : number}`;\r\n }\r\n}\r\n","import { CurrencyPipe } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MonkeyEcxBlobSecurePipe } from './monkeyecx-blob-secure';\r\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\r\nimport { MonkeyEcxDisplayInitialsPipe } from './monkeyecx-display-initials';\r\nimport { MonkeyEcxDisplaySupportPhone } from './monkeyecx-display-support-phone';\r\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\r\nimport { MonkeyEcxFormatBeaufityJSONPipe } from './monkeyecx-format-beautify-json';\r\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\r\nimport { MonkeyEcxFormatDateGroupPipe } from './monkeyecx-format-date-group';\r\nimport { MonkeyEcxFormatDateTimelapsePipe } from './monkeyecx-format-date-timelapse';\r\nimport { MonkeyEcxFormatDateUnixTimelapsePipe } from './monkeyecx-format-date-unix-timelapse';\r\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\r\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\r\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\r\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\r\nimport { MonkeyEcxFormatTaxPipe } from './monkeyecx-format-tax';\r\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\r\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\r\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\r\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\r\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyEcxBlobSecurePipe,\r\n MonkeyEcxDisplayFirstNamePipe,\r\n MonkeyEcxDisplayInitialsPipe,\r\n MonkeyEcxDisplaySupportPhone,\r\n MonkeyEcxFormatAddressPipe,\r\n MonkeyEcxFormatBeaufityJSONPipe,\r\n MonkeyEcxFormatCurrencyPipe,\r\n MonkeyEcxFormatDateGroupPipe,\r\n MonkeyEcxFormatDateTimelapsePipe,\r\n MonkeyEcxFormatDateUnixTimelapsePipe,\r\n MonkeyEcxFormatDocumentPipe,\r\n MonkeyEcxFormatDocumentTypePipe,\r\n MonkeyEcxFormatNumberPipe,\r\n MonkeyEcxFormatPhonePipe,\r\n MonkeyEcxFormatSizePipe,\r\n MonkeyEcxFormatTaxPipe,\r\n MonkeyEcxFormatValue,\r\n MonkeyEcxFormatZipCodePipe,\r\n MonkeyEcxTextTruncatePipe,\r\n MonkeyEcxTruncateQtdPipe\r\n ],\r\n exports: [\r\n MonkeyEcxBlobSecurePipe,\r\n MonkeyEcxDisplayFirstNamePipe,\r\n MonkeyEcxDisplayInitialsPipe,\r\n MonkeyEcxDisplaySupportPhone,\r\n MonkeyEcxFormatAddressPipe,\r\n MonkeyEcxFormatBeaufityJSONPipe,\r\n MonkeyEcxFormatCurrencyPipe,\r\n MonkeyEcxFormatDateGroupPipe,\r\n MonkeyEcxFormatDateTimelapsePipe,\r\n MonkeyEcxFormatDateUnixTimelapsePipe,\r\n MonkeyEcxFormatDocumentPipe,\r\n MonkeyEcxFormatDocumentTypePipe,\r\n MonkeyEcxFormatNumberPipe,\r\n MonkeyEcxFormatPhonePipe,\r\n MonkeyEcxFormatSizePipe,\r\n MonkeyEcxFormatTaxPipe,\r\n MonkeyEcxFormatValue,\r\n MonkeyEcxFormatZipCodePipe,\r\n MonkeyEcxTextTruncatePipe,\r\n MonkeyEcxTruncateQtdPipe\r\n ],\r\n providers: [CurrencyPipe]\r\n})\r\nexport class MonkeyEcxPipesModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule\r\n} from 'monkey-style-guide';\r\nimport { MonkeyEcxPipesModule } from '../../core/pipes/monkeyecx-pipes.module';\r\nimport { ClosedToMaintenanceComponent } from './closed-to-maintenance.component';\r\n\r\n@NgModule({\r\n declarations: [ClosedToMaintenanceComponent],\r\n imports: [\r\n CommonModule,\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule,\r\n MonkeyEcxPipesModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [ClosedToMaintenanceComponent]\r\n})\r\nexport class ClosedToMaintenanceModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router\r\n} from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxProgressBarService {\r\n private visible: BehaviorSubject<any> | null = null;\r\n\r\n constructor(private router: Router) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.visible = new BehaviorSubject(false);\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.show();\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return (\r\n event instanceof NavigationEnd ||\r\n event instanceof NavigationError ||\r\n event instanceof NavigationCancel\r\n );\r\n })\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n show() {\r\n this.visible?.next(true);\r\n }\r\n\r\n hide() {\r\n this.visible?.next(false);\r\n }\r\n\r\n visibleConfig(): Observable<any> | null {\r\n return this.visible?.asObservable() || null;\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyEcxProgressBarService } from './progress-bar.service';\r\n\r\n@Component({\r\n selector: 'monkeyecx-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MonkeyEcxProgressBarComponent implements OnInit {\r\n visible: boolean = false;\r\n\r\n constructor(private progressBarService: MonkeyEcxProgressBarService) {\r\n //not to do\r\n }\r\n\r\n ngOnInit() {\r\n this.progressBarService?.visibleConfig()?.subscribe((visible: boolean) => {\r\n this.visible = visible;\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MonkeyEcxProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [MonkeyEcxProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [MonkeyEcxProgressBarComponent]\r\n})\r\nexport class MonkeyEcxProgressBarModule {}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyModalConfig } from 'monkey-style-guide';\r\n\r\n@Component({\r\n selector: 'monkeyecx-version-changed',\r\n templateUrl: './version-changed.component.html',\r\n styleUrls: ['./version-changed.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VersionChangedComponent {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n onClose() {\r\n document.location.reload();\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\r\n <span class=\"h2\">\r\n {{ 'SCREENS.VERSION-CHANGED.TITLE' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-1' | translate }}\r\n </span>\r\n <span class=\"information mt-3\">\r\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-2' | translate }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\r\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'SCREENS.VERSION-CHANGED.BUTTONS.UPDATE-VERSION' | translate }}\r\n </monkey-button>\r\n </div>\r\n</monkey-modal>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule\r\n} from 'monkey-style-guide';\r\nimport { VersionChangedComponent } from './version-changed.component';\r\n\r\n@NgModule({\r\n declarations: [VersionChangedComponent],\r\n imports: [\r\n CommonModule,\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [VersionChangedComponent]\r\n})\r\nexport class VersionChangedModule {}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MonkeyModalConfig, MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\n\r\n@Component({\r\n selector: 'monkeyecx-currency-config',\r\n templateUrl: './currency-config.component.html',\r\n styleUrls: ['./currency-config.component.scss']\r\n})\r\nexport class CurrencyConfigComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n _currency = 'BRL';\r\n\r\n _currencies = ['BRL'];\r\n\r\n private callback: Function = () => {};\r\n\r\n constructor(\r\n private modalService: MonkeyStyleGuideModalService\r\n ) {\r\n // not to do\r\n }\r\n\r\n ngOnInit() {\r\n const { config } = this;\r\n this._currency = config?.data?.currency;\r\n this._currencies = config?.data?.currencies;\r\n this.callback = config?.data?.callback;\r\n }\r\n\r\n onClose() {\r\n this.modalService.close(this.modalRef);\r\n this.callback?.(this._currency);\r\n }\r\n\r\n onHandleChangeCurrency(currency: string) {\r\n this._currency = currency;\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"alert-body\">\r\n <span class=\"title\">\r\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.TITLE' | translate }}\r\n </span>\r\n <span class=\"message\">\r\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.SUB-TITLE' | translate }}\r\n </span>\r\n <monkey-radiobutton [value]=\"_currency\"\r\n (onChange)=\"onHandleChangeCurrency($event)\">\r\n <monkey-option \r\n [label]=\"'CURRENCIES.'+currency | translate\"\r\n [value]=\"currency\"\r\n *ngFor=\"let currency of _currencies\">\r\n </monkey-option>\r\n </monkey-radiobutton>\r\n <span class=\"info\">\r\n {{ 'MECX-ALERTS.CONFIG.CURRENCY.INFO' | translate }}\r\n </span>\r\n </div>\r\n <div class=\"alert-footer\">\r\n <monkey-button type=\"tertiary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'BUTTONS.CONFIRM' | translate }}\r\n </monkey-button>\r\n </div>\r\n</monkey-modal>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyButtonModule, MonkeyModalModule, MonkeyOptionModule, MonkeyRadioButtonModule } from 'monkey-style-guide';\r\nimport { CurrencyConfigComponent } from './currency-config.component';\r\n\r\n@NgModule({\r\n declarations: [CurrencyConfigComponent],\r\n imports: [\r\n CommonModule,\r\n MonkeyButtonModule,\r\n MonkeyRadioButtonModule,\r\n MonkeyOptionModule,\r\n MonkeyModalModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [CurrencyConfigComponent]\r\n})\r\nexport class CurrencyConfigModule {}\r\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\nexport function MonkeyEcxCoreCharts(render = true) {\r\n return (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor => {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function(...args: any[]) {\r\n const context = this;\r\n if (render) {\r\n const scriptsLoaded = Array.from(document.scripts);\r\n scriptsLoaded.forEach((script: any) => {\r\n const { src } = script;\r\n if (src.search('www.gstatic.com/charts') > 0) {\r\n document.getElementsByTagName('head')[0].removeChild(script);\r\n }\r\n });\r\n\r\n const node = document.createElement('script');\r\n node.src = 'https://www.gstatic.com/charts/loader.js';\r\n node.type = 'text/javascript';\r\n node.async = true;\r\n node.id = 'monkeyecx-charts-settings';\r\n node.onload = () => {\r\n method.apply(context, args);\r\n };\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n } else {\r\n const scriptsLoaded = Array.from(document.scripts);\r\n scriptsLoaded.forEach((script: any) => {\r\n const { src } = script;\r\n if (src.search('www.gstatic.com/charts') > 0) {\r\n document.getElementsByTagName('head')[0].removeChild(script);\r\n }\r\n });\r\n\r\n method.apply(context, args);\r\n }\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable no-console */\r\n/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nexport function MonkeyEcxCoreServiceConstructor() {\r\n return (target: any) => {\r\n Object.entries(target.prototype).forEach(([key, value]) => {\r\n const method = target.prototype[key];\r\n if (key !== 'constructor') {\r\n target.prototype[key] = function (...args: any[]) {\r\n const context = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context.monkeyecxService.monkeyecxHandlingService.clearAll();\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n }\r\n });\r\n return target;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreLog(tp: string) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const params = args\r\n .map((a: any) => {\r\n return JSON.stringify(a);\r\n })\r\n .join();\r\n const result = method.apply(this, args);\r\n const r = JSON.stringify(result);\r\n console.log(`Call: ${propertyName}(${params}) => ${r}`);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreClearDecorators() {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(params);\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreServicePaged(params: MonkeyEcxServiceCredentials) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n const credentials =\r\n context?.monkeyecxService?.monkeyecxHandlingService?.getMonkeyEcxServiceCredentials();\r\n let requestPaged = null;\r\n if (credentials) {\r\n requestPaged = credentials.requestPaged;\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials({\r\n ...params,\r\n ...(requestPaged || {}),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreServiceQueue(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService.monkeyecxHandlingService.setMonkeyEcxRequestQueue(\r\n DecoratorsUtils.buildQueuePropertys({\r\n name,\r\n description,\r\n })\r\n );\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\n\r\nexport function MonkeyEcxServiceDownload(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestDownload({\r\n ...DecoratorsUtils.buildDownloadPropertys(name, description),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\n\r\nexport function MonkeyEcxServiceUpload(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestUpload({\r\n ...DecoratorsUtils.buildUploadPropertys(name, description),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","import { Directive, HostListener, Output, HostBinding, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[monkeyecxDragDrop]',\r\n})\r\nexport class MonkeyEcxDragDropDirective {\r\n @Output() onFileDropped: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @HostBinding('style.background-color') private background = '#f5fcff';\r\n\r\n @HostBinding('style.opacity') private opacity = '1';\r\n\r\n @HostListener('dragover', ['$event'])\r\n onDragOver(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#9ecbec';\r\n this.opacity = '0.8';\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#f5fcff';\r\n this.opacity = '1';\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public ondrop(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#f5fcff';\r\n this.opacity = '1';\r\n const { files } = evt?.dataTransfer;\r\n if (files.length > 0) {\r\n this.onFileDropped.emit(files);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit, Injector } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFormatCurrency]',\r\n providers: [CurrencyPipe]\r\n})\r\nexport class MonkeyEcxFormatCurrency implements OnInit {\r\n private el: HTMLInputElement;\r\n\r\n private currency: any;\r\n\r\n private currencyCode: string = 'BRL';\r\n\r\n private currentLocale: string = 'pt-BR';\r\n\r\n constructor(private elementRef: ElementRef, private injector: Injector) {\r\n this.el = this.elementRef.nativeElement;\r\n this.currency = this.injector.get(CurrencyPipe);\r\n\r\n const translateService = this.injector.get(TranslateService);\r\n translateService.get('MONKEY-CURRENCY-CODE').subscribe((_: any) => {\r\n this.currencyCode = _;\r\n this.currentLocale = translateService.getDefaultLang();\r\n });\r\n }\r\n\r\n private handle(value: any): string {\r\n const { currencyCode, currentLocale } = this;\r\n const newValue = MonkeyEcxUtils.handleOnlyNumbers(value);\r\n return this.currency.transform(newValue / 100, currencyCode, 'symbol', '', currentLocale);\r\n }\r\n\r\n ngOnInit() {\r\n this.el.value = this.handle(this.el.value);\r\n }\r\n\r\n @HostListener('input', ['$event.target.value'])\r\n onInput(value: any) {\r\n this.el.value = this.handle(value);\r\n }\r\n}\r\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2, Self } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFormatUpper]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => {\r\n // eslint-disable-next-line no-use-before-define\r\n return MonkeyEcxFormatUpper;\r\n }),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyEcxFormatUpper implements ControlValueAccessor {\r\n _onChange?: (_: any) => void;\r\n\r\n _touched?: () => void;\r\n\r\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) {\r\n // not to do\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyDown(evt: KeyboardEvent) {\r\n const value = this._el.nativeElement.value.toUpperCase();\r\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n this._onChange?.(value);\r\n evt.preventDefault();\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur() {\r\n this._touched?.();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._touched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxOnlyAlphaNumeric]'\r\n})\r\nexport class MonkeyEcxOnlyAlphaNumericDirective {\r\n constructor(private elementRef: ElementRef) {\r\n // not to do\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: Event) {\r\n const initalValue = this.elementRef.nativeElement.value;\r\n\r\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyAlphaNumeric(initalValue);\r\n if (initalValue !== this.elementRef.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxOnlyNumbers]'\r\n})\r\nexport class MonkeyEcxOnlyNumbersDirective {\r\n constructor(private elementRef: ElementRef) {\r\n // not to do\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: Event) {\r\n const initalValue = this.elementRef.nativeElement.value;\r\n\r\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyNumbers(initalValue);\r\n if (initalValue !== this.elementRef.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Directive, forwardRef, InjectionToken, Input } from '@angular/core';\r\n\r\nexport const POPOVER_OPTIONS = new InjectionToken('POPOVER_OPTIONS');\r\n\r\nexport type PopoverDir =\r\n | 'rtl'\r\n | 'ltr'\r\n | 'trtl'\r\n | 'tltr'\r\n | 'ct'\r\n | 'cc'\r\n | 'cr'\r\n | 'rt'\r\n | 'rb'\r\n | 'lt'\r\n | 'lb';\r\n\r\nexport interface MonkeyEcxPopoverOptions {\r\n dir?: PopoverDir;\r\n minwidth?: boolean;\r\n backdrop?: boolean;\r\n contextmenu?: boolean;\r\n}\r\n\r\n@Directive({\r\n selector: '[monkeyecxPopoverOptions]',\r\n providers: [\r\n {\r\n provide: POPOVER_OPTIONS,\r\n useExisting: forwardRef(() => {\r\n // eslint-disable-next-line no-use-before-define\r\n return MonkeyEcxPopoverOptionsDirective;\r\n })\r\n }\r\n ]\r\n})\r\nexport class MonkeyEcxPopoverOptionsDirective implements MonkeyEcxPopoverOptions {\r\n @Input('monkeyecxPopoverOptions')\r\n set options(options: MonkeyEcxPopoverOptions) {\r\n Object.entries(options).forEach(([k, v]) => {\r\n this[k] = v;\r\n });\r\n }\r\n\r\n minwidth?: boolean;\r\n\r\n dir?: PopoverDir;\r\n\r\n backdrop?: boolean;\r\n\r\n contextmenu?: boolean;\r\n}\r\n","import {\r\n ConnectedPosition,\r\n FlexibleConnectedPositionStrategy, FlexibleConnectedPositionStrategyOrigin,\r\n Overlay,\r\n OverlayPositionBuilder,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n Optional,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { POPOVER_OPTIONS } from './monkeyecx-popover-options.directive';\r\nimport type { PopoverDir, MonkeyEcxPopoverOptions } from './monkeyecx-popover-options.directive';\r\n\r\n@Directive({\r\n selector: '[monkeyecxPopover]'\r\n})\r\nexport class MonkeyEcxPopoverDirective implements OnDestroy {\r\n private _popover!: boolean;\r\n\r\n get popover() {\r\n return this._popover;\r\n }\r\n\r\n @Input('monkeyecxPopover')\r\n set popover(show: boolean) {\r\n this._popover = show;\r\n if (show) {\r\n this.createPopover();\r\n } else if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n }\r\n }\r\n\r\n @Input('monkeyecxPopoverClosed') closed!: (e?: MouseEvent) => void;\r\n\r\n private _target!: HTMLElement;\r\n\r\n get target() {\r\n return this._target;\r\n }\r\n\r\n @Input('monkeyecxPopoverTarget')\r\n set target(target: HTMLElement) {\r\n this._target = target;\r\n }\r\n\r\n @Input('monkeyecxPopoverMinwidth') minwidth = false;\r\n\r\n @Input('monkeyecxPopoverBackdrop') backdrop = true;\r\n\r\n @Input('monkeyecxPopoverWatch') watch = false;\r\n\r\n @Input('monkeyecxPopoverDir') dir: PopoverDir = 'ltr';\r\n\r\n @Input('monkeyecxPopoverContextmenu') contextmenu = false;\r\n\r\n @Input('monkeyecxPopoverHeight') height!: number | string;\r\n\r\n private overlayRef!: OverlayRef;\r\n\r\n private positionStrategy!: FlexibleConnectedPositionStrategy;\r\n\r\n private templatePortal!: TemplatePortal;\r\n\r\n private subs = new Subscription();\r\n\r\n private eventsSubs = new Subscription();\r\n\r\n private resizeObserver: any;\r\n\r\n constructor(\r\n private tpl: TemplateRef<any>,\r\n private vcr: ViewContainerRef,\r\n private el: ElementRef,\r\n private zone: NgZone,\r\n private _viewContainerRef: ViewContainerRef,\r\n private _cd: ChangeDetectorRef,\r\n private overlay: Overlay,\r\n private overlayPositionBuilder: OverlayPositionBuilder,\r\n private router: Router,\r\n @Inject(POPOVER_OPTIONS) @Optional() private options: MonkeyEcxPopoverOptions\r\n ) {\r\n this.eventsSubs = this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.onHandleClose();\r\n });\r\n }\r\n\r\n private onHandleClose(e?: MouseEvent) {\r\n this.popover = false;\r\n this.subs.unsubscribe();\r\n this.resizeObserver?.disconnect();\r\n this.zone.run(() => {\r\n if (this.closed) {\r\n this.closed(e);\r\n }\r\n });\r\n }\r\n\r\n getDirPositions(dir?: PopoverDir): ConnectedPosition[] {\r\n const revert = {\r\n start: 'end', end: 'start', bottom: 'top', top: 'bottom', center: 'center'\r\n };\r\n const centerY = (pos: any): ConnectedPosition => {\r\n return {\r\n originX: 'center', originY: pos, overlayX: 'center', overlayY: revert[pos]\r\n };\r\n };\r\n const centerX = (pos: any): ConnectedPosition => {\r\n return {\r\n originX: revert[pos], originY: 'center', overlayX: pos, overlayY: 'center'\r\n };\r\n };\r\n const ltr = (axis: any): ConnectedPosition => {\r\n return {\r\n originX: 'start', originY: axis, overlayX: 'start', overlayY: revert[axis]\r\n };\r\n };\r\n const rtl = (axis: any): ConnectedPosition => {\r\n return {\r\n originX: 'end', originY: axis, overlayX: 'end', overlayY: revert[axis]\r\n };\r\n };\r\n const side = (axis: any, axis2: any): ConnectedPosition => {\r\n return {\r\n originX: axis, originY: axis2, overlayX: revert[axis], overlayY: axis2\r\n };\r\n };\r\n\r\n const cmp = dir || this.options?.dir || this.dir;\r\n if (cmp === 'ct') {\r\n return [centerY('top'), centerY('bottom'), centerX('start'), centerX('end')];\r\n }\r\n if (cmp === 'cr') {\r\n return [centerX('end'), centerX('start'), centerY('top'), centerY('bottom')];\r\n }\r\n if (cmp === 'cc') {\r\n return [centerX('center')];\r\n }\r\n if (cmp === 'ltr') {\r\n return [ltr('bottom'), ltr('top')];\r\n }\r\n if (cmp === 'rtl') {\r\n return [rtl('bottom'), rtl('top')];\r\n }\r\n if (cmp === 'tltr') {\r\n return [ltr('top'), ltr('bottom')];\r\n }\r\n if (cmp === 'trtl') {\r\n return [rtl('top'), rtl('bottom')];\r\n }\r\n if (cmp === 'rt') {\r\n return [side('end', 'top'), side('end', 'bottom'), ltr('top')];\r\n }\r\n if (cmp === 'rb') {\r\n return [side('end', 'bottom'), side('end', 'top'), ltr('bottom'), rtl('bottom')];\r\n }\r\n if (cmp === 'lt') {\r\n return [side('start', 'top'), side('start', 'bottom'), rtl('top')];\r\n }\r\n if (cmp === 'lb') {\r\n return [side('start', 'bottom'), side('start', 'top'), rtl('bottom')];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n createPopover(\r\n origin?: FlexibleConnectedPositionStrategyOrigin,\r\n options?: MonkeyEcxPopoverOptions\r\n ) {\r\n this.templatePortal = new TemplatePortal(this.tpl, this._viewContainerRef);\r\n this.positionStrategy = this.overlayPositionBuilder\r\n .flexibleConnectedTo(origin || this.target)\r\n .withPush(true)\r\n .withGrowAfterOpen(true)\r\n .withPositions(this.getDirPositions(options?.dir));\r\n\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy: this.positionStrategy,\r\n disposeOnNavigation: true,\r\n direction: 'ltr',\r\n hasBackdrop: this.backdrop,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition({\r\n }),\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n width: (this.options?.minwidth || this.minwidth) ? (this.target.offsetWidth - 2) : undefined,\r\n maxHeight: '95%',\r\n height: this.height\r\n });\r\n\r\n this.subs = this.overlayRef.backdropClick().subscribe((e) => {\r\n this.onHandleClose(e);\r\n });\r\n\r\n const attached = this.overlayRef.attach(this.templatePortal);\r\n\r\n if (this.watch) {\r\n try {\r\n if ('ResizeObserver' in window) {\r\n this.resizeObserver = new ResizeObserver(([{ contentRect }]) => {\r\n this.overlayRef.updatePosition();\r\n })\r\n .observe(attached.rootNodes[0]);\r\n }\r\n } catch (e) {\r\n // not to do\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.popover = false;\r\n this.subs.unsubscribe();\r\n this.eventsSubs.unsubscribe();\r\n }\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { MonkeyEcxStorage } from '../../core/interfaces';\r\n\r\nconst clear = createAction('[MECX Core Storage] Clear All');\r\nconst create = createAction('[MECX Core Storage] Create', props<{ data: MonkeyEcxStorage[] }>());\r\nconst deleteOne = createAction(\r\n '[MECX Core Storage] Delete One',\r\n props<{ data: MonkeyEcxStorage }>()\r\n);\r\nconst updateControl = createAction('[MECX Core Storage] Update Control', props<{ data: any }>());\r\nconst updateOne = createAction(\r\n '[MECX Core Storage] Update One',\r\n props<{ data: MonkeyEcxStorage }>()\r\n);\r\n\r\nexport { clear, create, deleteOne, updateControl, updateOne };\r\n","import { ActionReducer, INIT } from '@ngrx/store';\r\n\r\nexport const seederReducer = (keys: string[]) => {\r\n return (reducer: ActionReducer<any>): ActionReducer<any> => {\r\n return (state, action) => {\r\n const handledState = reducer(state, action);\r\n if (action.type === INIT) {\r\n let data: any = null;\r\n try {\r\n const storage = localStorage.getItem('mecx-store');\r\n const handled = atob(storage || '');\r\n if (handled !== '{}') {\r\n const storageValue = JSON.parse(atob(storage || ''));\r\n keys.forEach((key: string) => {\r\n let value: any = null;\r\n if (storageValue?.[key]) {\r\n value = {\r\n [key]: storageValue?.[key]\r\n };\r\n }\r\n\r\n data = {\r\n ...data,\r\n ...value\r\n };\r\n });\r\n }\r\n\r\n return data;\r\n } catch (e) {\r\n localStorage.removeItem('mecx-store');\r\n return handledState;\r\n }\r\n }\r\n\r\n let data: any = null;\r\n try {\r\n keys.forEach((key: string) => {\r\n data = {\r\n ...data,\r\n [key]: handledState[key]\r\n };\r\n });\r\n const handled = JSON.stringify(data);\r\n if (handled !== '{}') {\r\n localStorage.setItem('mecx-store', btoa(JSON.stringify(data)));\r\n }\r\n } catch (e) {\r\n localStorage.removeItem('mecx-store');\r\n }\r\n\r\n return handledState;\r\n };\r\n };\r\n};\r\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\r\nimport { createReducer, on } from '@ngrx/store';\r\nimport { MonkeyEcxStorage } from '../../core';\r\nimport * as actions from '../actions';\r\n\r\nexport const featureKey = 'mecx-core-storage';\r\n\r\nexport interface State extends EntityState<MonkeyEcxStorage> {\r\n control: {\r\n isLoading: boolean;\r\n };\r\n error: any;\r\n}\r\n\r\nexport const adapter: EntityAdapter<MonkeyEcxStorage> = createEntityAdapter<MonkeyEcxStorage>({\r\n selectId: (item: MonkeyEcxStorage) => {\r\n return item.username;\r\n }\r\n});\r\n\r\nexport const initialState: State = adapter.getInitialState({\r\n control: {\r\n isLoading: false\r\n },\r\n error: null\r\n});\r\n\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(actions.monkeyecxStorage.clear, (state: any) => {\r\n return adapter.removeAll(state);\r\n }),\r\n on(actions.monkeyecxStorage.create, (state, action) => {\r\n return adapter.upsertMany(action.data, {\r\n ...state\r\n });\r\n }),\r\n on(actions.monkeyecxStorage.updateControl, (state, action) => {\r\n return {\r\n ...state,\r\n control: {\r\n ...state.control,\r\n ...action.data\r\n }\r\n };\r\n }),\r\n on(actions.monkeyecxStorage.updateOne, (state, action) => {\r\n const { username } = action.data;\r\n return adapter.upsertOne(\r\n { ...action.data, username },\r\n {\r\n ...state\r\n }\r\n );\r\n }),\r\n on(actions.monkeyecxStorage.deleteOne, (state, action) => {\r\n const { username } = action.data;\r\n return adapter.removeOne(username, state);\r\n })\r\n);\r\n\r\nexport const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors();\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { MonkeyEcxStorage } from '../../core';\r\nimport * as reducers from '../reducers';\r\n\r\ndeclare type State = reducers.fromMonkeyecxStorage.State;\r\n\r\nexport const selectState = createFeatureSelector<reducers.fromMonkeyecxStorage.State>(\r\n reducers.fromMonkeyecxStorage.featureKey\r\n);\r\n\r\nexport const selectAll = createSelector(selectState, reducers.fromMonkeyecxStorage.selectAll);\r\n\r\nexport const select = (props: { username: string }) => {\r\n return createSelector(\r\n selectAll,\r\n (entities: MonkeyEcxStorage[]): MonkeyEcxStorage | undefined => {\r\n return entities.find((_: MonkeyEcxStorage) => {\r\n return _.username === props.username;\r\n });\r\n }\r\n );\r\n};\r\n\r\nexport const selectControl = () => {\r\n return createSelector(\r\n selectState,\r\n (state: State): any => {\r\n return state.control;\r\n }\r\n );\r\n};\r\n","export class Link {\r\n href: string;\r\n\r\n type: string;\r\n\r\n profile: string;\r\n\r\n templated: boolean;\r\n\r\n constructor(data?: any) {\r\n this.href = data?.href;\r\n this.type = data?.type;\r\n this.profile = data?.profile;\r\n this.templated = data?.templated;\r\n }\r\n}\r\n\r\nexport class MonkeyEcxModel {\r\n _links: any;\r\n\r\n public getAction(\r\n type: string,\r\n replaceOptions?: {\r\n from: string;\r\n to: string;\r\n }\r\n ): Link | null {\r\n const { _links } = this;\r\n if (!_links) return null;\r\n let link: Link = _links[type.toLowerCase()];\r\n link = new Link(link);\r\n if (link && replaceOptions && link?.templated) {\r\n const { from, to } = replaceOptions;\r\n link = new Link({\r\n ...link,\r\n href: `${link.href}`.replace(from, to)\r\n });\r\n }\r\n return link;\r\n }\r\n}\r\n","import { MonkeyEcxModel } from './monkeyecx-model';\r\n\r\nexport class MonkeyEcxLinksModel extends MonkeyEcxModel {\r\n constructor(data?: any) {\r\n super();\r\n\r\n this._links = data?._links;\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { MonkeyEcxRequestPaged } from '../../interfaces/monkeyecx-request-paged';\r\nimport { MonkeyEcxResponseLinks } from '../../interfaces/monkeyecx-response-links';\r\n\r\nexport class MonkeyEcxRequestPagedHandling {\r\n private url?: string;\r\n\r\n private pagedParams: MonkeyEcxRequestPaged;\r\n\r\n private links: MonkeyEcxResponseLinks;\r\n\r\n private samePage = false;\r\n\r\n constructor(\r\n url?: string,\r\n pagedParams?: MonkeyEcxRequestPaged,\r\n links?: any,\r\n samePage: boolean = false\r\n ) {\r\n this.url = url;\r\n this.pagedParams = pagedParams || {\r\n page: {},\r\n };\r\n this.links = links;\r\n this.samePage = samePage;\r\n }\r\n\r\n private handlePagedValuesFromApi(url: string = '') {\r\n if (url.search('\\\\?') < 0) return url;\r\n const params = url.substring(url.search('\\\\?') + 1, url.length);\r\n url = url.substring(0, url.search('\\\\?'));\r\n return `${url}?${new HttpParams({\r\n fromString: params,\r\n })\r\n .delete('size')\r\n .delete('page')\r\n .toString()}`;\r\n }\r\n\r\n private getUrlParams(url: string): string {\r\n const { pagedParams } = this;\r\n const { number, size } = pagedParams?.page || {};\r\n const hasInitialQueryParams = url.search('\\\\?') > 0;\r\n return `${!hasInitialQueryParams ? '?' : '&'}page=${number || 0}&size=${size || 20}`;\r\n }\r\n\r\n public getRequestWithPagedParams(): string {\r\n const { url, links, samePage } = this;\r\n if (samePage && links.self) {\r\n return links.self.href;\r\n }\r\n if (links && links.next) {\r\n return links.next.href;\r\n }\r\n const handled = this.handlePagedValuesFromApi(url);\r\n return `${handled}${this.getUrlParams(handled)}`;\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n NavigationStart,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport {\r\n MonkeyEcxCompanyPendenciesValidated,\r\n MonkeyEcxConfig,\r\n MonkeyEcxCountrySecurity,\r\n MonkeyEcxErrorResponse,\r\n MonkeyEcxHandledErrorResponse,\r\n MonkeyEcxRequestPaged,\r\n MonkeyEcxRequestSchedule,\r\n MonkeyEcxResponseLinks,\r\n MonkeyEcxResponsePaged,\r\n MonkeyEcxSavedState,\r\n MonkeyEcxTranslateOptions\r\n} from '../../interfaces';\r\nimport { MonkeyEcxModel } from '../../model';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxFeatureToggleService } from '../config/monkeyecx-feature-toggle.service';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxPaginationService } from '../pagination';\r\nimport { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';\r\nimport { MonkeyEcxRequestQueueHandlingService } from '../request-queue/monkeyecx-request-queue-handling.service';\r\nimport { MonkeyEcxRequestScheduleService } from '../schedules/monkeyecx-request-schedule.service';\r\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\r\n\r\nclass LinksModel extends MonkeyEcxModel {\r\n constructor(data?: any) {\r\n super();\r\n this._links = data?._links;\r\n }\r\n}\r\n\r\nexport class MonkeyEcxCommonsService {\r\n private flagValidator = true;\r\n\r\n private destroyed = false;\r\n\r\n __data$: Observable<any> | null = null;\r\n\r\n __pagination$: Observable<any> | null = null;\r\n\r\n __control$: Observable<any> | null = null;\r\n\r\n __page$: Observable<any> | null = null;\r\n\r\n __data: any | any[];\r\n\r\n __savedState: MonkeyEcxSavedState | null = null;\r\n\r\n __params: any | any[];\r\n\r\n __error: MonkeyEcxErrorResponse | null = null;\r\n\r\n __handledError: MonkeyEcxHandledErrorResponse | null = null;\r\n\r\n __page: MonkeyEcxResponsePaged | null = null;\r\n\r\n __links: MonkeyEcxResponseLinks | null = null;\r\n\r\n __search: any;\r\n\r\n __requestPaged: MonkeyEcxRequestPaged | null = null;\r\n\r\n __onSearchChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onLoadingInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n __onUploadInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n __onDataDeleted$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onErrorChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onGovernmentIdDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onZipCodeDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __oni18nDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onDoSearch$: BehaviorSubject<MonkeyEcxRequestPaged> = new BehaviorSubject({});\r\n\r\n __schedule: MonkeyEcxRequestSchedule | null = null;\r\n\r\n __i18n: any;\r\n\r\n __callbackPagination: Function = () => {\r\n // eslint-disable-next-line no-console\r\n return console.error('Method callbackPagination needs to be declared');\r\n };\r\n\r\n __paginationOptions: {\r\n service: MonkeyEcxPaginationService;\r\n callback: Function;\r\n name?: string;\r\n } | undefined;\r\n\r\n __isAbleToDoPagination = {};\r\n\r\n constructor(\r\n public monkeyecxService?: MonkeyEcxService,\r\n public tokenStorage?: MonkeyEcxTokenStorageService,\r\n public otherArgs?: {\r\n router?: Router;\r\n schedule?: {\r\n service: MonkeyEcxRequestScheduleService;\r\n options?: {\r\n clearOnChangeRoute?: boolean;\r\n };\r\n };\r\n queue?: {\r\n service: MonkeyEcxRequestQueueHandlingService;\r\n };\r\n }\r\n ) {\r\n this.handleInit();\r\n }\r\n\r\n private handleInit() {\r\n if (this.otherArgs?.router) {\r\n const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {\r\n clearOnChangeRoute: false\r\n };\r\n\r\n this.otherArgs.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n }),\r\n takeWhile(() => {\r\n return !this.destroyed;\r\n })\r\n )\r\n .subscribe(() => {\r\n if (this.__schedule && clearOnChangeRoute) {\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private navigateToPendencyPage(\r\n arg: MonkeyEcxCompanyPendenciesValidated,\r\n companyType?: string,\r\n router?: Router\r\n ) {\r\n let route = '/app';\r\n\r\n if (companyType) {\r\n route = `${route}/${companyType}/pages`;\r\n } else {\r\n route = `${route}/user/profile/pages`;\r\n }\r\n\r\n if (!router) {\r\n // eslint-disable-next-line no-console\r\n console.error('Router must be declared');\r\n } else {\r\n router.navigate([`${route}/company-pendency`.toLowerCase()], {\r\n state: {\r\n pendencyData: arg\r\n }\r\n });\r\n }\r\n }\r\n\r\n private allowedSecurityAccessByPendency(args: any): MonkeyEcxCompanyPendenciesValidated {\r\n if (!args) {\r\n return {\r\n hasPendencies: false\r\n };\r\n }\r\n const { service, type } = args;\r\n return service.hasPendencies(type);\r\n }\r\n\r\n private allowedSecurityAccessByFeature(args: any): boolean {\r\n if (!args) {\r\n return true;\r\n }\r\n const { config, feature } = args;\r\n try {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\r\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\r\n return true;\r\n }\r\n return !config?.program?.settings?.[feature];\r\n } catch (e) {\r\n // not to do\r\n }\r\n return true;\r\n }\r\n\r\n private allowedSecurityAccessByCountry(arg?: MonkeyEcxCountrySecurity): boolean {\r\n if (!arg) return true;\r\n return arg.country === arg.envCountry;\r\n }\r\n\r\n private handlePaginationOptions() {\r\n const { __paginationOptions } = this;\r\n if (__paginationOptions) {\r\n const { service, callback, name } = __paginationOptions;\r\n service?.setCallback((type: string) => {\r\n this.doPaginationv2(type, callback);\r\n }, name || 'main');\r\n }\r\n }\r\n\r\n setPage(requestPaged: MonkeyEcxRequestPaged) {\r\n this.__requestPaged = {\r\n ...this.__requestPaged,\r\n ...requestPaged\r\n };\r\n return this;\r\n }\r\n\r\n nextPage(): boolean {\r\n if (this.__links) {\r\n return !!this.__links?.next;\r\n }\r\n if (!this.__requestPaged) return false;\r\n const { page } = this.__requestPaged as any;\r\n const { number, totalPages } = page;\r\n if (number < totalPages) {\r\n this.__requestPaged = {\r\n ...this.__requestPaged,\r\n page: {\r\n ...page,\r\n number: number + 1\r\n }\r\n };\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getEmbeddedData(data: any, field: string): any[] | any {\r\n const { _embedded } = data;\r\n return _embedded ? _embedded[field] : null;\r\n }\r\n\r\n getNormalizedUrl(url: string, samePage = false): string {\r\n const { __requestPaged, __links } = this;\r\n return new MonkeyEcxRequestPagedHandling(\r\n url,\r\n __requestPaged || {},\r\n __links,\r\n samePage\r\n ).getRequestWithPagedParams();\r\n }\r\n\r\n clear(clearData: boolean) {\r\n if (clearData) {\r\n this.__data = null;\r\n this.__requestPaged = null;\r\n this.__params = null;\r\n this.__page = null;\r\n this.__links = null;\r\n\r\n if (this.__schedule) {\r\n const { queue } = this.__schedule;\r\n if (queue) {\r\n this.otherArgs?.queue?.service?.removeQueueItem(queue);\r\n }\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n }\r\n this.__error = null;\r\n this.__handledError = null;\r\n this.flagValidator = false;\r\n this.destroyed = true;\r\n }\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot | null,\r\n state: RouterStateSnapshot | null,\r\n otherArgs?: {\r\n companyType?: string,\r\n callbackMain: Function;\r\n router?: Router;\r\n callbackPagination?: Function;\r\n translateOptions?: MonkeyEcxTranslateOptions;\r\n feature?: {\r\n service: MonkeyEcxFeatureToggleService;\r\n flag: string;\r\n };\r\n featureByProgram?: {\r\n config: MonkeyEcxConfig;\r\n feature: string;\r\n };\r\n countrySecurity?: MonkeyEcxCountrySecurity;\r\n pendency?: {\r\n service: {\r\n hasPendencies: Function;\r\n };\r\n type: string;\r\n };\r\n paginationOptions?: {\r\n service: MonkeyEcxPaginationService,\r\n callback: Function,\r\n name?: string\r\n }\r\n }\r\n ) {\r\n if (JSON.stringify(route?.queryParams) === '{}') {\r\n this.__data = null;\r\n this.__page = null;\r\n }\r\n\r\n this.__requestPaged = null;\r\n this.flagValidator = true;\r\n\r\n const pend = this.allowedSecurityAccessByPendency(otherArgs?.pendency);\r\n const allowedByProgram = this.allowedSecurityAccessByFeature(otherArgs?.featureByProgram);\r\n\r\n if (\r\n this.allowedSecurityAccessByCountry(otherArgs?.countrySecurity) &&\r\n !pend.hasPendencies &&\r\n allowedByProgram\r\n ) {\r\n if (this.__schedule) {\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n\r\n const { __requestPaged } = this;\r\n if (!__requestPaged) {\r\n this.setPage({\r\n page: {\r\n number: 0,\r\n size: 10\r\n }\r\n });\r\n }\r\n\r\n if (otherArgs?.translateOptions) {\r\n const { service, keys } = otherArgs?.translateOptions;\r\n this.geti18n(service, keys || '');\r\n }\r\n\r\n if (otherArgs?.callbackPagination) {\r\n this.__callbackPagination = otherArgs.callbackPagination;\r\n }\r\n\r\n if (otherArgs?.paginationOptions) {\r\n this.__paginationOptions = otherArgs?.paginationOptions;\r\n this.handlePaginationOptions();\r\n }\r\n\r\n if (otherArgs?.feature) {\r\n const { flag, service } = otherArgs.feature;\r\n\r\n service.onFlags\r\n .pipe(\r\n takeWhile(() => {\r\n return this.flagValidator;\r\n })\r\n )\r\n .subscribe((val: boolean) => {\r\n if (val) {\r\n const hasFlag = service.getFlag(flag);\r\n\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {\r\n if (!hasFlag) {\r\n this.navigateToErrorPage(404, otherArgs?.router);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n otherArgs?.callbackMain();\r\n } else if (!allowedByProgram) {\r\n this.navigateToErrorPage(404, otherArgs?.router);\r\n } else if (pend.hasPendencies) {\r\n this.navigateToPendencyPage(pend, otherArgs?.companyType, otherArgs?.router);\r\n } else {\r\n this.navigateToErrorPage(403, otherArgs?.router);\r\n }\r\n }\r\n\r\n getHTTPHeaderApplicationPDF(): Object {\r\n return {\r\n observe: 'response',\r\n responseType: 'blob'\r\n };\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n requestInProgress: {\r\n showProgress: true\r\n }\r\n })\r\n genericMethod(link: any, data?: any, callback?: Function) {\r\n const { href, type = 'get' } = link;\r\n\r\n this.monkeyecxService?.[type.toLowerCase()](`${href}`, data)?.subscribe(\r\n (resp: any) => {\r\n if (callback) callback(resp);\r\n },\r\n (err: HttpErrorResponse) => {\r\n if (callback) callback();\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n requestInProgress: {\r\n showProgress: true\r\n }\r\n })\r\n async getGenericData(data: any, action: string) {\r\n const { monkeyecxService } = this;\r\n if (!monkeyecxService) return null;\r\n const { href, type } = new LinksModel(data)?.getAction(action) || {\r\n href: '', type: 'get'\r\n };\r\n\r\n return monkeyecxService[type.toLowerCase()]<any>(href)\r\n .pipe(take(1)).toPromise();\r\n }\r\n\r\n geti18n(translateService: TranslateService, keys: string | string[]) {\r\n translateService.onDefaultLangChange.subscribe(() => {\r\n this.__i18n = translateService.instant(keys);\r\n this.__oni18nDataChanged$.next(null);\r\n });\r\n translateService.getStreamOnTranslationChange(keys).subscribe(() => {\r\n this.__i18n = translateService.instant(keys);\r\n this.__oni18nDataChanged$.next(null);\r\n });\r\n }\r\n\r\n doPagination() {\r\n if (!this.__onLoadingInProgress$.value) {\r\n const hasMorePages = this.setPage({\r\n page: {\r\n ...this.__page\r\n }\r\n }).nextPage();\r\n\r\n if (hasMorePages && this.__callbackPagination) {\r\n this.__callbackPagination();\r\n }\r\n }\r\n }\r\n\r\n doPaginationv2(type: string, callback: Function) {\r\n if (!this.__onLoadingInProgress$.value) {\r\n if (callback) {\r\n callback(type);\r\n }\r\n }\r\n }\r\n\r\n setLinks(links: any) {\r\n this.__isAbleToDoPagination = {\r\n first: !!links?.first,\r\n next: !!links?.next\r\n };\r\n this.__links = links;\r\n }\r\n\r\n setSearchByUrl(router: Router, url: string, search: any, extras?: any) {\r\n this.__data = null;\r\n this.__page = null;\r\n this.__onDataChanged$.next(null);\r\n this.__onLoadingInProgress$.next(false);\r\n\r\n router.navigate([url], {\r\n queryParams: {\r\n ...search,\r\n r: MonkeyEcxUtils.getRandomString(30)\r\n },\r\n queryParamsHandling: 'merge',\r\n ...extras\r\n });\r\n }\r\n\r\n saveState(state: MonkeyEcxSavedState) {\r\n this.__savedState = {\r\n page: this.__page,\r\n ...state\r\n };\r\n }\r\n\r\n navigateToErrorPage(statusCode: number, router?: Router) {\r\n const routes: any = {\r\n 403: 'forbidden',\r\n 404: 'not-found',\r\n 500: 'service-problems',\r\n 503: 'service-problems'\r\n };\r\n\r\n if (!router) {\r\n console.error('Router must be declared');\r\n } else {\r\n router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()]);\r\n }\r\n }\r\n}\r\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';\r\n\r\nlet window: any;\r\n\r\nconst text: any = {\r\n i18n: {\r\n title: 'We have an quick update for you',\r\n message: 'Click anywhere here to reload your locale',\r\n },\r\n theme: {\r\n title: 'We have an quick update for you',\r\n message: 'Click anywhere here to reload your theme',\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxErrorConfigService {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private enableSupport() {\r\n window.zE('webWidget', 'updateSettings', {\r\n webWidget: {\r\n color: {\r\n theme: '#0273E8',\r\n launcherText: '#fff',\r\n header: '#0273E8',\r\n button: '#0273E8',\r\n },\r\n zIndex: 99,\r\n offset: {\r\n horizontal: '1px',\r\n vertical: '20px',\r\n },\r\n mobile: {\r\n labelVisible: true,\r\n },\r\n launcher: {\r\n mobile: {\r\n labelVisible: true,\r\n },\r\n },\r\n },\r\n });\r\n window.zE('webWidget', 'setLocale', 'en-US');\r\n window.zE('webWidget', 'show');\r\n }\r\n\r\n public apply(type: string) {\r\n const { title, message } = text?.[type];\r\n\r\n const element = document.createElement('div');\r\n element.id = 'monkeyecx-information';\r\n\r\n const elementImg = document.createElement('img');\r\n elementImg.width = 128;\r\n elementImg.src = 'assets/images/monkey.svg';\r\n elementImg.style.marginBottom = '50px';\r\n\r\n const elementTitle = document.createElement('span');\r\n elementTitle.id = 'title';\r\n elementTitle.innerText = title;\r\n elementTitle.style.marginBottom = '20px';\r\n\r\n const elementMessage = document.createElement('span');\r\n elementMessage.id = 'message';\r\n elementMessage.innerText = message;\r\n elementMessage.style.marginBottom = '20px';\r\n\r\n const elementChat = document.createElement('span');\r\n elementChat.id = 'message';\r\n elementChat.innerText =\r\n \"If you're having trouble to update, please use the support icon bellow\";\r\n\r\n element.appendChild(elementImg);\r\n element.appendChild(elementTitle);\r\n element.appendChild(elementMessage);\r\n element.appendChild(elementChat);\r\n\r\n element.addEventListener('click', () => {\r\n document.location.reload();\r\n });\r\n\r\n document.body.appendChild(element);\r\n\r\n document.body.getElementsByTagName('app-root')[0].remove();\r\n this.enableSupport();\r\n }\r\n}\r\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 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 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 this.monkeyecxErrorConfigService.apply('i18n');\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 this.monkeyecxErrorConfigService.apply('i18n');\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 this.monkeyecxErrorConfigService.apply('i18n');\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 this.monkeyecxErrorConfigService.apply('i18n');\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 this.monkeyecxErrorConfigService.apply('i18n');\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 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 } from '@angular/core';\r\nimport { datadogRum } from '@datadog/browser-rum';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigBootstrap } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxLogsConfigService {\r\n public apply(\r\n params: MonkeyEcxConfig,\r\n configBootstrap: MonkeyEcxConfigBootstrap,\r\n environment: any,\r\n identifyCode: string\r\n ) {\r\n const { program, logs } = params;\r\n if (logs?.enabled && environment.environment !== 'dev') {\r\n datadogRum.init({\r\n applicationId: environment?.dataDogApplicationId,\r\n clientToken: environment?.dataDogClientToken,\r\n service: program?.token,\r\n site: 'datadoghq.com',\r\n sampleRate: 100,\r\n replaySampleRate: 100,\r\n env: `monkey-front-${identifyCode}-${environment.environment}`,\r\n version: configBootstrap?.version,\r\n trackInteractions: true,\r\n trackSessionAcrossSubdomains: true,\r\n useSecureSessionCookie: true,\r\n useCrossSiteSessionCookie: true\r\n });\r\n datadogRum.startSessionReplayRecording();\r\n }\r\n }\r\n}\r\n","import { ApplicationRef, Injectable } from '@angular/core';\r\nimport { SwUpdate } from '@angular/service-worker';\r\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\nimport { concat, interval } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\nimport { VersionChangedComponent } from '../../../components/version-changed';\r\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxServiceWorkerConfigService {\r\n constructor(\r\n private appRef: ApplicationRef,\r\n private updates: SwUpdate,\r\n private modalService: MonkeyStyleGuideModalService) {\r\n // not to do\r\n }\r\n\r\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\r\n const { updates, modalService } = this;\r\n updates?.available?.subscribe(() => {\r\n if (!config.showNewVersion || config.maintenance.closed) {\r\n document.location.reload();\r\n } else {\r\n modalService.open(VersionChangedComponent, {\r\n color: 'theme',\r\n size: 'md'\r\n });\r\n }\r\n });\r\n }\r\n\r\n private verify() {\r\n const { appRef, updates } = this;\r\n const appIsStable$ = appRef.isStable\r\n .pipe(first((isStable: boolean) => { return isStable === true; }));\r\n const everyHour$ = interval(1 * 60 * 60 * 1000);\r\n const everyHourOnceAppIsStable$ = concat(appIsStable$, everyHour$);\r\n everyHourOnceAppIsStable$.subscribe(() => {\r\n updates.checkForUpdate();\r\n });\r\n updates.checkForUpdate();\r\n }\r\n\r\n public apply(config: MonkeyEcxConfigBootstrap) {\r\n this.handleValidation(config);\r\n this.verify();\r\n }\r\n}\r\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';\r\nimport { Router } from '@angular/router';\r\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\nimport { ClosedToMaintenanceComponent } from '../../../components/closed-to-maintenance/closed-to-maintenance.component';\r\nimport { MonkeyEcxConfigBootstrap } from '../../interfaces/monkeyecx-config-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxMaintenanceConfigService {\r\n constructor(private modalService: MonkeyStyleGuideModalService, private router: Router) {\r\n // not to do\r\n }\r\n\r\n private handleValidation(config: MonkeyEcxConfigBootstrap) {\r\n if (config.maintenance.closed) {\r\n localStorage.clear();\r\n this.router.navigate(['']);\r\n\r\n setTimeout(() => {\r\n this.modalService.open(ClosedToMaintenanceComponent, {\r\n color: 'theme',\r\n size: 'md',\r\n data: config\r\n });\r\n }, 200);\r\n }\r\n }\r\n\r\n public apply(config: MonkeyEcxConfigBootstrap) {\r\n this.handleValidation(config);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { initialize, LDClient, LDFlagSet } from 'launchdarkly-js-client-sdk';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxFeatureToggleService {\r\n private readonly flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n private flags: LDFlagSet | undefined = undefined;\r\n\r\n private ldClient: LDClient | undefined = undefined;\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private getAllFlags(): void {\r\n if (!this) return;\r\n this.flags = this.ldClient?.allFlags();\r\n\r\n this.flagSubject$.next(true);\r\n }\r\n\r\n private identify(config: MonkeyEcxConfig, environment: any): void {\r\n if (config) {\r\n const email = 'monkey@monkey.exchange';\r\n const user = {\r\n email,\r\n kind: 'user',\r\n key: `${config.program?.token}#${email}`\r\n };\r\n\r\n if (!this.ldClient) {\r\n this.ldClient = initialize(environment.launchDarklyClientSideID, user, {\r\n streaming: true,\r\n disableSyncEventPost: true,\r\n sendEvents: false,\r\n diagnosticOptOut: true,\r\n logger: {\r\n debug: () => {},\r\n warn: () => {},\r\n info: () => {},\r\n error: (args: any) => {\r\n console.log('Monkey Client => ', args);\r\n }\r\n }\r\n });\r\n\r\n this.ldClient.on('change', this.getAllFlags.bind(this));\r\n this.ldClient.on('ready', this.getAllFlags.bind(this));\r\n } else {\r\n this.ldClient.identify(user, undefined, this.getAllFlags);\r\n }\r\n }\r\n }\r\n\r\n public apply(configSubject$: BehaviorSubject<MonkeyEcxConfig>, environment: any) {\r\n if (environment.launchDarklyClientSideID) {\r\n configSubject$.subscribe((config) => {\r\n this.identify(config, environment);\r\n });\r\n } else {\r\n this.flagSubject$.next(true);\r\n }\r\n }\r\n\r\n public get onFlags(): Observable<any> {\r\n return this.flagSubject$.asObservable();\r\n }\r\n\r\n public getFlag(flag: string): boolean | null {\r\n const flagValue = this.flags?.[flag];\r\n\r\n return MonkeyUtils.persistNullEmptyUndefined(flagValue) ? flagValue : null;\r\n }\r\n}\r\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';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\r\nimport { AlertsComponent } from '../../../components/alerts/alerts.component';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAlertsConfigService {\r\n constructor(private modalService: MonkeyStyleGuideModalFixedService) {\r\n // not to do\r\n }\r\n\r\n private handleValidation(config: MonkeyEcxConfig) {\r\n if (config.alert) {\r\n const { img, title, message, endDate, noEndDate, action, hideClose } = config.alert;\r\n if (moment.default().isSameOrBefore(moment.default(endDate)) || noEndDate) {\r\n this.modalService.open(AlertsComponent, {\r\n color: 'theme',\r\n size: 'md',\r\n data: {\r\n img,\r\n title,\r\n message,\r\n action,\r\n hideClose\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n public apply(config: MonkeyEcxConfig) {\r\n this.handleValidation(config);\r\n }\r\n}\r\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);\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 { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { MonkeyEcxTokenStorageService } from '../services/storage';\r\n\r\n@Directive({\r\n selector: '[monkeyecxSecurity]'\r\n})\r\nexport class MonkeyEcxSecurityDirective implements OnInit {\r\n @Input('securityRoles') roles: string[] = [];\r\n\r\n @Input('securityByExclusion') byExclusion: boolean = false;\r\n\r\n private tokenCredentials: any = null;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private tokenStorageService: MonkeyEcxTokenStorageService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n // not to do\r\n }\r\n\r\n private getRole(): string {\r\n const { tokenCredentials } = this;\r\n\r\n if (!tokenCredentials) return '';\r\n\r\n if (tokenCredentials?.programAdmin === 'true') {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n\r\n if (tokenCredentials?.programAdmin === true) {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n\r\n const handledRole = localStorage.getItem('role');\r\n\r\n return tokenCredentials?.role || handledRole || '';\r\n }\r\n\r\n private handleAccess() {\r\n const { roles, byExclusion } = this;\r\n let display = 'none';\r\n const found = roles?.indexOf(this.getRole());\r\n if (byExclusion) {\r\n display = 'block';\r\n if (found > -1) {\r\n display = 'none';\r\n }\r\n } else {\r\n display = 'none';\r\n if (found > -1) {\r\n display = 'block';\r\n }\r\n }\r\n\r\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\r\n this.elementRef.nativeElement.style.display = display;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private async handleData() {\r\n this.tokenCredentials = await this.tokenStorageService.getToken();\r\n this.handleAccess();\r\n }\r\n\r\n ngOnInit() {\r\n this.elementRef.nativeElement.style.display = 'none';\r\n this.cdr.detectChanges();\r\n\r\n this.tokenStorageService.tokenHasChanged().subscribe(() => {\r\n this.handleData();\r\n });\r\n\r\n this.handleData();\r\n }\r\n}\r\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[monkeyecxTooltip]',\r\n})\r\nexport class MonkeyEcxTooltipDirective {\r\n @Input() tooltipDelay?: number;\r\n\r\n @Input() tooltipPosition?: string;\r\n\r\n @Input() tooltipText?: string;\r\n\r\n @Input() tooltipTitle?: string;\r\n\r\n @Input() enableToShow = true;\r\n\r\n offset = 10;\r\n\r\n tooltip: HTMLElement | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n // not to do\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter() {\r\n if (!this.tooltip) {\r\n this.show();\r\n }\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n clickout() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n if (this.enableToShow) {\r\n this.create();\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip-show');\r\n setTimeout(() => {\r\n this.hide();\r\n }, 5000);\r\n }\r\n }\r\n\r\n hide() {\r\n if (!this.tooltip) return;\r\n this.renderer.removeClass(this.tooltip, 'monkeyecx-tooltip-show');\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n\r\n this.tooltip = null;\r\n }\r\n\r\n create() {\r\n const tooltipElement = document.createElement('div');\r\n\r\n this.tooltip = this.renderer.createElement('span');\r\n\r\n if (this.tooltipTitle) {\r\n const tooltipTitleElement = document.createElement('span');\r\n\r\n tooltipTitleElement.innerText = `${this.tooltipTitle}`;\r\n tooltipTitleElement.className = 'monkeyecx-tooltip-title';\r\n\r\n tooltipElement.appendChild(tooltipTitleElement);\r\n }\r\n\r\n if (this.tooltipText) {\r\n const tooltipTextElement = document.createElement('span');\r\n\r\n tooltipTextElement.innerText = `${this.tooltipText}`;\r\n tooltipTextElement.className = 'monkeyecx-tooltip-description';\r\n tooltipElement.appendChild(tooltipTextElement);\r\n }\r\n\r\n this.renderer.appendChild(this.tooltip, tooltipElement);\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip');\r\n this.renderer.addClass(this.tooltip, `monkeyecx-tooltip-${this.tooltipPosition}`);\r\n\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.tooltipDelay}ms`);\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip?.getBoundingClientRect();\r\n if (!tooltipPos) return;\r\n const scrollPos =\r\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n let top: number = 0;\r\n let left: number = 0;\r\n\r\n if (this.tooltipPosition === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPosition === 'bottom') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPosition === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.tooltipPosition === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAlertsService {\r\n constructor(\r\n private snackbarService: MonkeyStyleGuideSnackbarService,\r\n private translateService: TranslateService\r\n ) {\r\n // not to do\r\n }\r\n\r\n show({\r\n type = 'warning',\r\n title,\r\n message,\r\n duration\r\n }: {\r\n type: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading',\r\n title: string,\r\n message: string,\r\n duration: number\r\n }) {\r\n const i18n = this.translateService.instant(`MECX-ALERTS.${type}`.toUpperCase());\r\n\r\n this.snackbarService.show({\r\n title: i18n?.TITLES?.[title],\r\n message: i18n?.MESSAGES[message],\r\n type,\r\n duration: duration || 4000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n\r\n showWarning({\r\n title,\r\n message,\r\n duration\r\n }: {\r\n title: string,\r\n message: string,\r\n duration: number\r\n }) {\r\n const i18n = this.translateService.instant('MECX-ALERTS.WARNING');\r\n\r\n this.snackbarService.show({\r\n title: i18n?.TITLES?.[title],\r\n message: i18n?.MESSAGES[message],\r\n type: 'warning',\r\n duration: duration || 4000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n}\r\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';\r\nimport { CanActivate } from '@angular/router';\r\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MonkeyEcxAuthGuardCompany implements CanActivate {\r\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\r\n // not to do\r\n }\r\n\r\n async canActivate(): Promise<boolean> {\r\n const { monkeyecxAuthenticationService } = this;\r\n\r\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\r\n if (await monkeyecxAuthenticationService.isCompanyAuthorized()) {\r\n return true;\r\n }\r\n this.monkeyecxAuthenticationService.redirectApp();\r\n return false;\r\n }\r\n\r\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\r\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\r\n // not to do\r\n }\r\n\r\n async canActivate(): Promise<boolean> {\r\n if (await this.monkeyecxAuthenticationService.isAuthorized()) {\r\n this.monkeyecxAuthenticationService.redirectApp();\r\n return false;\r\n }\r\n if (await this.monkeyecxAuthenticationService.hadAtLeastOneLogin()) {\r\n this.monkeyecxAuthenticationService.redirectLoginWelcomeBack();\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { MonkeyEcxTokenStorageService } from '../storage';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAuthGuardByRole implements CanActivate {\r\n private securityCredentials: {\r\n roles: string[],\r\n byExclusion: boolean\r\n } | null = null;\r\n\r\n private tokenCredentials: any = null;\r\n\r\n constructor(\r\n private tokenStorage: MonkeyEcxTokenStorageService,\r\n private router: Router\r\n ) {\r\n // not to do\r\n }\r\n\r\n private navigateToErrorPage() {\r\n const { tokenCredentials } = this;\r\n const companyType = tokenCredentials?.companyType;\r\n let path = '/app/pages/forbidden';\r\n if (companyType) {\r\n path = `/app/${companyType}/pages/forbidden`;\r\n }\r\n this.router?.navigate([path.toLowerCase()]);\r\n }\r\n\r\n private getRole(): string {\r\n const { tokenCredentials } = this;\r\n\r\n if (!tokenCredentials) return '';\r\n if (tokenCredentials?.programAdmin === 'true') {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n if (tokenCredentials?.programAdmin === true) {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n\r\n return tokenCredentials?.role || '';\r\n }\r\n\r\n private allowedSecurityAccess(roles: string[], byExclusion: boolean): boolean {\r\n if (!roles?.length) return true;\r\n\r\n const found = roles?.indexOf(this.getRole());\r\n let ret = false;\r\n if (byExclusion) {\r\n ret = true;\r\n if (found > -1) {\r\n ret = false;\r\n }\r\n } else {\r\n ret = false;\r\n if (found > -1) {\r\n ret = true;\r\n }\r\n }\r\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\r\n ret = true;\r\n }\r\n return ret;\r\n }\r\n\r\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\r\n this.securityCredentials = route.data?.securityCredentials;\r\n if (this.securityCredentials) {\r\n const { roles, byExclusion } = this.securityCredentials;\r\n if (!this.tokenCredentials) {\r\n this.tokenCredentials = await this.tokenStorage.getToken();\r\n }\r\n\r\n if (!this.allowedSecurityAccess(roles, byExclusion)) {\r\n this.navigateToErrorPage();\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAuthGuard implements CanActivate {\r\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\r\n // not to do\r\n }\r\n\r\n async canActivate(): Promise<boolean> {\r\n const { monkeyecxAuthenticationService } = this;\r\n\r\n if (await monkeyecxAuthenticationService.isAuthorized()) {\r\n return true;\r\n }\r\n\r\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\r\n\r\n return false;\r\n }\r\n}\r\n","/* eslint-disable indent */\r\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\r\n\r\n@NgModule()\r\nexport class MonkeyEcxConfigModule {\r\n constructor(\r\n @Optional()\r\n @SkipSelf()\r\n parentModule: MonkeyEcxConfigModule\r\n ) {\r\n if (parentModule) {\r\n throw new Error('MonkeyEcxConfigModule is already loaded. Import it in the AppModule only!');\r\n }\r\n }\r\n\r\n static forRoot(): ModuleWithProviders<MonkeyEcxConfigModule> {\r\n return {\r\n ngModule: MonkeyEcxConfigModule,\r\n providers: [MonkeyEcxConfigService]\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyStyleGuideModalFixedService } from 'monkey-style-guide';\r\nimport { first } from 'rxjs/operators';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\r\nimport { MonkeyEcxCookieStorageService } from '../storage';\r\nimport { CurrencyConfigComponent } from '../../../components/currency-config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxCurrencyConfigService {\r\n constructor(\r\n private modalService: MonkeyStyleGuideModalFixedService,\r\n private cookieService: MonkeyEcxCookieStorageService,\r\n private configService: MonkeyEcxConfigService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private onHandleCurrencyConfig({ currency, environment }) {\r\n const { cookieService } = this;\r\n const settings: string = cookieService.getCookie('monkey-app-settings');\r\n const locale: string = cookieService.getCookie('monkey-app-locale');\r\n\r\n if (!settings) {\r\n cookieService.setCookie(\r\n 'monkey-app-settings',\r\n btoa(\r\n JSON.stringify({\r\n showedCurrencyConfig: true\r\n })\r\n ),\r\n environment\r\n );\r\n } else {\r\n const decoded = JSON.parse(atob(settings));\r\n\r\n cookieService.setCookie(\r\n 'monkey-app-settings',\r\n btoa(\r\n JSON.stringify({\r\n ...decoded,\r\n showedCurrencyConfig: true\r\n })\r\n ),\r\n environment\r\n );\r\n }\r\n\r\n if (locale) {\r\n const decoded = JSON.parse(atob(locale));\r\n\r\n cookieService.setCookie(\r\n 'monkey-app-locale',\r\n btoa(\r\n JSON.stringify({\r\n ...decoded,\r\n currency\r\n })\r\n ),\r\n environment\r\n );\r\n }\r\n }\r\n\r\n private async onShowCurrencyConfig(environment: any, force = false) {\r\n const { cookieService } = this;\r\n const settings: string = cookieService.getCookie('monkey-app-settings');\r\n let showed = false;\r\n if (settings) {\r\n const decoded = JSON.parse(atob(settings));\r\n showed = decoded.showedCurrencyConfig;\r\n }\r\n\r\n const config: MonkeyEcxConfig = await this.configService\r\n .config()\r\n .pipe(\r\n first((val: any) => {\r\n return !!val && JSON.stringify(val) !== '{}';\r\n })\r\n )\r\n .toPromise();\r\n\r\n const currency = config?.i18n?.currency;\r\n const currencies = config?.i18n?.currencies;\r\n\r\n if ((!showed || force) && currencies?.length) {\r\n this.modalService.open(CurrencyConfigComponent, {\r\n color: 'theme',\r\n size: 'md',\r\n data: {\r\n currency,\r\n currencies,\r\n callback: (currency = 'BRL') => {\r\n this.onHandleCurrencyConfig({\r\n currency,\r\n environment\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public apply(environment: any, force = false) {\r\n this.onShowCurrencyConfig(environment, force);\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\r\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxAuthenticationService } from '../auth';\r\nimport { MonkeyEcxCommonsService } from '../commons';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxTokenStorageService } from '../storage';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxHttpErrorHandlingService extends MonkeyEcxCommonsService {\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n tokenStorage: MonkeyEcxTokenStorageService,\r\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\r\n private router: Router,\r\n private snackbarService: MonkeyStyleGuideSnackbarService,\r\n private translateService: TranslateService\r\n ) {\r\n super(monkeyecxService, tokenStorage);\r\n\r\n super.resolve(null, null);\r\n\r\n this.geti18n(this.translateService, 'SERVICES.WARNING');\r\n }\r\n\r\n private isHttpCodeIgnoreMessage(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\r\n return false;\r\n }\r\n\r\n const found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\r\n\r\n return found;\r\n }\r\n\r\n private isHttpCodeIgnoreRedirect(\r\n tp: MonkeyEcxServiceCredentials,\r\n httpCode: number\r\n ): boolean {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\r\n return false;\r\n }\r\n\r\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\r\n\r\n return found;\r\n }\r\n\r\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\r\n if (status === 409 || status === 400 || status === 401) {\r\n return 'warning';\r\n }\r\n\r\n return 'error';\r\n }\r\n\r\n private showMessage(\r\n message: string,\r\n error: HttpErrorResponse,\r\n mkc: MonkeyEcxServiceCredentials\r\n ) {\r\n const { snackbarService } = this;\r\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\r\n snackbarService.show({\r\n title: this.__i18n?.TITLE,\r\n message,\r\n type: this.getMessageType(error.status),\r\n duration: 4000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n }\r\n\r\n private handleMessage(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n // eslint-disable-next-line camelcase\r\n const { notifications, error_description, message } = error?.error || {\r\n notifications: '', error_description: '', message: ''\r\n };\r\n\r\n let customMessage = '';\r\n\r\n if (message) {\r\n customMessage = message;\r\n }\r\n\r\n // eslint-disable-next-line camelcase\r\n if (error_description) {\r\n // eslint-disable-next-line camelcase\r\n customMessage = error_description;\r\n }\r\n\r\n if (notifications) {\r\n customMessage = notifications;\r\n }\r\n\r\n if (!customMessage) {\r\n if (error.error instanceof Blob) {\r\n const blob = new Blob([error.error], {\r\n type: 'application/json'\r\n });\r\n const reader = new FileReader();\r\n reader.addEventListener('loadend', (e) => {\r\n const text = e?.target?.result;\r\n const jsonResp = JSON.parse(text as string);\r\n customMessage = jsonResp.notifications;\r\n this.showMessage(customMessage, error, mkc);\r\n });\r\n reader.readAsText(blob);\r\n } else {\r\n this.showMessage(this.__i18n['ERROR-HANDLING']?.ERROR, error, mkc);\r\n }\r\n } else {\r\n this.showMessage(customMessage, error, mkc);\r\n }\r\n }\r\n\r\n public async handleError(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n const { router, tokenStorage } = this;\r\n const { status } = error;\r\n const { companyType } = await tokenStorage?.getToken() || { companyType: '' };\r\n\r\n const routes: any = {\r\n 403: 'forbidden',\r\n 500: 'service-problems',\r\n 503: 'service-problems'\r\n };\r\n\r\n let route = '/app';\r\n if (companyType) {\r\n route = `${route}/${companyType}/pages`;\r\n } else {\r\n route = `${route}/pages`;\r\n }\r\n\r\n const found = routes[status];\r\n let timeout = 0;\r\n\r\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\r\n route = `${route}/${found}`.toLowerCase();\r\n timeout = 800;\r\n router.navigate([route]);\r\n }\r\n\r\n setTimeout(() => {\r\n this.handleMessage(error, mkc);\r\n }, timeout);\r\n }\r\n\r\n public handleErrorRefreshToken(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n const hasToRefresh = this.monkeyecxAuthenticationService.refreshShouldHappen(error);\r\n if ((error.status === 401 || error.status === 400) && hasToRefresh) {\r\n NgZone.call(this.monkeyecxAuthenticationService.redirectLoginWelcomeBack(), {});\r\n } else if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\r\n this.handleMessage(error, mkc);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\nimport { VersionChangedComponent } from '../../../components/version-changed';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxOthersErrorsHandlingService {\r\n constructor(private modalService: MonkeyStyleGuideModalService) {\r\n // not to do\r\n }\r\n\r\n public handleError(error: any) {\r\n const { modalService } = this;\r\n const { message } = error;\r\n\r\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(message)) {\r\n modalService.open(VersionChangedComponent, {\r\n color: 'theme',\r\n size: 'md'\r\n });\r\n }\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\r\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxHandlingService } from '../monkeyecx-handling.service';\r\nimport { MonkeyEcxHttpErrorHandlingService } from './monkeyecx-http-error-handling.service';\r\nimport { MonkeyEcxOthersErrorsHandlingService } from './monkeyecx-others-errors-handling.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MonkeyEcxErrorHandlingService implements ErrorHandler {\r\n constructor(private injector: Injector) {\r\n // not to do\r\n }\r\n\r\n handleError(error: any, type?: string) {\r\n const { injector } = this;\r\n const handlingService = injector.get(MonkeyEcxHandlingService);\r\n const httpErrorHandlingService = injector.get(MonkeyEcxHttpErrorHandlingService);\r\n const othersErrorsHandlingService = injector.get(MonkeyEcxOthersErrorsHandlingService);\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n const sCredentials: MonkeyEcxServiceCredentials =\r\n handlingService?.getMonkeyEcxServiceCredentials() || {};\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(type) && type === 'refresh_token') {\r\n httpErrorHandlingService.handleErrorRefreshToken(error, sCredentials);\r\n } else httpErrorHandlingService.handleError(error, sCredentials);\r\n } else {\r\n othersErrorsHandlingService.handleError(error);\r\n }\r\n }\r\n}\r\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyEcxErrorHandlingService } from './monkeyecx-error-handling.service';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class MonkeyEcxErrorHandlingModule {\r\n public static forRoot(): ModuleWithProviders<MonkeyEcxErrorHandlingModule> {\r\n return {\r\n ngModule: MonkeyEcxErrorHandlingModule,\r\n providers: [\r\n {\r\n provide: ErrorHandler,\r\n useClass: MonkeyEcxErrorHandlingService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxLoggedHandlingService {\r\n private schedules: MonkeyEcxRequestSchedule[] = [];\r\n\r\n private genericSchedules: MonkeyEcxRequestSchedule[] = [];\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private destroySchedule() {\r\n this.schedules.forEach((sch: MonkeyEcxRequestSchedule) => {\r\n clearInterval(sch.interval);\r\n });\r\n this.schedules = [];\r\n }\r\n\r\n private destroyGenericSchedule() {\r\n this.genericSchedules.forEach((sch: MonkeyEcxRequestSchedule) => {\r\n clearInterval(sch.interval);\r\n });\r\n this.genericSchedules = [];\r\n }\r\n\r\n public addSchedule(sch: MonkeyEcxRequestSchedule[]) {\r\n this.schedules = sch;\r\n }\r\n\r\n public addGenericSchedule(sch: MonkeyEcxRequestSchedule[]) {\r\n this.genericSchedules = sch;\r\n }\r\n\r\n public destroy() {\r\n this.destroySchedule();\r\n this.destroyGenericSchedule();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxPaginationService {\r\n private callbacks: {\r\n [key: string]: Function;\r\n } = {};\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n public setCallback(callback: Function, name: string = 'main') {\r\n this.callbacks = {\r\n ...this.callbacks,\r\n [name]: callback\r\n };\r\n }\r\n\r\n public execute(type: string, name: string = 'main') {\r\n const { callbacks } = this;\r\n const callback = callbacks?.[name];\r\n if (callback) callback(type);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxRequestDownload } from '../../interfaces';\r\nimport { MonkeyEcxDownloadEvents } from '../../utils/statics';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestDownloadHandlingService {\r\n private download: MonkeyEcxRequestDownload[] = [];\r\n\r\n private download$: BehaviorSubject<MonkeyEcxRequestDownload[] | any>;\r\n\r\n constructor() {\r\n this.download$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addTo(q: MonkeyEcxRequestDownload) {\r\n this.download.push(q);\r\n this.download$.next(this.download);\r\n }\r\n\r\n private markItemAsFinish(q: MonkeyEcxRequestDownload, status?: number) {\r\n const saved = [...this.download];\r\n this.download = [\r\n ...saved\r\n .map((val: any) => {\r\n if (val.status === MonkeyEcxDownloadEvents.OnGoing) {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || MonkeyEcxDownloadEvents.Finished\r\n };\r\n }\r\n return valSaved;\r\n }\r\n return null;\r\n })\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n ];\r\n\r\n this.download = this.download.filter((_: any) => {\r\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n this.download$.next(this.download);\r\n }\r\n\r\n private updateItem(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\r\n const saved = [...this.download];\r\n this.download = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const currentPecentage = Math.floor(((loaded || 0) / (total || 0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.download$.next(this.download);\r\n }\r\n\r\n public set(q: MonkeyEcxRequestDownload) {\r\n this.addTo(q);\r\n }\r\n\r\n public get(): Observable<MonkeyEcxRequestDownload[]> {\r\n return this.download$.asObservable();\r\n }\r\n\r\n public update(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\r\n this.updateItem(q, loaded, total);\r\n }\r\n\r\n public finishItem(q: MonkeyEcxRequestDownload, status?: number) {\r\n this.markItemAsFinish(q, status);\r\n }\r\n\r\n public hasDownloadOnGoing(): boolean {\r\n const found = this.download.find((_: any) => {\r\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { Statics } from '../../utils';\r\nimport { MonkeyEcxRequestDownloaded } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestDownloadedHandlingService {\r\n private downloaded: MonkeyEcxRequestDownloaded[] = [];\r\n\r\n private downloaded$: BehaviorSubject<MonkeyEcxRequestDownloaded[] | any>;\r\n\r\n constructor() {\r\n this.downloaded$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addTo(q: MonkeyEcxRequestDownloaded) {\r\n this.downloaded.push(q);\r\n this.downloaded$.next(this.downloaded);\r\n }\r\n\r\n private markItemAsFinish(q: MonkeyEcxRequestDownloaded, status?: number) {\r\n const saved = [...this.downloaded];\r\n this.downloaded = [\r\n ...saved.map((val: any) => {\r\n if (val.status === Statics.MonkeyEcxDownloadEvents.OnGoing) {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxDownloadEvents.Finished,\r\n action: q.action\r\n };\r\n }\r\n return valSaved;\r\n }\r\n return val;\r\n })\r\n ];\r\n this.downloaded$.next(this.downloaded);\r\n }\r\n\r\n public set(q: MonkeyEcxRequestDownloaded) {\r\n this.addTo(q);\r\n }\r\n\r\n public get(): Observable<MonkeyEcxRequestDownloaded[]> {\r\n return this.downloaded$.asObservable();\r\n }\r\n\r\n public finishItem(q: MonkeyEcxRequestDownloaded, status?: number) {\r\n this.markItemAsFinish(q, status);\r\n }\r\n\r\n public hasDownloadOnGoing(): boolean {\r\n const found = this.downloaded.find((_: any) => {\r\n return _.status === Statics.MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\r\nimport { Statics } from '../../utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestQueueHandlingService {\r\n private queue: MonkeyEcxRequestQueue[] = [];\r\n\r\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\r\n\r\n private newQueue = new BehaviorSubject(false);\r\n\r\n constructor() {\r\n this.queues$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addToQueue(q: MonkeyEcxRequestQueue) {\r\n this.queue.push(q);\r\n this.queues$.next(this.queue);\r\n this.newQueue.next(true);\r\n }\r\n\r\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\r\n action\r\n };\r\n }\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const { total, loaded } = progress;\r\n const currentPecentage = Math.floor(((loaded||0) / (total || 0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n progress: {\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n }\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private deleteQueue(q: MonkeyEcxRequestQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return null;\r\n }\r\n return valSaved;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n public setQueue(q: MonkeyEcxRequestQueue | null) {\r\n if (!q) return;\r\n this.addToQueue(q);\r\n }\r\n\r\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\r\n return this.queues$.asObservable();\r\n }\r\n\r\n public finishQueueItem(q: MonkeyEcxRequestQueue | null, action?: Function, status?: number) {\r\n if (!q) return;\r\n this.markQueueItemAsFinish(q, status, action);\r\n }\r\n\r\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\r\n this.deleteQueue(q);\r\n }\r\n\r\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n this.updateQueue(q, progress);\r\n }\r\n\r\n public hasNewQueue(): Observable<boolean> {\r\n return this.newQueue.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\r\nimport { Statics } from '../../utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestQueueModalHandlingService {\r\n private queue: MonkeyEcxRequestQueue[] = [];\r\n\r\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\r\n\r\n private newQueue$ = new BehaviorSubject(false);\r\n\r\n private allQueueFinished$ = new BehaviorSubject(false);\r\n\r\n constructor() {\r\n this.queues$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addToQueue(q: MonkeyEcxRequestQueue) {\r\n this.queue.push(q);\r\n this.queues$.next(this.queue);\r\n this.newQueue$.next(true);\r\n }\r\n\r\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\r\n action\r\n };\r\n }\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const { total, loaded } = progress;\r\n const currentPecentage = Math.floor(((loaded||0) / (total||0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n progress: {\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n }\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private deleteQueue(q: MonkeyEcxRequestQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return null;\r\n }\r\n return valSaved;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n\r\n this.queues$.next(this.queue);\r\n if (this.queue.length <= 0) {\r\n this.allQueueFinished$.next(true);\r\n }\r\n }\r\n\r\n public setQueue(q: MonkeyEcxRequestQueue) {\r\n this.addToQueue(q);\r\n }\r\n\r\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\r\n return this.queues$.asObservable();\r\n }\r\n\r\n public finishQueueItem(q: MonkeyEcxRequestQueue, action?: Function, status?: number) {\r\n this.markQueueItemAsFinish(q, status, action);\r\n }\r\n\r\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\r\n this.deleteQueue(q);\r\n }\r\n\r\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n this.updateQueue(q, progress);\r\n }\r\n\r\n public hasNewQueue(): Observable<boolean> {\r\n return this.newQueue$.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n\r\n public hasAllQueueFinished(): Observable<boolean> {\r\n return this.allQueueFinished$.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxDiscoveryParamsService {\r\n constructor(private router: Router) {\r\n // not to do\r\n }\r\n\r\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\r\n if (route.firstChild) {\r\n return this.getLastChild(route.firstChild);\r\n }\r\n\r\n return route;\r\n }\r\n\r\n public setData(field: string, value: any): any {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n route.data[field] = value;\r\n }\r\n\r\n public getData(field: string): any {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n\r\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\r\n return found;\r\n }\r\n\r\n public getDataFromCurrentNavigation(field: string, router?: Router): any {\r\n const navigation = this.router.getCurrentNavigation() || router?.getCurrentNavigation();\r\n let state: any = null;\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\r\n state = navigation?.extras.state;\r\n }\r\n\r\n return state ? state[field] : null;\r\n }\r\n\r\n public getParam(param: string): string | null {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\r\n ? route?.paramMap?.get(param) || ''\r\n : '';\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\r\n return found;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxLoggedHandlingService } from '../logged';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestScheduleService {\r\n private schedule: MonkeyEcxRequestSchedule[] | any[] = [];\r\n\r\n private genericSchedule: MonkeyEcxRequestSchedule[] | any[] = [];\r\n\r\n constructor(\r\n public monkeyecxService: MonkeyEcxService,\r\n private monkeyLoggedHandlingService: MonkeyEcxLoggedHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private addToSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.schedule.push(q);\r\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n private addToGenericSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.genericSchedule.push(q);\r\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\r\n }\r\n\r\n private removeFromSchedule(q: MonkeyEcxRequestSchedule) {\r\n clearInterval(q.interval);\r\n const saved = [...this.schedule];\r\n this.schedule = [\r\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\r\n const savedLocal = {\r\n ...sch\r\n };\r\n if (sch.id === q.id) {\r\n return null;\r\n }\r\n return savedLocal;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n private removeFromGenericSchedule(q: MonkeyEcxRequestSchedule) {\r\n clearInterval(q.interval);\r\n const saved = [...this.genericSchedule];\r\n this.genericSchedule = [\r\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\r\n const savedLocal = {\r\n ...sch\r\n };\r\n if (sch.id === q.id) {\r\n return null;\r\n }\r\n return savedLocal;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n this.monkeyLoggedHandlingService.addGenericSchedule(this.genericSchedule);\r\n }\r\n\r\n private removeFromScheduleById(id: string) {\r\n const q = this.getScheduleById(id);\r\n clearInterval(q?.interval);\r\n const saved = [...this.schedule];\r\n this.schedule = [\r\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\r\n const savedLocal = {\r\n ...sch\r\n };\r\n if (sch.id === q?.id) {\r\n return null;\r\n }\r\n return savedLocal;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n this.monkeyLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [400, 403, 404, 500, 503]\r\n },\r\n requestInProgress: {\r\n showProgress: false\r\n }\r\n })\r\n private doCall(sch: MonkeyEcxRequestSchedule) {\r\n const { url, method, params, data, action, errorAction } = sch;\r\n\r\n const errAction = errorAction || ((...args) => {});\r\n\r\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\r\n (resp: any) => {\r\n action(\r\n {\r\n ...data,\r\n ...resp\r\n },\r\n sch\r\n );\r\n },\r\n (err: HttpErrorResponse) => {\r\n this.removeFromSchedule(sch);\r\n errAction(\r\n {\r\n ...data\r\n },\r\n sch,\r\n err\r\n );\r\n }\r\n );\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [400, 401, 403, 404, 500, 503],\r\n httpCodeIgnoreRedirect: [503]\r\n },\r\n requestInProgress: {\r\n showProgress: false\r\n }\r\n })\r\n private doGenericCall(sch: MonkeyEcxRequestSchedule) {\r\n const { url, method, params, data, action, errorAction } = sch;\r\n\r\n const errAction = errorAction || ((...args) => {});\r\n\r\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\r\n (resp: any) => {\r\n action(\r\n {\r\n ...data,\r\n ...resp\r\n },\r\n sch\r\n );\r\n },\r\n (err: HttpErrorResponse) => {\r\n this.removeFromGenericSchedule(sch);\r\n errAction(\r\n {\r\n ...data\r\n },\r\n sch,\r\n err\r\n );\r\n }\r\n );\r\n }\r\n\r\n public setSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\r\n const id = q?.id || `${MonkeyEcxUtils.getRandomString(40)}`;\r\n const obj = {\r\n ...q,\r\n id\r\n };\r\n\r\n const interval = setInterval(() => {\r\n this.doCall({\r\n ...obj,\r\n interval\r\n });\r\n }, delay);\r\n\r\n const sch = {\r\n ...obj,\r\n interval\r\n };\r\n\r\n this.addToSchedule(sch);\r\n return sch;\r\n }\r\n\r\n public setGenericSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\r\n const interval = setInterval(() => {\r\n this.doGenericCall({\r\n ...q,\r\n interval\r\n });\r\n }, delay);\r\n\r\n const sch = {\r\n ...q,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\r\n interval\r\n };\r\n\r\n this.addToGenericSchedule(sch);\r\n return sch;\r\n }\r\n\r\n public removeSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.removeFromSchedule(q);\r\n }\r\n\r\n public removeGenericSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.removeFromGenericSchedule(q);\r\n }\r\n\r\n public removeScheduleById(id: string) {\r\n this.removeFromScheduleById(id);\r\n }\r\n\r\n public getScheduleById(id: string) {\r\n const q = this.schedule.find((sch: MonkeyEcxRequestSchedule) => {\r\n return sch.id === id;\r\n });\r\n return q;\r\n }\r\n}\r\n","import { Store } from '@ngrx/store';\r\nimport { take } from 'rxjs/operators';\r\nimport { MonkeyEcxCoreService } from '../../decorators';\r\nimport {\r\n MonkeyEcxConfigStore,\r\n MonkeyEcxControlStore,\r\n MonkeyEcxLinks,\r\n MonkeyEcxPage,\r\n MonkeyEcxPagination\r\n} from '../../interfaces';\r\nimport { MonkeyEcxLinksModel } from '../../model';\r\nimport { MonkeyEcxCommonsService } from '../commons';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxTokenStorageService } from '../storage';\r\n\r\n/**\r\n * Classe genérica que recebe duas interfaces como tipos genéricos.\r\n *\r\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\r\n * @typeparam K faz referência ao tipo de configuração.\r\n *\r\n * @description interfaces de configuração:\r\n * ```\r\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\r\n * ```\r\n */\r\nexport abstract class MonkeyEcxCommonsStoreBaseService<\r\n T,\r\n K extends MonkeyEcxConfigStore\r\n> extends MonkeyEcxCommonsService {\r\n private action: any;\r\n\r\n private selector: any;\r\n\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n tokenStorage: MonkeyEcxTokenStorageService,\r\n protected store: Store,\r\n config: K\r\n ) {\r\n super(monkeyecxService, tokenStorage);\r\n const { actions, selectors } = config;\r\n\r\n this.action = actions;\r\n this.selector = selectors;\r\n }\r\n\r\n private handleResponseData(resp: any, updateLinks = true) {\r\n try {\r\n let data: T;\r\n\r\n if (resp?._embedded) {\r\n const { _embedded, _links, page } = resp;\r\n const key = Object.keys(_embedded)[0];\r\n\r\n data = _embedded[key];\r\n\r\n if (updateLinks) {\r\n this.updateLinks?.(_links);\r\n }\r\n\r\n this.updatePage?.(page);\r\n } else data = resp;\r\n\r\n this.update?.(data);\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\r\n }\r\n }\r\n\r\n protected updateControl(data: MonkeyEcxControlStore) {\r\n try {\r\n this.store.dispatch(\r\n this.action.updateControl({\r\n data\r\n })\r\n );\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\r\n }\r\n }\r\n\r\n protected mappingData(args: T | T[]): T | T[] {\r\n try {\r\n const handle = (item: T) => {\r\n let id = '';\r\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\r\n href: ''\r\n };\r\n\r\n if (href) {\r\n id = href.split('/').pop() || '';\r\n }\r\n\r\n return {\r\n ...item,\r\n id\r\n };\r\n };\r\n\r\n if (args instanceof Array) {\r\n return args.map((item: T) => {\r\n return handle(item);\r\n });\r\n }\r\n\r\n return handle(args);\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\r\n }\r\n }\r\n\r\n protected update?(args: T | T[]) {\r\n try {\r\n let typeAction = 'updateOne';\r\n\r\n if (args instanceof Array) {\r\n typeAction = 'updateAll';\r\n }\r\n\r\n this.store.dispatch(\r\n this.action[typeAction]({\r\n data: this.mappingData(args)\r\n })\r\n );\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method update -> ${e}`);\r\n }\r\n }\r\n\r\n protected updatePage?(data: MonkeyEcxPage) {\r\n try {\r\n this.store.dispatch(\r\n this.action.updatePage({\r\n data\r\n })\r\n );\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\r\n }\r\n }\r\n\r\n protected updateLinks?(data: MonkeyEcxLinks) {\r\n try {\r\n this.store.dispatch(\r\n this.action.updateLinks({\r\n data\r\n })\r\n );\r\n } catch (e) {\r\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\r\n }\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n requestInProgress: {\r\n showProgress: true\r\n }\r\n })\r\n protected async loadData(url: string, updateLinks = true) {\r\n this.updateControl({ isLoading: true });\r\n\r\n try {\r\n const data = await this.monkeyecxService?.get<any>(url).toPromise();\r\n this.handleResponseData(data, updateLinks);\r\n this.updateControl({ isLoading: false });\r\n } catch (e: any) {\r\n this.updateControl({ isLoading: false });\r\n throw new Error(`${e?.message}`);\r\n }\r\n }\r\n\r\n protected async loadPageData(pagination: MonkeyEcxPagination) {\r\n const { store, selector } = this;\r\n const data = await store\r\n .select(selector.selectLinks())\r\n .pipe(take(1))\r\n .toPromise();\r\n\r\n const { action } = pagination;\r\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\r\n href: ''\r\n };\r\n\r\n if (href) {\r\n this.loadData(href);\r\n }\r\n }\r\n\r\n /**\r\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\r\n * entidade ou não\r\n * E depois precisa invocar o método loadData\r\n * @param (url) ou de acordo com a action criada\r\n * @example\r\n * ```\r\n * const hasDifference = .....\r\n * if(hasDifference) {\r\n * store.dispatch(clear)\r\n * }\r\n *\r\n * this.loadData(...)\r\n * ```\r\n */\r\n public load?(args: any) {\r\n throw new Error('MECX Core - Method load not implemented.');\r\n }\r\n\r\n public loadPage?(args: any) {\r\n throw new Error('MECX Core - Method loadPage not implemented.');\r\n }\r\n}\r\n","import { createAction, props } from '@ngrx/store';\nimport {\n MonkeyEcxPage,\n MonkeyEcxPagination,\n MonkeyEcxPaginationData,\n MonkeyEcxStoreControl\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(\n `[${actionName}] Load`,\n props<{ url: string; identifier: string; force?: boolean }>()\n );\n const loadPagination = createAction(\n `[${actionName} Pagination] Load`,\n props<{ pagination: MonkeyEcxPagination; identifier: string }>()\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 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 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 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 } catch (e: any) {\n throw new Error(`${e?.message}`);\n }\n\n this.updateControl({ isLoading: false });\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 { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { MonkeyEcxConfig } from '../interfaces';\r\nimport { MonkeyEcxConfigService } from '../services';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFeatureByProgram]'\r\n})\r\nexport class MonkeyEcxFeatureByProgramDirective implements OnInit {\r\n @Input('feature') feature: string = '';\r\n\r\n private config?: MonkeyEcxConfig;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private monkeyConfigService: MonkeyEcxConfigService\r\n ) {\r\n this.monkeyConfigService.config().subscribe((_: MonkeyEcxConfig) => {\r\n this.config = _;\r\n this.init();\r\n });\r\n }\r\n\r\n private init() {\r\n if (!this.feature) return;\r\n this.cdr.detectChanges();\r\n this.handleDisplay();\r\n }\r\n\r\n private handleDisplay(): void {\r\n const { feature, config } = this;\r\n let display = 'none';\r\n\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\r\n !MonkeyEcxUtils.persistNullEmptyUndefined(config?.program?.settings)) {\r\n return;\r\n }\r\n\r\n const disabled = config?.program?.settings?.[feature];\r\n\r\n if (!disabled) {\r\n display = 'block';\r\n }\r\n\r\n this.elementRef.nativeElement.style.display = display;\r\n\r\n if (display === 'none') {\r\n this.elementRef.nativeElement.remove();\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFeature]'\r\n})\r\nexport class MonkeyEcxFeatureDirective implements OnDestroy, OnInit {\r\n @Input('featureName') feature?: string;\r\n\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private monkeyecxFeatureToggleService: MonkeyEcxFeatureToggleService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private getFeature(feature: string): boolean {\r\n const { monkeyecxFeatureToggleService } = this;\r\n\r\n if (!monkeyecxFeatureToggleService) {\r\n return false;\r\n }\r\n\r\n return monkeyecxFeatureToggleService?.getFlag(feature) || false;\r\n }\r\n\r\n private handleDisplay(): void {\r\n if (!this.feature) return;\r\n const flag = this.getFeature(this.feature);\r\n let display = 'none';\r\n\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\r\n return;\r\n }\r\n\r\n if (flag) {\r\n display = 'block';\r\n }\r\n\r\n if (display === 'none') {\r\n this.elementRef.nativeElement.remove();\r\n }\r\n\r\n this.elementRef.nativeElement.style.display = display;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.feature) return;\r\n this.elementRef.nativeElement.style.display = 'none';\r\n this.cdr.detectChanges();\r\n\r\n this.monkeyecxFeatureToggleService.onFlags\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe((val: boolean) => {\r\n if (val) {\r\n this.handleDisplay();\r\n }\r\n });\r\n }\r\n}\r\n","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MonkeyEcxDragDropDirective } from './monkeyecx-drag-drop';\r\nimport { MonkeyEcxFeatureByProgramDirective } from './monkeyecx-feature-by-program-directive';\r\nimport { MonkeyEcxFeatureDirective } from './monkeyecx-feature-directive';\r\nimport { MonkeyEcxFormatCurrency } from './monkeyecx-format-currency';\r\nimport { MonkeyEcxFormatUpper } from './monkeyecx-format-upper';\r\nimport { MonkeyEcxOnlyAlphaNumericDirective } from './monkeyecx-only-alpha-numeric-directive';\r\nimport { MonkeyEcxOnlyNumbersDirective } from './monkeyecx-only-number-directive';\r\nimport { MonkeyEcxPopoverOptionsDirective } from './monkeyecx-popover-options.directive';\r\nimport { MonkeyEcxPopoverDirective } from './monkeyecx-popover.directive';\r\nimport { MonkeyEcxSecurityDirective } from './monkeyecx-security-directive';\r\nimport { MonkeyEcxTooltipDirective } from './monkeyecx-tooltip-directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyEcxDragDropDirective,\r\n MonkeyEcxFormatCurrency,\r\n MonkeyEcxFeatureDirective,\r\n MonkeyEcxFeatureByProgramDirective,\r\n MonkeyEcxFormatUpper,\r\n MonkeyEcxOnlyAlphaNumericDirective,\r\n MonkeyEcxOnlyNumbersDirective,\r\n MonkeyEcxSecurityDirective,\r\n MonkeyEcxTooltipDirective,\r\n MonkeyEcxPopoverDirective,\r\n MonkeyEcxPopoverOptionsDirective\r\n ],\r\n imports: [CommonModule, OverlayModule],\r\n exports: [\r\n MonkeyEcxDragDropDirective,\r\n MonkeyEcxFormatCurrency,\r\n MonkeyEcxFeatureDirective,\r\n MonkeyEcxFeatureByProgramDirective,\r\n MonkeyEcxFormatUpper,\r\n MonkeyEcxOnlyAlphaNumericDirective,\r\n MonkeyEcxOnlyNumbersDirective,\r\n MonkeyEcxSecurityDirective,\r\n MonkeyEcxTooltipDirective,\r\n MonkeyEcxPopoverDirective,\r\n MonkeyEcxPopoverOptionsDirective\r\n ]\r\n})\r\nexport class MonkeyEcxDirectivesModule {}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { from, Observable, throwError } from 'rxjs';\r\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\r\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\r\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\r\n\r\nexport interface Headers {\r\n name: string;\r\n value: string;\r\n}\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\r\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\r\n ) {\r\n // no to do\r\n }\r\n\r\n private async handle(request: HttpRequest<any>, error: HttpErrorResponse) {\r\n try {\r\n if (this.monkeyecxAuthenticationService.refreshShouldHappen(error)) {\r\n await this.monkeyecxAuthenticationService?.refreshToken();\r\n const headers = await this.monkeyecxAuthenticationService.getRequestWithHeadersAsync(\r\n request\r\n );\r\n return headers;\r\n }\r\n } catch (e) {\r\n return throwError(e);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n return from(this.handle(request, error)).pipe(\r\n take(1),\r\n map((event: any) => {\r\n return event;\r\n }),\r\n mergeMap((resp: any) => {\r\n request = request.clone({\r\n setHeaders: resp\r\n });\r\n return next.handle(request);\r\n }),\r\n catchError(() => {\r\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\r\n return throwError(error);\r\n })\r\n );\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { from, Observable, throwError } from 'rxjs';\r\nimport { catchError, first, map, mergeMap, take } from 'rxjs/operators';\r\nimport { MonkeyEcxConfigService } from '../services';\r\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\r\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigHeaderInterceptor implements HttpInterceptor {\r\n constructor(\r\n private authService: MonkeyEcxAuthenticationService,\r\n private errorHandlingService: MonkeyEcxErrorHandlingService,\r\n private config: MonkeyEcxConfigService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private async handle(request: HttpRequest<any>) {\r\n const { url } = request;\r\n if (this.authService.isTokenMandatory(url)) {\r\n try {\r\n await this.config\r\n .config()\r\n .pipe(\r\n first((val: any) => {\r\n return !!val && JSON.stringify(val) !== '{}';\r\n })\r\n )\r\n .toPromise();\r\n } catch (e) {\r\n // not to do\r\n }\r\n }\r\n let resp = null;\r\n try {\r\n resp = await this.authService.getRequestWithHeadersAsync(request);\r\n } catch (e) {\r\n this.errorHandlingService.handleError(e);\r\n return throwError(e);\r\n }\r\n\r\n return resp;\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return from(this.handle(request)).pipe(\r\n take(1),\r\n map((event: any) => {\r\n return event;\r\n }),\r\n mergeMap((resp: any) => {\r\n request = request.clone({\r\n setHeaders: resp\r\n });\r\n return next.handle(request);\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.errorHandlingService.handleError(error);\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestQueueHandlingService } from '../services/request-queue';\r\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\r\nimport { MonkeyEcxRequestQueue } from '../interfaces';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigQueueInterceptor implements HttpInterceptor {\r\n constructor(\r\n private injector: Injector,\r\n private monkeyecxRequestQueueHandlingService: MonkeyEcxRequestQueueHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const { injector, isQueueProperty } = this;\r\n const monkeyecxHandlingService = injector.get(MonkeyEcxHandlingService);\r\n\r\n const monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = monkeyecxHandlingService?.getMonkeyEcxRequestQueue();\r\n if (isQueueProperty(monkeyecxRequestQueue)) {\r\n this.monkeyecxRequestQueueHandlingService.setQueue(monkeyecxRequestQueue);\r\n }\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n if (isQueueProperty(monkeyecxRequestQueue)) {\r\n this.monkeyecxRequestQueueHandlingService.finishQueueItem(monkeyecxRequestQueue);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private isQueueProperty(mrq?: MonkeyEcxRequestQueue | null): boolean {\r\n return (\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq) &&\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq?.item?.name)\r\n );\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\r\nimport { MonkeyEcxRequestLoadingInProgress } from '../interfaces';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\nimport { MonkeyEcxProgressBarService } from '../../components';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigLoadingInProgressInterceptor implements HttpInterceptor {\r\n constructor(private injector: Injector) {\r\n // no to do\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const { injector, isLoadingInProgressProperty } = this;\r\n const handlingService: MonkeyEcxHandlingService = injector.get(MonkeyEcxHandlingService);\r\n const progressBarService: MonkeyEcxProgressBarService = injector.get(\r\n MonkeyEcxProgressBarService\r\n );\r\n\r\n const inProgress: MonkeyEcxRequestLoadingInProgress | null = handlingService?.getMonkeyEcxServiceCredentials()\r\n ? handlingService?.getMonkeyEcxServiceCredentials()?.requestInProgress || null\r\n : null;\r\n if (isLoadingInProgressProperty(inProgress)) {\r\n progressBarService.show();\r\n }\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n if (isLoadingInProgressProperty(inProgress)) {\r\n progressBarService.hide();\r\n }\r\n })\r\n );\r\n }\r\n\r\n private isLoadingInProgressProperty(mlp: MonkeyEcxRequestLoadingInProgress | null): boolean {\r\n if (!mlp) return false;\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(mlp) &&\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mlp.showProgress)\r\n ? mlp.showProgress\r\n : true;\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyEcxHttpConfigErrorInterceptor } from './monkeyecx-http-config-error.interceptor';\r\nimport { MonkeyEcxHttpConfigHeaderInterceptor } from './monkeyecx-http-config-header.interceptor';\r\nimport { MonkeyEcxHttpConfigQueueInterceptor } from './monkeyecx-http-config-queue.interceptor';\r\nimport { MonkeyEcxHttpConfigLoadingInProgressInterceptor } from './monkeyecx-http-config-loading-in-progress.interceptor';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class MonkeyEcxHttpConfigInterceptorModule {\r\n public static forRoot(): ModuleWithProviders<MonkeyEcxHttpConfigInterceptorModule> {\r\n return {\r\n ngModule: MonkeyEcxHttpConfigInterceptorModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigHeaderInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigErrorInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigQueueInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigLoadingInProgressInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nexport enum OpSearch {\r\n LIKE = ':\\'*:value*\\'',\r\n BETWEEN = ':first AND :last',\r\n OR = 'OR',\r\n AND = 'AND',\r\n GT = '>:value',\r\n LT = '<:value',\r\n EQUAL = '::value',\r\n IN = ' IN :value',\r\n NOT = ' !:value'\r\n}\r\n\r\nexport class MonkeyEcxSpecificationSearch {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private handleValue(value: any) {\r\n return Object.entries(value).map(([key, value1]) => {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {\r\n return null;\r\n }\r\n if (Array.isArray(value1)) {\r\n if (key === OpSearch.BETWEEN) {\r\n return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);\r\n }\r\n }\r\n return `${key}`.replace(':value', `${value1}`);\r\n })[0];\r\n }\r\n\r\n private queryVisitor(value: any): any {\r\n const okay = Object.entries(value).map(([key1, value1]) => {\r\n if (key1 === OpSearch.OR || key1 === OpSearch.AND) {\r\n const join = (value1 as any[])\r\n .map((_: any) => {\r\n return Object.entries(_).map(([key2, value2]) => {\r\n if (value2 instanceof Object) {\r\n value2 = this.handleValue(value2);\r\n }\r\n return this.criteriaParser(key2, value2);\r\n })[0];\r\n })\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n .join(` ${key1} `);\r\n return `${join ? `(${join})` : ''}`;\r\n }\r\n if (value1 instanceof Object) {\r\n value1 = this.handleValue(value1);\r\n }\r\n return this.criteriaParser(key1, value1);\r\n });\r\n return okay\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n .join(' AND ');\r\n }\r\n\r\n private criteriaParser(key: string, value: any | any[]) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n return '';\r\n }\r\n if (value instanceof Object) {\r\n return this.queryVisitor(value);\r\n }\r\n return `${key}${value}`;\r\n }\r\n\r\n public build(spec: any): string {\r\n try {\r\n return this.queryVisitor(spec);\r\n } catch (e) {\r\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\r\n }\r\n }\r\n\r\n public buildMoreThanOne(field: string, op = OpSearch.EQUAL, addSingleQuotes = false) {\r\n const self: any = this;\r\n try {\r\n if (!self[field]) return [];\r\n\r\n const filters = self[field]?.split(',')?.map((filter: string) => {\r\n if (!filter) return null;\r\n return {\r\n [field]: {\r\n [op]: addSingleQuotes ? `'${filter}'` : `${filter}`\r\n }\r\n };\r\n }).filter((val: any) => { return val; });\r\n return filters || [];\r\n } catch (e) {\r\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\r\n }\r\n }\r\n\r\n public handleFieldSeparatedBy(field: string, signal = ',', op = OpSearch.EQUAL) {\r\n return this[field]?.split(signal)?.map((_) => {\r\n return {\r\n [field]: {\r\n [op]: _\r\n }\r\n };\r\n });\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\n\nexport const MECX_TIMEZONEOFFSET = new InjectionToken<string>('');\nexport const MECX_DATE_FORMAT = new InjectionToken<string>('');\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyStyleGuideModalService,\r\n MonkeyStyleGuideModule,\r\n MonkeyStyleGuideSettingsService,\r\n MonkeyStyleGuideSnackbarService\r\n} from 'monkey-style-guide';\r\nimport {\r\n AlertsModule,\r\n ClosedToMaintenanceModule,\r\n CurrencyConfigModule,\r\n VersionChangedModule\r\n} from './components';\r\nimport { MonkeyEcxHttpConfigInterceptorModule } from './core/interceptors/monkeyecx-http-config-interceptor.module';\r\nimport { MonkeyEcxConfigModule } from './core/services/config/monkeyecx-config.module';\r\nimport { MonkeyEcxErrorHandlingModule } from './core/services/error/monkeyecx-error-handling.module';\r\nimport { reducers } from './store';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot(),\r\n MonkeyEcxConfigModule.forRoot(),\r\n MonkeyEcxHttpConfigInterceptorModule.forRoot(),\r\n MonkeyEcxErrorHandlingModule.forRoot(),\r\n MonkeyStyleGuideModule,\r\n ServiceWorkerModule.register('ngsw-worker.js'),\r\n ClosedToMaintenanceModule,\r\n StoreModule.forFeature(\r\n reducers.fromMonkeyecxStorage.featureKey,\r\n reducers.fromMonkeyecxStorage.reducer\r\n ),\r\n VersionChangedModule,\r\n AlertsModule,\r\n CurrencyConfigModule\r\n ],\r\n providers: [\r\n MonkeyStyleGuideModalService,\r\n MonkeyStyleGuideSettingsService,\r\n MonkeyStyleGuideSnackbarService\r\n ]\r\n})\r\nexport class MonkeyFrontCoreModule {}\r\n","/*\r\n * Public API Surface of monkey-front-core\r\n */\r\nexport * from './lib/components';\r\nexport * from './lib/core';\r\nexport * from './lib/monkey-front-core.module';\r\nexport * as store from './lib/store';\r\n\r\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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"}