monkey-front-core 0.0.463 → 0.0.466
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/esm2020/lib/components/alerts/alerts.component.mjs +45 -45
- package/esm2020/lib/components/alerts/alerts.module.mjs +21 -21
- package/esm2020/lib/components/alerts/index.mjs +3 -3
- package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.component.mjs +29 -29
- package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.module.mjs +43 -43
- package/esm2020/lib/components/closed-to-maintenance/index.mjs +3 -3
- package/esm2020/lib/components/currency-config/currency-config.component.mjs +39 -39
- package/esm2020/lib/components/currency-config/currency-config.module.mjs +39 -39
- package/esm2020/lib/components/currency-config/index.mjs +3 -3
- package/esm2020/lib/components/index.mjs +6 -6
- package/esm2020/lib/components/progress-bar/index.mjs +4 -4
- package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +23 -23
- package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +18 -18
- package/esm2020/lib/components/progress-bar/progress-bar.service.mjs +50 -50
- package/esm2020/lib/components/version-changed/index.mjs +3 -3
- package/esm2020/lib/components/version-changed/version-changed.component.mjs +24 -24
- package/esm2020/lib/components/version-changed/version-changed.module.mjs +39 -39
- package/esm2020/lib/core/decorators/index.mjs +5 -5
- package/esm2020/lib/core/decorators/monkeyecx-charts-decorators.mjs +40 -40
- package/esm2020/lib/core/decorators/monkeyecx-decorators.mjs +111 -111
- package/esm2020/lib/core/decorators/monkeyecx-download-decorators.mjs +26 -26
- package/esm2020/lib/core/decorators/monkeyecx-upload-decorators.mjs +26 -26
- package/esm2020/lib/core/directives/index.mjs +13 -13
- package/esm2020/lib/core/directives/monkeyecx-directives-module.mjs +73 -73
- package/esm2020/lib/core/directives/monkeyecx-drag-drop.mjs +57 -57
- package/esm2020/lib/core/directives/monkeyecx-feature-by-program-directive.mjs +54 -54
- package/esm2020/lib/core/directives/monkeyecx-feature-directive.mjs +68 -68
- package/esm2020/lib/core/directives/monkeyecx-format-currency.mjs +44 -44
- package/esm2020/lib/core/directives/monkeyecx-format-upper.mjs +67 -67
- package/esm2020/lib/core/directives/monkeyecx-only-alpha-numeric-directive.mjs +28 -28
- package/esm2020/lib/core/directives/monkeyecx-only-number-directive.mjs +28 -28
- package/esm2020/lib/core/directives/monkeyecx-popover-options.directive.mjs +39 -39
- package/esm2020/lib/core/directives/monkeyecx-popover.directive.mjs +212 -212
- package/esm2020/lib/core/directives/monkeyecx-security-directive.mjs +75 -75
- package/esm2020/lib/core/directives/monkeyecx-tooltip-directive.mjs +123 -123
- package/esm2020/lib/core/index.mjs +10 -10
- package/esm2020/lib/core/interceptors/index.mjs +6 -6
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-error.interceptor.mjs +49 -49
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-header.interceptor.mjs +59 -59
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-interceptor.module.mjs +47 -47
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.mjs +43 -43
- package/esm2020/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.mjs +37 -37
- package/esm2020/lib/core/interfaces/index.mjs +35 -35
- package/esm2020/lib/core/interfaces/monkeyecx-auth-credentials.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-company-pendencies.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-company.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-config-bootstrap.mjs +1 -1
- package/esm2020/lib/core/interfaces/monkeyecx-config.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-country-security.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-error-response.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-filter.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-handled-error-response.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-header-credentials.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-intercom-options.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-interface.mjs +1 -1
- package/esm2020/lib/core/interfaces/monkeyecx-me-credentials.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-navigation.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-pagination.mjs +1 -1
- package/esm2020/lib/core/interfaces/monkeyecx-program.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-releases.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-request-in-progress.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-request-paged.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-resolver.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-response-links.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-response-paged.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-saved-state.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-scroll-options.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-service-credentials.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-storage.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-store.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-support-options.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +1 -1
- package/esm2020/lib/core/interfaces/monkeyecx-translate-options.mjs +2 -2
- package/esm2020/lib/core/interfaces/request-download/index.mjs +4 -4
- package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-download.mjs +2 -2
- package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-downloaded.mjs +2 -2
- package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-item-download.mjs +2 -2
- package/esm2020/lib/core/interfaces/request-queue/index.mjs +4 -4
- package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.mjs +2 -2
- package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.mjs +2 -2
- package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-queue.mjs +2 -2
- package/esm2020/lib/core/interfaces/request-upload/index.mjs +3 -3
- package/esm2020/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.mjs +2 -2
- package/esm2020/lib/core/interfaces/request-upload/monkeyecx-request-upload.mjs +2 -2
- package/esm2020/lib/core/interfaces/schedules/index.mjs +2 -2
- package/esm2020/lib/core/interfaces/schedules/monkeyecx-request-schedule.mjs +2 -2
- package/esm2020/lib/core/model/index.mjs +3 -3
- package/esm2020/lib/core/model/monkeyecx-links.model.mjs +8 -8
- package/esm2020/lib/core/model/monkeyecx-model.mjs +25 -25
- package/esm2020/lib/core/pipes/index.mjs +22 -22
- package/esm2020/lib/core/pipes/monkeyecx-blob-secure.mjs +26 -26
- package/esm2020/lib/core/pipes/monkeyecx-display-first-name.mjs +19 -19
- package/esm2020/lib/core/pipes/monkeyecx-display-initials.mjs +21 -21
- package/esm2020/lib/core/pipes/monkeyecx-display-support-phone.mjs +33 -33
- package/esm2020/lib/core/pipes/monkeyecx-format-address.mjs +20 -20
- package/esm2020/lib/core/pipes/monkeyecx-format-beautify-json.mjs +38 -38
- package/esm2020/lib/core/pipes/monkeyecx-format-currency.mjs +27 -27
- package/esm2020/lib/core/pipes/monkeyecx-format-date-group.mjs +45 -45
- package/esm2020/lib/core/pipes/monkeyecx-format-date-timelapse.mjs +32 -32
- package/esm2020/lib/core/pipes/monkeyecx-format-date-unix-timelapse.mjs +36 -36
- package/esm2020/lib/core/pipes/monkeyecx-format-document.mjs +20 -20
- package/esm2020/lib/core/pipes/monkeyecx-format-number.mjs +20 -20
- package/esm2020/lib/core/pipes/monkeyecx-format-phone.mjs +42 -42
- package/esm2020/lib/core/pipes/monkeyecx-format-size.mjs +20 -20
- package/esm2020/lib/core/pipes/monkeyecx-format-tax.mjs +23 -23
- package/esm2020/lib/core/pipes/monkeyecx-format-type-document.mjs +19 -19
- package/esm2020/lib/core/pipes/monkeyecx-format-value.mjs +19 -19
- package/esm2020/lib/core/pipes/monkeyecx-format-zipcode.mjs +19 -19
- package/esm2020/lib/core/pipes/monkeyecx-pipes.module.mjs +117 -117
- package/esm2020/lib/core/pipes/monkeyecx-text-truncate.mjs +23 -23
- package/esm2020/lib/core/pipes/monkeyecx-truncate-qtd.mjs +16 -16
- package/esm2020/lib/core/services/alerts/index.mjs +2 -2
- package/esm2020/lib/core/services/alerts/monkeyecx-alerts.service.mjs +42 -42
- package/esm2020/lib/core/services/auth/index.mjs +6 -6
- package/esm2020/lib/core/services/auth/monkeyecx-auth-guard-company.service.mjs +28 -28
- package/esm2020/lib/core/services/auth/monkeyecx-auth-guard-login.service.mjs +27 -27
- package/esm2020/lib/core/services/auth/monkeyecx-auth-guard-role.service.mjs +79 -79
- package/esm2020/lib/core/services/auth/monkeyecx-auth-guard.service.mjs +26 -26
- package/esm2020/lib/core/services/auth/monkeyecx-authentication.service.mjs +78 -78
- package/esm2020/lib/core/services/commons/index.mjs +3 -3
- package/esm2020/lib/core/services/commons/monkeyecx-commons-resolve.service.mjs +121 -121
- package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +362 -362
- package/esm2020/lib/core/services/config/monkeyecx-alerts-config.service.mjs +42 -42
- package/esm2020/lib/core/services/config/monkeyecx-config.module.mjs +28 -28
- package/esm2020/lib/core/services/config/monkeyecx-config.service.mjs +107 -107
- package/esm2020/lib/core/services/config/monkeyecx-currency-config.service.mjs +84 -84
- package/esm2020/lib/core/services/config/monkeyecx-error-config.service.mjs +85 -85
- package/esm2020/lib/core/services/config/monkeyecx-feature-toggle.service.mjs +76 -76
- package/esm2020/lib/core/services/config/monkeyecx-gtm-config.service.mjs +50 -50
- package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +152 -152
- package/esm2020/lib/core/services/config/monkeyecx-logs-config.service.mjs +34 -34
- package/esm2020/lib/core/services/config/monkeyecx-maintenance-config.service.mjs +37 -37
- package/esm2020/lib/core/services/config/monkeyecx-security-console-config.service.mjs +47 -47
- package/esm2020/lib/core/services/config/monkeyecx-service-worker-config.service.mjs +53 -53
- package/esm2020/lib/core/services/error/index.mjs +5 -5
- package/esm2020/lib/core/services/error/monkeyecx-error-handling.module.mjs +27 -27
- package/esm2020/lib/core/services/error/monkeyecx-error-handling.service.mjs +37 -37
- package/esm2020/lib/core/services/error/monkeyecx-http-error-handling.service.mjs +138 -138
- package/esm2020/lib/core/services/error/monkeyecx-others-errors-handling.service.mjs +29 -29
- package/esm2020/lib/core/services/index.mjs +26 -26
- package/esm2020/lib/core/services/logged/index.mjs +2 -2
- package/esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs +40 -40
- package/esm2020/lib/core/services/monkeyecx-handling.service.mjs +50 -50
- package/esm2020/lib/core/services/monkeyecx-service.service.mjs +104 -104
- package/esm2020/lib/core/services/pagination/index.mjs +2 -2
- package/esm2020/lib/core/services/pagination/monkeyecx-pagination.service.mjs +29 -29
- package/esm2020/lib/core/services/request-download/index.mjs +3 -3
- package/esm2020/lib/core/services/request-download/monkeyecx-request-download-handling.service.mjs +93 -93
- package/esm2020/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.mjs +61 -61
- package/esm2020/lib/core/services/request-paged/index.mjs +2 -2
- package/esm2020/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.mjs +42 -42
- package/esm2020/lib/core/services/request-queue/index.mjs +3 -3
- package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.mjs +114 -114
- package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.mjs +119 -119
- package/esm2020/lib/core/services/routes/index.mjs +2 -2
- package/esm2020/lib/core/services/routes/monkeyecx-dicovery-params.service.mjs +54 -54
- package/esm2020/lib/core/services/schedules/index.mjs +2 -2
- package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +188 -188
- package/esm2020/lib/core/services/storage/index.mjs +3 -3
- package/esm2020/lib/core/services/storage/monkeyecx-cookie-storage.service.mjs +32 -32
- package/esm2020/lib/core/services/storage/monkeyecx-token-storage.service.mjs +236 -236
- package/esm2020/lib/core/services/store/index.mjs +3 -3
- package/esm2020/lib/core/services/store/monkeyecx-store.actions.mjs +26 -24
- package/esm2020/lib/core/services/store/monkeyecx-store.selector.mjs +68 -74
- package/esm2020/lib/core/services/store/monkeyecx-store.service.mjs +189 -189
- package/esm2020/lib/core/specification-search/index.mjs +2 -2
- package/esm2020/lib/core/specification-search/monkeyecx-specification-search.mjs +108 -108
- package/esm2020/lib/core/utils/decorators-utils.mjs +40 -40
- package/esm2020/lib/core/utils/index.mjs +8 -8
- package/esm2020/lib/core/utils/statics.mjs +45 -45
- package/esm2020/lib/core/utils/utils.mjs +267 -267
- package/esm2020/lib/core/utils/validate-utils.mjs +205 -205
- package/esm2020/lib/core/utils/validators.mjs +268 -268
- package/esm2020/lib/monkey-front-core.module.mjs +71 -71
- package/esm2020/lib/store/actions/index.mjs +2 -2
- package/esm2020/lib/store/actions/monkeyecx-storage.actions.mjs +8 -8
- package/esm2020/lib/store/index.mjs +4 -4
- package/esm2020/lib/store/reducers/index.mjs +3 -3
- package/esm2020/lib/store/reducers/monkeyecx-seeder.reducer.mjs +53 -53
- package/esm2020/lib/store/reducers/monkeyecx-storage.reducer.mjs +40 -40
- package/esm2020/lib/store/selectors/index.mjs +2 -2
- package/esm2020/lib/store/selectors/monkeyecx-storage.selector.mjs +17 -17
- package/esm2020/monkey-front-core.mjs +4 -4
- package/esm2020/public-api.mjs +8 -8
- package/fesm2015/monkey-front-core.mjs +5950 -5955
- package/fesm2015/monkey-front-core.mjs.map +1 -1
- package/fesm2020/monkey-front-core.mjs +6008 -6012
- package/fesm2020/monkey-front-core.mjs.map +1 -1
- package/lib/components/alerts/alerts.component.d.ts +22 -22
- package/lib/components/alerts/alerts.module.d.ts +10 -10
- package/lib/components/alerts/index.d.ts +2 -2
- package/lib/components/closed-to-maintenance/closed-to-maintenance.component.d.ts +13 -13
- package/lib/components/closed-to-maintenance/closed-to-maintenance.module.d.ts +11 -11
- package/lib/components/closed-to-maintenance/index.d.ts +2 -2
- package/lib/components/currency-config/currency-config.component.d.ts +17 -17
- package/lib/components/currency-config/currency-config.module.d.ts +10 -10
- package/lib/components/currency-config/index.d.ts +2 -2
- package/lib/components/index.d.ts +5 -5
- package/lib/components/progress-bar/index.d.ts +3 -3
- package/lib/components/progress-bar/progress-bar.component.d.ts +11 -11
- package/lib/components/progress-bar/progress-bar.module.d.ts +8 -8
- package/lib/components/progress-bar/progress-bar.service.d.ts +14 -14
- package/lib/components/version-changed/index.d.ts +2 -2
- package/lib/components/version-changed/version-changed.component.d.ts +9 -9
- package/lib/components/version-changed/version-changed.module.d.ts +10 -10
- package/lib/core/decorators/index.d.ts +4 -4
- package/lib/core/decorators/monkeyecx-charts-decorators.d.ts +1 -1
- package/lib/core/decorators/monkeyecx-decorators.d.ts +7 -7
- package/lib/core/decorators/monkeyecx-download-decorators.d.ts +2 -2
- package/lib/core/decorators/monkeyecx-upload-decorators.d.ts +2 -2
- package/lib/core/directives/index.d.ts +12 -12
- package/lib/core/directives/monkeyecx-directives-module.d.ts +19 -19
- package/lib/core/directives/monkeyecx-drag-drop.d.ts +12 -12
- package/lib/core/directives/monkeyecx-feature-by-program-directive.d.ts +16 -16
- package/lib/core/directives/monkeyecx-feature-directive.d.ts +17 -17
- package/lib/core/directives/monkeyecx-format-currency.d.ts +16 -16
- package/lib/core/directives/monkeyecx-format-upper.d.ts +18 -18
- package/lib/core/directives/monkeyecx-only-alpha-numeric-directive.d.ts +9 -9
- package/lib/core/directives/monkeyecx-only-number-directive.d.ts +9 -9
- package/lib/core/directives/monkeyecx-popover-options.directive.d.ts +19 -19
- package/lib/core/directives/monkeyecx-popover.directive.d.ts +43 -43
- package/lib/core/directives/monkeyecx-security-directive.d.ts +18 -18
- package/lib/core/directives/monkeyecx-tooltip-directive.d.ts +23 -23
- package/lib/core/index.d.ts +9 -9
- package/lib/core/interceptors/index.d.ts +5 -5
- package/lib/core/interceptors/monkeyecx-http-config-error.interceptor.d.ts +18 -18
- package/lib/core/interceptors/monkeyecx-http-config-header.interceptor.d.ts +16 -16
- package/lib/core/interceptors/monkeyecx-http-config-interceptor.module.d.ts +9 -9
- package/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.d.ts +12 -12
- package/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.d.ts +14 -14
- package/lib/core/interfaces/index.d.ts +34 -34
- package/lib/core/interfaces/monkeyecx-auth-credentials.d.ts +15 -15
- package/lib/core/interfaces/monkeyecx-company-pendencies.d.ts +14 -14
- package/lib/core/interfaces/monkeyecx-company.d.ts +10 -10
- package/lib/core/interfaces/monkeyecx-config-bootstrap.d.ts +14 -14
- package/lib/core/interfaces/monkeyecx-config.d.ts +132 -132
- package/lib/core/interfaces/monkeyecx-country-security.d.ts +4 -4
- package/lib/core/interfaces/monkeyecx-error-response.d.ts +5 -5
- package/lib/core/interfaces/monkeyecx-filter.d.ts +42 -42
- package/lib/core/interfaces/monkeyecx-handled-error-response.d.ts +10 -10
- package/lib/core/interfaces/monkeyecx-header-credentials.d.ts +4 -4
- package/lib/core/interfaces/monkeyecx-intercom-options.d.ts +4 -4
- package/lib/core/interfaces/monkeyecx-interface.d.ts +11 -11
- package/lib/core/interfaces/monkeyecx-me-credentials.d.ts +22 -22
- package/lib/core/interfaces/monkeyecx-navigation.d.ts +27 -27
- package/lib/core/interfaces/monkeyecx-pagination.d.ts +26 -26
- package/lib/core/interfaces/monkeyecx-program.d.ts +10 -10
- package/lib/core/interfaces/monkeyecx-releases.d.ts +9 -9
- package/lib/core/interfaces/monkeyecx-request-in-progress.d.ts +3 -3
- package/lib/core/interfaces/monkeyecx-request-paged.d.ts +23 -23
- package/lib/core/interfaces/monkeyecx-resolver.d.ts +39 -39
- package/lib/core/interfaces/monkeyecx-response-links.d.ts +11 -11
- package/lib/core/interfaces/monkeyecx-response-paged.d.ts +6 -6
- package/lib/core/interfaces/monkeyecx-saved-state.d.ts +5 -5
- package/lib/core/interfaces/monkeyecx-scroll-options.d.ts +5 -5
- package/lib/core/interfaces/monkeyecx-service-credentials.d.ts +12 -12
- package/lib/core/interfaces/monkeyecx-storage.d.ts +38 -38
- package/lib/core/interfaces/monkeyecx-store.d.ts +35 -34
- package/lib/core/interfaces/monkeyecx-support-options.d.ts +4 -4
- package/lib/core/interfaces/monkeyecx-token-credentials.d.ts +21 -21
- package/lib/core/interfaces/monkeyecx-translate-options.d.ts +4 -4
- package/lib/core/interfaces/request-download/index.d.ts +3 -3
- package/lib/core/interfaces/request-download/monkeyecx-request-download.d.ts +10 -10
- package/lib/core/interfaces/request-download/monkeyecx-request-downloaded.d.ts +7 -7
- package/lib/core/interfaces/request-download/monkeyecx-request-item-download.d.ts +7 -7
- package/lib/core/interfaces/request-queue/index.d.ts +3 -3
- package/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.d.ts +7 -7
- package/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.d.ts +6 -6
- package/lib/core/interfaces/request-queue/monkeyecx-request-queue.d.ts +8 -8
- package/lib/core/interfaces/request-upload/index.d.ts +2 -2
- package/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.d.ts +5 -5
- package/lib/core/interfaces/request-upload/monkeyecx-request-upload.d.ts +10 -10
- package/lib/core/interfaces/schedules/index.d.ts +1 -1
- package/lib/core/interfaces/schedules/monkeyecx-request-schedule.d.ts +13 -13
- package/lib/core/model/index.d.ts +2 -2
- package/lib/core/model/monkeyecx-links.model.d.ts +4 -4
- package/lib/core/model/monkeyecx-model.d.ts +13 -13
- package/lib/core/pipes/index.d.ts +21 -21
- package/lib/core/pipes/monkeyecx-blob-secure.d.ts +13 -13
- package/lib/core/pipes/monkeyecx-display-first-name.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-display-initials.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-display-support-phone.d.ts +18 -18
- package/lib/core/pipes/monkeyecx-format-address.d.ts +14 -14
- package/lib/core/pipes/monkeyecx-format-beautify-json.d.ts +8 -8
- package/lib/core/pipes/monkeyecx-format-currency.d.ts +11 -11
- package/lib/core/pipes/monkeyecx-format-date-group.d.ts +11 -11
- package/lib/core/pipes/monkeyecx-format-date-timelapse.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-date-unix-timelapse.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-document.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-number.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-phone.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-size.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-tax.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-type-document.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-value.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-format-zipcode.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-pipes.module.d.ts +26 -26
- package/lib/core/pipes/monkeyecx-text-truncate.d.ts +7 -7
- package/lib/core/pipes/monkeyecx-truncate-qtd.d.ts +7 -7
- package/lib/core/services/alerts/index.d.ts +1 -1
- package/lib/core/services/alerts/monkeyecx-alerts.service.d.ts +21 -21
- package/lib/core/services/auth/index.d.ts +5 -5
- package/lib/core/services/auth/monkeyecx-auth-guard-company.service.d.ts +10 -10
- package/lib/core/services/auth/monkeyecx-auth-guard-login.service.d.ts +10 -10
- package/lib/core/services/auth/monkeyecx-auth-guard-role.service.d.ts +16 -16
- package/lib/core/services/auth/monkeyecx-auth-guard.service.d.ts +10 -10
- package/lib/core/services/auth/monkeyecx-authentication.service.d.ts +35 -35
- package/lib/core/services/commons/index.d.ts +2 -2
- package/lib/core/services/commons/monkeyecx-commons-resolve.service.d.ts +53 -53
- package/lib/core/services/commons/monkeyecx-commons.service.d.ts +120 -120
- package/lib/core/services/config/monkeyecx-alerts-config.service.d.ts +11 -11
- package/lib/core/services/config/monkeyecx-config.module.d.ts +9 -9
- package/lib/core/services/config/monkeyecx-config.service.d.ts +36 -36
- package/lib/core/services/config/monkeyecx-currency-config.service.d.ts +15 -15
- package/lib/core/services/config/monkeyecx-error-config.service.d.ts +8 -8
- package/lib/core/services/config/monkeyecx-feature-toggle.service.d.ts +16 -16
- package/lib/core/services/config/monkeyecx-gtm-config.service.d.ts +8 -8
- package/lib/core/services/config/monkeyecx-i18n-config.service.d.ts +18 -18
- package/lib/core/services/config/monkeyecx-logs-config.service.d.ts +7 -7
- package/lib/core/services/config/monkeyecx-maintenance-config.service.d.ts +13 -13
- package/lib/core/services/config/monkeyecx-security-console-config.service.d.ts +12 -12
- package/lib/core/services/config/monkeyecx-service-worker-config.service.d.ts +16 -16
- package/lib/core/services/error/index.d.ts +4 -4
- package/lib/core/services/error/monkeyecx-error-handling.module.d.ts +9 -9
- package/lib/core/services/error/monkeyecx-error-handling.service.d.ts +9 -9
- package/lib/core/services/error/monkeyecx-http-error-handling.service.d.ts +26 -26
- package/lib/core/services/error/monkeyecx-others-errors-handling.service.d.ts +9 -9
- package/lib/core/services/index.d.ts +25 -25
- package/lib/core/services/logged/index.d.ts +1 -1
- package/lib/core/services/logged/monkeyecx-logged-handling.service.d.ts +14 -14
- package/lib/core/services/monkeyecx-handling.service.d.ts +22 -22
- package/lib/core/services/monkeyecx-service.service.d.ts +18 -18
- package/lib/core/services/pagination/index.d.ts +1 -1
- package/lib/core/services/pagination/monkeyecx-pagination.service.d.ts +9 -9
- package/lib/core/services/request-download/index.d.ts +2 -2
- package/lib/core/services/request-download/monkeyecx-request-download-handling.service.d.ts +18 -18
- package/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.d.ts +16 -16
- package/lib/core/services/request-paged/index.d.ts +1 -1
- package/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.d.ts +11 -11
- package/lib/core/services/request-queue/index.d.ts +2 -2
- package/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.d.ts +21 -21
- package/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.d.ts +23 -23
- package/lib/core/services/routes/index.d.ts +1 -1
- package/lib/core/services/routes/monkeyecx-dicovery-params.service.d.ts +13 -13
- package/lib/core/services/schedules/index.d.ts +1 -1
- package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +47 -47
- package/lib/core/services/storage/index.d.ts +2 -2
- package/lib/core/services/storage/monkeyecx-cookie-storage.service.d.ts +11 -11
- package/lib/core/services/storage/monkeyecx-token-storage.service.d.ts +30 -30
- package/lib/core/services/store/index.d.ts +3 -3
- package/lib/core/services/store/monkeyecx-store.actions.d.ts +56 -51
- package/lib/core/services/store/monkeyecx-store.selector.d.ts +28 -31
- package/lib/core/services/store/monkeyecx-store.service.d.ts +50 -50
- package/lib/core/specification-search/index.d.ts +1 -1
- package/lib/core/specification-search/monkeyecx-specification-search.d.ts +20 -20
- package/lib/core/utils/decorators-utils.d.ts +5 -5
- package/lib/core/utils/index.d.ts +6 -6
- package/lib/core/utils/statics.d.ts +34 -34
- package/lib/core/utils/utils.d.ts +26 -26
- package/lib/core/utils/validate-utils.d.ts +66 -66
- package/lib/core/utils/validators.d.ts +36 -36
- package/lib/monkey-front-core.module.d.ts +19 -19
- package/lib/store/actions/index.d.ts +1 -1
- package/lib/store/actions/monkeyecx-storage.actions.d.ts +23 -23
- package/lib/store/index.d.ts +3 -3
- package/lib/store/reducers/index.d.ts +2 -2
- package/lib/store/reducers/monkeyecx-seeder.reducer.d.ts +2 -2
- package/lib/store/reducers/monkeyecx-storage.reducer.d.ts +13 -13
- package/lib/store/selectors/index.d.ts +1 -1
- package/lib/store/selectors/monkeyecx-storage.selector.d.ts +8 -8
- package/monkey-front-core-0.0.466.tgz +0 -0
- package/monkey-front-core.d.ts +5 -5
- package/package.json +1 -1
- package/public-api.d.ts +4 -4
- package/monkey-front-core-0.0.463.tgz +0 -0
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import { createAction, props } from '@ngrx/store';
|
|
2
|
-
export class MonkeyEcxCommonsActions {
|
|
3
|
-
static getActions(actionName) {
|
|
4
|
-
const clear = createAction(`[${actionName}] Clear All`, props());
|
|
5
|
-
const load = createAction(`[${actionName}] Load`, props());
|
|
6
|
-
const loadPagination = createAction(`[${actionName} Pagination] Load`, props());
|
|
7
|
-
const updateAll = createAction(`[${actionName}] Update All`, props());
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
1
|
+
import { createAction, props } from '@ngrx/store';
|
|
2
|
+
export class MonkeyEcxCommonsActions {
|
|
3
|
+
static getActions(actionName) {
|
|
4
|
+
const clear = createAction(`[${actionName}] Clear All`, props());
|
|
5
|
+
const load = createAction(`[${actionName}] Load`, props());
|
|
6
|
+
const loadPagination = createAction(`[${actionName} Pagination] Load`, props());
|
|
7
|
+
const updateAll = createAction(`[${actionName}] Update All`, props());
|
|
8
|
+
const updateOne = createAction(`[${actionName}] Update One`, props());
|
|
9
|
+
const removeOne = createAction(`[${actionName}] Remove One`, props());
|
|
10
|
+
const updateControl = createAction(`[${actionName}] Update Control`, props());
|
|
11
|
+
const updatePage = createAction(`[${actionName}] Update Page`, props());
|
|
12
|
+
const updateLinks = createAction(`[${actionName}] Update Links`, props());
|
|
13
|
+
return {
|
|
14
|
+
clear,
|
|
15
|
+
load,
|
|
16
|
+
loadPagination,
|
|
17
|
+
removeOne,
|
|
18
|
+
updateAll,
|
|
19
|
+
updateOne,
|
|
20
|
+
updateControl,
|
|
21
|
+
updateLinks,
|
|
22
|
+
updatePage
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RvcmUvbW9ua2V5ZWN4LXN0b3JlLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFRbEQsTUFBTSxPQUFnQix1QkFBdUI7SUFDM0MsTUFBTSxDQUFDLFVBQVUsQ0FBSSxVQUFrQjtRQUNyQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxVQUFVLGFBQWEsRUFBRSxLQUFLLEVBQTBCLENBQUMsQ0FBQztRQUN6RixNQUFNLElBQUksR0FBRyxZQUFZLENBQ3ZCLElBQUksVUFBVSxRQUFRLEVBQ3RCLEtBQUssRUFBd0QsQ0FDOUQsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FDakMsSUFBSSxVQUFVLG1CQUFtQixFQUNqQyxLQUFLLEVBQTJELENBQ2pFLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxVQUFVLGNBQWMsRUFBRSxLQUFLLEVBQWlCLENBQUMsQ0FBQztRQUNyRixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxVQUFVLGNBQWMsRUFBRSxLQUFLLEVBQWUsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLFVBQVUsY0FBYyxFQUFFLEtBQUssRUFBZSxDQUFDLENBQUM7UUFDbkYsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUNoQyxJQUFJLFVBQVUsa0JBQWtCLEVBQ2hDLEtBQUssRUFBbUMsQ0FDekMsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FDN0IsSUFBSSxVQUFVLGVBQWUsRUFDN0IsS0FBSyxFQUEyQixDQUNqQyxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUM5QixJQUFJLFVBQVUsZ0JBQWdCLEVBQzlCLEtBQUssRUFBNEIsQ0FDbEMsQ0FBQztRQUVGLE9BQU87WUFDTCxLQUFLO1lBQ0wsSUFBSTtZQUNKLGNBQWM7WUFDZCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxhQUFhO1lBQ2IsV0FBVztZQUNYLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIE1vbmtleUVjeExpbmtzLFxuICBNb25rZXlFY3hQYWdlLFxuICBNb25rZXlFY3hQYWdpbmF0aW9uLFxuICBNb25rZXlFY3hTdG9yZUNvbnRyb2xcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNb25rZXlFY3hDb21tb25zQWN0aW9ucyB7XG4gIHN0YXRpYyBnZXRBY3Rpb25zPFQ+KGFjdGlvbk5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNsZWFyID0gY3JlYXRlQWN0aW9uKGBbJHthY3Rpb25OYW1lfV0gQ2xlYXIgQWxsYCwgcHJvcHM8eyBpZGVudGlmaWVyOiBzdHJpbmcgfT4oKSk7XG4gICAgY29uc3QgbG9hZCA9IGNyZWF0ZUFjdGlvbihcbiAgICAgIGBbJHthY3Rpb25OYW1lfV0gTG9hZGAsXG4gICAgICBwcm9wczx7IHVybDogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmc7IGZvcmNlPzogYm9vbGVhbiB9PigpXG4gICAgKTtcbiAgICBjb25zdCBsb2FkUGFnaW5hdGlvbiA9IGNyZWF0ZUFjdGlvbihcbiAgICAgIGBbJHthY3Rpb25OYW1lfSBQYWdpbmF0aW9uXSBMb2FkYCxcbiAgICAgIHByb3BzPHsgcGFnaW5hdGlvbjogTW9ua2V5RWN4UGFnaW5hdGlvbjsgaWRlbnRpZmllcjogc3RyaW5nIH0+KClcbiAgICApO1xuICAgIGNvbnN0IHVwZGF0ZUFsbCA9IGNyZWF0ZUFjdGlvbihgWyR7YWN0aW9uTmFtZX1dIFVwZGF0ZSBBbGxgLCBwcm9wczx7IGRhdGE6IFRbXSB9PigpKTtcbiAgICBjb25zdCB1cGRhdGVPbmUgPSBjcmVhdGVBY3Rpb24oYFske2FjdGlvbk5hbWV9XSBVcGRhdGUgT25lYCwgcHJvcHM8eyBkYXRhOiBUIH0+KCkpO1xuICAgIGNvbnN0IHJlbW92ZU9uZSA9IGNyZWF0ZUFjdGlvbihgWyR7YWN0aW9uTmFtZX1dIFJlbW92ZSBPbmVgLCBwcm9wczx7IGRhdGE6IFQgfT4oKSk7XG4gICAgY29uc3QgdXBkYXRlQ29udHJvbCA9IGNyZWF0ZUFjdGlvbihcbiAgICAgIGBbJHthY3Rpb25OYW1lfV0gVXBkYXRlIENvbnRyb2xgLFxuICAgICAgcHJvcHM8eyBkYXRhOiBNb25rZXlFY3hTdG9yZUNvbnRyb2wgfT4oKVxuICAgICk7XG4gICAgY29uc3QgdXBkYXRlUGFnZSA9IGNyZWF0ZUFjdGlvbihcbiAgICAgIGBbJHthY3Rpb25OYW1lfV0gVXBkYXRlIFBhZ2VgLFxuICAgICAgcHJvcHM8eyBkYXRhOiBNb25rZXlFY3hQYWdlIH0+KClcbiAgICApO1xuICAgIGNvbnN0IHVwZGF0ZUxpbmtzID0gY3JlYXRlQWN0aW9uKFxuICAgICAgYFske2FjdGlvbk5hbWV9XSBVcGRhdGUgTGlua3NgLFxuICAgICAgcHJvcHM8eyBkYXRhOiBNb25rZXlFY3hMaW5rcyB9PigpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjbGVhcixcbiAgICAgIGxvYWQsXG4gICAgICBsb2FkUGFnaW5hdGlvbixcbiAgICAgIHJlbW92ZU9uZSxcbiAgICAgIHVwZGF0ZUFsbCxcbiAgICAgIHVwZGF0ZU9uZSxcbiAgICAgIHVwZGF0ZUNvbnRyb2wsXG4gICAgICB1cGRhdGVMaW5rcyxcbiAgICAgIHVwZGF0ZVBhZ2VcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,74 +1,68 @@
|
|
|
1
|
-
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
2
|
-
import { parseUrl } from 'query-string';
|
|
3
|
-
const urlHasField = (url, field) => {
|
|
4
|
-
const obj = parseUrl(url);
|
|
5
|
-
return !!obj?.query?.[field];
|
|
6
|
-
};
|
|
7
|
-
export class MonkeyEcxCommonsSelectors {
|
|
8
|
-
static getSelectors(reducer) {
|
|
9
|
-
const selectState = createFeatureSelector(reducer.featureKey);
|
|
10
|
-
const selectAll = createSelector(selectState, reducer.selectAll);
|
|
11
|
-
const selectByIdentifier = (props) => {
|
|
12
|
-
return createSelector(selectAll, (entities) => {
|
|
13
|
-
const result = entities.filter((_) => {
|
|
14
|
-
return _.identifier === props.identifier;
|
|
15
|
-
});
|
|
16
|
-
return result;
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
const
|
|
20
|
-
return createSelector(selectState, (state) => {
|
|
21
|
-
return state
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
const
|
|
25
|
-
return createSelector(selectState, (state) => {
|
|
26
|
-
return state.
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
const
|
|
30
|
-
return createSelector(selectState, (state) => {
|
|
31
|
-
return state.
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
const
|
|
35
|
-
return createSelector(selectState, (state) => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
selectPage,
|
|
70
|
-
linksHasDifference
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLnNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3N0b3JlL21vbmtleWVjeC1zdG9yZS5zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFXeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDakQsTUFBTSxHQUFHLEdBQVEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQWlCO1FBQ25DLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5RCxNQUFNLFNBQVMsR0FBUSxjQUFjLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RSxNQUFNLGtCQUFrQixHQUFHLENBQXlCLEtBRW5ELEVBQUUsRUFBRTtZQUNILE9BQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQWEsRUFBTyxFQUFFO2dCQUN0RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBSSxFQUFFLEVBQUU7b0JBQ3RDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQztnQkFFSCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUE2QixFQUFFLEVBQUU7WUFDekQsT0FBTyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUFPLEVBQUU7Z0JBQ3JELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtZQUN6QixPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFVLEVBQU8sRUFBRTtnQkFDckQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUE2QixFQUFFLEVBQUU7WUFDcEQsT0FBTyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUFPLEVBQUU7Z0JBQ3JELE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBNkIsRUFBRSxFQUFFO1lBQ25ELE9BQU8sY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQVUsRUFBTyxFQUFFO2dCQUNyRCxPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FHM0IsRUFBRSxFQUFFO1lBQ0gsT0FBTyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUFPLEVBQUU7Z0JBQ3JELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQzdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzFCLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFFckIsSUFBSTtvQkFDRixNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FDbEMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FDbkMsQ0FBQztvQkFDRixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO29CQUNyQyxhQUFhO3dCQUNYLG1CQUFtQixFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNOzRCQUMvRCxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO29CQUM5RCxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2lCQUNuRTtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixZQUFZO2lCQUNiO2dCQUVELE9BQU87b0JBQ0wsYUFBYTtvQkFDYixRQUFRO2lCQUNULENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE9BQU87WUFDTCxXQUFXO1lBQ1gsU0FBUztZQUNULGFBQWE7WUFDYixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixVQUFVO1lBQ1Ysa0JBQWtCO1NBQ25CLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tICdxdWVyeS1zdHJpbmcnO1xuXG5pbnRlcmZhY2UgSWRlbnRpZmlhYmxlIHtcbiAgaWRlbnRpZmllcj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIElSZWR1Y2VyIHtcbiAgZmVhdHVyZUtleTogc3RyaW5nO1xuICBzZWxlY3RBbGw6IGFueTtcbn1cblxuY29uc3QgdXJsSGFzRmllbGQgPSAodXJsOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb2JqOiBhbnkgPSBwYXJzZVVybCh1cmwpO1xuICByZXR1cm4gISFvYmo/LnF1ZXJ5Py5bZmllbGRdO1xufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1vbmtleUVjeENvbW1vbnNTZWxlY3RvcnMge1xuICBzdGF0aWMgZ2V0U2VsZWN0b3JzKHJlZHVjZXI6IElSZWR1Y2VyKSB7XG4gICAgY29uc3Qgc2VsZWN0U3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3IocmVkdWNlci5mZWF0dXJlS2V5KTtcblxuICAgIGNvbnN0IHNlbGVjdEFsbDogYW55ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIHJlZHVjZXIuc2VsZWN0QWxsKTtcblxuICAgIGNvbnN0IHNlbGVjdEJ5SWRlbnRpZmllciA9IDxUIGV4dGVuZHMgSWRlbnRpZmlhYmxlPihwcm9wczoge1xuICAgICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIH0pID0+IHtcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RBbGwsIChlbnRpdGllczogVFtdKTogVFtdID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZW50aXRpZXMuZmlsdGVyKChfOiBUKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIF8uaWRlbnRpZmllciA9PT0gcHJvcHMuaWRlbnRpZmllcjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RQYWdpbmF0aW9uID0gKHByb3BzOiB7IGlkZW50aWZpZXI6IHN0cmluZyB9KSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIChzdGF0ZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgcmV0dXJuIHN0YXRlPy5wYWdpbmF0aW9uPy5bcHJvcHMuaWRlbnRpZmllcl07XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0Q29udHJvbCA9ICgpID0+IHtcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgKHN0YXRlOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICByZXR1cm4gc3RhdGUuY29udHJvbDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RMaW5rcyA9IChwcm9wczogeyBpZGVudGlmaWVyOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCAoc3RhdGU6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5saW5rcz8uW3Byb3BzLmlkZW50aWZpZXJdO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdFBhZ2UgPSAocHJvcHM6IHsgaWRlbnRpZmllcjogc3RyaW5nIH0pID0+IHtcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgKHN0YXRlOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICByZXR1cm4gc3RhdGUucGFnZT8uW3Byb3BzLmlkZW50aWZpZXJdO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGxpbmtzSGFzRGlmZmVyZW5jZSA9IChwcm9wczoge1xuICAgICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgICAgdXJsOiBzdHJpbmc7XG4gICAgfSkgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCAoc3RhdGU6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcGFnaW5hdGlvbiB9ID0gc3RhdGU7XG4gICAgICAgIGNvbnN0IHsgaWRlbnRpZmllciwgdXJsIH0gPSBwcm9wcztcbiAgICAgICAgbGV0IGhhc0RpZmZlcmVuY2UgPSBmYWxzZTtcbiAgICAgICAgbGV0IGhhc0ZpZWxkID0gZmFsc2U7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBoYW5kbGVQYWdpbmF0aW9uVXJsID0gcGFyc2VVcmwoXG4gICAgICAgICAgICBgJHtwYWdpbmF0aW9uPy5baWRlbnRpZmllcl0/LnVybH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBoYW5kbGVVcmwgPSBwYXJzZVVybChgJHt1cmx9YCk7XG4gICAgICAgICAgaGFzRGlmZmVyZW5jZSA9XG4gICAgICAgICAgICBoYW5kbGVQYWdpbmF0aW9uVXJsPy5xdWVyeT8uc2VhcmNoICE9PSBoYW5kbGVVcmw/LnF1ZXJ5Py5zZWFyY2ggfHxcbiAgICAgICAgICAgIGhhbmRsZVBhZ2luYXRpb25Vcmw/LnF1ZXJ5Py5zb3J0ICE9PSBoYW5kbGVVcmw/LnF1ZXJ5Py5zb3J0O1xuICAgICAgICAgIGhhc0ZpZWxkID0gdXJsSGFzRmllbGQodXJsLCAnc2VhcmNoJykgfHwgdXJsSGFzRmllbGQodXJsLCAnc29ydCcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gbm90IHRvIGRvXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhhc0RpZmZlcmVuY2UsXG4gICAgICAgICAgaGFzRmllbGRcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0U3RhdGUsXG4gICAgICBzZWxlY3RBbGwsXG4gICAgICBzZWxlY3RDb250cm9sLFxuICAgICAgc2VsZWN0TGlua3MsXG4gICAgICBzZWxlY3RCeUlkZW50aWZpZXIsXG4gICAgICBzZWxlY3RQYWdpbmF0aW9uLFxuICAgICAgc2VsZWN0UGFnZSxcbiAgICAgIGxpbmtzSGFzRGlmZmVyZW5jZVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
1
|
+
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
2
|
+
import { parseUrl } from 'query-string';
|
|
3
|
+
const urlHasField = (url, field) => {
|
|
4
|
+
const obj = parseUrl(url);
|
|
5
|
+
return !!obj?.query?.[field];
|
|
6
|
+
};
|
|
7
|
+
export class MonkeyEcxCommonsSelectors {
|
|
8
|
+
static getSelectors(reducer) {
|
|
9
|
+
const selectState = createFeatureSelector(reducer.featureKey);
|
|
10
|
+
const selectAll = createSelector(selectState, reducer.selectAll);
|
|
11
|
+
const selectByIdentifier = (props) => {
|
|
12
|
+
return createSelector(selectAll, (entities) => {
|
|
13
|
+
const result = entities.filter((_) => {
|
|
14
|
+
return _.identifier === props.identifier;
|
|
15
|
+
});
|
|
16
|
+
return result;
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
const selectControl = () => {
|
|
20
|
+
return createSelector(selectState, (state) => {
|
|
21
|
+
return state.control;
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const selectLinks = (props) => {
|
|
25
|
+
return createSelector(selectState, (state) => {
|
|
26
|
+
return state.links?.[props.identifier];
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
const selectPage = (props) => {
|
|
30
|
+
return createSelector(selectState, (state) => {
|
|
31
|
+
return state.page?.[props.identifier];
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const linksHasDifference = (props) => {
|
|
35
|
+
return createSelector(selectState, (state) => {
|
|
36
|
+
const { pagination } = state;
|
|
37
|
+
const { identifier, url } = props;
|
|
38
|
+
let hasDifference = false;
|
|
39
|
+
let hasField = false;
|
|
40
|
+
try {
|
|
41
|
+
const handlePaginationUrl = parseUrl(`${pagination?.[identifier]?.url}`);
|
|
42
|
+
const handleUrl = parseUrl(`${url}`);
|
|
43
|
+
hasDifference =
|
|
44
|
+
handlePaginationUrl?.query?.search !== handleUrl?.query?.search ||
|
|
45
|
+
handlePaginationUrl?.query?.sort !== handleUrl?.query?.sort;
|
|
46
|
+
hasField = urlHasField(url, 'search') || urlHasField(url, 'sort');
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
// not to do
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
hasDifference,
|
|
53
|
+
hasField
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
selectState,
|
|
59
|
+
selectAll,
|
|
60
|
+
selectControl,
|
|
61
|
+
selectLinks,
|
|
62
|
+
selectByIdentifier,
|
|
63
|
+
selectPage,
|
|
64
|
+
linksHasDifference
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLnNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3N0b3JlL21vbmtleWVjeC1zdG9yZS5zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFXeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDakQsTUFBTSxHQUFHLEdBQVEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQWlCO1FBQ25DLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5RCxNQUFNLFNBQVMsR0FBUSxjQUFjLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RSxNQUFNLGtCQUFrQixHQUFHLENBQXlCLEtBQTZCLEVBQUUsRUFBRTtZQUNuRixPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFhLEVBQU8sRUFBRTtnQkFDdEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUksRUFBRSxFQUFFO29CQUN0QyxPQUFPLENBQUMsQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7WUFDekIsT0FBTyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUFPLEVBQUU7Z0JBQ3JELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBNkIsRUFBRSxFQUFFO1lBQ3BELE9BQU8sY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQVUsRUFBTyxFQUFFO2dCQUNyRCxPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQTZCLEVBQUUsRUFBRTtZQUNuRCxPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFVLEVBQU8sRUFBRTtnQkFDckQsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQTBDLEVBQUUsRUFBRTtZQUN4RSxPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFVLEVBQU8sRUFBRTtnQkFDckQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDN0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ2xDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUVyQixJQUFJO29CQUNGLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDekUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDckMsYUFBYTt3QkFDWCxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTTs0QkFDL0QsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztvQkFDOUQsUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDbkU7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsWUFBWTtpQkFDYjtnQkFFRCxPQUFPO29CQUNMLGFBQWE7b0JBQ2IsUUFBUTtpQkFDVCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixPQUFPO1lBQ0wsV0FBVztZQUNYLFNBQVM7WUFDVCxhQUFhO1lBQ2IsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1Ysa0JBQWtCO1NBQ25CLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgcGFyc2VVcmwgfSBmcm9tICdxdWVyeS1zdHJpbmcnO1xuXG5pbnRlcmZhY2UgSWRlbnRpZmlhYmxlIHtcbiAgaWRlbnRpZmllcj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIElSZWR1Y2VyIHtcbiAgZmVhdHVyZUtleTogc3RyaW5nO1xuICBzZWxlY3RBbGw6IGFueTtcbn1cblxuY29uc3QgdXJsSGFzRmllbGQgPSAodXJsOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb2JqOiBhbnkgPSBwYXJzZVVybCh1cmwpO1xuICByZXR1cm4gISFvYmo/LnF1ZXJ5Py5bZmllbGRdO1xufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1vbmtleUVjeENvbW1vbnNTZWxlY3RvcnMge1xuICBzdGF0aWMgZ2V0U2VsZWN0b3JzKHJlZHVjZXI6IElSZWR1Y2VyKSB7XG4gICAgY29uc3Qgc2VsZWN0U3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3IocmVkdWNlci5mZWF0dXJlS2V5KTtcblxuICAgIGNvbnN0IHNlbGVjdEFsbDogYW55ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIHJlZHVjZXIuc2VsZWN0QWxsKTtcblxuICAgIGNvbnN0IHNlbGVjdEJ5SWRlbnRpZmllciA9IDxUIGV4dGVuZHMgSWRlbnRpZmlhYmxlPihwcm9wczogeyBpZGVudGlmaWVyOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdEFsbCwgKGVudGl0aWVzOiBUW10pOiBUW10gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBlbnRpdGllcy5maWx0ZXIoKF86IFQpID0+IHtcbiAgICAgICAgICByZXR1cm4gXy5pZGVudGlmaWVyID09PSBwcm9wcy5pZGVudGlmaWVyO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdENvbnRyb2wgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIChzdGF0ZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgcmV0dXJuIHN0YXRlLmNvbnRyb2w7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0TGlua3MgPSAocHJvcHM6IHsgaWRlbnRpZmllcjogc3RyaW5nIH0pID0+IHtcbiAgICAgIHJldHVybiBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgKHN0YXRlOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICByZXR1cm4gc3RhdGUubGlua3M/Lltwcm9wcy5pZGVudGlmaWVyXTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RQYWdlID0gKHByb3BzOiB7IGlkZW50aWZpZXI6IHN0cmluZyB9KSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIChzdGF0ZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgcmV0dXJuIHN0YXRlLnBhZ2U/Lltwcm9wcy5pZGVudGlmaWVyXTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBsaW5rc0hhc0RpZmZlcmVuY2UgPSAocHJvcHM6IHsgaWRlbnRpZmllcjogc3RyaW5nOyB1cmw6IHN0cmluZyB9KSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIChzdGF0ZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgY29uc3QgeyBwYWdpbmF0aW9uIH0gPSBzdGF0ZTtcbiAgICAgICAgY29uc3QgeyBpZGVudGlmaWVyLCB1cmwgfSA9IHByb3BzO1xuICAgICAgICBsZXQgaGFzRGlmZmVyZW5jZSA9IGZhbHNlO1xuICAgICAgICBsZXQgaGFzRmllbGQgPSBmYWxzZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGhhbmRsZVBhZ2luYXRpb25VcmwgPSBwYXJzZVVybChgJHtwYWdpbmF0aW9uPy5baWRlbnRpZmllcl0/LnVybH1gKTtcbiAgICAgICAgICBjb25zdCBoYW5kbGVVcmwgPSBwYXJzZVVybChgJHt1cmx9YCk7XG4gICAgICAgICAgaGFzRGlmZmVyZW5jZSA9XG4gICAgICAgICAgICBoYW5kbGVQYWdpbmF0aW9uVXJsPy5xdWVyeT8uc2VhcmNoICE9PSBoYW5kbGVVcmw/LnF1ZXJ5Py5zZWFyY2ggfHxcbiAgICAgICAgICAgIGhhbmRsZVBhZ2luYXRpb25Vcmw/LnF1ZXJ5Py5zb3J0ICE9PSBoYW5kbGVVcmw/LnF1ZXJ5Py5zb3J0O1xuICAgICAgICAgIGhhc0ZpZWxkID0gdXJsSGFzRmllbGQodXJsLCAnc2VhcmNoJykgfHwgdXJsSGFzRmllbGQodXJsLCAnc29ydCcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gbm90IHRvIGRvXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhhc0RpZmZlcmVuY2UsXG4gICAgICAgICAgaGFzRmllbGRcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0U3RhdGUsXG4gICAgICBzZWxlY3RBbGwsXG4gICAgICBzZWxlY3RDb250cm9sLFxuICAgICAgc2VsZWN0TGlua3MsXG4gICAgICBzZWxlY3RCeUlkZW50aWZpZXIsXG4gICAgICBzZWxlY3RQYWdlLFxuICAgICAgbGlua3NIYXNEaWZmZXJlbmNlXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,190 +1,190 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { take } from 'rxjs/operators';
|
|
3
|
-
import { MonkeyEcxCoreService } from '../../decorators';
|
|
4
|
-
import { MonkeyEcxLinksModel } from '../../model';
|
|
5
|
-
import { MonkeyEcxCommonsService } from '../commons';
|
|
6
|
-
/**
|
|
7
|
-
* Classe genérica que recebe duas interfaces como tipos genéricos.
|
|
8
|
-
*
|
|
9
|
-
* @typeparam T deve ser a mesma interface utilizada na Entity da Store
|
|
10
|
-
* @typeparam K faz referência ao tipo de configuração.
|
|
11
|
-
*
|
|
12
|
-
* @description interfaces de configuração:
|
|
13
|
-
* ```
|
|
14
|
-
* MonkeyEcxCollectionStore e MonkeyEcxEntityStore
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export class MonkeyEcxCommonsStoreService extends MonkeyEcxCommonsService {
|
|
18
|
-
constructor(monkeyecxService, tokenStorage, store, config) {
|
|
19
|
-
super(monkeyecxService, tokenStorage);
|
|
20
|
-
this.store = store;
|
|
21
|
-
const { actions, selectors } = config;
|
|
22
|
-
this.action = actions;
|
|
23
|
-
this.selector = selectors;
|
|
24
|
-
}
|
|
25
|
-
handleResponseData(resp, identifier, updateLinks = true) {
|
|
26
|
-
try {
|
|
27
|
-
let data;
|
|
28
|
-
if (resp?._embedded) {
|
|
29
|
-
const { _embedded, _links, page } = resp;
|
|
30
|
-
const key = Object.keys(_embedded)[0];
|
|
31
|
-
data = _embedded[key];
|
|
32
|
-
if (updateLinks) {
|
|
33
|
-
this.updateLinks?.(_links, identifier);
|
|
34
|
-
}
|
|
35
|
-
this.updatePage?.(page, identifier);
|
|
36
|
-
}
|
|
37
|
-
else
|
|
38
|
-
data = resp;
|
|
39
|
-
this.update?.(data, identifier);
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
throw new Error(`MECX Core - Method handleResponseData -> ${e}`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
async linksHasDifference(url, identifier) {
|
|
46
|
-
try {
|
|
47
|
-
const { action, store, selector } = this;
|
|
48
|
-
const { hasDifference, hasField } = (await store
|
|
49
|
-
.select(selector.linksHasDifference({ identifier, url }))
|
|
50
|
-
.pipe(take(1))
|
|
51
|
-
.toPromise());
|
|
52
|
-
if (hasDifference && hasField) {
|
|
53
|
-
store.dispatch(action.clear({ identifier }));
|
|
54
|
-
}
|
|
55
|
-
return { hasDifference };
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
throw new Error(`MECX Core - Method linksHasDifference -> ${e}`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
updateControl(data) {
|
|
62
|
-
try {
|
|
63
|
-
this.store.dispatch(this.action.updateControl({
|
|
64
|
-
data
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
catch (e) {
|
|
68
|
-
throw new Error(`MECX Core - Method updateControl -> ${e}`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
mappingData(args, identifier) {
|
|
72
|
-
try {
|
|
73
|
-
const handle = (item) => {
|
|
74
|
-
let id = '';
|
|
75
|
-
const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {
|
|
76
|
-
href: ''
|
|
77
|
-
};
|
|
78
|
-
if (href) {
|
|
79
|
-
id = href.split('/').pop() || '';
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
...item,
|
|
83
|
-
identifier,
|
|
84
|
-
id
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
if (args instanceof Array) {
|
|
88
|
-
return args.map((item) => {
|
|
89
|
-
return handle(item);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
return handle(args);
|
|
93
|
-
}
|
|
94
|
-
catch (e) {
|
|
95
|
-
throw new Error(`MECX Core - Method mappingData -> ${e}`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
update(args, identifier) {
|
|
99
|
-
try {
|
|
100
|
-
let typeAction = 'updateOne';
|
|
101
|
-
if (args instanceof Array) {
|
|
102
|
-
typeAction = 'updateAll';
|
|
103
|
-
}
|
|
104
|
-
this.store.dispatch(this.action[typeAction]({
|
|
105
|
-
data: this.mappingData(args, identifier)
|
|
106
|
-
}));
|
|
107
|
-
}
|
|
108
|
-
catch (e) {
|
|
109
|
-
throw new Error(`MECX Core - Method update -> ${e}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
updatePage(args, identifier) {
|
|
113
|
-
try {
|
|
114
|
-
this.store.dispatch(this.action.updatePage({
|
|
115
|
-
data: {
|
|
116
|
-
[identifier]: args
|
|
117
|
-
}
|
|
118
|
-
}));
|
|
119
|
-
}
|
|
120
|
-
catch (e) {
|
|
121
|
-
throw new Error(`MECX Core - Method updatePage -> ${e}`);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
updateLinks(args, identifier) {
|
|
125
|
-
try {
|
|
126
|
-
this.store.dispatch(this.action.updateLinks({
|
|
127
|
-
data: {
|
|
128
|
-
[identifier]: args
|
|
129
|
-
}
|
|
130
|
-
}));
|
|
131
|
-
}
|
|
132
|
-
catch (e) {
|
|
133
|
-
throw new Error(`MECX Core - Method updateLinks -> ${e}`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async loadData(url, identifier, updateLinks = true) {
|
|
137
|
-
this.updateControl({ isLoading: true });
|
|
138
|
-
try {
|
|
139
|
-
const data = await this.monkeyecxService?.get(url).toPromise();
|
|
140
|
-
this.handleResponseData(data, identifier, updateLinks);
|
|
141
|
-
}
|
|
142
|
-
catch (e) {
|
|
143
|
-
throw new Error(`${e?.message}`);
|
|
144
|
-
}
|
|
145
|
-
this.updateControl({ isLoading: false });
|
|
146
|
-
}
|
|
147
|
-
async loadPageData(pagination, identifier) {
|
|
148
|
-
const { store, selector } = this;
|
|
149
|
-
const data = await store
|
|
150
|
-
.select(selector.selectLinks({ identifier }))
|
|
151
|
-
.pipe(take(1))
|
|
152
|
-
.toPromise();
|
|
153
|
-
const { action } = pagination;
|
|
154
|
-
const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {
|
|
155
|
-
href: ''
|
|
156
|
-
};
|
|
157
|
-
if (href) {
|
|
158
|
-
this.loadData(href, identifier);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* @description Neste método precisamos incluir a lógica para conferir se precisa limpar a
|
|
163
|
-
* entidade ou não
|
|
164
|
-
* E depois precisa invocar o método loadData
|
|
165
|
-
* @param (url, identifier) ou de acordo com a action criada
|
|
166
|
-
* @example
|
|
167
|
-
* ```
|
|
168
|
-
* const hasDifference = .....
|
|
169
|
-
* if(hasDifference) {
|
|
170
|
-
* store.dispatch(clear)
|
|
171
|
-
* }
|
|
172
|
-
*
|
|
173
|
-
* this.loadData(...)
|
|
174
|
-
* ```
|
|
175
|
-
*/
|
|
176
|
-
load(args) {
|
|
177
|
-
throw new Error('MECX Core - Method load not implemented.');
|
|
178
|
-
}
|
|
179
|
-
loadPage(args) {
|
|
180
|
-
throw new Error('MECX Core - Method loadPage not implemented.');
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
__decorate([
|
|
184
|
-
MonkeyEcxCoreService({
|
|
185
|
-
requestInProgress: {
|
|
186
|
-
showProgress: true
|
|
187
|
-
}
|
|
188
|
-
})
|
|
189
|
-
], MonkeyEcxCommonsStoreService.prototype, "loadData", null);
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { take } from 'rxjs/operators';
|
|
3
|
+
import { MonkeyEcxCoreService } from '../../decorators';
|
|
4
|
+
import { MonkeyEcxLinksModel } from '../../model';
|
|
5
|
+
import { MonkeyEcxCommonsService } from '../commons';
|
|
6
|
+
/**
|
|
7
|
+
* Classe genérica que recebe duas interfaces como tipos genéricos.
|
|
8
|
+
*
|
|
9
|
+
* @typeparam T deve ser a mesma interface utilizada na Entity da Store
|
|
10
|
+
* @typeparam K faz referência ao tipo de configuração.
|
|
11
|
+
*
|
|
12
|
+
* @description interfaces de configuração:
|
|
13
|
+
* ```
|
|
14
|
+
* MonkeyEcxCollectionStore e MonkeyEcxEntityStore
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export class MonkeyEcxCommonsStoreService extends MonkeyEcxCommonsService {
|
|
18
|
+
constructor(monkeyecxService, tokenStorage, store, config) {
|
|
19
|
+
super(monkeyecxService, tokenStorage);
|
|
20
|
+
this.store = store;
|
|
21
|
+
const { actions, selectors } = config;
|
|
22
|
+
this.action = actions;
|
|
23
|
+
this.selector = selectors;
|
|
24
|
+
}
|
|
25
|
+
handleResponseData(resp, identifier, updateLinks = true) {
|
|
26
|
+
try {
|
|
27
|
+
let data;
|
|
28
|
+
if (resp?._embedded) {
|
|
29
|
+
const { _embedded, _links, page } = resp;
|
|
30
|
+
const key = Object.keys(_embedded)[0];
|
|
31
|
+
data = _embedded[key];
|
|
32
|
+
if (updateLinks) {
|
|
33
|
+
this.updateLinks?.(_links, identifier);
|
|
34
|
+
}
|
|
35
|
+
this.updatePage?.(page, identifier);
|
|
36
|
+
}
|
|
37
|
+
else
|
|
38
|
+
data = resp;
|
|
39
|
+
this.update?.(data, identifier);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
throw new Error(`MECX Core - Method handleResponseData -> ${e}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async linksHasDifference(url, identifier) {
|
|
46
|
+
try {
|
|
47
|
+
const { action, store, selector } = this;
|
|
48
|
+
const { hasDifference, hasField } = (await store
|
|
49
|
+
.select(selector.linksHasDifference({ identifier, url }))
|
|
50
|
+
.pipe(take(1))
|
|
51
|
+
.toPromise());
|
|
52
|
+
if (hasDifference && hasField) {
|
|
53
|
+
store.dispatch(action.clear({ identifier }));
|
|
54
|
+
}
|
|
55
|
+
return { hasDifference };
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
throw new Error(`MECX Core - Method linksHasDifference -> ${e}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
updateControl(data) {
|
|
62
|
+
try {
|
|
63
|
+
this.store.dispatch(this.action.updateControl({
|
|
64
|
+
data
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
throw new Error(`MECX Core - Method updateControl -> ${e}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
mappingData(args, identifier) {
|
|
72
|
+
try {
|
|
73
|
+
const handle = (item) => {
|
|
74
|
+
let id = '';
|
|
75
|
+
const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {
|
|
76
|
+
href: ''
|
|
77
|
+
};
|
|
78
|
+
if (href) {
|
|
79
|
+
id = href.split('/').pop() || '';
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
...item,
|
|
83
|
+
identifier,
|
|
84
|
+
id
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
if (args instanceof Array) {
|
|
88
|
+
return args.map((item) => {
|
|
89
|
+
return handle(item);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return handle(args);
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
throw new Error(`MECX Core - Method mappingData -> ${e}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
update(args, identifier) {
|
|
99
|
+
try {
|
|
100
|
+
let typeAction = 'updateOne';
|
|
101
|
+
if (args instanceof Array) {
|
|
102
|
+
typeAction = 'updateAll';
|
|
103
|
+
}
|
|
104
|
+
this.store.dispatch(this.action[typeAction]({
|
|
105
|
+
data: this.mappingData(args, identifier)
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
throw new Error(`MECX Core - Method update -> ${e}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
updatePage(args, identifier) {
|
|
113
|
+
try {
|
|
114
|
+
this.store.dispatch(this.action.updatePage({
|
|
115
|
+
data: {
|
|
116
|
+
[identifier]: args
|
|
117
|
+
}
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
throw new Error(`MECX Core - Method updatePage -> ${e}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
updateLinks(args, identifier) {
|
|
125
|
+
try {
|
|
126
|
+
this.store.dispatch(this.action.updateLinks({
|
|
127
|
+
data: {
|
|
128
|
+
[identifier]: args
|
|
129
|
+
}
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
throw new Error(`MECX Core - Method updateLinks -> ${e}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async loadData(url, identifier, updateLinks = true) {
|
|
137
|
+
this.updateControl({ isLoading: true });
|
|
138
|
+
try {
|
|
139
|
+
const data = await this.monkeyecxService?.get(url).toPromise();
|
|
140
|
+
this.handleResponseData(data, identifier, updateLinks);
|
|
141
|
+
}
|
|
142
|
+
catch (e) {
|
|
143
|
+
throw new Error(`${e?.message}`);
|
|
144
|
+
}
|
|
145
|
+
this.updateControl({ isLoading: false });
|
|
146
|
+
}
|
|
147
|
+
async loadPageData(pagination, identifier) {
|
|
148
|
+
const { store, selector } = this;
|
|
149
|
+
const data = await store
|
|
150
|
+
.select(selector.selectLinks({ identifier }))
|
|
151
|
+
.pipe(take(1))
|
|
152
|
+
.toPromise();
|
|
153
|
+
const { action } = pagination;
|
|
154
|
+
const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {
|
|
155
|
+
href: ''
|
|
156
|
+
};
|
|
157
|
+
if (href) {
|
|
158
|
+
this.loadData(href, identifier);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* @description Neste método precisamos incluir a lógica para conferir se precisa limpar a
|
|
163
|
+
* entidade ou não
|
|
164
|
+
* E depois precisa invocar o método loadData
|
|
165
|
+
* @param (url, identifier) ou de acordo com a action criada
|
|
166
|
+
* @example
|
|
167
|
+
* ```
|
|
168
|
+
* const hasDifference = .....
|
|
169
|
+
* if(hasDifference) {
|
|
170
|
+
* store.dispatch(clear)
|
|
171
|
+
* }
|
|
172
|
+
*
|
|
173
|
+
* this.loadData(...)
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
load(args) {
|
|
177
|
+
throw new Error('MECX Core - Method load not implemented.');
|
|
178
|
+
}
|
|
179
|
+
loadPage(args) {
|
|
180
|
+
throw new Error('MECX Core - Method loadPage not implemented.');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
__decorate([
|
|
184
|
+
MonkeyEcxCoreService({
|
|
185
|
+
requestInProgress: {
|
|
186
|
+
showProgress: true
|
|
187
|
+
}
|
|
188
|
+
})
|
|
189
|
+
], MonkeyEcxCommonsStoreService.prototype, "loadData", null);
|
|
190
190
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RvcmUvbW9ua2V5ZWN4LXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVF4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSXJEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQWdCLDRCQUdwQixTQUFRLHVCQUF1QjtJQUsvQixZQUNFLGdCQUFrQyxFQUNsQyxZQUEwQyxFQUNoQyxLQUFZLEVBQ3RCLE1BQVM7UUFFVCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFINUIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUl0QixNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUV0QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBUyxFQUFFLFVBQWtCLEVBQUUsV0FBVyxHQUFHLElBQUk7UUFDMUUsSUFBSTtZQUNGLElBQUksSUFBTyxDQUFDO1lBRVosSUFBSSxJQUFJLEVBQUUsU0FBUyxFQUFFO2dCQUNuQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ3pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJ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Q0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUM5RSxJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7UUFFRixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksSUFBSSxDQUFFLElBQVM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxRQUFRLENBQUUsSUFBUztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBcERDO0lBTEMsb0JBQW9CLENBQUM7UUFDcEIsaUJBQWlCLEVBQUU7WUFDakIsWUFBWSxFQUFFLElBQUk7U0FDbkI7S0FDRixDQUFDOzREQVlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzJztcbmltcG9ydCB7XG4gIE1vbmtleUVjeENvbmZpZ1N0b3JlLFxuICBNb25rZXlFY3hDb250cm9sU3RvcmUsXG4gIE1vbmtleUVjeExpbmtzLFxuICBNb25rZXlFY3hQYWdlLFxuICBNb25rZXlFY3hQYWdpbmF0aW9uXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4TGlua3NNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9ucyc7XG5pbXBvcnQgeyBNb25rZXlFY3hTZXJ2aWNlIH0gZnJvbSAnLi4vbW9ua2V5ZWN4LXNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZSc7XG5cbi8qKlxuICogQ2xhc3NlIGdlbsOpcmljYSBxdWUgcmVjZWJlIGR1YXMgaW50ZXJmYWNlcyBjb21vIHRpcG9zIGdlbsOpcmljb3MuXG4gKlxuICogQHR5cGVwYXJhbSBUIGRldmUgc2VyIGEgbWVzbWEgaW50ZXJmYWNlIHV0aWxpemFkYSBuYSBFbnRpdHkgZGEgU3RvcmVcbiAqIEB0eXBlcGFyYW0gSyBmYXogcmVmZXLDqm5jaWEgYW8gdGlwbyBkZSBjb25maWd1cmHDp8Ojby5cbiAqXG4gKiBAZGVzY3JpcHRpb24gaW50ZXJmYWNlcyBkZSBjb25maWd1cmHDp8OjbzpcbiAqIGBgYFxuICogTW9ua2V5RWN4Q29sbGVjdGlvblN0b3JlIGUgTW9ua2V5RWN4RW50aXR5U3RvcmVcbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9ua2V5RWN4Q29tbW9uc1N0b3JlU2VydmljZTxcbiAgVCxcbiAgSyBleHRlbmRzIE1vbmtleUVjeENvbmZpZ1N0b3JlXG4+IGV4dGVuZHMgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIGFjdGlvbjogYW55O1xuXG4gIHByaXZhdGUgc2VsZWN0b3I6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBtb25rZXllY3hTZXJ2aWNlOiBNb25rZXlFY3hTZXJ2aWNlLFxuICAgIHRva2VuU3RvcmFnZTogTW9ua2V5RWN4VG9rZW5TdG9yYWdlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlLFxuICAgIGNvbmZpZzogS1xuICApIHtcbiAgICBzdXBlcihtb25rZXllY3hTZXJ2aWNlLCB0b2tlblN0b3JhZ2UpO1xuICAgIGNvbnN0IHsgYWN0aW9ucywgc2VsZWN0b3JzIH0gPSBjb25maWc7XG5cbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbnM7XG4gICAgdGhpcy5zZWxlY3RvciA9IHNlbGVjdG9ycztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmVzcG9uc2VEYXRhKHJlc3A6IGFueSwgaWRlbnRpZmllcjogc3RyaW5nLCB1cGRhdGVMaW5rcyA9IHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgbGV0IGRhdGE6IFQ7XG5cbiAgICAgIGlmIChyZXNwPy5fZW1iZWRkZWQpIHtcbiAgICAgICAgY29uc3QgeyBfZW1iZWRkZWQsIF9saW5rcywgcGFnZSB9ID0gcmVzcDtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoX2VtYmVkZGVkKVswXTtcblxuICAgICAgICBkYXRhID0gX2VtYmVkZGVkW2tleV07XG5cbiAgICAgICAgaWYgKHVwZGF0ZUxpbmtzKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVMaW5rcz8uKF9saW5rcywgaWRlbnRpZmllcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVBhZ2U/LihwYWdlLCBpZGVudGlmaWVyKTtcbiAgICAgIH0gZWxzZSBkYXRhID0gcmVzcDtcblxuICAgICAgdGhpcy51cGRhdGU/LihkYXRhLCBpZGVudGlmaWVyKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBoYW5kbGVSZXNwb25zZURhdGEgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBsaW5rc0hhc0RpZmZlcmVuY2UodXJsOiBzdHJpbmcsIGlkZW50aWZpZXI6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGFjdGlvbiwgc3RvcmUsIHNlbGVjdG9yIH0gPSB0aGlzO1xuXG4gICAgICBjb25zdCB7IGhhc0RpZmZlcmVuY2UsIGhhc0ZpZWxkIH0gPSA8YW55PihcbiAgICAgICAgYXdhaXQgc3RvcmVcbiAgICAgICAgICAuc2VsZWN0KHNlbGVjdG9yLmxpbmtzSGFzRGlmZmVyZW5jZSh7IGlkZW50aWZpZXIsIHVybCB9KSlcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgKTtcblxuICAgICAgaWYgKGhhc0RpZmZlcmVuY2UgJiYgaGFzRmllbGQpIHtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goYWN0aW9uLmNsZWFyKHsgaWRlbnRpZmllciB9KSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IGhhc0RpZmZlcmVuY2UgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBsaW5rc0hhc0RpZmZlcmVuY2UgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVDb250cm9sKGRhdGE6IE1vbmtleUVjeENvbnRyb2xTdG9yZSkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLmFjdGlvbi51cGRhdGVDb250cm9sKHtcbiAgICAgICAgICBkYXRhXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIHVwZGF0ZUNvbnRyb2wgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXBwaW5nRGF0YShhcmdzOiBUIHwgVFtdLCBpZGVudGlmaWVyOiBzdHJpbmcpOiBUIHwgVFtdIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaGFuZGxlID0gKGl0ZW06IFQpID0+IHtcbiAgICAgICAgbGV0IGlkID0gJyc7XG4gICAgICAgIGNvbnN0IHsgaHJlZiB9ID0gbmV3IE1vbmtleUVjeExpbmtzTW9kZWwoaXRlbSk/LmdldEFjdGlvbignc2VsZicpIHx8IHtcbiAgICAgICAgICBocmVmOiAnJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChocmVmKSB7XG4gICAgICAgICAgaWQgPSBocmVmLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgaWRlbnRpZmllcixcbiAgICAgICAgICBpZFxuICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgaWYgKGFyZ3MgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gYXJncy5tYXAoKGl0ZW06IFQpID0+IHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhhbmRsZShhcmdzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBtYXBwaW5nRGF0YSAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZT8oYXJnczogVCB8IFRbXSwgaWRlbnRpZmllcjogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB0eXBlQWN0aW9uID0gJ3VwZGF0ZU9uZSc7XG5cbiAgICAgIGlmIChhcmdzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgdHlwZUFjdGlvbiA9ICd1cGRhdGVBbGwnO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLmFjdGlvblt0eXBlQWN0aW9uXSh7XG4gICAgICAgICAgZGF0YTogdGhpcy5tYXBwaW5nRGF0YShhcmdzLCBpZGVudGlmaWVyKVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCB1cGRhdGUgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVQYWdlPyhhcmdzOiBNb25rZXlFY3hQYWdlLCBpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5hY3Rpb24udXBkYXRlUGFnZSh7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgW2lkZW50aWZpZXJdOiBhcmdzXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCB1cGRhdGVQYWdlIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlTGlua3M/KGFyZ3M6IE1vbmtleUVjeExpbmtzLCBpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5hY3Rpb24udXBkYXRlTGlua3Moe1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIFtpZGVudGlmaWVyXTogYXJnc1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgdXBkYXRlTGlua3MgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIEBNb25rZXlFY3hDb3JlU2VydmljZSh7XG4gICAgcmVxdWVzdEluUHJvZ3Jlc3M6IHtcbiAgICAgIHNob3dQcm9ncmVzczogdHJ1ZVxuICAgIH1cbiAgfSlcbiAgcHJvdGVjdGVkIGFzeW5jIGxvYWREYXRhKHVybDogc3RyaW5nLCBpZGVudGlmaWVyOiBzdHJpbmcsIHVwZGF0ZUxpbmtzID0gdHJ1ZSkge1xuICAgIHRoaXMudXBkYXRlQ29udHJvbCh7IGlzTG9hZGluZzogdHJ1ZSB9KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5tb25rZXllY3hTZXJ2aWNlPy5nZXQ8YW55Pih1cmwpLnRvUHJvbWlzZSgpO1xuICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZURhdGEoZGF0YSwgaWRlbnRpZmllciwgdXBkYXRlTGlua3MpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2U/Lm1lc3NhZ2V9YCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVDb250cm9sKHsgaXNMb2FkaW5nOiBmYWxzZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2FkUGFnZURhdGEocGFnaW5hdGlvbjogTW9ua2V5RWN4UGFnaW5hdGlvbiwgaWRlbnRpZmllcjogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBzdG9yZSwgc2VsZWN0b3IgfSA9IHRoaXM7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHN0b3JlXG4gICAgICAuc2VsZWN0KHNlbGVjdG9yLnNlbGVjdExpbmtzKHsgaWRlbnRpZmllciB9KSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICBjb25zdCB7IGFjdGlvbiB9ID0gcGFnaW5hdGlvbjtcbiAgICBjb25zdCB7IGhyZWYgfSA9IG5ldyBNb25rZXlFY3hMaW5rc01vZGVsKHsgX2xpbmtzOiBkYXRhIH0pLmdldEFjdGlvbihhY3Rpb24pIHx8IHtcbiAgICAgIGhyZWY6ICcnXG4gICAgfTtcblxuICAgIGlmIChocmVmKSB7XG4gICAgICB0aGlzLmxvYWREYXRhKGhyZWYsIGlkZW50aWZpZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmVzdGUgbcOpdG9kbyBwcmVjaXNhbW9zIGluY2x1aXIgYSBsw7NnaWNhIHBhcmEgY29uZmVyaXIgc2UgcHJlY2lzYSBsaW1wYXIgYVxuICAgKiBlbnRpZGFkZSBvdSBuw6NvXG4gICAqIEUgZGVwb2lzIHByZWNpc2EgaW52b2NhciBvIG3DqXRvZG8gbG9hZERhdGFcbiAgICogQHBhcmFtICh1cmwsIGlkZW50aWZpZXIpIG91IGRlIGFjb3JkbyBjb20gYSBhY3Rpb24gY3JpYWRhXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYFxuICAgKiBjb25zdCBoYXNEaWZmZXJlbmNlID0gLi4uLi5cbiAgICogaWYoaGFzRGlmZmVyZW5jZSkge1xuICAgKiAgICBzdG9yZS5kaXNwYXRjaChjbGVhcilcbiAgICogfVxuICAgKlxuICAgKiB0aGlzLmxvYWREYXRhKC4uLilcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgbG9hZD8oYXJnczogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNRUNYIENvcmUgLSBNZXRob2QgbG9hZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFBhZ2U/KGFyZ3M6IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTUVDWCBDb3JlIC0gTWV0aG9kIGxvYWRQYWdlIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
|