monkey-front-core 0.0.411 → 0.0.413
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 +34 -31
- 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 +2 -2
- 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 +2 -0
- 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 +2 -0
- 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-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 -0
- package/esm2020/lib/core/interfaces/monkeyecx-support-options.mjs +2 -2
- package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +2 -2
- 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 -2
- package/esm2020/lib/core/model/monkeyecx-links.model.mjs +8 -0
- 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 +79 -79
- package/esm2020/lib/core/services/commons/index.mjs +2 -2
- package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +361 -361
- 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 +110 -110
- 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 +51 -51
- package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +92 -92
- 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 +42 -42
- 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 -25
- 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 +2 -0
- package/esm2020/lib/core/services/store/monkeyecx-store.service.mjs +190 -0
- 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 +251 -251
- package/esm2020/lib/core/utils/validate-utils.mjs +205 -205
- package/esm2020/lib/core/utils/validators.mjs +226 -226
- 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 +5623 -5425
- package/fesm2015/monkey-front-core.mjs.map +1 -1
- package/fesm2020/monkey-front-core.mjs +5690 -5498
- 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 +33 -30
- 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 +9 -0
- 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 +25 -0
- 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-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 +31 -0
- package/lib/core/interfaces/monkeyecx-support-options.d.ts +4 -4
- package/lib/core/interfaces/monkeyecx-token-credentials.d.ts +20 -20
- 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 -1
- package/lib/core/model/monkeyecx-links.model.d.ts +4 -0
- 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 +34 -34
- package/lib/core/services/commons/index.d.ts +1 -1
- package/lib/core/services/commons/monkeyecx-commons.service.d.ts +119 -119
- 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 +9 -9
- package/lib/core/services/config/monkeyecx-i18n-config.service.d.ts +16 -16
- 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 +11 -11
- 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 -24
- 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 +1 -0
- package/lib/core/services/store/monkeyecx-store.service.d.ts +51 -0
- 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 +24 -24
- package/lib/core/utils/validate-utils.d.ts +66 -66
- package/lib/core/utils/validators.d.ts +32 -32
- 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.413.tgz +0 -0
- package/monkey-front-core.d.ts +5 -5
- package/package.json +3 -3
- package/public-api.d.ts +4 -4
- package/monkey-front-core-0.0.411.tgz +0 -0
|
@@ -0,0 +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, updatePagination = 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 (updatePagination) {
|
|
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 paginationHasDifference(url, identifier) {
|
|
46
|
+
try {
|
|
47
|
+
const { action, store, selector } = this;
|
|
48
|
+
const { hasDifference, hasField } = (await store
|
|
49
|
+
.select(selector.paginationHasDifference({ 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 paginationHasDifference -> ${e}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
updateControl(ctrl) {
|
|
62
|
+
try {
|
|
63
|
+
this.store.dispatch(this.action.updateControl({
|
|
64
|
+
ctrl
|
|
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, updatePagination = true) {
|
|
137
|
+
this.updateControl({ isLoading: true });
|
|
138
|
+
try {
|
|
139
|
+
const data = await this.monkeyecxService?.get(url).toPromise();
|
|
140
|
+
this.handleResponseData(data, identifier, updatePagination);
|
|
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.selectPagination({ 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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RvcmUvbW9ua2V5ZWN4LXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSXJEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQWdCLDRCQUdwQixTQUFRLHVCQUF1QjtJQUsvQixZQUNFLGdCQUFrQyxFQUNsQyxZQUEwQyxFQUNuQyxLQUFZLEVBQ25CLE1BQVM7UUFFVCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFIL0IsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUluQixNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUV0QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBUyxFQUFFLFVBQWtCLEVBQUUsZ0JBQWdCLEdBQUcsSUFBSTtRQUMvRSxJQUFJO1lBQ0YsSUFBSSxJQUFPLENBQUM7WUFFWixJQUFJLElBQUksRUFBRSxTQUFTLEVBQUU7Z0JBQ25CLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztnQkFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElB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LElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQzlFLElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FBQztRQUVGLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSxJQUFJLENBQUUsSUFBUztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLFFBQVEsQ0FBRSxJQUFTO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0Y7QUFwREM7SUFMQyxvQkFBb0IsQ0FBQztRQUNwQixpQkFBaUIsRUFBRTtZQUNqQixZQUFZLEVBQUUsSUFBSTtTQUNuQjtLQUNGLENBQUM7NERBWUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNb25rZXlFY3hDb25maWdTdG9yZSwgTW9ua2V5RWN4Q29udHJvbFN0b3JlLCBNb25rZXlFY3hMaW5rcyB9IGZyb20gJy4uLy4uJztcbmltcG9ydCB7IE1vbmtleUVjeENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBNb25rZXlFY3hQYWdlLCBNb25rZXlFY3hQYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlFY3hMaW5rc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwnO1xuaW1wb3J0IHsgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb25zJztcbmltcG9ydCB7IE1vbmtleUVjeFNlcnZpY2UgfSBmcm9tICcuLi9tb25rZXllY3gtc2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vbmtleUVjeFRva2VuU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9yYWdlJztcblxuLyoqXG4gKiBDbGFzc2UgZ2Vuw6lyaWNhIHF1ZSByZWNlYmUgZHVhcyBpbnRlcmZhY2VzIGNvbW8gdGlwb3MgZ2Vuw6lyaWNvcy5cbiAqXG4gKiBAdHlwZXBhcmFtIFQgZGV2ZSBzZXIgYSBtZXNtYSBpbnRlcmZhY2UgdXRpbGl6YWRhIG5hIEVudGl0eSBkYSBTdG9yZVxuICogQHR5cGVwYXJhbSBLIGZheiByZWZlcsOqbmNpYSBhbyB0aXBvIGRlIGNvbmZpZ3VyYcOnw6NvLlxuICpcbiAqIEBkZXNjcmlwdGlvbiBpbnRlcmZhY2VzIGRlIGNvbmZpZ3VyYcOnw6NvOlxuICogYGBgXG4gKiBNb25rZXlFY3hDb2xsZWN0aW9uU3RvcmUgZSBNb25rZXlFY3hFbnRpdHlTdG9yZVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNb25rZXlFY3hDb21tb25zU3RvcmVTZXJ2aWNlPFxuICBULFxuICBLIGV4dGVuZHMgTW9ua2V5RWN4Q29uZmlnU3RvcmVcbj4gZXh0ZW5kcyBNb25rZXlFY3hDb21tb25zU2VydmljZSB7XG4gIHByaXZhdGUgYWN0aW9uOiBhbnk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1vbmtleWVjeFNlcnZpY2U6IE1vbmtleUVjeFNlcnZpY2UsXG4gICAgdG9rZW5TdG9yYWdlOiBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBzdG9yZTogU3RvcmUsXG4gICAgY29uZmlnOiBLXG4gICkge1xuICAgIHN1cGVyKG1vbmtleWVjeFNlcnZpY2UsIHRva2VuU3RvcmFnZSk7XG4gICAgY29uc3QgeyBhY3Rpb25zLCBzZWxlY3RvcnMgfSA9IGNvbmZpZztcblxuICAgIHRoaXMuYWN0aW9uID0gYWN0aW9ucztcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3JzO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSZXNwb25zZURhdGEocmVzcDogYW55LCBpZGVudGlmaWVyOiBzdHJpbmcsIHVwZGF0ZVBhZ2luYXRpb24gPSB0cnVlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBkYXRhOiBUO1xuXG4gICAgICBpZiAocmVzcD8uX2VtYmVkZGVkKSB7XG4gICAgICAgIGNvbnN0IHsgX2VtYmVkZGVkLCBfbGlua3MsIHBhZ2UgfSA9IHJlc3A7XG4gICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKF9lbWJlZGRlZClbMF07XG5cbiAgICAgICAgZGF0YSA9IF9lbWJlZGRlZFtrZXldO1xuXG4gICAgICAgIGlmICh1cGRhdGVQYWdpbmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVMaW5rcz8uKF9saW5rcywgaWRlbnRpZmllcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVBhZ2U/LihwYWdlLCBpZGVudGlmaWVyKTtcbiAgICAgIH0gZWxzZSBkYXRhID0gcmVzcDtcblxuICAgICAgdGhpcy51cGRhdGU/LihkYXRhLCBpZGVudGlmaWVyKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBoYW5kbGVSZXNwb25zZURhdGEgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBwYWdpbmF0aW9uSGFzRGlmZmVyZW5jZSh1cmw6IHN0cmluZywgaWRlbnRpZmllcjogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgYWN0aW9uLCBzdG9yZSwgc2VsZWN0b3IgfSA9IHRoaXM7XG5cbiAgICAgIGNvbnN0IHsgaGFzRGlmZmVyZW5jZSwgaGFzRmllbGQgfSA9IDxhbnk+KFxuICAgICAgICBhd2FpdCBzdG9yZVxuICAgICAgICAgIC5zZWxlY3Qoc2VsZWN0b3IucGFnaW5hdGlvbkhhc0RpZmZlcmVuY2UoeyBpZGVudGlmaWVyLCB1cmwgfSkpXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICk7XG5cbiAgICAgIGlmIChoYXNEaWZmZXJlbmNlICYmIGhhc0ZpZWxkKSB7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKGFjdGlvbi5jbGVhcih7IGlkZW50aWZpZXIgfSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyBoYXNEaWZmZXJlbmNlIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgcGFnaW5hdGlvbkhhc0RpZmZlcmVuY2UgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVDb250cm9sKGN0cmw6IE1vbmtleUVjeENvbnRyb2xTdG9yZSkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLmFjdGlvbi51cGRhdGVDb250cm9sKHtcbiAgICAgICAgICBjdHJsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIHVwZGF0ZUNvbnRyb2wgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXBwaW5nRGF0YShhcmdzOiBUIHwgVFtdLCBpZGVudGlmaWVyOiBzdHJpbmcpOiBUIHwgVFtdIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaGFuZGxlID0gKGl0ZW06IFQpID0+IHtcbiAgICAgICAgbGV0IGlkID0gJyc7XG4gICAgICAgIGNvbnN0IHsgaHJlZiB9ID0gbmV3IE1vbmtleUVjeExpbmtzTW9kZWwoaXRlbSk/LmdldEFjdGlvbignc2VsZicpIHx8IHtcbiAgICAgICAgICBocmVmOiAnJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChocmVmKSB7XG4gICAgICAgICAgaWQgPSBocmVmLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgaWRlbnRpZmllcixcbiAgICAgICAgICBpZFxuICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgaWYgKGFyZ3MgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gYXJncy5tYXAoKGl0ZW06IFQpID0+IHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhhbmRsZShhcmdzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBtYXBwaW5nRGF0YSAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZT8oYXJnczogVCB8IFRbXSwgaWRlbnRpZmllcjogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB0eXBlQWN0aW9uID0gJ3VwZGF0ZU9uZSc7XG5cbiAgICAgIGlmIChhcmdzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgdHlwZUFjdGlvbiA9ICd1cGRhdGVBbGwnO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLmFjdGlvblt0eXBlQWN0aW9uXSh7XG4gICAgICAgICAgZGF0YTogdGhpcy5tYXBwaW5nRGF0YShhcmdzLCBpZGVudGlmaWVyKVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCB1cGRhdGUgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVQYWdlPyhhcmdzOiBNb25rZXlFY3hQYWdlLCBpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5hY3Rpb24udXBkYXRlUGFnZSh7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgW2lkZW50aWZpZXJdOiBhcmdzXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCB1cGRhdGVQYWdlIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlTGlua3M/KGFyZ3M6IE1vbmtleUVjeExpbmtzLCBpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5hY3Rpb24udXBkYXRlTGlua3Moe1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIFtpZGVudGlmaWVyXTogYXJnc1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgdXBkYXRlTGlua3MgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIEBNb25rZXlFY3hDb3JlU2VydmljZSh7XG4gICAgcmVxdWVzdEluUHJvZ3Jlc3M6IHtcbiAgICAgIHNob3dQcm9ncmVzczogdHJ1ZVxuICAgIH1cbiAgfSlcbiAgcHJvdGVjdGVkIGFzeW5jIGxvYWREYXRhKHVybDogc3RyaW5nLCBpZGVudGlmaWVyOiBzdHJpbmcsIHVwZGF0ZVBhZ2luYXRpb24gPSB0cnVlKSB7XG4gICAgdGhpcy51cGRhdGVDb250cm9sKHsgaXNMb2FkaW5nOiB0cnVlIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLm1vbmtleWVjeFNlcnZpY2U/LmdldDxhbnk+KHVybCkudG9Qcm9taXNlKCk7XG4gICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlRGF0YShkYXRhLCBpZGVudGlmaWVyLCB1cGRhdGVQYWdpbmF0aW9uKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlPy5tZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlQ29udHJvbCh7IGlzTG9hZGluZzogZmFsc2UgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZFBhZ2VEYXRhKHBhZ2luYXRpb246IE1vbmtleUVjeFBhZ2luYXRpb24sIGlkZW50aWZpZXI6IHN0cmluZykge1xuICAgIGNvbnN0IHsgc3RvcmUsIHNlbGVjdG9yIH0gPSB0aGlzO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBzdG9yZVxuICAgICAgLnNlbGVjdChzZWxlY3Rvci5zZWxlY3RQYWdpbmF0aW9uKHsgaWRlbnRpZmllciB9KSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICBjb25zdCB7IGFjdGlvbiB9ID0gcGFnaW5hdGlvbjtcbiAgICBjb25zdCB7IGhyZWYgfSA9IG5ldyBNb25rZXlFY3hMaW5rc01vZGVsKHsgX2xpbmtzOiBkYXRhIH0pLmdldEFjdGlvbihhY3Rpb24pIHx8IHtcbiAgICAgIGhyZWY6ICcnXG4gICAgfTtcblxuICAgIGlmIChocmVmKSB7XG4gICAgICB0aGlzLmxvYWREYXRhKGhyZWYsIGlkZW50aWZpZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmVzdGUgbcOpdG9kbyBwcmVjaXNhbW9zIGluY2x1aXIgYSBsw7NnaWNhIHBhcmEgY29uZmVyaXIgc2UgcHJlY2lzYSBsaW1wYXIgYVxuICAgKiBlbnRpZGFkZSBvdSBuw6NvXG4gICAqIEUgZGVwb2lzIHByZWNpc2EgaW52b2NhciBvIG3DqXRvZG8gbG9hZERhdGFcbiAgICogQHBhcmFtICh1cmwsIGlkZW50aWZpZXIpIG91IGRlIGFjb3JkbyBjb20gYSBhY3Rpb24gY3JpYWRhXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYFxuICAgKiBjb25zdCBoYXNEaWZmZXJlbmNlID0gLi4uLi5cbiAgICogaWYoaGFzRGlmZmVyZW5jZSkge1xuICAgKiAgICBzdG9yZS5kaXNwYXRjaChjbGVhcilcbiAgICogfVxuICAgKlxuICAgKiB0aGlzLmxvYWREYXRhKC4uLilcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgbG9hZD8oYXJnczogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNRUNYIENvcmUgLSBNZXRob2QgbG9hZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFBhZ2U/KGFyZ3M6IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTUVDWCBDb3JlIC0gTWV0aG9kIGxvYWRQYWdlIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './monkeyecx-specification-search';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './monkeyecx-specification-search';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvc3BlY2lmaWNhdGlvbi1zZWFyY2gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9ua2V5ZWN4LXNwZWNpZmljYXRpb24tc2VhcmNoJztcclxuIl19
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
/* eslint-disable no-unused-vars */
|
|
2
|
-
import { MonkeyEcxUtils } from '../utils/utils';
|
|
3
|
-
export var OpSearch;
|
|
4
|
-
(function (OpSearch) {
|
|
5
|
-
OpSearch["LIKE"] = ":'*:value*'";
|
|
6
|
-
OpSearch["BETWEEN"] = ":first AND :last";
|
|
7
|
-
OpSearch["OR"] = "OR";
|
|
8
|
-
OpSearch["AND"] = "AND";
|
|
9
|
-
OpSearch["GT"] = ">:value";
|
|
10
|
-
OpSearch["LT"] = "<:value";
|
|
11
|
-
OpSearch["EQUAL"] = "::value";
|
|
12
|
-
OpSearch["IN"] = " IN :value";
|
|
13
|
-
OpSearch["NOT"] = " !:value";
|
|
14
|
-
})(OpSearch || (OpSearch = {}));
|
|
15
|
-
export class MonkeyEcxSpecificationSearch {
|
|
16
|
-
constructor() {
|
|
17
|
-
// not to do
|
|
18
|
-
}
|
|
19
|
-
handleValue(value) {
|
|
20
|
-
return Object.entries(value).map(([key, value1]) => {
|
|
21
|
-
if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
if (Array.isArray(value1)) {
|
|
25
|
-
if (key === OpSearch.BETWEEN) {
|
|
26
|
-
return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return `${key}`.replace(':value', `${value1}`);
|
|
30
|
-
})[0];
|
|
31
|
-
}
|
|
32
|
-
queryVisitor(value) {
|
|
33
|
-
const okay = Object.entries(value).map(([key1, value1]) => {
|
|
34
|
-
if (key1 === OpSearch.OR || key1 === OpSearch.AND) {
|
|
35
|
-
const join = value1
|
|
36
|
-
.map((_) => {
|
|
37
|
-
return Object.entries(_).map(([key2, value2]) => {
|
|
38
|
-
if (value2 instanceof Object) {
|
|
39
|
-
value2 = this.handleValue(value2);
|
|
40
|
-
}
|
|
41
|
-
return this.criteriaParser(key2, value2);
|
|
42
|
-
})[0];
|
|
43
|
-
})
|
|
44
|
-
.filter((_) => {
|
|
45
|
-
return _;
|
|
46
|
-
})
|
|
47
|
-
.join(` ${key1} `);
|
|
48
|
-
return `${join ? `(${join})` : ''}`;
|
|
49
|
-
}
|
|
50
|
-
if (value1 instanceof Object) {
|
|
51
|
-
value1 = this.handleValue(value1);
|
|
52
|
-
}
|
|
53
|
-
return this.criteriaParser(key1, value1);
|
|
54
|
-
});
|
|
55
|
-
return okay
|
|
56
|
-
.filter((_) => {
|
|
57
|
-
return _;
|
|
58
|
-
})
|
|
59
|
-
.join(' AND ');
|
|
60
|
-
}
|
|
61
|
-
criteriaParser(key, value) {
|
|
62
|
-
if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {
|
|
63
|
-
return '';
|
|
64
|
-
}
|
|
65
|
-
if (value instanceof Object) {
|
|
66
|
-
return this.queryVisitor(value);
|
|
67
|
-
}
|
|
68
|
-
return `${key}${value}`;
|
|
69
|
-
}
|
|
70
|
-
build(spec) {
|
|
71
|
-
try {
|
|
72
|
-
return this.queryVisitor(spec);
|
|
73
|
-
}
|
|
74
|
-
catch (e) {
|
|
75
|
-
throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
buildMoreThanOne(field, op = OpSearch.EQUAL, addSingleQuotes = false) {
|
|
79
|
-
const self = this;
|
|
80
|
-
try {
|
|
81
|
-
if (!self[field])
|
|
82
|
-
return [];
|
|
83
|
-
const filters = self[field]?.split(',')?.map((filter) => {
|
|
84
|
-
if (!filter)
|
|
85
|
-
return null;
|
|
86
|
-
return {
|
|
87
|
-
[field]: {
|
|
88
|
-
[op]: addSingleQuotes ? `'${filter}'` : `${filter}`
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
}).filter((val) => { return val; });
|
|
92
|
-
return filters || [];
|
|
93
|
-
}
|
|
94
|
-
catch (e) {
|
|
95
|
-
throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
handleFieldSeparatedBy(field, signal = ',', op = OpSearch.EQUAL) {
|
|
99
|
-
return this[field]?.split(signal)?.map((_) => {
|
|
100
|
-
return {
|
|
101
|
-
[field]: {
|
|
102
|
-
[op]: _
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
import { MonkeyEcxUtils } from '../utils/utils';
|
|
3
|
+
export var OpSearch;
|
|
4
|
+
(function (OpSearch) {
|
|
5
|
+
OpSearch["LIKE"] = ":'*:value*'";
|
|
6
|
+
OpSearch["BETWEEN"] = ":first AND :last";
|
|
7
|
+
OpSearch["OR"] = "OR";
|
|
8
|
+
OpSearch["AND"] = "AND";
|
|
9
|
+
OpSearch["GT"] = ">:value";
|
|
10
|
+
OpSearch["LT"] = "<:value";
|
|
11
|
+
OpSearch["EQUAL"] = "::value";
|
|
12
|
+
OpSearch["IN"] = " IN :value";
|
|
13
|
+
OpSearch["NOT"] = " !:value";
|
|
14
|
+
})(OpSearch || (OpSearch = {}));
|
|
15
|
+
export class MonkeyEcxSpecificationSearch {
|
|
16
|
+
constructor() {
|
|
17
|
+
// not to do
|
|
18
|
+
}
|
|
19
|
+
handleValue(value) {
|
|
20
|
+
return Object.entries(value).map(([key, value1]) => {
|
|
21
|
+
if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (Array.isArray(value1)) {
|
|
25
|
+
if (key === OpSearch.BETWEEN) {
|
|
26
|
+
return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return `${key}`.replace(':value', `${value1}`);
|
|
30
|
+
})[0];
|
|
31
|
+
}
|
|
32
|
+
queryVisitor(value) {
|
|
33
|
+
const okay = Object.entries(value).map(([key1, value1]) => {
|
|
34
|
+
if (key1 === OpSearch.OR || key1 === OpSearch.AND) {
|
|
35
|
+
const join = value1
|
|
36
|
+
.map((_) => {
|
|
37
|
+
return Object.entries(_).map(([key2, value2]) => {
|
|
38
|
+
if (value2 instanceof Object) {
|
|
39
|
+
value2 = this.handleValue(value2);
|
|
40
|
+
}
|
|
41
|
+
return this.criteriaParser(key2, value2);
|
|
42
|
+
})[0];
|
|
43
|
+
})
|
|
44
|
+
.filter((_) => {
|
|
45
|
+
return _;
|
|
46
|
+
})
|
|
47
|
+
.join(` ${key1} `);
|
|
48
|
+
return `${join ? `(${join})` : ''}`;
|
|
49
|
+
}
|
|
50
|
+
if (value1 instanceof Object) {
|
|
51
|
+
value1 = this.handleValue(value1);
|
|
52
|
+
}
|
|
53
|
+
return this.criteriaParser(key1, value1);
|
|
54
|
+
});
|
|
55
|
+
return okay
|
|
56
|
+
.filter((_) => {
|
|
57
|
+
return _;
|
|
58
|
+
})
|
|
59
|
+
.join(' AND ');
|
|
60
|
+
}
|
|
61
|
+
criteriaParser(key, value) {
|
|
62
|
+
if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {
|
|
63
|
+
return '';
|
|
64
|
+
}
|
|
65
|
+
if (value instanceof Object) {
|
|
66
|
+
return this.queryVisitor(value);
|
|
67
|
+
}
|
|
68
|
+
return `${key}${value}`;
|
|
69
|
+
}
|
|
70
|
+
build(spec) {
|
|
71
|
+
try {
|
|
72
|
+
return this.queryVisitor(spec);
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
buildMoreThanOne(field, op = OpSearch.EQUAL, addSingleQuotes = false) {
|
|
79
|
+
const self = this;
|
|
80
|
+
try {
|
|
81
|
+
if (!self[field])
|
|
82
|
+
return [];
|
|
83
|
+
const filters = self[field]?.split(',')?.map((filter) => {
|
|
84
|
+
if (!filter)
|
|
85
|
+
return null;
|
|
86
|
+
return {
|
|
87
|
+
[field]: {
|
|
88
|
+
[op]: addSingleQuotes ? `'${filter}'` : `${filter}`
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}).filter((val) => { return val; });
|
|
92
|
+
return filters || [];
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
handleFieldSeparatedBy(field, signal = ',', op = OpSearch.EQUAL) {
|
|
99
|
+
return this[field]?.split(signal)?.map((_) => {
|
|
100
|
+
return {
|
|
101
|
+
[field]: {
|
|
102
|
+
[op]: _
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXNwZWNpZmljYXRpb24tc2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NwZWNpZmljYXRpb24tc2VhcmNoL21vbmtleWVjeC1zcGVjaWZpY2F0aW9uLXNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE1BQU0sQ0FBTixJQUFZLFFBVVg7QUFWRCxXQUFZLFFBQVE7SUFDbEIsZ0NBQXNCLENBQUE7SUFDdEIsd0NBQTRCLENBQUE7SUFDNUIscUJBQVMsQ0FBQTtJQUNULHVCQUFXLENBQUE7SUFDWCwwQkFBYyxDQUFBO0lBQ2QsMEJBQWMsQ0FBQTtJQUNkLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLDRCQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFWVyxRQUFRLEtBQVIsUUFBUSxRQVVuQjtBQUVELE1BQU0sT0FBTyw0QkFBNEI7SUFDdkM7UUFDRSxZQUFZO0lBQ2QsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFVO1FBQzVCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksR0FBRyxLQUFLLFFBQVEsQ0FBQyxPQUFPLEVBQUU7b0JBQzVCLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FB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QUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBRTVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7Z0JBQzlELElBQUksQ0FBQyxNQUFNO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUN6QixPQUFPO29CQUNMLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ1AsQ0FBQyxFQUFFLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFO3FCQUNwRDtpQkFDRixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sT0FBTyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxLQUFhLEVBQUUsTUFBTSxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUs7UUFDNUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNDLE9BQU87Z0JBQ0wsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDUCxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7aUJBQ1I7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xyXG5pbXBvcnQgeyBNb25rZXlFY3hVdGlscyB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbmV4cG9ydCBlbnVtIE9wU2VhcmNoIHtcclxuICBMSUtFID0gJzpcXCcqOnZhbHVlKlxcJycsXHJcbiAgQkVUV0VFTiA9ICc6Zmlyc3QgQU5EIDpsYXN0JyxcclxuICBPUiA9ICdPUicsXHJcbiAgQU5EID0gJ0FORCcsXHJcbiAgR1QgPSAnPjp2YWx1ZScsXHJcbiAgTFQgPSAnPDp2YWx1ZScsXHJcbiAgRVFVQUwgPSAnOjp2YWx1ZScsXHJcbiAgSU4gPSAnIElOIDp2YWx1ZScsXHJcbiAgTk9UID0gJyAhOnZhbHVlJ1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4U3BlY2lmaWNhdGlvblNlYXJjaCB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyBub3QgdG8gZG9cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5tYXAoKFtrZXksIHZhbHVlMV0pID0+IHtcclxuICAgICAgaWYgKCFNb25rZXlFY3hVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHZhbHVlMSkpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZTEpKSB7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gT3BTZWFyY2guQkVUV0VFTikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2tleX1gLnJlcGxhY2UoJzpmaXJzdCcsIHZhbHVlMVswXSkucmVwbGFjZSgnOmxhc3QnLCB2YWx1ZTFbMV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYCR7a2V5fWAucmVwbGFjZSgnOnZhbHVlJywgYCR7dmFsdWUxfWApO1xyXG4gICAgfSlbMF07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHF1ZXJ5VmlzaXRvcih2YWx1ZTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IG9rYXkgPSBPYmplY3QuZW50cmllcyh2YWx1ZSkubWFwKChba2V5MSwgdmFsdWUxXSkgPT4ge1xyXG4gICAgICBpZiAoa2V5MSA9PT0gT3BTZWFyY2guT1IgfHwga2V5MSA9PT0gT3BTZWFyY2guQU5EKSB7XHJcbiAgICAgICAgY29uc3Qgam9pbiA9ICh2YWx1ZTEgYXMgYW55W10pXHJcbiAgICAgICAgICAubWFwKChfOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKF8pLm1hcCgoW2tleTIsIHZhbHVlMl0pID0+IHtcclxuICAgICAgICAgICAgICBpZiAodmFsdWUyIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTIgPSB0aGlzLmhhbmRsZVZhbHVlKHZhbHVlMik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyaXRlcmlhUGFyc2VyKGtleTIsIHZhbHVlMik7XHJcbiAgICAgICAgICAgIH0pWzBdO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5maWx0ZXIoKF86IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gXztcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuam9pbihgICR7a2V5MX0gYCk7XHJcbiAgICAgICAgcmV0dXJuIGAke2pvaW4gPyBgKCR7am9pbn0pYCA6ICcnfWA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbHVlMSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgIHZhbHVlMSA9IHRoaXMuaGFuZGxlVmFsdWUodmFsdWUxKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5jcml0ZXJpYVBhcnNlcihrZXkxLCB2YWx1ZTEpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2theVxyXG4gICAgICAuZmlsdGVyKChfOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gXztcclxuICAgICAgfSlcclxuICAgICAgLmpvaW4oJyBBTkQgJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyaXRlcmlhUGFyc2VyKGtleTogc3RyaW5nLCB2YWx1ZTogYW55IHwgYW55W10pIHtcclxuICAgIGlmICghTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnF1ZXJ5VmlzaXRvcih2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7a2V5fSR7dmFsdWV9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBidWlsZChzcGVjOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHRoaXMucXVlcnlWaXNpdG9yKHNwZWMpO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vbmtleUVjeFNwZWNpZmljYXRpb25TZWFyY2ggRXJyb3IgJHtlfWApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGJ1aWxkTW9yZVRoYW5PbmUoZmllbGQ6IHN0cmluZywgb3AgPSBPcFNlYXJjaC5FUVVBTCwgYWRkU2luZ2xlUXVvdGVzID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHNlbGY6IGFueSA9IHRoaXM7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoIXNlbGZbZmllbGRdKSByZXR1cm4gW107XHJcblxyXG4gICAgICBjb25zdCBmaWx0ZXJzID0gc2VsZltmaWVsZF0/LnNwbGl0KCcsJyk/Lm1hcCgoZmlsdGVyOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoIWZpbHRlcikgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIFtmaWVsZF06IHtcclxuICAgICAgICAgICAgW29wXTogYWRkU2luZ2xlUXVvdGVzID8gYCcke2ZpbHRlcn0nYCA6IGAke2ZpbHRlcn1gXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfSkuZmlsdGVyKCh2YWw6IGFueSkgPT4geyByZXR1cm4gdmFsOyB9KTtcclxuICAgICAgcmV0dXJuIGZpbHRlcnMgfHwgW107XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTW9ua2V5RWN4U3BlY2lmaWNhdGlvblNlYXJjaCBFcnJvciAke2V9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRmllbGRTZXBhcmF0ZWRCeShmaWVsZDogc3RyaW5nLCBzaWduYWwgPSAnLCcsIG9wID0gT3BTZWFyY2guRVFVQUwpIHtcclxuICAgIHJldHVybiB0aGlzW2ZpZWxkXT8uc3BsaXQoc2lnbmFsKT8ubWFwKChfKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgW2ZpZWxkXToge1xyXG4gICAgICAgICAgW29wXTogX1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import * as Statics from './statics';
|
|
2
|
-
import { MonkeyEcxUtils } from './utils';
|
|
3
|
-
export function buildQueuePropertys(queue) {
|
|
4
|
-
const params = {
|
|
5
|
-
item: {
|
|
6
|
-
...queue,
|
|
7
|
-
id: MonkeyEcxUtils.getRandomString(40)
|
|
8
|
-
},
|
|
9
|
-
status: Statics.MonkeyEcxQueueEvents.OnGoing
|
|
10
|
-
};
|
|
11
|
-
return params;
|
|
12
|
-
}
|
|
13
|
-
export function buildDownloadPropertys(name, description, size) {
|
|
14
|
-
const params = {
|
|
15
|
-
item: {
|
|
16
|
-
name,
|
|
17
|
-
description,
|
|
18
|
-
id: `${MonkeyEcxUtils.getRandomString(40)}`,
|
|
19
|
-
size,
|
|
20
|
-
createdAt: new Date()
|
|
21
|
-
},
|
|
22
|
-
status: Statics.MonkeyEcxQueueEvents.OnGoing
|
|
23
|
-
};
|
|
24
|
-
return params;
|
|
25
|
-
}
|
|
26
|
-
export function buildUploadPropertys(name, description) {
|
|
27
|
-
const params = {
|
|
28
|
-
item: {
|
|
29
|
-
name,
|
|
30
|
-
description,
|
|
31
|
-
id: `${MonkeyEcxUtils.getRandomString(40)}`
|
|
32
|
-
},
|
|
33
|
-
status: Statics.MonkeyEcxUploadEvents.OnGoing
|
|
34
|
-
};
|
|
35
|
-
return params;
|
|
36
|
-
}
|
|
37
|
-
export function hasMonkeyEcxServiceAndHandlingProperties(context) {
|
|
38
|
-
return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import * as Statics from './statics';
|
|
2
|
+
import { MonkeyEcxUtils } from './utils';
|
|
3
|
+
export function buildQueuePropertys(queue) {
|
|
4
|
+
const params = {
|
|
5
|
+
item: {
|
|
6
|
+
...queue,
|
|
7
|
+
id: MonkeyEcxUtils.getRandomString(40)
|
|
8
|
+
},
|
|
9
|
+
status: Statics.MonkeyEcxQueueEvents.OnGoing
|
|
10
|
+
};
|
|
11
|
+
return params;
|
|
12
|
+
}
|
|
13
|
+
export function buildDownloadPropertys(name, description, size) {
|
|
14
|
+
const params = {
|
|
15
|
+
item: {
|
|
16
|
+
name,
|
|
17
|
+
description,
|
|
18
|
+
id: `${MonkeyEcxUtils.getRandomString(40)}`,
|
|
19
|
+
size,
|
|
20
|
+
createdAt: new Date()
|
|
21
|
+
},
|
|
22
|
+
status: Statics.MonkeyEcxQueueEvents.OnGoing
|
|
23
|
+
};
|
|
24
|
+
return params;
|
|
25
|
+
}
|
|
26
|
+
export function buildUploadPropertys(name, description) {
|
|
27
|
+
const params = {
|
|
28
|
+
item: {
|
|
29
|
+
name,
|
|
30
|
+
description,
|
|
31
|
+
id: `${MonkeyEcxUtils.getRandomString(40)}`
|
|
32
|
+
},
|
|
33
|
+
status: Statics.MonkeyEcxUploadEvents.OnGoing
|
|
34
|
+
};
|
|
35
|
+
return params;
|
|
36
|
+
}
|
|
37
|
+
export function hasMonkeyEcxServiceAndHandlingProperties(context) {
|
|
38
|
+
return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS91dGlscy9kZWNvcmF0b3JzLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQWdDO0lBQ2xFLE1BQU0sTUFBTSxHQUEwQjtRQUNwQyxJQUFJLEVBQUU7WUFDSixHQUFHLEtBQUs7WUFDUixFQUFFLEVBQUUsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7U0FDdkM7UUFDRCxNQUFNLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLE9BQU87S0FDN0MsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLElBQVksRUFDWixXQUFvQixFQUNwQixJQUFhO0lBRWIsTUFBTSxNQUFNLEdBQTZCO1FBQ3ZDLElBQUksRUFBRTtZQUNKLElBQUk7WUFDSixXQUFXO1lBQ1gsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMzQyxJQUFJO1lBQ0osU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO1NBQ3RCO1FBQ0QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPO0tBQzdDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVksRUFBRSxXQUFvQjtJQUNyRSxNQUFNLE1BQU0sR0FBMkI7UUFDckMsSUFBSSxFQUFFO1lBQ0osSUFBSTtZQUNKLFdBQVc7WUFDWCxFQUFFLEVBQUUsR0FBRyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1NBQzVDO1FBQ0QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPO0tBQzlDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLHdDQUF3QyxDQUFDLE9BQVk7SUFDbkUsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgTW9ua2V5RWN4UmVxdWVzdERvd25sb2FkLFxyXG4gIE1vbmtleUVjeFJlcXVlc3RJdGVtUXVldWUsXHJcbiAgTW9ua2V5RWN4UmVxdWVzdFF1ZXVlLFxyXG4gIE1vbmtleUVjeFJlcXVlc3RVcGxvYWRcclxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgU3RhdGljcyBmcm9tICcuL3N0YXRpY3MnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hVdGlscyB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUXVldWVQcm9wZXJ0eXMocXVldWU6IE1vbmtleUVjeFJlcXVlc3RJdGVtUXVldWUpOiBNb25rZXlFY3hSZXF1ZXN0UXVldWUge1xyXG4gIGNvbnN0IHBhcmFtczogTW9ua2V5RWN4UmVxdWVzdFF1ZXVlID0ge1xyXG4gICAgaXRlbToge1xyXG4gICAgICAuLi5xdWV1ZSxcclxuICAgICAgaWQ6IE1vbmtleUVjeFV0aWxzLmdldFJhbmRvbVN0cmluZyg0MClcclxuICAgIH0sXHJcbiAgICBzdGF0dXM6IFN0YXRpY3MuTW9ua2V5RWN4UXVldWVFdmVudHMuT25Hb2luZ1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBwYXJhbXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZERvd25sb2FkUHJvcGVydHlzKFxyXG4gIG5hbWU6IHN0cmluZyxcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZyxcclxuICBzaXplPzogbnVtYmVyXHJcbik6IE1vbmtleUVjeFJlcXVlc3REb3dubG9hZCB7XHJcbiAgY29uc3QgcGFyYW1zOiBNb25rZXlFY3hSZXF1ZXN0RG93bmxvYWQgPSB7XHJcbiAgICBpdGVtOiB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGRlc2NyaXB0aW9uLFxyXG4gICAgICBpZDogYCR7TW9ua2V5RWN4VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDQwKX1gLFxyXG4gICAgICBzaXplLFxyXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKClcclxuICAgIH0sXHJcbiAgICBzdGF0dXM6IFN0YXRpY3MuTW9ua2V5RWN4UXVldWVFdmVudHMuT25Hb2luZ1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBwYXJhbXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVwbG9hZFByb3BlcnR5cyhuYW1lOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogTW9ua2V5RWN4UmVxdWVzdFVwbG9hZCB7XHJcbiAgY29uc3QgcGFyYW1zOiBNb25rZXlFY3hSZXF1ZXN0VXBsb2FkID0ge1xyXG4gICAgaXRlbToge1xyXG4gICAgICBuYW1lLFxyXG4gICAgICBkZXNjcmlwdGlvbixcclxuICAgICAgaWQ6IGAke01vbmtleUVjeFV0aWxzLmdldFJhbmRvbVN0cmluZyg0MCl9YFxyXG4gICAgfSxcclxuICAgIHN0YXR1czogU3RhdGljcy5Nb25rZXlFY3hVcGxvYWRFdmVudHMuT25Hb2luZ1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBwYXJhbXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNNb25rZXlFY3hTZXJ2aWNlQW5kSGFuZGxpbmdQcm9wZXJ0aWVzKGNvbnRleHQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29udGV4dCwgJ21vbmtleWVjeFNlcnZpY2UnKTtcclxufVxyXG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/* eslint-disable object-curly-newline */
|
|
2
|
-
import { MonkeyEcxUtils } from './utils';
|
|
3
|
-
import * as ValidateUtils from './validate-utils';
|
|
4
|
-
import * as DecoratorsUtils from './decorators-utils';
|
|
5
|
-
import * as Statics from './statics';
|
|
6
|
-
export { MonkeyEcxUtils, ValidateUtils, DecoratorsUtils, Statics };
|
|
7
|
-
export * from './validators';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/* eslint-disable object-curly-newline */
|
|
2
|
+
import { MonkeyEcxUtils } from './utils';
|
|
3
|
+
import * as ValidateUtils from './validate-utils';
|
|
4
|
+
import * as DecoratorsUtils from './decorators-utils';
|
|
5
|
+
import * as Statics from './statics';
|
|
6
|
+
export { MonkeyEcxUtils, ValidateUtils, DecoratorsUtils, Statics };
|
|
7
|
+
export * from './validators';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssZUFBZSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUNuRSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG9iamVjdC1jdXJseS1uZXdsaW5lICovXHJcbmltcG9ydCB7IE1vbmtleUVjeFV0aWxzIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCAqIGFzIFZhbGlkYXRlVXRpbHMgZnJvbSAnLi92YWxpZGF0ZS11dGlscyc7XHJcbmltcG9ydCAqIGFzIERlY29yYXRvcnNVdGlscyBmcm9tICcuL2RlY29yYXRvcnMtdXRpbHMnO1xyXG5pbXBvcnQgKiBhcyBTdGF0aWNzIGZyb20gJy4vc3RhdGljcyc7XHJcblxyXG5leHBvcnQgeyBNb25rZXlFY3hVdGlscywgVmFsaWRhdGVVdGlscywgRGVjb3JhdG9yc1V0aWxzLCBTdGF0aWNzIH07XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycyc7XHJcbiJdfQ==
|