monkey-front-core 0.0.93 → 0.0.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/bundles/monkey-front-core.umd.js +4900 -0
- package/bundles/monkey-front-core.umd.js.map +1 -0
- package/esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.component.js +35 -0
- package/{esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.module.mjs → esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.module.js} +5 -5
- package/{esm2020/lib/components/closed-to-maintenance/index.mjs → esm2015/lib/components/closed-to-maintenance/index.js} +1 -1
- package/{esm2020/lib/components/index.mjs → esm2015/lib/components/index.js} +0 -0
- package/{esm2020/lib/components/progress-bar/index.mjs → esm2015/lib/components/progress-bar/index.js} +1 -1
- package/esm2015/lib/components/progress-bar/progress-bar.component.js +29 -0
- package/{esm2020/lib/components/progress-bar/progress-bar.module.mjs → esm2015/lib/components/progress-bar/progress-bar.module.js} +5 -5
- package/esm2015/lib/components/progress-bar/progress-bar.service.js +53 -0
- package/{esm2020/lib/components/version-changed/index.mjs → esm2015/lib/components/version-changed/index.js} +1 -1
- package/esm2015/lib/components/version-changed/version-changed.component.js +29 -0
- package/{esm2020/lib/components/version-changed/version-changed.module.mjs → esm2015/lib/components/version-changed/version-changed.module.js} +5 -5
- package/{esm2020/lib/core/decorators/index.mjs → esm2015/lib/core/decorators/index.js} +1 -1
- package/{esm2020/lib/core/decorators/monkeyecx-charts-decorators.mjs → esm2015/lib/core/decorators/monkeyecx-charts-decorators.js} +1 -1
- package/esm2015/lib/core/decorators/monkeyecx-decorators.js +112 -0
- package/esm2015/lib/core/decorators/monkeyecx-download-decorators.js +25 -0
- package/esm2015/lib/core/decorators/monkeyecx-upload-decorators.js +25 -0
- package/{esm2020/lib/core/directives/index.mjs → esm2015/lib/core/directives/index.js} +1 -1
- package/{esm2020/lib/core/directives/monkeyecx-directives-module.mjs → esm2015/lib/core/directives/monkeyecx-directives-module.js} +5 -5
- package/esm2015/lib/core/directives/monkeyecx-drag-drop.js +57 -0
- package/esm2015/lib/core/directives/monkeyecx-feature-directive.js +68 -0
- package/{esm2020/lib/core/directives/monkeyecx-format-currency.mjs → esm2015/lib/core/directives/monkeyecx-format-currency.js} +4 -4
- package/esm2015/lib/core/directives/monkeyecx-format-upper.js +69 -0
- package/{esm2020/lib/core/directives/monkeyecx-only-alpha-numeric-directive.mjs → esm2015/lib/core/directives/monkeyecx-only-alpha-numeric-directive.js} +4 -4
- package/{esm2020/lib/core/directives/monkeyecx-only-number-directive.mjs → esm2015/lib/core/directives/monkeyecx-only-number-directive.js} +4 -4
- package/esm2015/lib/core/directives/monkeyecx-security-directive.js +69 -0
- package/esm2015/lib/core/directives/monkeyecx-tooltip-directive.js +124 -0
- package/{esm2020/lib/core/index.mjs → esm2015/lib/core/index.js} +1 -1
- package/{esm2020/lib/core/interceptors/index.mjs → esm2015/lib/core/interceptors/index.js} +1 -1
- package/esm2015/lib/core/interceptors/monkeyecx-http-config-error.interceptor.js +40 -0
- package/esm2015/lib/core/interceptors/monkeyecx-http-config-header.interceptor.js +33 -0
- package/{esm2020/lib/core/interceptors/monkeyecx-http-config-interceptor.module.mjs → esm2015/lib/core/interceptors/monkeyecx-http-config-interceptor.module.js} +5 -5
- package/esm2015/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.js +44 -0
- package/esm2015/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.js +38 -0
- package/esm2015/lib/core/interfaces/index.js +27 -0
- package/esm2015/lib/core/interfaces/monkeyecx-auth-credentials.js +2 -0
- package/{esm2020/lib/core/interfaces/monkeyecx-company.mjs → esm2015/lib/core/interfaces/monkeyecx-company.js} +1 -1
- package/esm2015/lib/core/interfaces/monkeyecx-config-boostrap.js +2 -0
- package/esm2015/lib/core/interfaces/monkeyecx-config.js +2 -0
- package/{esm2020/lib/core/interfaces/monkeyecx-error-response.mjs → esm2015/lib/core/interfaces/monkeyecx-error-response.js} +1 -1
- package/{esm2020/lib/core/interfaces/monkeyecx-handled-error-response.mjs → esm2015/lib/core/interfaces/monkeyecx-handled-error-response.js} +1 -1
- package/{esm2020/lib/core/interfaces/monkeyecx-header-credentials.mjs → esm2015/lib/core/interfaces/monkeyecx-header-credentials.js} +1 -1
- package/{esm2020/lib/core/interfaces/monkeyecx-intercom-options.mjs → esm2015/lib/core/interfaces/monkeyecx-intercom-options.js} +1 -1
- package/esm2015/lib/core/interfaces/monkeyecx-me-credentials.js +2 -0
- package/esm2015/lib/core/interfaces/monkeyecx-navigation.js +2 -0
- package/{esm2020/lib/core/interfaces/monkeyecx-program.mjs → esm2015/lib/core/interfaces/monkeyecx-program.js} +1 -1
- package/{esm2020/lib/core/interfaces/monkeyecx-releases.mjs → esm2015/lib/core/interfaces/monkeyecx-releases.js} +1 -1
- package/{esm2020/lib/core/interfaces/monkeyecx-request-in-progress.mjs → esm2015/lib/core/interfaces/monkeyecx-request-in-progress.js} +1 -1
- package/esm2015/lib/core/interfaces/monkeyecx-request-paged.js +2 -0
- package/{esm2020/lib/core/interfaces/monkeyecx-response-links.mjs → esm2015/lib/core/interfaces/monkeyecx-response-links.js} +1 -1
- package/{esm2020/lib/core/interfaces/monkeyecx-response-paged.mjs → esm2015/lib/core/interfaces/monkeyecx-response-paged.js} +1 -1
- package/esm2015/lib/core/interfaces/monkeyecx-saved-state.js +2 -0
- package/esm2015/lib/core/interfaces/monkeyecx-scroll-options.js +2 -0
- package/esm2015/lib/core/interfaces/monkeyecx-service-credentials.js +2 -0
- package/{esm2020/lib/core/interfaces/monkeyecx-support-options.mjs → esm2015/lib/core/interfaces/monkeyecx-support-options.js} +1 -1
- package/esm2015/lib/core/interfaces/monkeyecx-token-credentials.js +2 -0
- package/{esm2020/lib/core/interfaces/monkeyecx-translate-options.mjs → esm2015/lib/core/interfaces/monkeyecx-translate-options.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-download/index.mjs → esm2015/lib/core/interfaces/request-download/index.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-download.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-download.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-downloaded.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-downloaded.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-item-download.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-item-download.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-queue/index.mjs → esm2015/lib/core/interfaces/request-queue/index.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-queue.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-upload/index.mjs → esm2015/lib/core/interfaces/request-upload/index.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.mjs → esm2015/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.js} +1 -1
- package/{esm2020/lib/core/interfaces/request-upload/monkeyecx-request-upload.mjs → esm2015/lib/core/interfaces/request-upload/monkeyecx-request-upload.js} +1 -1
- package/{esm2020/lib/core/interfaces/schedules/index.mjs → esm2015/lib/core/interfaces/schedules/index.js} +1 -1
- package/esm2015/lib/core/interfaces/schedules/monkeyecx-request-schedule.js +2 -0
- package/{esm2020/lib/core/model/index.mjs → esm2015/lib/core/model/index.js} +1 -1
- package/{esm2020/lib/core/model/monkeyecx-model.mjs → esm2015/lib/core/model/monkeyecx-model.js} +1 -1
- package/{esm2020/lib/core/pipes/index.mjs → esm2015/lib/core/pipes/index.js} +0 -0
- package/{esm2020/lib/core/pipes/monkeyecx-display-first-name.mjs → esm2015/lib/core/pipes/monkeyecx-display-first-name.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-address.mjs → esm2015/lib/core/pipes/monkeyecx-format-address.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-currency.mjs → esm2015/lib/core/pipes/monkeyecx-format-currency.js} +4 -4
- package/esm2015/lib/core/pipes/monkeyecx-format-date-group.js +46 -0
- package/{esm2020/lib/core/pipes/monkeyecx-format-date-timelapse.mjs → esm2015/lib/core/pipes/monkeyecx-format-date-timelapse.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-document.mjs → esm2015/lib/core/pipes/monkeyecx-format-document.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-number.mjs → esm2015/lib/core/pipes/monkeyecx-format-number.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-phone.mjs → esm2015/lib/core/pipes/monkeyecx-format-phone.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-size.mjs → esm2015/lib/core/pipes/monkeyecx-format-size.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-type-document.mjs → esm2015/lib/core/pipes/monkeyecx-format-type-document.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-value.mjs → esm2015/lib/core/pipes/monkeyecx-format-value.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-format-zipcode.mjs → esm2015/lib/core/pipes/monkeyecx-format-zipcode.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-pipes.module.mjs → esm2015/lib/core/pipes/monkeyecx-pipes.module.js} +5 -5
- package/{esm2020/lib/core/pipes/monkeyecx-text-truncate.mjs → esm2015/lib/core/pipes/monkeyecx-text-truncate.js} +4 -4
- package/{esm2020/lib/core/pipes/monkeyecx-truncate-qtd.mjs → esm2015/lib/core/pipes/monkeyecx-truncate-qtd.js} +4 -4
- package/{esm2020/lib/core/services/auth/index.mjs → esm2015/lib/core/services/auth/index.js} +1 -1
- package/{esm2020/lib/core/services/auth/monkeyecx-auth-guard-login.service.mjs → esm2015/lib/core/services/auth/monkeyecx-auth-guard-login.service.js} +4 -4
- package/{esm2020/lib/core/services/auth/monkeyecx-auth-guard.service.mjs → esm2015/lib/core/services/auth/monkeyecx-auth-guard.service.js} +4 -4
- package/esm2015/lib/core/services/auth/monkeyecx-authentication.service.js +61 -0
- package/{esm2020/lib/core/services/commons/index.mjs → esm2015/lib/core/services/commons/index.js} +1 -1
- package/esm2015/lib/core/services/commons/monkeyecx-commons.service.js +265 -0
- package/{esm2020/lib/core/services/config/monkeyecx-config.module.mjs → esm2015/lib/core/services/config/monkeyecx-config.module.js} +5 -5
- package/{esm2020/lib/core/services/config/monkeyecx-config.service.mjs → esm2015/lib/core/services/config/monkeyecx-config.service.js} +9 -11
- package/esm2015/lib/core/services/config/monkeyecx-error-config.service.js +85 -0
- package/esm2015/lib/core/services/config/monkeyecx-feature-toggle.service.js +70 -0
- package/esm2015/lib/core/services/config/monkeyecx-i18n-config.service.js +72 -0
- package/esm2015/lib/core/services/config/monkeyecx-logs-config.service.js +34 -0
- package/{esm2020/lib/core/services/config/monkeyecx-maintenance-config.service.mjs → esm2015/lib/core/services/config/monkeyecx-maintenance-config.service.js} +4 -4
- package/esm2015/lib/core/services/config/monkeyecx-security-console-config.service.js +42 -0
- package/esm2015/lib/core/services/config/monkeyecx-service-worker-config.service.js +54 -0
- package/{esm2020/lib/core/services/error/index.mjs → esm2015/lib/core/services/error/index.js} +1 -1
- package/{esm2020/lib/core/services/error/monkeyecx-error-handling.module.mjs → esm2015/lib/core/services/error/monkeyecx-error-handling.module.js} +5 -5
- package/esm2015/lib/core/services/error/monkeyecx-error-handling.service.js +41 -0
- package/esm2015/lib/core/services/error/monkeyecx-http-error-handling.service.js +132 -0
- package/{esm2020/lib/core/services/error/monkeyecx-others-errors-handling.service.mjs → esm2015/lib/core/services/error/monkeyecx-others-errors-handling.service.js} +4 -4
- package/{esm2020/lib/core/services/index.mjs → esm2015/lib/core/services/index.js} +1 -1
- package/{esm2020/lib/core/services/logged/index.mjs → esm2015/lib/core/services/logged/index.js} +1 -1
- package/{esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs → esm2015/lib/core/services/logged/monkeyecx-logged-handling.service.js} +4 -4
- package/esm2015/lib/core/services/monkeyecx-handling.service.js +50 -0
- package/esm2015/lib/core/services/monkeyecx-service.service.js +102 -0
- package/{esm2020/lib/core/services/request-download/index.mjs → esm2015/lib/core/services/request-download/index.js} +1 -1
- package/esm2015/lib/core/services/request-download/monkeyecx-request-download-handling.service.js +81 -0
- package/esm2015/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.js +55 -0
- package/{esm2020/lib/core/services/request-paged/index.mjs → esm2015/lib/core/services/request-paged/index.js} +1 -1
- package/esm2015/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.js +37 -0
- package/{esm2020/lib/core/services/request-queue/index.mjs → esm2015/lib/core/services/request-queue/index.js} +1 -1
- package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.js +101 -0
- package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.js +106 -0
- package/{esm2020/lib/core/services/routes/index.mjs → esm2015/lib/core/services/routes/index.js} +1 -1
- package/esm2015/lib/core/services/routes/monkeyecx-dicovery-params.service.js +55 -0
- package/{esm2020/lib/core/services/schedules/index.mjs → esm2015/lib/core/services/schedules/index.js} +1 -1
- package/esm2015/lib/core/services/schedules/monkeyecx-request-schedule.service.js +99 -0
- package/{esm2020/lib/core/services/storage/index.mjs → esm2015/lib/core/services/storage/index.js} +1 -1
- package/{esm2020/lib/core/services/storage/monkeyecx-cookie-storage.service.mjs → esm2015/lib/core/services/storage/monkeyecx-cookie-storage.service.js} +4 -4
- package/esm2015/lib/core/services/storage/monkeyecx-token-storage.service.js +123 -0
- package/{esm2020/lib/core/specification-search/index.mjs → esm2015/lib/core/specification-search/index.js} +1 -1
- package/{esm2020/lib/core/specification-search/monkeyecx-specification-search.mjs → esm2015/lib/core/specification-search/monkeyecx-specification-search.js} +3 -2
- package/esm2015/lib/core/utils/decorators-utils.js +37 -0
- package/{esm2020/lib/core/utils/index.mjs → esm2015/lib/core/utils/index.js} +1 -1
- package/{esm2020/lib/core/utils/statics.mjs → esm2015/lib/core/utils/statics.js} +1 -1
- package/esm2015/lib/core/utils/utils.js +219 -0
- package/esm2015/lib/core/utils/validate-utils.js +210 -0
- package/esm2015/lib/core/utils/validators.js +211 -0
- package/{esm2020/lib/monkey-front-core.module.mjs → esm2015/lib/monkey-front-core.module.js} +5 -5
- package/{esm2020/monkey-front-core.mjs → esm2015/monkey-front-core.js} +0 -0
- package/{esm2020/public-api.mjs → esm2015/public-api.js} +1 -1
- package/fesm2015/{monkey-front-core.mjs → monkey-front-core.js} +233 -218
- package/fesm2015/monkey-front-core.js.map +1 -0
- package/lib/core/interfaces/index.d.ts +2 -0
- package/lib/core/interfaces/monkeyecx-saved-state.d.ts +5 -0
- package/lib/core/interfaces/monkeyecx-scroll-options.d.ts +5 -0
- package/lib/core/pipes/monkeyecx-format-currency.d.ts +1 -1
- package/lib/core/services/auth/monkeyecx-authentication.service.d.ts +3 -3
- package/lib/core/services/commons/monkeyecx-commons.service.d.ts +18 -15
- package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +1 -1
- package/lib/core/utils/validate-utils.d.ts +13 -13
- package/monkey-front-core-0.0.97.tgz +0 -0
- package/package.json +7 -20
- package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.component.mjs +0 -29
- package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +0 -23
- package/esm2020/lib/components/progress-bar/progress-bar.service.mjs +0 -50
- package/esm2020/lib/components/version-changed/version-changed.component.mjs +0 -24
- package/esm2020/lib/core/decorators/monkeyecx-decorators.mjs +0 -111
- package/esm2020/lib/core/decorators/monkeyecx-download-decorators.mjs +0 -26
- package/esm2020/lib/core/decorators/monkeyecx-upload-decorators.mjs +0 -26
- package/esm2020/lib/core/directives/monkeyecx-drag-drop.mjs +0 -57
- package/esm2020/lib/core/directives/monkeyecx-feature-directive.mjs +0 -68
- package/esm2020/lib/core/directives/monkeyecx-format-upper.mjs +0 -67
- package/esm2020/lib/core/directives/monkeyecx-security-directive.mjs +0 -69
- package/esm2020/lib/core/directives/monkeyecx-tooltip-directive.mjs +0 -123
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-error.interceptor.mjs +0 -39
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-header.interceptor.mjs +0 -32
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.mjs +0 -43
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.mjs +0 -37
- package/esm2020/lib/core/interfaces/index.mjs +0 -25
- package/esm2020/lib/core/interfaces/monkeyecx-auth-credentials.mjs +0 -2
- package/esm2020/lib/core/interfaces/monkeyecx-config-boostrap.mjs +0 -2
- package/esm2020/lib/core/interfaces/monkeyecx-config.mjs +0 -2
- package/esm2020/lib/core/interfaces/monkeyecx-me-credentials.mjs +0 -2
- package/esm2020/lib/core/interfaces/monkeyecx-navigation.mjs +0 -2
- package/esm2020/lib/core/interfaces/monkeyecx-request-paged.mjs +0 -2
- package/esm2020/lib/core/interfaces/monkeyecx-service-credentials.mjs +0 -2
- package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +0 -2
- package/esm2020/lib/core/interfaces/schedules/monkeyecx-request-schedule.mjs +0 -2
- package/esm2020/lib/core/pipes/monkeyecx-format-date-group.mjs +0 -45
- package/esm2020/lib/core/services/auth/monkeyecx-authentication.service.mjs +0 -61
- package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +0 -273
- package/esm2020/lib/core/services/config/monkeyecx-error-config.service.mjs +0 -85
- package/esm2020/lib/core/services/config/monkeyecx-feature-toggle.service.mjs +0 -67
- package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +0 -74
- package/esm2020/lib/core/services/config/monkeyecx-logs-config.service.mjs +0 -34
- package/esm2020/lib/core/services/config/monkeyecx-security-console-config.service.mjs +0 -42
- package/esm2020/lib/core/services/config/monkeyecx-service-worker-config.service.mjs +0 -53
- package/esm2020/lib/core/services/error/monkeyecx-error-handling.service.mjs +0 -41
- package/esm2020/lib/core/services/error/monkeyecx-http-error-handling.service.mjs +0 -127
- package/esm2020/lib/core/services/monkeyecx-handling.service.mjs +0 -50
- package/esm2020/lib/core/services/monkeyecx-service.service.mjs +0 -104
- package/esm2020/lib/core/services/request-download/monkeyecx-request-download-handling.service.mjs +0 -93
- package/esm2020/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.mjs +0 -61
- package/esm2020/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.mjs +0 -37
- package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.mjs +0 -114
- package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.mjs +0 -119
- package/esm2020/lib/core/services/routes/monkeyecx-dicovery-params.service.mjs +0 -54
- package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +0 -113
- package/esm2020/lib/core/services/storage/monkeyecx-token-storage.service.mjs +0 -126
- package/esm2020/lib/core/utils/decorators-utils.mjs +0 -40
- package/esm2020/lib/core/utils/utils.mjs +0 -218
- package/esm2020/lib/core/utils/validate-utils.mjs +0 -206
- package/esm2020/lib/core/utils/validators.mjs +0 -208
- package/fesm2015/monkey-front-core.mjs.map +0 -1
- package/fesm2020/monkey-front-core.mjs +0 -4258
- package/fesm2020/monkey-front-core.mjs.map +0 -1
- package/monkey-front-core-0.0.93.tgz +0 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { NavigationStart, } from '@angular/router';
|
|
3
|
+
import { BehaviorSubject, throwError } from 'rxjs';
|
|
4
|
+
import { filter, take, takeWhile } from 'rxjs/operators';
|
|
5
|
+
import { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';
|
|
6
|
+
import { MonkeyEcxUtils } from '../../utils/utils';
|
|
7
|
+
import { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';
|
|
8
|
+
export class MonkeyEcxCommonsService {
|
|
9
|
+
constructor(monkeyecxService, tokenStorage, otherArgs) {
|
|
10
|
+
this.monkeyecxService = monkeyecxService;
|
|
11
|
+
this.tokenStorage = tokenStorage;
|
|
12
|
+
this.otherArgs = otherArgs;
|
|
13
|
+
this.flagValidator = true;
|
|
14
|
+
this.__savedState = null;
|
|
15
|
+
this.__error = null;
|
|
16
|
+
this.__handledError = null;
|
|
17
|
+
this.__page = null;
|
|
18
|
+
this.__links = null;
|
|
19
|
+
this.__requestPaged = null;
|
|
20
|
+
this.__onSearchChanged$ = new BehaviorSubject(null);
|
|
21
|
+
this.__onDataChanged$ = new BehaviorSubject(null);
|
|
22
|
+
this.__onLoadingInProgress$ = new BehaviorSubject(false);
|
|
23
|
+
this.__onDataDeleted$ = new BehaviorSubject(null);
|
|
24
|
+
this.__onErrorChanged$ = new BehaviorSubject(null);
|
|
25
|
+
this.__onGovernmentIdDataChanged$ = new BehaviorSubject(null);
|
|
26
|
+
this.__onZipCodeDataChanged$ = new BehaviorSubject(null);
|
|
27
|
+
this.__oni18nDataChanged$ = new BehaviorSubject(null);
|
|
28
|
+
this.__onDoSearch$ = new BehaviorSubject({});
|
|
29
|
+
this.__tokenCredentials = null;
|
|
30
|
+
this.__schedule = null;
|
|
31
|
+
this.__callbackPagination = () => {
|
|
32
|
+
// eslint-disable-next-line no-console
|
|
33
|
+
return console.error('Method callbackPagination needs to be declared');
|
|
34
|
+
};
|
|
35
|
+
this.handleInit();
|
|
36
|
+
}
|
|
37
|
+
handleInit() {
|
|
38
|
+
var _a, _b, _c;
|
|
39
|
+
if (this.tokenStorage) {
|
|
40
|
+
this.__tokenCredentials = this.tokenStorage.getToken();
|
|
41
|
+
}
|
|
42
|
+
if ((_a = this.otherArgs) === null || _a === void 0 ? void 0 : _a.router) {
|
|
43
|
+
const { clearOnChangeRoute } = ((_c = (_b = this.otherArgs) === null || _b === void 0 ? void 0 : _b.schedule) === null || _c === void 0 ? void 0 : _c.options) || {
|
|
44
|
+
clearOnChangeRoute: false,
|
|
45
|
+
};
|
|
46
|
+
this.otherArgs.router.events
|
|
47
|
+
.pipe(filter((event) => {
|
|
48
|
+
return event instanceof NavigationStart;
|
|
49
|
+
}), take(1))
|
|
50
|
+
.subscribe(() => {
|
|
51
|
+
var _a, _b, _c;
|
|
52
|
+
if (this.__schedule && clearOnChangeRoute) {
|
|
53
|
+
(_c = (_b = (_a = this.otherArgs) === null || _a === void 0 ? void 0 : _a.schedule) === null || _b === void 0 ? void 0 : _b.service) === null || _c === void 0 ? void 0 : _c.removeSchedule(this.__schedule);
|
|
54
|
+
this.__schedule = null;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
getRole() {
|
|
60
|
+
const { __tokenCredentials } = this;
|
|
61
|
+
if (!__tokenCredentials)
|
|
62
|
+
return '';
|
|
63
|
+
if ((__tokenCredentials === null || __tokenCredentials === void 0 ? void 0 : __tokenCredentials.programAdmin) === 'true') {
|
|
64
|
+
return 'PROGRAM_ADMIN';
|
|
65
|
+
}
|
|
66
|
+
return (__tokenCredentials === null || __tokenCredentials === void 0 ? void 0 : __tokenCredentials.role) || '';
|
|
67
|
+
}
|
|
68
|
+
allowedSecurityAccess(args) {
|
|
69
|
+
if (!args)
|
|
70
|
+
return true;
|
|
71
|
+
const roles = args === null || args === void 0 ? void 0 : args.roles;
|
|
72
|
+
const byExclusion = args === null || args === void 0 ? void 0 : args.byExclusion;
|
|
73
|
+
const found = roles === null || roles === void 0 ? void 0 : roles.indexOf(this.getRole());
|
|
74
|
+
let ret = false;
|
|
75
|
+
if (byExclusion) {
|
|
76
|
+
ret = true;
|
|
77
|
+
if (found > -1) {
|
|
78
|
+
ret = false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
ret = false;
|
|
83
|
+
if (found > -1) {
|
|
84
|
+
ret = true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {
|
|
88
|
+
ret = true;
|
|
89
|
+
}
|
|
90
|
+
return ret;
|
|
91
|
+
}
|
|
92
|
+
navigateToErrorPage(statusCode, router) {
|
|
93
|
+
const routes = {
|
|
94
|
+
403: 'forbidden',
|
|
95
|
+
404: 'not-found',
|
|
96
|
+
500: 'service-problems',
|
|
97
|
+
503: 'service-problems',
|
|
98
|
+
};
|
|
99
|
+
if (!router) {
|
|
100
|
+
console.error('Router must be declared');
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
router === null || router === void 0 ? void 0 : router.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()], {
|
|
104
|
+
skipLocationChange: true,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
setPage(requestPaged) {
|
|
109
|
+
this.__requestPaged = Object.assign(Object.assign({}, this.__requestPaged), requestPaged);
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
nextPage() {
|
|
113
|
+
var _a;
|
|
114
|
+
if (this.__links) {
|
|
115
|
+
return !!((_a = this.__links) === null || _a === void 0 ? void 0 : _a.next);
|
|
116
|
+
}
|
|
117
|
+
if (!this.__requestPaged)
|
|
118
|
+
return false;
|
|
119
|
+
const { page } = this.__requestPaged;
|
|
120
|
+
const { number, totalPages } = page;
|
|
121
|
+
if (number < totalPages) {
|
|
122
|
+
this.__requestPaged = Object.assign(Object.assign({}, this.__requestPaged), { page: Object.assign(Object.assign({}, page), { number: number + 1 }) });
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
getEmbeddedData(data, field) {
|
|
128
|
+
const { _embedded } = data;
|
|
129
|
+
return _embedded ? _embedded[field] : null;
|
|
130
|
+
}
|
|
131
|
+
getNormalizedUrl(url) {
|
|
132
|
+
const { __requestPaged, __links } = this;
|
|
133
|
+
return new MonkeyEcxRequestPagedHandling(url, __requestPaged || {}, __links).getRequestWithPagedParams();
|
|
134
|
+
}
|
|
135
|
+
clear(clearData) {
|
|
136
|
+
var _a, _b, _c, _d, _e, _f;
|
|
137
|
+
if (clearData) {
|
|
138
|
+
this.__data = null;
|
|
139
|
+
this.__requestPaged = null;
|
|
140
|
+
this.__params = null;
|
|
141
|
+
this.__page = null;
|
|
142
|
+
this.__links = null;
|
|
143
|
+
if (this.__schedule) {
|
|
144
|
+
const { queue } = this.__schedule;
|
|
145
|
+
if (queue) {
|
|
146
|
+
(_c = (_b = (_a = this.otherArgs) === null || _a === void 0 ? void 0 : _a.queue) === null || _b === void 0 ? void 0 : _b.service) === null || _c === void 0 ? void 0 : _c.removeQueueItem(queue);
|
|
147
|
+
}
|
|
148
|
+
(_f = (_e = (_d = this.otherArgs) === null || _d === void 0 ? void 0 : _d.schedule) === null || _e === void 0 ? void 0 : _e.service) === null || _f === void 0 ? void 0 : _f.removeSchedule(this.__schedule);
|
|
149
|
+
this.__schedule = null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
this.__error = null;
|
|
153
|
+
this.__handledError = null;
|
|
154
|
+
this.flagValidator = false;
|
|
155
|
+
}
|
|
156
|
+
resolve(route, state, otherArgs) {
|
|
157
|
+
var _a, _b, _c;
|
|
158
|
+
if (JSON.stringify(route === null || route === void 0 ? void 0 : route.queryParams) === '{}') {
|
|
159
|
+
this.__data = null;
|
|
160
|
+
this.__page = null;
|
|
161
|
+
}
|
|
162
|
+
this.__requestPaged = null;
|
|
163
|
+
this.flagValidator = true;
|
|
164
|
+
if (this.tokenStorage) {
|
|
165
|
+
this.__tokenCredentials = this.tokenStorage.getToken();
|
|
166
|
+
}
|
|
167
|
+
if (this.allowedSecurityAccess(otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.security)) {
|
|
168
|
+
if (this.__schedule) {
|
|
169
|
+
(_c = (_b = (_a = this.otherArgs) === null || _a === void 0 ? void 0 : _a.schedule) === null || _b === void 0 ? void 0 : _b.service) === null || _c === void 0 ? void 0 : _c.removeSchedule(this.__schedule);
|
|
170
|
+
this.__schedule = null;
|
|
171
|
+
}
|
|
172
|
+
const { __requestPaged } = this;
|
|
173
|
+
if (!__requestPaged) {
|
|
174
|
+
this.setPage({
|
|
175
|
+
page: {
|
|
176
|
+
number: 0,
|
|
177
|
+
size: 10,
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
if (otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.translateOptions) {
|
|
182
|
+
const { service, keys } = otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.translateOptions;
|
|
183
|
+
this.geti18n(service, keys || '');
|
|
184
|
+
}
|
|
185
|
+
if (otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.callbackPagination) {
|
|
186
|
+
this.__callbackPagination = otherArgs.callbackPagination;
|
|
187
|
+
}
|
|
188
|
+
if (otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.feature) {
|
|
189
|
+
const { flag, service } = otherArgs.feature;
|
|
190
|
+
service.onFlags
|
|
191
|
+
.pipe(takeWhile(() => {
|
|
192
|
+
return this.flagValidator;
|
|
193
|
+
}))
|
|
194
|
+
.subscribe((val) => {
|
|
195
|
+
if (val) {
|
|
196
|
+
const hasFlag = service.getFlag(flag);
|
|
197
|
+
if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {
|
|
198
|
+
if (!hasFlag) {
|
|
199
|
+
this.navigateToErrorPage(404, otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.router);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.callbackMain();
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.callbackMain();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
this.navigateToErrorPage(403, otherArgs === null || otherArgs === void 0 ? void 0 : otherArgs.router);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
getHTTPHeaderApplicationPDF() {
|
|
216
|
+
return {
|
|
217
|
+
observe: 'response',
|
|
218
|
+
responseType: 'blob',
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
genericMethod(link, data, callback) {
|
|
222
|
+
var _a, _b;
|
|
223
|
+
const { href, type = 'get' } = link;
|
|
224
|
+
(_b = (_a = this.monkeyecxService) === null || _a === void 0 ? void 0 : _a[type.toLowerCase()](`${href}`, data)) === null || _b === void 0 ? void 0 : _b.subscribe(() => {
|
|
225
|
+
if (callback)
|
|
226
|
+
callback();
|
|
227
|
+
}, (err) => {
|
|
228
|
+
throwError(err);
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
geti18n(translateService, keys) {
|
|
232
|
+
translateService.getStreamOnTranslationChange(keys).subscribe((translations) => {
|
|
233
|
+
this.__i18n = translations;
|
|
234
|
+
this.__oni18nDataChanged$.next(null);
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
doPagination() {
|
|
238
|
+
if (!this.__onLoadingInProgress$.value) {
|
|
239
|
+
const hasMorePages = this.setPage({
|
|
240
|
+
page: Object.assign({}, this.__page),
|
|
241
|
+
}).nextPage();
|
|
242
|
+
if (hasMorePages && this.__callbackPagination) {
|
|
243
|
+
this.__callbackPagination();
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
setSearchByUrl(router, url, search, extras) {
|
|
248
|
+
this.__data = null;
|
|
249
|
+
this.__page = null;
|
|
250
|
+
this.__onDataChanged$.next(null);
|
|
251
|
+
this.__onLoadingInProgress$.next(false);
|
|
252
|
+
router.navigate([url], Object.assign({ queryParams: Object.assign(Object.assign({}, search), { r: MonkeyEcxUtils.getRandomString(30) }), queryParamsHandling: 'merge' }, extras));
|
|
253
|
+
}
|
|
254
|
+
saveState(state) {
|
|
255
|
+
this.__savedState = Object.assign({ page: this.__page }, state);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
__decorate([
|
|
259
|
+
MonkeyEcxCoreService({
|
|
260
|
+
requestInProgress: {
|
|
261
|
+
showProgress: true,
|
|
262
|
+
},
|
|
263
|
+
})
|
|
264
|
+
], MonkeyEcxCommonsService.prototype, "genericMethod", null);
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxlQUFlLEdBR2hCLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFjekQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFFMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSTdFLE1BQU0sT0FBTyx1QkFBdUI7SUFrRGxDLFlBQ1MsZ0JBQW1DLEVBQ25DLFlBQTJDLEVBQzNDLFNBV047UUFiTSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUErQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQVdmO1FBL0RLLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBSTdCLGlCQUFZLEdBQStCLElBQUksQ0FBQztRQUloRCxZQUFPLEdBQWtDLElBQUksQ0FBQztRQUU5QyxtQkFBYyxHQUF5QyxJQUFJLENBQUM7UUFFNUQsV0FBTSxHQUFrQyxJQUFJLENBQUM7UUFFN0MsWUFBTyxHQUFrQyxJQUFJLENBQUM7UUFJOUMsbUJBQWMsR0FBaUMsSUFBSSxDQUFDO1FBRXBELHVCQUFrQixHQUF5QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRSxx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LElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUNuQixXQUFXLGtDQUNOLE1BQU0sS0FDVCxDQUFDLEVBQUUsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsS0FFdkMsbUJBQW1CLEVBQUUsT0FBTyxJQUN6QixNQUFNLEVBQ1QsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBMEI7UUFDbEMsSUFBSSxDQUFDLFlBQVksbUJBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQ2QsS0FBSyxDQUNULENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4REM7SUFMQyxvQkFBb0IsQ0FBQztRQUNwQixpQkFBaUIsRUFBRTtZQUNqQixZQUFZLEVBQUUsSUFBSTtTQUNuQjtLQUNGLENBQUM7NERBWUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgTmF2aWdhdGlvblN0YXJ0LFxyXG4gIFJvdXRlcixcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBNb25rZXlFY3hFcnJvclJlc3BvbnNlLFxyXG4gIE1vbmtleUVjeEhhbmRsZWRFcnJvclJlc3BvbnNlLFxyXG4gIE1vbmtleUVjeFJlcXVlc3RQYWdlZCxcclxuICBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUsXHJcbiAgTW9ua2V5RWN4UmVzcG9uc2VQYWdlZCxcclxuICBNb25rZXlFY3hSZXNwb25zZUxpbmtzLFxyXG4gIE1vbmtleUVjeFRva2VuQ3JlZGVudGlhbHMsXHJcbiAgTW9ua2V5RWN4VHJhbnNsYXRlT3B0aW9ucyxcclxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4VG9rZW5TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2UvbW9ua2V5ZWN4LXRva2VuLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2UgfSBmcm9tICcuLi9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RRdWV1ZUhhbmRsaW5nU2VydmljZSB9IGZyb20gJy4uL3JlcXVlc3QtcXVldWUvbW9ua2V5ZWN4LXJlcXVlc3QtcXVldWUtaGFuZGxpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RQYWdlZEhhbmRsaW5nIH0gZnJvbSAnLi4vcmVxdWVzdC1wYWdlZC9tb25rZXllY3gtcmVxdWVzdC1yZXF1ZXN0LXBhZ2VkLWhhbmRsaW5nJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL21vbmtleWVjeC1kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hTYXZlZFN0YXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgZmxhZ1ZhbGlkYXRvciA9IHRydWU7XHJcblxyXG4gIF9fZGF0YTogYW55IHwgYW55W107XHJcblxyXG4gIF9fc2F2ZWRTdGF0ZTogTW9ua2V5RWN4U2F2ZWRTdGF0ZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBfX3BhcmFtczogYW55IHwgYW55W107XHJcblxyXG4gIF9fZXJyb3I6IE1vbmtleUVjeEVycm9yUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgX19oYW5kbGVkRXJyb3I6IE1vbmtleUVjeEhhbmRsZWRFcnJvclJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIF9fcGFnZTogTW9ua2V5RWN4UmVzcG9uc2VQYWdlZCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBfX2xpbmtzOiBNb25rZXlFY3hSZXNwb25zZUxpbmtzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIF9fc2VhcmNoOiBhbnk7XHJcblxyXG4gIF9fcmVxdWVzdFBhZ2VkOiBNb25rZXlFY3hSZXF1ZXN0UGFnZWQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgX19vblNlYXJjaENoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIF9fb25EYXRhQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcclxuXHJcbiAgX19vbkxvYWRpbmdJblByb2dyZXNzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgX19vbkRhdGFEZWxldGVkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xyXG5cclxuICBfX29uRXJyb3JDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xyXG5cclxuICBfX29uR292ZXJubWVudElkRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIF9fb25aaXBDb2RlRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIF9fb25pMThuRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIF9fb25Eb1NlYXJjaCQ6IEJlaGF2aW9yU3ViamVjdDxNb25rZXlFY3hSZXF1ZXN0UGFnZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XHJcblxyXG4gIF9fdG9rZW5DcmVkZW50aWFsczogTW9ua2V5RWN4VG9rZW5DcmVkZW50aWFscyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBfX3NjaGVkdWxlOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgX19pMThuOiBhbnk7XHJcblxyXG4gIF9fY2FsbGJhY2tQYWdpbmF0aW9uOiBGdW5jdGlvbiA9ICgpID0+IHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXHJcbiAgICByZXR1cm4gY29uc29sZS5lcnJvcignTWV0aG9kIGNhbGxiYWNrUGFnaW5hdGlvbiBuZWVkcyB0byBiZSBkZWNsYXJlZCcpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG1vbmtleWVjeFNlcnZpY2U/OiBNb25rZXlFY3hTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRva2VuU3RvcmFnZT86IE1vbmtleUVjeFRva2VuU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3RoZXJBcmdzPzoge1xyXG4gICAgICByb3V0ZXI/OiBSb3V0ZXI7XHJcbiAgICAgIHNjaGVkdWxlPzoge1xyXG4gICAgICAgIHNlcnZpY2U6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2U7XHJcbiAgICAgICAgb3B0aW9ucz86IHtcclxuICAgICAgICAgIGNsZWFyT25DaGFuZ2VSb3V0ZT86IGJvb2xlYW47XHJcbiAgICAgICAgfTtcclxuICAgICAgfTtcclxuICAgICAgcXVldWU/OiB7XHJcbiAgICAgICAgc2VydmljZTogTW9ua2V5RWN4UmVxdWVzdFF1ZXVlSGFuZGxpbmdTZXJ2aWNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICkge1xyXG4gICAgdGhpcy5oYW5kbGVJbml0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUluaXQoKSB7XHJcbiAgICBpZiAodGhpcy50b2tlblN0b3JhZ2UpIHtcclxuICAgICAgdGhpcy5fX3Rva2VuQ3JlZGVudGlhbHMgPSB0aGlzLnRva2VuU3RvcmFnZS5nZXRUb2tlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm90aGVyQXJncz8ucm91dGVyKSB7XHJcbiAgICAgIGNvbnN0IHsgY2xlYXJPbkNoYW5nZVJvdXRlIH0gPSB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/Lm9wdGlvbnMgfHwge1xyXG4gICAgICAgIGNsZWFyT25DaGFuZ2VSb3V0ZTogZmFsc2UsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMub3RoZXJBcmdzLnJvdXRlci5ldmVudHNcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQ7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHRha2UoMSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5fX3NjaGVkdWxlICYmIGNsZWFyT25DaGFuZ2VSb3V0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/LnNlcnZpY2U/LnJlbW92ZVNjaGVkdWxlKHRoaXMuX19zY2hlZHVsZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX19zY2hlZHVsZSA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvbGUoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgX190b2tlbkNyZWRlbnRpYWxzIH0gPSB0aGlzO1xyXG5cclxuICAgIGlmICghX190b2tlbkNyZWRlbnRpYWxzKSByZXR1cm4gJyc7XHJcblxyXG4gICAgaWYgKF9fdG9rZW5DcmVkZW50aWFscz8ucHJvZ3JhbUFkbWluID09PSAndHJ1ZScpIHtcclxuICAgICAgcmV0dXJuICdQUk9HUkFNX0FETUlOJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX190b2tlbkNyZWRlbnRpYWxzPy5yb2xlIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3MoYXJnczogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWFyZ3MpIHJldHVybiB0cnVlO1xyXG4gICAgY29uc3Qgcm9sZXMgPSBhcmdzPy5yb2xlcztcclxuICAgIGNvbnN0IGJ5RXhjbHVzaW9uID0gYXJncz8uYnlFeGNsdXNpb247XHJcbiAgICBjb25zdCBmb3VuZCA9IHJvbGVzPy5pbmRleE9mKHRoaXMuZ2V0Um9sZSgpKTtcclxuICAgIGxldCByZXQgPSBmYWxzZTtcclxuICAgIGlmIChieUV4Y2x1c2lvbikge1xyXG4gICAgICByZXQgPSB0cnVlO1xyXG4gICAgICBpZiAoZm91bmQgPiAtMSkge1xyXG4gICAgICAgIHJldCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXQgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvdW5kID4gLTEpIHtcclxuICAgICAgICByZXQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXJvbGVzIHx8IHJvbGVzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmdldFJvbGUoKSA9PT0gJ1BST0dSQU1fQURNSU4nKSB7XHJcbiAgICAgIHJldCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvRXJyb3JQYWdlKHN0YXR1c0NvZGU6IG51bWJlciwgcm91dGVyPzogUm91dGVyKSB7XHJcbiAgICBjb25zdCByb3V0ZXM6IGFueSA9IHtcclxuICAgICAgNDAzOiAnZm9yYmlkZGVuJyxcclxuICAgICAgNDA0OiAnbm90LWZvdW5kJyxcclxuICAgICAgNTAwOiAnc2VydmljZS1wcm9ibGVtcycsXHJcbiAgICAgIDUwMzogJ3NlcnZpY2UtcHJvYmxlbXMnLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoIXJvdXRlcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdSb3V0ZXIgbXVzdCBiZSBkZWNsYXJlZCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcm91dGVyPy5uYXZpZ2F0ZShbYC9hcHAvcGFnZXMvJHtyb3V0ZXNbc3RhdHVzQ29kZV19YC50b0xvd2VyQ2FzZSgpXSwge1xyXG4gICAgICAgIHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlKHJlcXVlc3RQYWdlZDogTW9ua2V5RWN4UmVxdWVzdFBhZ2VkKSB7XHJcbiAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0ge1xyXG4gICAgICAuLi50aGlzLl9fcmVxdWVzdFBhZ2VkLFxyXG4gICAgICAuLi5yZXF1ZXN0UGFnZWQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBuZXh0UGFnZSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLl9fbGlua3MpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy5fX2xpbmtzPy5uZXh0O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLl9fcmVxdWVzdFBhZ2VkKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjb25zdCB7IHBhZ2UgfSA9IHRoaXMuX19yZXF1ZXN0UGFnZWQgYXMgYW55O1xyXG4gICAgY29uc3QgeyBudW1iZXIsIHRvdGFsUGFnZXMgfSA9IHBhZ2U7XHJcbiAgICBpZiAobnVtYmVyIDwgdG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0ge1xyXG4gICAgICAgIC4uLnRoaXMuX19yZXF1ZXN0UGFnZWQsXHJcbiAgICAgICAgcGFnZToge1xyXG4gICAgICAgICAgLi4ucGFnZSxcclxuICAgICAgICAgIG51bWJlcjogbnVtYmVyICsgMSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldEVtYmVkZGVkRGF0YShkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnlbXSB8IGFueSB7XHJcbiAgICBjb25zdCB7IF9lbWJlZGRlZCB9ID0gZGF0YTtcclxuICAgIHJldHVybiBfZW1iZWRkZWQgPyBfZW1iZWRkZWRbZmllbGRdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldE5vcm1hbGl6ZWRVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBfX3JlcXVlc3RQYWdlZCwgX19saW5rcyB9ID0gdGhpcztcclxuICAgIHJldHVybiBuZXcgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkSGFuZGxpbmcoXHJcbiAgICAgIHVybCxcclxuICAgICAgX19yZXF1ZXN0UGFnZWQgfHwge30sXHJcbiAgICAgIF9fbGlua3NcclxuICAgICkuZ2V0UmVxdWVzdFdpdGhQYWdlZFBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoY2xlYXJEYXRhOiBib29sZWFuKSB7XHJcbiAgICBpZiAoY2xlYXJEYXRhKSB7XHJcbiAgICAgIHRoaXMuX19kYXRhID0gbnVsbDtcclxuICAgICAgdGhpcy5fX3JlcXVlc3RQYWdlZCA9IG51bGw7XHJcbiAgICAgIHRoaXMuX19wYXJhbXMgPSBudWxsO1xyXG4gICAgICB0aGlzLl9fcGFnZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuX19saW5rcyA9IG51bGw7XHJcblxyXG4gICAgICBpZiAodGhpcy5fX3NjaGVkdWxlKSB7XHJcbiAgICAgICAgY29uc3QgeyBxdWV1ZSB9ID0gdGhpcy5fX3NjaGVkdWxlO1xyXG4gICAgICAgIGlmIChxdWV1ZSkge1xyXG4gICAgICAgICAgdGhpcy5vdGhlckFyZ3M/LnF1ZXVlPy5zZXJ2aWNlPy5yZW1vdmVRdWV1ZUl0ZW0ocXVldWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/LnNlcnZpY2U/LnJlbW92ZVNjaGVkdWxlKHRoaXMuX19zY2hlZHVsZSk7XHJcbiAgICAgICAgdGhpcy5fX3NjaGVkdWxlID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fX2Vycm9yID0gbnVsbDtcclxuICAgIHRoaXMuX19oYW5kbGVkRXJyb3IgPSBudWxsO1xyXG4gICAgdGhpcy5mbGFnVmFsaWRhdG9yID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXNvbHZlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsLFxyXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QgfCBudWxsLFxyXG4gICAgb3RoZXJBcmdzPzoge1xyXG4gICAgICBjYWxsYmFja01haW46IEZ1bmN0aW9uO1xyXG4gICAgICByb3V0ZXI/OiBSb3V0ZXI7XHJcbiAgICAgIHNlY3VyaXR5Pzoge1xyXG4gICAgICAgIHJvbGVzOiBzdHJpbmdbXTtcclxuICAgICAgICBieUV4Y2x1c2lvbj86IGJvb2xlYW47XHJcbiAgICAgIH07XHJcbiAgICAgIGNhbGxiYWNrUGFnaW5hdGlvbj86IEZ1bmN0aW9uO1xyXG4gICAgICB0cmFuc2xhdGVPcHRpb25zPzogTW9ua2V5RWN4VHJhbnNsYXRlT3B0aW9ucztcclxuICAgICAgZmVhdHVyZT86IHtcclxuICAgICAgICBzZXJ2aWNlOiBNb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZTtcclxuICAgICAgICBmbGFnOiBzdHJpbmc7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgKSB7XHJcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkocm91dGU/LnF1ZXJ5UGFyYW1zKSA9PT0gJ3t9Jykge1xyXG4gICAgICB0aGlzLl9fZGF0YSA9IG51bGw7XHJcbiAgICAgIHRoaXMuX19wYWdlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0gbnVsbDtcclxuICAgIHRoaXMuZmxhZ1ZhbGlkYXRvciA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMudG9rZW5TdG9yYWdlKSB7XHJcbiAgICAgIHRoaXMuX190b2tlbkNyZWRlbnRpYWxzID0gdGhpcy50b2tlblN0b3JhZ2UuZ2V0VG9rZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5hbGxvd2VkU2VjdXJpdHlBY2Nlc3Mob3RoZXJBcmdzPy5zZWN1cml0eSkpIHtcclxuICAgICAgaWYgKHRoaXMuX19zY2hlZHVsZSkge1xyXG4gICAgICAgIHRoaXMub3RoZXJBcmdzPy5zY2hlZHVsZT8uc2VydmljZT8ucmVtb3ZlU2NoZWR1bGUodGhpcy5fX3NjaGVkdWxlKTtcclxuICAgICAgICB0aGlzLl9fc2NoZWR1bGUgPSBudWxsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IF9fcmVxdWVzdFBhZ2VkIH0gPSB0aGlzO1xyXG4gICAgICBpZiAoIV9fcmVxdWVzdFBhZ2VkKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlKHtcclxuICAgICAgICAgIHBhZ2U6IHtcclxuICAgICAgICAgICAgbnVtYmVyOiAwLFxyXG4gICAgICAgICAgICBzaXplOiAxMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvdGhlckFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnMpIHtcclxuICAgICAgICBjb25zdCB7IHNlcnZpY2UsIGtleXMgfSA9IG90aGVyQXJncz8udHJhbnNsYXRlT3B0aW9ucztcclxuICAgICAgICB0aGlzLmdldGkxOG4oc2VydmljZSwga2V5cyB8fCAnJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvdGhlckFyZ3M/LmNhbGxiYWNrUGFnaW5hdGlvbikge1xyXG4gICAgICAgIHRoaXMuX19jYWxsYmFja1BhZ2luYXRpb24gPSBvdGhlckFyZ3MuY2FsbGJhY2tQYWdpbmF0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAob3RoZXJBcmdzPy5mZWF0dXJlKSB7XHJcbiAgICAgICAgY29uc3QgeyBmbGFnLCBzZXJ2aWNlIH0gPSBvdGhlckFyZ3MuZmVhdHVyZTtcclxuXHJcbiAgICAgICAgc2VydmljZS5vbkZsYWdzXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFrZVdoaWxlKCgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mbGFnVmFsaWRhdG9yO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgodmFsOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgICAgICBjb25zdCBoYXNGbGFnID0gc2VydmljZS5nZXRGbGFnKGZsYWcpO1xyXG5cclxuICAgICAgICAgICAgICBpZiAoTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChoYXNGbGFnKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNGbGFnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVUb0Vycm9yUGFnZSg0MDQsIG90aGVyQXJncz8ucm91dGVyKTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBvdGhlckFyZ3M/LmNhbGxiYWNrTWFpbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvdGhlckFyZ3M/LmNhbGxiYWNrTWFpbigpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5hdmlnYXRlVG9FcnJvclBhZ2UoNDAzLCBvdGhlckFyZ3M/LnJvdXRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRIVFRQSGVhZGVyQXBwbGljYXRpb25QREYoKTogT2JqZWN0IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIEBNb25rZXlFY3hDb3JlU2VydmljZSh7XHJcbiAgICByZXF1ZXN0SW5Qcm9ncmVzczoge1xyXG4gICAgICBzaG93UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICB9LFxyXG4gIH0pXHJcbiAgZ2VuZXJpY01ldGhvZChsaW5rOiBhbnksIGRhdGE/OiBhbnksIGNhbGxiYWNrPzogRnVuY3Rpb24pIHtcclxuICAgIGNvbnN0IHsgaHJlZiwgdHlwZSA9ICdnZXQnIH0gPSBsaW5rO1xyXG5cclxuICAgIHRoaXMubW9ua2V5ZWN4U2VydmljZT8uW3R5cGUudG9Mb3dlckNhc2UoKV0oYCR7aHJlZn1gLCBkYXRhKT8uc3Vic2NyaWJlKFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldGkxOG4odHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwga2V5czogc3RyaW5nIHwgc3RyaW5nW10pIHtcclxuICAgIHRyYW5zbGF0ZVNlcnZpY2UuZ2V0U3RyZWFtT25UcmFuc2xhdGlvbkNoYW5nZShrZXlzKS5zdWJzY3JpYmUoKHRyYW5zbGF0aW9uczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuX19pMThuID0gdHJhbnNsYXRpb25zO1xyXG4gICAgICB0aGlzLl9fb25pMThuRGF0YUNoYW5nZWQkLm5leHQobnVsbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvUGFnaW5hdGlvbigpIHtcclxuICAgIGlmICghdGhpcy5fX29uTG9hZGluZ0luUHJvZ3Jlc3MkLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IGhhc01vcmVQYWdlcyA9IHRoaXMuc2V0UGFnZSh7XHJcbiAgICAgICAgcGFnZToge1xyXG4gICAgICAgICAgLi4udGhpcy5fX3BhZ2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSkubmV4dFBhZ2UoKTtcclxuXHJcbiAgICAgIGlmIChoYXNNb3JlUGFnZXMgJiYgdGhpcy5fX2NhbGxiYWNrUGFnaW5hdGlvbikge1xyXG4gICAgICAgIHRoaXMuX19jYWxsYmFja1BhZ2luYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoQnlVcmwocm91dGVyOiBSb3V0ZXIsIHVybDogc3RyaW5nLCBzZWFyY2g6IGFueSwgZXh0cmFzPzogYW55KSB7XHJcbiAgICB0aGlzLl9fZGF0YSA9IG51bGw7XHJcbiAgICB0aGlzLl9fcGFnZSA9IG51bGw7XHJcbiAgICB0aGlzLl9fb25EYXRhQ2hhbmdlZCQubmV4dChudWxsKTtcclxuICAgIHRoaXMuX19vbkxvYWRpbmdJblByb2dyZXNzJC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICByb3V0ZXIubmF2aWdhdGUoW3VybF0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICAuLi5zZWFyY2gsXHJcbiAgICAgICAgcjogTW9ua2V5RWN4VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDMwKSxcclxuICAgICAgfSxcclxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgLi4uZXh0cmFzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzYXZlU3RhdGUoc3RhdGU6IE1vbmtleUVjeFNhdmVkU3RhdGUpIHtcclxuICAgIHRoaXMuX19zYXZlZFN0YXRlID0ge1xyXG4gICAgICBwYWdlOiB0aGlzLl9fcGFnZSxcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -15,14 +15,14 @@ export class MonkeyEcxConfigModule {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
MonkeyEcxConfigModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
19
|
-
MonkeyEcxConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
20
|
-
MonkeyEcxConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
18
|
+
MonkeyEcxConfigModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigModule, deps: [{ token: MonkeyEcxConfigModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
+
MonkeyEcxConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigModule });
|
|
20
|
+
MonkeyEcxConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigModule });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigModule, decorators: [{
|
|
22
22
|
type: NgModule
|
|
23
23
|
}], ctorParameters: function () { return [{ type: MonkeyEcxConfigModule, decorators: [{
|
|
24
24
|
type: Optional
|
|
25
25
|
}, {
|
|
26
26
|
type: SkipSelf
|
|
27
27
|
}] }]; } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbmZpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvY29uZmlnL21vbmtleWVjeC1jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQjtBQUMzQixPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUdwRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBR0UsWUFBbUM7UUFFbkMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1NBQzlGO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7O21IQWhCVSxxQkFBcUIsa0JBSWhCLHFCQUFxQjtvSEFKMUIscUJBQXFCO29IQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEakMsUUFBUTswREFLUyxxQkFBcUI7MEJBRmxDLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbmRlbnQgKi9cclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuQE5nTW9kdWxlKClcclxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeENvbmZpZ01vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQFNraXBTZWxmKClcclxuICAgIHBhcmVudE1vZHVsZTogTW9ua2V5RWN4Q29uZmlnTW9kdWxlXHJcbiAgKSB7XHJcbiAgICBpZiAocGFyZW50TW9kdWxlKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTW9ua2V5RWN4Q29uZmlnTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5IScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNb25rZXlFY3hDb25maWdNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBNb25rZXlFY3hDb25maWdNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW01vbmtleUVjeENvbmZpZ1NlcnZpY2VdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -39,11 +39,10 @@ export class MonkeyEcxConfigService extends MonkeyEcxCommonsService {
|
|
|
39
39
|
callback(configBoostrap);
|
|
40
40
|
}
|
|
41
41
|
getWhiteLabelSettings(monkeyecxCode, configBoostrap, callback, environment, identifyCode) {
|
|
42
|
+
var _a;
|
|
42
43
|
const { monkeyecxService, monkeyecxi18nConfigService, configSubject$, monkeyStyleGuideSettingsService, monkeyecxLogsConfigService, monkeyecxErrorConfigService, monkeyEcxFeatureToggleService, internalValidations, } = this;
|
|
43
44
|
const url = `${environment.urlAssets}`;
|
|
44
|
-
monkeyecxService
|
|
45
|
-
?.get(`${url}/${monkeyecxCode.toLowerCase()}/white-label.json?t=${MonkeyUtils.getRandomString(30)}`)
|
|
46
|
-
?.subscribe((config) => {
|
|
45
|
+
(_a = monkeyecxService === null || monkeyecxService === void 0 ? void 0 : monkeyecxService.get(`${url}/${monkeyecxCode.toLowerCase()}/white-label.json?t=${MonkeyUtils.getRandomString(30)}`)) === null || _a === void 0 ? void 0 : _a.subscribe((config) => {
|
|
47
46
|
monkeyecxi18nConfigService.apply(config, environment);
|
|
48
47
|
monkeyecxLogsConfigService.apply(config, configBoostrap, environment, identifyCode);
|
|
49
48
|
monkeyEcxFeatureToggleService.apply(configSubject$, environment);
|
|
@@ -56,12 +55,11 @@ export class MonkeyEcxConfigService extends MonkeyEcxCommonsService {
|
|
|
56
55
|
});
|
|
57
56
|
}
|
|
58
57
|
init(callback, environment, identifyCode, monkeyecxCode) {
|
|
58
|
+
var _a;
|
|
59
59
|
const { monkeyecxService, configBoostrapSubject$, monkeyecxErrorConfigService } = this;
|
|
60
|
-
monkeyecxService
|
|
61
|
-
?.get(`${environment.boostrapAssets}?t=${MonkeyUtils.getRandomString(30)}`, {
|
|
60
|
+
(_a = monkeyecxService === null || monkeyecxService === void 0 ? void 0 : monkeyecxService.get(`${environment.boostrapAssets}?t=${MonkeyUtils.getRandomString(30)}`, {
|
|
62
61
|
observe: 'response',
|
|
63
|
-
})
|
|
64
|
-
?.subscribe((resp) => {
|
|
62
|
+
})) === null || _a === void 0 ? void 0 : _a.subscribe((resp) => {
|
|
65
63
|
const { headers, body } = resp;
|
|
66
64
|
const monkeyCode = headers.get('monkey-code') || monkeyecxCode;
|
|
67
65
|
if (monkeyCode) {
|
|
@@ -85,8 +83,8 @@ export class MonkeyEcxConfigService extends MonkeyEcxCommonsService {
|
|
|
85
83
|
return this.configBoostrapSubject$.asObservable();
|
|
86
84
|
}
|
|
87
85
|
}
|
|
88
|
-
MonkeyEcxConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
89
|
-
MonkeyEcxConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
86
|
+
MonkeyEcxConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigService, deps: [{ token: i1.MonkeyEcxService }, { token: i2.MonkeyEcxi18nConfigService }, { token: i3.MonkeyEcxLogsConfigService }, { token: i4.MonkeyStyleGuideSettingsService }, { token: i5.MonkeyEcxServiceWorkerConfigService }, { token: i6.MonkeyEcxSecurityConsoleConfigService }, { token: i7.MonkeyEcxMaintenanceConfigService }, { token: i8.MonkeyEcxErrorConfigService }, { token: i9.MonkeyEcxFeatureToggleService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
87
|
+
MonkeyEcxConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigService, providedIn: 'root' });
|
|
90
88
|
__decorate([
|
|
91
89
|
MonkeyEcxCoreService({
|
|
92
90
|
httpResponse: {
|
|
@@ -97,10 +95,10 @@ __decorate([
|
|
|
97
95
|
},
|
|
98
96
|
})
|
|
99
97
|
], MonkeyEcxConfigService.prototype, "init", null);
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxConfigService, decorators: [{
|
|
101
99
|
type: Injectable,
|
|
102
100
|
args: [{
|
|
103
101
|
providedIn: 'root',
|
|
104
102
|
}]
|
|
105
103
|
}], ctorParameters: function () { return [{ type: i1.MonkeyEcxService }, { type: i2.MonkeyEcxi18nConfigService }, { type: i3.MonkeyEcxLogsConfigService }, { type: i4.MonkeyStyleGuideSettingsService }, { type: i5.MonkeyEcxServiceWorkerConfigService }, { type: i6.MonkeyEcxSecurityConsoleConfigService }, { type: i7.MonkeyEcxMaintenanceConfigService }, { type: i8.MonkeyEcxErrorConfigService }, { type: i9.MonkeyEcxFeatureToggleService }]; }, propDecorators: { init: [] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NvbmZpZy9tb25rZXllY3gtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBbUMsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7O0FBVS9FLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7SUFLakUsWUFDRSxnQkFBa0MsRUFDMUIsMEJBQXNELEVBQ3RELDBCQUFzRCxFQUN0RCwrQkFBZ0UsRUFDaEUsbUNBQXdFLEVBQ3hFLHFDQUE0RSxFQUM1RSxpQ0FBb0UsRUFDcEUsMkJBQXdELEVBQ3hELDZCQUE0RDtRQUVwRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVRoQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQUNoRSx3Q0FBbUMsR0FBbkMsbUNBQW1DLENBQXFDO1FBQ3hFLDBDQUFxQyxHQUFyQyxxQ0FBcUMsQ0FBdUM7UUFDNUUsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFtQztRQUNwRSxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7UUFHcEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEdBQUcsSUFBVztRQUN4QyxNQUFNLEVBQ0osbUNBQW1DLEVBQ25DLHFDQUFxQyxFQUNyQyxpQ0FBaUMsR0FDbEMsR0FBRyxJQUFJLENBQUM7UUFDVCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLHFDQUFxQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlDLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxRCxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsYUFBcUIsRUFDckIsY0FBdUMsRUFDdkMsUUFBa0IsRUFDbEIsV0FBZ0IsRUFDaEIsWUFBb0I7UUFFcEIsTUFBTSxFQUNKLGdCQUFnQixFQUNoQiwwQkFBMEIsRUFDMUIsY0FBYyxFQUNkLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixtQkFBbUIsR0FDcEIsR0FBRyxJQUFJLENBQUM7UUFDVCxNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxnQkFBZ0I7WUFDZCxFQUFFLEdBQUcsQ0FDSCxHQUFHLEdBQUcsSUFBSSxhQUFhLENBQUMsV0FBVyxFQUFFLHVCQUF1QixXQUFXLENBQUMsZUFBZSxDQUNyRixFQUFFLENBQ0gsRUFBRSxDQUNKO1lBQ0QsRUFBRSxTQUFTLENBQ1QsQ0FBQyxNQUF1QixFQUFFLEVBQUU7WUFDMUIsMEJBQTBCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN0RCwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDcEYsNkJBQTZCLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNqRSwrQkFBK0IsQ0FBQyxRQUFRLENBQ3RDLEdBQUcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxXQUFXLEVBQUUsdUNBQXVDLFdBQVcsQ0FBQyxlQUFlLENBQ3JHLEVBQUUsQ0FDSCxFQUFFLEVBQ0gsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUN0RSxDQUFDO1lBQ0YsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixDQUFDLEVBQ0QsQ0FBQyxHQUFzQixFQUFFLEVBQUU7WUFDekIsMkJBQTJCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUNsRCxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBVU0sSUFBSSxDQUFDLFFBQWtCLEVBQUUsV0FBZ0IsRUFBRSxZQUFvQixFQUFFLGFBQXNCO1FBQzVGLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSxHQUFHLElBQUksQ0FBQztRQUV2RixnQkFBZ0I7WUFDZCxFQUFFLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxjQUFjLE1BQU0sV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFFLE9BQU8sRUFBRSxVQUFVO1NBQ3BCLENBQUM7WUFDRixFQUFFLFNBQVMsQ0FDVCxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDL0IsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxhQUFhLENBQUM7WUFDL0QsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDbEYsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNMLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLFVBQVUsMkJBQTJCLENBQUMsQ0FBQzthQUNsRTtRQUNILENBQUMsRUFDRCxDQUFDLEdBQXNCLEVBQUUsRUFBRTtZQUN6QiwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQ25ELFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BELENBQUM7O21IQXpIVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNO0FBMEZsQjtJQVJDLG9CQUFvQixDQUFDO1FBQ3BCLFlBQVksRUFBRTtZQUNaLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUN0QjtRQUNELGlCQUFpQixFQUFFO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1NBQ3BCO0tBQ0YsQ0FBQztrREEwQkQ7MkZBakhVLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7bWRBeUZRLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IHRocm93RXJyb3IsIEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlLCBNb25rZXlVdGlscyB9IGZyb20gJ21vbmtleS1zdHlsZS1ndWlkZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeGkxOG5Db25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtaTE4bi1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeExvZ3NDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtbG9ncy1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFNlcnZpY2VXb3JrZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtc2VydmljZS13b3JrZXItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hTZWN1cml0eUNvbnNvbGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtc2VjdXJpdHktY29uc29sZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeE1haW50ZW5hbmNlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9ua2V5ZWN4LW1haW50ZW5hbmNlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL21vbmtleWVjeC1kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL21vbmtleWVjeC1jb25maWcnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWdCb29zdHJhcCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbW9ua2V5ZWN4LWNvbmZpZy1ib29zdHJhcCc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFNlcnZpY2UgfSBmcm9tICcuLi9tb25rZXllY3gtc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4RXJyb3JDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtZXJyb3ItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZSB9IGZyb20gJy4vbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeENvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBNb25rZXlFY3hDb21tb25zU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PE1vbmtleUVjeENvbmZpZz47XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnQm9vc3RyYXBTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PE1vbmtleUVjeENvbmZpZz47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgbW9ua2V5ZWN4U2VydmljZTogTW9ua2V5RWN4U2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5ZWN4aTE4bkNvbmZpZ1NlcnZpY2U6IE1vbmtleUVjeGkxOG5Db25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb25rZXllY3hMb2dzQ29uZmlnU2VydmljZTogTW9ua2V5RWN4TG9nc0NvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2U6IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vbmtleWVjeFNlcnZpY2VXb3JrZXJDb25maWdTZXJ2aWNlOiBNb25rZXlFY3hTZXJ2aWNlV29ya2VyQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5ZWN4U2VjdXJpdHlDb25zb2xlQ29uZmlnU2VydmljZTogTW9ua2V5RWN4U2VjdXJpdHlDb25zb2xlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5ZWN4TWFpbnRlbmFuY2VDb25maWdTZXJ2aWNlOiBNb25rZXlFY3hNYWludGVuYW5jZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vbmtleWVjeEVycm9yQ29uZmlnU2VydmljZTogTW9ua2V5RWN4RXJyb3JDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZTogTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1vbmtleWVjeFNlcnZpY2UpO1xyXG4gICAgdGhpcy5jb25maWdTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xyXG4gICAgdGhpcy5jb25maWdCb29zdHJhcFN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGludGVybmFsVmFsaWRhdGlvbnMoLi4uYXJnczogYW55W10pIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgbW9ua2V5ZWN4U2VydmljZVdvcmtlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeFNlY3VyaXR5Q29uc29sZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeE1haW50ZW5hbmNlQ29uZmlnU2VydmljZSxcclxuICAgIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgY29uZmlnQm9vc3RyYXAgPSBhcmdzWzBdO1xyXG4gICAgY29uc3QgY2FsbGJhY2sgPSBhcmdzWzFdO1xyXG4gICAgbW9ua2V5ZWN4U2VjdXJpdHlDb25zb2xlQ29uZmlnU2VydmljZS5hcHBseSgpO1xyXG4gICAgbW9ua2V5ZWN4U2VydmljZVdvcmtlckNvbmZpZ1NlcnZpY2UuYXBwbHkoY29uZmlnQm9vc3RyYXApO1xyXG4gICAgbW9ua2V5ZWN4TWFpbnRlbmFuY2VDb25maWdTZXJ2aWNlLmFwcGx5KGNvbmZpZ0Jvb3N0cmFwKTtcclxuICAgIGNhbGxiYWNrKGNvbmZpZ0Jvb3N0cmFwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0V2hpdGVMYWJlbFNldHRpbmdzKFxyXG4gICAgbW9ua2V5ZWN4Q29kZTogc3RyaW5nLFxyXG4gICAgY29uZmlnQm9vc3RyYXA6IE1vbmtleUVjeENvbmZpZ0Jvb3N0cmFwLFxyXG4gICAgY2FsbGJhY2s6IEZ1bmN0aW9uLFxyXG4gICAgZW52aXJvbm1lbnQ6IGFueSxcclxuICAgIGlkZW50aWZ5Q29kZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIG1vbmtleWVjeFNlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeGkxOG5Db25maWdTZXJ2aWNlLFxyXG4gICAgICBjb25maWdTdWJqZWN0JCxcclxuICAgICAgbW9ua2V5U3R5bGVHdWlkZVNldHRpbmdzU2VydmljZSxcclxuICAgICAgbW9ua2V5ZWN4TG9nc0NvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeEVycm9yQ29uZmlnU2VydmljZSxcclxuICAgICAgbW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UsXHJcbiAgICAgIGludGVybmFsVmFsaWRhdGlvbnMsXHJcbiAgICB9ID0gdGhpcztcclxuICAgIGNvbnN0IHVybCA9IGAke2Vudmlyb25tZW50LnVybEFzc2V0c31gO1xyXG4gICAgbW9ua2V5ZWN4U2VydmljZVxyXG4gICAgICA/LmdldDxhbnk+KFxyXG4gICAgICAgIGAke3VybH0vJHttb25rZXllY3hDb2RlLnRvTG93ZXJDYXNlKCl9L3doaXRlLWxhYmVsLmpzb24/dD0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZyhcclxuICAgICAgICAgIDMwXHJcbiAgICAgICAgKX1gXHJcbiAgICAgIClcclxuICAgICAgPy5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGNvbmZpZzogTW9ua2V5RWN4Q29uZmlnKSA9PiB7XHJcbiAgICAgICAgICBtb25rZXllY3hpMThuQ29uZmlnU2VydmljZS5hcHBseShjb25maWcsIGVudmlyb25tZW50KTtcclxuICAgICAgICAgIG1vbmtleWVjeExvZ3NDb25maWdTZXJ2aWNlLmFwcGx5KGNvbmZpZywgY29uZmlnQm9vc3RyYXAsIGVudmlyb25tZW50LCBpZGVudGlmeUNvZGUpO1xyXG4gICAgICAgICAgbW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UuYXBwbHkoY29uZmlnU3ViamVjdCQsIGVudmlyb25tZW50KTtcclxuICAgICAgICAgIG1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UuYm9vc3RyYXAoXHJcbiAgICAgICAgICAgIGAke3VybH0vJHttb25rZXllY3hDb2RlLnRvTG93ZXJDYXNlKCl9L21vbmtleS1zdHlsZS1ndWlkZS1zZXR0aW5ncy5qc29uP3Q9JHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoXHJcbiAgICAgICAgICAgICAgMzBcclxuICAgICAgICAgICAgKX1gLFxyXG4gICAgICAgICAgICBpbnRlcm5hbFZhbGlkYXRpb25zLmJpbmQodGhpcywgY29uZmlnQm9vc3RyYXAsIGNhbGxiYWNrLCBlbnZpcm9ubWVudClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25maWdTdWJqZWN0JC5uZXh0KGNvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgbW9ua2V5ZWN4RXJyb3JDb25maWdTZXJ2aWNlLmFwcGx5KCd0aGVtZScpO1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignUHJvZ3JhbSBDb25maWd1cmF0aW9uIG5vdCBmb3VuZCEnKTtcclxuICAgICAgICAgIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xyXG4gICAgaHR0cFJlc3BvbnNlOiB7XHJcbiAgICAgIGh0dHBDb2RlSWdub3JlOiBbNDA0XSxcclxuICAgIH0sXHJcbiAgICByZXF1ZXN0SW5Qcm9ncmVzczoge1xyXG4gICAgICBzaG93UHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9KVxyXG4gIHB1YmxpYyBpbml0KGNhbGxiYWNrOiBGdW5jdGlvbiwgZW52aXJvbm1lbnQ6IGFueSwgaWRlbnRpZnlDb2RlOiBzdHJpbmcsIG1vbmtleWVjeENvZGU/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHsgbW9ua2V5ZWN4U2VydmljZSwgY29uZmlnQm9vc3RyYXBTdWJqZWN0JCwgbW9ua2V5ZWN4RXJyb3JDb25maWdTZXJ2aWNlIH0gPSB0aGlzO1xyXG5cclxuICAgIG1vbmtleWVjeFNlcnZpY2VcclxuICAgICAgPy5nZXQoYCR7ZW52aXJvbm1lbnQuYm9vc3RyYXBBc3NldHN9P3Q9JHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMzApfWAsIHtcclxuICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICB9KVxyXG4gICAgICA/LnN1YnNjcmliZShcclxuICAgICAgICAocmVzcDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IGhlYWRlcnMsIGJvZHkgfSA9IHJlc3A7XHJcbiAgICAgICAgICBjb25zdCBtb25rZXlDb2RlID0gaGVhZGVycy5nZXQoJ21vbmtleS1jb2RlJykgfHwgbW9ua2V5ZWN4Q29kZTtcclxuICAgICAgICAgIGlmIChtb25rZXlDb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0V2hpdGVMYWJlbFNldHRpbmdzKG1vbmtleUNvZGUsIGJvZHksIGNhbGxiYWNrLCBlbnZpcm9ubWVudCwgaWRlbnRpZnlDb2RlKTtcclxuICAgICAgICAgICAgY29uZmlnQm9vc3RyYXBTdWJqZWN0JC5uZXh0KGJvZHkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbW9ua2V5ZWN4RXJyb3JDb25maWdTZXJ2aWNlLmFwcGx5KCd0aGVtZScpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBCb29zdHJhcCAke21vbmtleUNvZGV9IENvbmZpZ3VyYXRpb24gbm90IGZvdW5kIWApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIG1vbmtleWVjeEVycm9yQ29uZmlnU2VydmljZS5hcHBseSgndGhlbWUnKTtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Jvb3N0cmFwIENvbmZpZ3VyYXRpb24gbm90IGZvdW5kIScpO1xyXG4gICAgICAgICAgdGhyb3dFcnJvcihlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25maWcoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGJvb3N0cmFwQ29uZmlnKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdCb29zdHJhcFN1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NvbmZpZy9tb25rZXllY3gtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBbUMsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7O0FBVS9FLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7SUFLakUsWUFDRSxnQkFBa0MsRUFDMUIsMEJBQXNELEVBQ3RELDBCQUFzRCxFQUN0RCwrQkFBZ0UsRUFDaEUsbUNBQXdFLEVBQ3hFLHFDQUE0RSxFQUM1RSxpQ0FBb0UsRUFDcEUsMkJBQXdELEVBQ3hELDZCQUE0RDtRQUVwRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVRoQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQUNoRSx3Q0FBbUMsR0FBbkMsbUNBQW1DLENBQXFDO1FBQ3hFLDBDQUFxQyxHQUFyQyxxQ0FBcUMsQ0FBdUM7UUFDNUUsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFtQztRQUNwRSxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FB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QUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7bWRBeUZRLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IHRocm93RXJyb3IsIEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlLCBNb25rZXlVdGlscyB9IGZyb20gJ21vbmtleS1zdHlsZS1ndWlkZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeGkxOG5Db25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtaTE4bi1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeExvZ3NDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtbG9ncy1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFNlcnZpY2VXb3JrZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtc2VydmljZS13b3JrZXItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hTZWN1cml0eUNvbnNvbGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtc2VjdXJpdHktY29uc29sZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeE1haW50ZW5hbmNlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9ua2V5ZWN4LW1haW50ZW5hbmNlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL21vbmtleWVjeC1kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL21vbmtleWVjeC1jb25maWcnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWdCb29zdHJhcCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbW9ua2V5ZWN4LWNvbmZpZy1ib29zdHJhcCc7XHJcbmltcG9ydCB7IE1vbmtleUVjeFNlcnZpY2UgfSBmcm9tICcuLi9tb25rZXllY3gtc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4RXJyb3JDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtZXJyb3ItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZSB9IGZyb20gJy4vbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeENvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBNb25rZXlFY3hDb21tb25zU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PE1vbmtleUVjeENvbmZpZz47XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnQm9vc3RyYXBTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PE1vbmtleUVjeENvbmZpZz47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgbW9ua2V5ZWN4U2VydmljZTogTW9ua2V5RWN4U2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5ZWN4aTE4bkNvbmZpZ1NlcnZpY2U6IE1vbmtleUVjeGkxOG5Db25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb25rZXllY3hMb2dzQ29uZmlnU2VydmljZTogTW9ua2V5RWN4TG9nc0NvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2U6IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vbmtleWVjeFNlcnZpY2VXb3JrZXJDb25maWdTZXJ2aWNlOiBNb25rZXlFY3hTZXJ2aWNlV29ya2VyQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5ZWN4U2VjdXJpdHlDb25zb2xlQ29uZmlnU2VydmljZTogTW9ua2V5RWN4U2VjdXJpdHlDb25zb2xlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9ua2V5ZWN4TWFpbnRlbmFuY2VDb25maWdTZXJ2aWNlOiBNb25rZXlFY3hNYWludGVuYW5jZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vbmtleWVjeEVycm9yQ29uZmlnU2VydmljZTogTW9ua2V5RWN4RXJyb3JDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZTogTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1vbmtleWVjeFNlcnZpY2UpO1xyXG4gICAgdGhpcy5jb25maWdTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xyXG4gICAgdGhpcy5jb25maWdCb29zdHJhcFN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGludGVybmFsVmFsaWRhdGlvbnMoLi4uYXJnczogYW55W10pIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgbW9ua2V5ZWN4U2VydmljZVdvcmtlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeFNlY3VyaXR5Q29uc29sZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeE1haW50ZW5hbmNlQ29uZmlnU2VydmljZSxcclxuICAgIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgY29uZmlnQm9vc3RyYXAgPSBhcmdzWzBdO1xyXG4gICAgY29uc3QgY2FsbGJhY2sgPSBhcmdzWzFdO1xyXG4gICAgbW9ua2V5ZWN4U2VjdXJpdHlDb25zb2xlQ29uZmlnU2VydmljZS5hcHBseSgpO1xyXG4gICAgbW9ua2V5ZWN4U2VydmljZVdvcmtlckNvbmZpZ1NlcnZpY2UuYXBwbHkoY29uZmlnQm9vc3RyYXApO1xyXG4gICAgbW9ua2V5ZWN4TWFpbnRlbmFuY2VDb25maWdTZXJ2aWNlLmFwcGx5KGNvbmZpZ0Jvb3N0cmFwKTtcclxuICAgIGNhbGxiYWNrKGNvbmZpZ0Jvb3N0cmFwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0V2hpdGVMYWJlbFNldHRpbmdzKFxyXG4gICAgbW9ua2V5ZWN4Q29kZTogc3RyaW5nLFxyXG4gICAgY29uZmlnQm9vc3RyYXA6IE1vbmtleUVjeENvbmZpZ0Jvb3N0cmFwLFxyXG4gICAgY2FsbGJhY2s6IEZ1bmN0aW9uLFxyXG4gICAgZW52aXJvbm1lbnQ6IGFueSxcclxuICAgIGlkZW50aWZ5Q29kZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIG1vbmtleWVjeFNlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeGkxOG5Db25maWdTZXJ2aWNlLFxyXG4gICAgICBjb25maWdTdWJqZWN0JCxcclxuICAgICAgbW9ua2V5U3R5bGVHdWlkZVNldHRpbmdzU2VydmljZSxcclxuICAgICAgbW9ua2V5ZWN4TG9nc0NvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIG1vbmtleWVjeEVycm9yQ29uZmlnU2VydmljZSxcclxuICAgICAgbW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UsXHJcbiAgICAgIGludGVybmFsVmFsaWRhdGlvbnMsXHJcbiAgICB9ID0gdGhpcztcclxuICAgIGNvbnN0IHVybCA9IGAke2Vudmlyb25tZW50LnVybEFzc2V0c31gO1xyXG4gICAgbW9ua2V5ZWN4U2VydmljZVxyXG4gICAgICA/LmdldDxhbnk+KFxyXG4gICAgICAgIGAke3VybH0vJHttb25rZXllY3hDb2RlLnRvTG93ZXJDYXNlKCl9L3doaXRlLWxhYmVsLmpzb24/dD0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZyhcclxuICAgICAgICAgIDMwXHJcbiAgICAgICAgKX1gXHJcbiAgICAgIClcclxuICAgICAgPy5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGNvbmZpZzogTW9ua2V5RWN4Q29uZmlnKSA9PiB7XHJcbiAgICAgICAgICBtb25rZXllY3hpMThuQ29uZmlnU2VydmljZS5hcHBseShjb25maWcsIGVudmlyb25tZW50KTtcclxuICAgICAgICAgIG1vbmtleWVjeExvZ3NDb25maWdTZXJ2aWNlLmFwcGx5KGNvbmZpZywgY29uZmlnQm9vc3RyYXAsIGVudmlyb25tZW50LCBpZGVudGlmeUNvZGUpO1xyXG4gICAgICAgICAgbW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UuYXBwbHkoY29uZmlnU3ViamVjdCQsIGVudmlyb25tZW50KTtcclxuICAgICAgICAgIG1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UuYm9vc3RyYXAoXHJcbiAgICAgICAgICAgIGAke3VybH0vJHttb25rZXllY3hDb2RlLnRvTG93ZXJDYXNlKCl9L21vbmtleS1zdHlsZS1ndWlkZS1zZXR0aW5ncy5qc29uP3Q9JHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoXHJcbiAgICAgICAgICAgICAgMzBcclxuICAgICAgICAgICAgKX1gLFxyXG4gICAgICAgICAgICBpbnRlcm5hbFZhbGlkYXRpb25zLmJpbmQodGhpcywgY29uZmlnQm9vc3RyYXAsIGNhbGxiYWNrLCBlbnZpcm9ubWVudClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25maWdTdWJqZWN0JC5uZXh0KGNvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgbW9ua2V5ZWN4RXJyb3JDb25maWdTZXJ2aWNlLmFwcGx5KCd0aGVtZScpO1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignUHJvZ3JhbSBDb25maWd1cmF0aW9uIG5vdCBmb3VuZCEnKTtcclxuICAgICAgICAgIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xyXG4gICAgaHR0cFJlc3BvbnNlOiB7XHJcbiAgICAgIGh0dHBDb2RlSWdub3JlOiBbNDA0XSxcclxuICAgIH0sXHJcbiAgICByZXF1ZXN0SW5Qcm9ncmVzczoge1xyXG4gICAgICBzaG93UHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9KVxyXG4gIHB1YmxpYyBpbml0KGNhbGxiYWNrOiBGdW5jdGlvbiwgZW52aXJvbm1lbnQ6IGFueSwgaWRlbnRpZnlDb2RlOiBzdHJpbmcsIG1vbmtleWVjeENvZGU/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHsgbW9ua2V5ZWN4U2VydmljZSwgY29uZmlnQm9vc3RyYXBTdWJqZWN0JCwgbW9ua2V5ZWN4RXJyb3JDb25maWdTZXJ2aWNlIH0gPSB0aGlzO1xyXG5cclxuICAgIG1vbmtleWVjeFNlcnZpY2VcclxuICAgICAgPy5nZXQoYCR7ZW52aXJvbm1lbnQuYm9vc3RyYXBBc3NldHN9P3Q9JHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMzApfWAsIHtcclxuICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICB9KVxyXG4gICAgICA/LnN1YnNjcmliZShcclxuICAgICAgICAocmVzcDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IGhlYWRlcnMsIGJvZHkgfSA9IHJlc3A7XHJcbiAgICAgICAgICBjb25zdCBtb25rZXlDb2RlID0gaGVhZGVycy5nZXQoJ21vbmtleS1jb2RlJykgfHwgbW9ua2V5ZWN4Q29kZTtcclxuICAgICAgICAgIGlmIChtb25rZXlDb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0V2hpdGVMYWJlbFNldHRpbmdzKG1vbmtleUNvZGUsIGJvZHksIGNhbGxiYWNrLCBlbnZpcm9ubWVudCwgaWRlbnRpZnlDb2RlKTtcclxuICAgICAgICAgICAgY29uZmlnQm9vc3RyYXBTdWJqZWN0JC5uZXh0KGJvZHkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbW9ua2V5ZWN4RXJyb3JDb25maWdTZXJ2aWNlLmFwcGx5KCd0aGVtZScpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBCb29zdHJhcCAke21vbmtleUNvZGV9IENvbmZpZ3VyYXRpb24gbm90IGZvdW5kIWApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIG1vbmtleWVjeEVycm9yQ29uZmlnU2VydmljZS5hcHBseSgndGhlbWUnKTtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Jvb3N0cmFwIENvbmZpZ3VyYXRpb24gbm90IGZvdW5kIScpO1xyXG4gICAgICAgICAgdGhyb3dFcnJvcihlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25maWcoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGJvb3N0cmFwQ29uZmlnKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdCb29zdHJhcFN1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
let window;
|
|
4
|
+
const text = {
|
|
5
|
+
i18n: {
|
|
6
|
+
title: 'We have an quick update for you',
|
|
7
|
+
message: 'Click anywhere here to reload your locale',
|
|
8
|
+
},
|
|
9
|
+
theme: {
|
|
10
|
+
title: 'We have an quick update for you',
|
|
11
|
+
message: 'Click anywhere here to reload your theme',
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
export class MonkeyEcxErrorConfigService {
|
|
15
|
+
constructor() {
|
|
16
|
+
// not to do
|
|
17
|
+
}
|
|
18
|
+
enableSupport() {
|
|
19
|
+
window.zE('webWidget', 'updateSettings', {
|
|
20
|
+
webWidget: {
|
|
21
|
+
color: {
|
|
22
|
+
theme: '#0273E8',
|
|
23
|
+
launcherText: '#fff',
|
|
24
|
+
header: '#0273E8',
|
|
25
|
+
button: '#0273E8',
|
|
26
|
+
},
|
|
27
|
+
zIndex: 99,
|
|
28
|
+
offset: {
|
|
29
|
+
horizontal: '1px',
|
|
30
|
+
vertical: '20px',
|
|
31
|
+
},
|
|
32
|
+
mobile: {
|
|
33
|
+
labelVisible: true,
|
|
34
|
+
},
|
|
35
|
+
launcher: {
|
|
36
|
+
mobile: {
|
|
37
|
+
labelVisible: true,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
window.zE('webWidget', 'setLocale', 'en-US');
|
|
43
|
+
window.zE('webWidget', 'show');
|
|
44
|
+
}
|
|
45
|
+
apply(type) {
|
|
46
|
+
const { title, message } = text === null || text === void 0 ? void 0 : text[type];
|
|
47
|
+
const element = document.createElement('div');
|
|
48
|
+
element.id = 'monkeyecx-information';
|
|
49
|
+
const elementImg = document.createElement('img');
|
|
50
|
+
elementImg.width = 128;
|
|
51
|
+
elementImg.src = 'assets/images/monkey.svg';
|
|
52
|
+
elementImg.style.marginBottom = '50px';
|
|
53
|
+
const elementTitle = document.createElement('span');
|
|
54
|
+
elementTitle.id = 'title';
|
|
55
|
+
elementTitle.innerText = title;
|
|
56
|
+
elementTitle.style.marginBottom = '20px';
|
|
57
|
+
const elementMessage = document.createElement('span');
|
|
58
|
+
elementMessage.id = 'message';
|
|
59
|
+
elementMessage.innerText = message;
|
|
60
|
+
elementMessage.style.marginBottom = '20px';
|
|
61
|
+
const elementChat = document.createElement('span');
|
|
62
|
+
elementChat.id = 'message';
|
|
63
|
+
elementChat.innerText =
|
|
64
|
+
"If you're having trouble to update, please use the support icon bellow";
|
|
65
|
+
element.appendChild(elementImg);
|
|
66
|
+
element.appendChild(elementTitle);
|
|
67
|
+
element.appendChild(elementMessage);
|
|
68
|
+
element.appendChild(elementChat);
|
|
69
|
+
element.addEventListener('click', () => {
|
|
70
|
+
document.location.reload();
|
|
71
|
+
});
|
|
72
|
+
document.body.appendChild(element);
|
|
73
|
+
document.body.getElementsByTagName('app-root')[0].remove();
|
|
74
|
+
this.enableSupport();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
MonkeyEcxErrorConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxErrorConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
|
+
MonkeyEcxErrorConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxErrorConfigService, providedIn: 'root' });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: MonkeyEcxErrorConfigService, decorators: [{
|
|
80
|
+
type: Injectable,
|
|
81
|
+
args: [{
|
|
82
|
+
providedIn: 'root',
|
|
83
|
+
}]
|
|
84
|
+
}], ctorParameters: function () { return []; } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWVycm9yLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NvbmZpZy9tb25rZXllY3gtZXJyb3ItY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsSUFBSSxNQUFXLENBQUM7QUFFaEIsTUFBTSxJQUFJLEdBQVE7SUFDaEIsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLGlDQUFpQztRQUN4QyxPQUFPLEVBQUUsMkNBQTJDO0tBQ3JEO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLGlDQUFpQztRQUN4QyxPQUFPLEVBQUUsMENBQTBDO0tBQ3BEO0NBQ0YsQ0FBQztBQUtGLE1BQU0sT0FBTywyQkFBMkI7SUFDdEM7UUFDRSxZQUFZO0lBQ2QsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUU7WUFDdkMsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRTtvQkFDTCxLQUFLLEVBQUUsU0FBUztvQkFDaEIsWUFBWSxFQUFFLE1BQU07b0JBQ3BCLE1BQU0sRUFBRSxTQUFTO29CQUNqQixNQUFNLEVBQUUsU0FBUztpQkFDbEI7Z0JBQ0QsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFO29CQUNOLFVBQVUsRUFBRSxLQUFLO29CQUNqQixRQUFRLEVBQUUsTUFBTTtpQkFDakI7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLFlBQVksRUFBRSxJQUFJO2lCQUNuQjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsTUFBTSxFQUFFO3dCQUNOLFlBQVksRUFBRSxJQUFJO3FCQUNuQjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBWTtRQUN2QixNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRyxJQUFJLENBQUMsQ0FBQztRQUV4QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUM7UUFFckMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxVQUFVLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUN2QixVQUFVLENBQUMsR0FBRyxHQUFHLDBCQUEwQixDQUFDO1FBQzVDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUV2QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELFlBQVksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzFCLFlBQVksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQy9CLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUV6QyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELGNBQWMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQzlCLGNBQWMsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ25DLGNBQWMsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUUzQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELFdBQVcsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQzNCLFdBQVcsQ0FBQyxTQUFTO1lBQ25CLHdFQUF3RSxDQUFDO1FBRTNFLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDckMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O3lIQXhFVSwyQkFBMkI7NkhBQTNCLDJCQUEyQixjQUYxQixNQUFNOzRGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5sZXQgd2luZG93OiBhbnk7XHJcblxyXG5jb25zdCB0ZXh0OiBhbnkgPSB7XHJcbiAgaTE4bjoge1xyXG4gICAgdGl0bGU6ICdXZSBoYXZlIGFuIHF1aWNrIHVwZGF0ZSBmb3IgeW91JyxcclxuICAgIG1lc3NhZ2U6ICdDbGljayBhbnl3aGVyZSBoZXJlIHRvIHJlbG9hZCB5b3VyIGxvY2FsZScsXHJcbiAgfSxcclxuICB0aGVtZToge1xyXG4gICAgdGl0bGU6ICdXZSBoYXZlIGFuIHF1aWNrIHVwZGF0ZSBmb3IgeW91JyxcclxuICAgIG1lc3NhZ2U6ICdDbGljayBhbnl3aGVyZSBoZXJlIHRvIHJlbG9hZCB5b3VyIHRoZW1lJyxcclxuICB9LFxyXG59O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeEVycm9yQ29uZmlnU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyBub3QgdG8gZG9cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW5hYmxlU3VwcG9ydCgpIHtcclxuICAgIHdpbmRvdy56RSgnd2ViV2lkZ2V0JywgJ3VwZGF0ZVNldHRpbmdzJywge1xyXG4gICAgICB3ZWJXaWRnZXQ6IHtcclxuICAgICAgICBjb2xvcjoge1xyXG4gICAgICAgICAgdGhlbWU6ICcjMDI3M0U4JyxcclxuICAgICAgICAgIGxhdW5jaGVyVGV4dDogJyNmZmYnLFxyXG4gICAgICAgICAgaGVhZGVyOiAnIzAyNzNFOCcsXHJcbiAgICAgICAgICBidXR0b246ICcjMDI3M0U4JyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHpJbmRleDogOTksXHJcbiAgICAgICAgb2Zmc2V0OiB7XHJcbiAgICAgICAgICBob3Jpem9udGFsOiAnMXB4JyxcclxuICAgICAgICAgIHZlcnRpY2FsOiAnMjBweCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBtb2JpbGU6IHtcclxuICAgICAgICAgIGxhYmVsVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhdW5jaGVyOiB7XHJcbiAgICAgICAgICBtb2JpbGU6IHtcclxuICAgICAgICAgICAgbGFiZWxWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICB3aW5kb3cuekUoJ3dlYldpZGdldCcsICdzZXRMb2NhbGUnLCAnZW4tVVMnKTtcclxuICAgIHdpbmRvdy56RSgnd2ViV2lkZ2V0JywgJ3Nob3cnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseSh0eXBlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHsgdGl0bGUsIG1lc3NhZ2UgfSA9IHRleHQ/Llt0eXBlXTtcclxuXHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBlbGVtZW50LmlkID0gJ21vbmtleWVjeC1pbmZvcm1hdGlvbic7XHJcblxyXG4gICAgY29uc3QgZWxlbWVudEltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xyXG4gICAgZWxlbWVudEltZy53aWR0aCA9IDEyODtcclxuICAgIGVsZW1lbnRJbWcuc3JjID0gJ2Fzc2V0cy9pbWFnZXMvbW9ua2V5LnN2Zyc7XHJcbiAgICBlbGVtZW50SW1nLnN0eWxlLm1hcmdpbkJvdHRvbSA9ICc1MHB4JztcclxuXHJcbiAgICBjb25zdCBlbGVtZW50VGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBlbGVtZW50VGl0bGUuaWQgPSAndGl0bGUnO1xyXG4gICAgZWxlbWVudFRpdGxlLmlubmVyVGV4dCA9IHRpdGxlO1xyXG4gICAgZWxlbWVudFRpdGxlLnN0eWxlLm1hcmdpbkJvdHRvbSA9ICcyMHB4JztcclxuXHJcbiAgICBjb25zdCBlbGVtZW50TWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIGVsZW1lbnRNZXNzYWdlLmlkID0gJ21lc3NhZ2UnO1xyXG4gICAgZWxlbWVudE1lc3NhZ2UuaW5uZXJUZXh0ID0gbWVzc2FnZTtcclxuICAgIGVsZW1lbnRNZXNzYWdlLnN0eWxlLm1hcmdpbkJvdHRvbSA9ICcyMHB4JztcclxuXHJcbiAgICBjb25zdCBlbGVtZW50Q2hhdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIGVsZW1lbnRDaGF0LmlkID0gJ21lc3NhZ2UnO1xyXG4gICAgZWxlbWVudENoYXQuaW5uZXJUZXh0ID1cclxuICAgICAgXCJJZiB5b3UncmUgaGF2aW5nIHRyb3VibGUgdG8gdXBkYXRlLCBwbGVhc2UgdXNlIHRoZSBzdXBwb3J0IGljb24gYmVsbG93XCI7XHJcblxyXG4gICAgZWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50SW1nKTtcclxuICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudFRpdGxlKTtcclxuICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudE1lc3NhZ2UpO1xyXG4gICAgZWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50Q2hhdCk7XHJcblxyXG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgZG9jdW1lbnQubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2FwcC1yb290JylbMF0ucmVtb3ZlKCk7XHJcbiAgICB0aGlzLmVuYWJsZVN1cHBvcnQoKTtcclxuICB9XHJcbn1cclxuIl19
|