ets-fe-ng-sdk 0.0.7 → 1.0.0
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 +1 -13
- package/esm2020/lib/Reusables/reusable-pages/logger/logger.interface.mjs +21 -0
- package/esm2020/lib/Reusables/reusable-pages/logger/logger.service.mjs +64 -0
- package/esm2020/lib/Reusables/reusable-pages/user-activity/ua-extras/user-activity.model.mjs +25 -0
- package/esm2020/lib/Reusables/reusable-pages/user-activity/ua-extras/user-activity.service.mjs +30 -0
- package/esm2020/lib/Services/api.service.mjs +280 -0
- package/esm2020/lib/Services/app.service.mjs +103 -0
- package/esm2020/lib/Services/cache/cache.service.mjs +42 -0
- package/esm2020/lib/Services/cache/local-cache.service.mjs +66 -0
- package/esm2020/lib/Services/input.service.mjs +45 -0
- package/esm2020/lib/Services/page-loader.service.mjs +15 -0
- package/esm2020/lib/Services/page.service.mjs +36 -0
- package/esm2020/lib/Services/route.service.mjs +49 -0
- package/esm2020/lib/Services/storage.service.mjs +95 -0
- package/esm2020/lib/Services/translation.service.mjs +140 -0
- package/esm2020/lib/Services/utility.service.mjs +555 -0
- package/esm2020/lib/Shared/classes/permission-manager.class.mjs +30 -0
- package/esm2020/lib/Shared/components/autocomplete/autocomplete-td-rf/autocomplete-td-rf.component.mjs +93 -0
- package/esm2020/lib/Shared/components/autocomplete/autocomplete.component.mjs +64 -0
- package/esm2020/lib/Shared/components/autocomplete/autocomplete.module.mjs +33 -0
- package/esm2020/lib/Shared/components/autocomplete/autocomplete.service.mjs +23 -0
- package/esm2020/lib/Shared/components/autocomplete-ng-model/autocomplete-ng-model.component.mjs +76 -0
- package/esm2020/lib/Shared/components/autocomplete-ng-model/autocomplete-ng-model.module.mjs +28 -0
- package/esm2020/lib/Shared/components/btn/btn-lg/btn-lg.component.mjs +36 -0
- package/esm2020/lib/Shared/components/btn/btn.component.mjs +219 -0
- package/esm2020/lib/Shared/components/btn/btn.module.mjs +49 -0
- package/esm2020/lib/Shared/components/btn/btn.service.mjs +150 -0
- package/esm2020/lib/Shared/components/btn/details-btn/details-btn.component.mjs +33 -0
- package/esm2020/lib/Shared/components/btn/details-btn/details-btn.module.mjs +19 -0
- package/esm2020/lib/Shared/components/card/card.component.mjs +17 -0
- package/esm2020/lib/Shared/components/card/card.module.mjs +19 -0
- package/esm2020/lib/Shared/components/confirm-dialog/confirm-dialog.component.mjs +29 -0
- package/esm2020/lib/Shared/components/confirm-dialog/confirm-dialog.module.mjs +22 -0
- package/esm2020/lib/Shared/components/confirm-dialog/confirm-dialog.service.mjs +37 -0
- package/esm2020/lib/Shared/components/core/button/button.component.mjs +44 -0
- package/esm2020/lib/Shared/components/core/button/components.module.mjs +32 -0
- package/esm2020/lib/Shared/components/documents-name-display/documents-name-display.component.mjs +112 -0
- package/esm2020/lib/Shared/components/documents-name-display/documents-name-display.model.mjs +11 -0
- package/esm2020/lib/Shared/components/documents-name-display/documents-name-display.module.mjs +40 -0
- package/esm2020/lib/Shared/components/editable-text-case/editable-text-case.component.mjs +66 -0
- package/esm2020/lib/Shared/components/editable-text-case/editable-text-case.module.mjs +40 -0
- package/esm2020/lib/Shared/components/export-table/export-table.component.mjs +44 -0
- package/esm2020/lib/Shared/components/export-table/export-table.module.mjs +25 -0
- package/esm2020/lib/Shared/components/file-upload/file-upload.component.mjs +127 -0
- package/esm2020/lib/Shared/components/file-upload/file-upload.module.mjs +20 -0
- package/esm2020/lib/Shared/components/form-generator/form-generator.component.mjs +101 -0
- package/esm2020/lib/Shared/components/form-generator/form-generator.module.mjs +44 -0
- package/esm2020/lib/Shared/components/form-link/form-link.component.mjs +27 -0
- package/esm2020/lib/Shared/components/form-link/form-link.module.mjs +20 -0
- package/esm2020/lib/Shared/components/form-tab-headers/form-tab-headers.component.mjs +29 -0
- package/esm2020/lib/Shared/components/form-tab-headers/form-tab-headers.module.mjs +19 -0
- package/esm2020/lib/Shared/components/info-dialog/happy-icon.component.mjs +109 -0
- package/esm2020/lib/Shared/components/info-dialog/info-dialog.component.mjs +43 -0
- package/esm2020/lib/Shared/components/info-dialog/info-dialog.module.mjs +63 -0
- package/esm2020/lib/Shared/components/info-dialog/info-dialog.service.mjs +45 -0
- package/esm2020/lib/Shared/components/info-dialog/info-icon.component.mjs +135 -0
- package/esm2020/lib/Shared/components/info-dialog/sad-icon.component.mjs +137 -0
- package/esm2020/lib/Shared/components/info-icon/info-icon.component.mjs +28 -0
- package/esm2020/lib/Shared/components/info-icon/info-icon.module.mjs +27 -0
- package/esm2020/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.mjs +135 -0
- package/esm2020/lib/Shared/components/input/input-basic.component.mjs +298 -0
- package/esm2020/lib/Shared/components/input/input-control.component.mjs +43 -0
- package/esm2020/lib/Shared/components/input/input-label/input-label.component.mjs +60 -0
- package/esm2020/lib/Shared/components/input/input-td-rf.component.mjs +101 -0
- package/esm2020/lib/Shared/components/input/input.component.mjs +178 -0
- package/esm2020/lib/Shared/components/input/input.module.mjs +104 -0
- package/esm2020/lib/Shared/components/input/input.service.mjs +85 -0
- package/esm2020/lib/Shared/components/input/inputs-pipes.pipe.mjs +175 -0
- package/esm2020/lib/Shared/components/input/validation-message/validation-message.component.mjs +67 -0
- package/esm2020/lib/Shared/components/input/year-month-td-rf/year-month-td-rf.component.mjs +38 -0
- package/esm2020/lib/Shared/components/input-NgModel/input-ngmodel.component.mjs +176 -0
- package/esm2020/lib/Shared/components/input-NgModel/input-ngmodel.module.mjs +24 -0
- package/esm2020/lib/Shared/components/input-NgModel/validation-message-ngmodel/validation-message-ngmodel.component.mjs +51 -0
- package/esm2020/lib/Shared/components/label/label.component.mjs +55 -0
- package/esm2020/lib/Shared/components/label/label.module.mjs +32 -0
- package/esm2020/lib/Shared/components/loader/loader.component.mjs +46 -0
- package/esm2020/lib/Shared/components/loader/loader.module.mjs +22 -0
- package/esm2020/lib/Shared/components/loader/spinner.component.mjs +26 -0
- package/esm2020/lib/Shared/components/modal/modal.component.mjs +53 -0
- package/esm2020/lib/Shared/components/modal/modal.module.mjs +22 -0
- package/esm2020/lib/Shared/components/modal-form/modal-form.component.mjs +52 -0
- package/esm2020/lib/Shared/components/modal-form/modal-form.module.mjs +40 -0
- package/esm2020/lib/Shared/components/modal-header/modal-header.component.mjs +26 -0
- package/esm2020/lib/Shared/components/modal-header/modal-header.module.mjs +37 -0
- package/esm2020/lib/Shared/components/page-template/page-template.component.mjs +82 -0
- package/esm2020/lib/Shared/components/page-template/page-template.module.mjs +21 -0
- package/esm2020/lib/Shared/components/page-to-component/page-to-component.component.mjs +61 -0
- package/esm2020/lib/Shared/components/page-to-component/page-to-component.directive.mjs +16 -0
- package/esm2020/lib/Shared/components/page-to-component/page-to-component.module.mjs +21 -0
- package/esm2020/lib/Shared/components/page-to-component/page-to-component.service.mjs +32 -0
- package/esm2020/lib/Shared/components/phone-number/iso-3166.json +1 -0
- package/esm2020/lib/Shared/components/phone-number/phone-number.component.mjs +101 -0
- package/esm2020/lib/Shared/components/phone-number/phone-number.directive.mjs +25 -0
- package/esm2020/lib/Shared/components/phone-number/phone-number.model.mjs +43 -0
- package/esm2020/lib/Shared/components/phone-number/phone-number.module.mjs +45 -0
- package/esm2020/lib/Shared/components/phone-number/phone-number.service.mjs +27 -0
- package/esm2020/lib/Shared/components/row-actions/row-actions.component.mjs +30 -0
- package/esm2020/lib/Shared/components/row-actions/row-actions.module.mjs +25 -0
- package/esm2020/lib/Shared/components/table-https/table-https.component.mjs +183 -0
- package/esm2020/lib/Shared/components/table-https/table-https.module.mjs +87 -0
- package/esm2020/lib/Shared/components/table-plain/table-plain.component.mjs +307 -0
- package/esm2020/lib/Shared/components/table-plain/table-plain.module.mjs +105 -0
- package/esm2020/lib/Shared/components/table-plain/table-plain.service.mjs +19 -0
- package/esm2020/lib/Shared/components/table-plain/table.pipe.mjs +94 -0
- package/esm2020/lib/Shared/components/text-case-1/text-case-1.component.mjs +59 -0
- package/esm2020/lib/Shared/components/text-case-1/text-case-1.module.mjs +37 -0
- package/esm2020/lib/Shared/components/text-case-2/text-case-2.component.mjs +71 -0
- package/esm2020/lib/Shared/components/text-case-2/text-case-2.module.mjs +40 -0
- package/esm2020/lib/Shared/components/view-form-buttons/view-form-buttons.component.mjs +20 -0
- package/esm2020/lib/Shared/components/view-form-buttons/view-form-buttons.module.mjs +20 -0
- package/esm2020/lib/Shared/directives/InputFormat.directive.mjs +319 -0
- package/esm2020/lib/Shared/directives/commafy-number.directive.mjs +79 -0
- package/esm2020/lib/Shared/directives/drag-drop-file-upload.directive.mjs +61 -0
- package/esm2020/lib/Shared/directives/index.directive.mjs +284 -0
- package/esm2020/lib/Shared/directives/integer-only.directive.mjs +59 -0
- package/esm2020/lib/Shared/directives/mHref.directive.mjs +14 -0
- package/esm2020/lib/Shared/directives/negative-number-only.directive.mjs +24 -0
- package/esm2020/lib/Shared/directives/permission-manager.directive.mjs +91 -0
- package/esm2020/lib/Shared/injection-tokens/index.injection-tokens.mjs +3 -0
- package/esm2020/lib/Shared/models/environment.model.mjs +4 -1
- package/esm2020/lib/Shared/pipes/translate.pipe.mjs +66 -0
- package/esm2020/lib/Shared/pipes/utility.pipe.mjs +418 -0
- package/esm2020/lib/Shared/shared.module.mjs +168 -0
- package/esm2020/lib/configs/index.config.mjs +65 -0
- package/esm2020/lib/configs/validation-messages.config.mjs +248 -0
- package/esm2020/lib/label-customization/label-customization.model.mjs +6 -0
- package/esm2020/lib/label-customization/label-customization.module.mjs +23 -0
- package/esm2020/lib/label-customization/label-customization.service.mjs +68 -0
- package/esm2020/public-api.mjs +107 -1
- package/fesm2015/ets-fe-ng-sdk.mjs +11043 -6
- package/fesm2015/ets-fe-ng-sdk.mjs.map +1 -1
- package/fesm2020/ets-fe-ng-sdk.mjs +10956 -6
- package/fesm2020/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Reusables/reusable-pages/logger/logger.interface.d.ts +27 -0
- package/lib/Reusables/reusable-pages/logger/logger.service.d.ts +23 -0
- package/lib/Reusables/reusable-pages/user-activity/ua-extras/user-activity.model.d.ts +55 -0
- package/lib/Reusables/reusable-pages/user-activity/ua-extras/user-activity.service.d.ts +11 -0
- package/lib/Services/api.service.d.ts +51 -0
- package/lib/Services/app.service.d.ts +35 -0
- package/lib/Services/cache/cache.service.d.ts +17 -0
- package/lib/Services/cache/local-cache.service.d.ts +19 -0
- package/lib/Services/input.service.d.ts +19 -0
- package/lib/Services/page-loader.service.d.ts +7 -0
- package/lib/Services/page.service.d.ts +14 -0
- package/lib/Services/route.service.d.ts +13 -0
- package/lib/Services/storage.service.d.ts +19 -0
- package/lib/Services/translation.service.d.ts +26 -0
- package/lib/Services/utility.service.d.ts +193 -0
- package/lib/Shared/classes/permission-manager.class.d.ts +6 -0
- package/lib/Shared/components/autocomplete/autocomplete-td-rf/autocomplete-td-rf.component.d.ts +24 -0
- package/lib/Shared/components/autocomplete/autocomplete.component.d.ts +22 -0
- package/lib/Shared/components/autocomplete/autocomplete.module.d.ts +12 -0
- package/lib/Shared/components/autocomplete/autocomplete.service.d.ts +9 -0
- package/lib/Shared/components/autocomplete-ng-model/autocomplete-ng-model.component.d.ts +25 -0
- package/lib/Shared/components/autocomplete-ng-model/autocomplete-ng-model.module.d.ts +12 -0
- package/lib/Shared/components/btn/btn-lg/btn-lg.component.d.ts +20 -0
- package/lib/Shared/components/btn/btn.component.d.ts +51 -0
- package/lib/Shared/components/btn/btn.module.d.ts +16 -0
- package/lib/Shared/components/btn/btn.service.d.ts +12 -0
- package/lib/Shared/components/btn/details-btn/details-btn.component.d.ts +18 -0
- package/lib/Shared/components/btn/details-btn/details-btn.module.d.ts +9 -0
- package/lib/Shared/components/card/card.component.d.ts +9 -0
- package/lib/Shared/components/card/card.module.d.ts +9 -0
- package/lib/Shared/components/confirm-dialog/confirm-dialog.component.d.ts +13 -0
- package/lib/Shared/components/confirm-dialog/confirm-dialog.module.d.ts +12 -0
- package/lib/Shared/components/confirm-dialog/confirm-dialog.service.d.ts +9 -0
- package/lib/Shared/components/core/button/button.component.d.ts +28 -0
- package/lib/Shared/components/core/button/components.module.d.ts +11 -0
- package/lib/Shared/components/documents-name-display/documents-name-display.component.d.ts +44 -0
- package/lib/Shared/components/documents-name-display/documents-name-display.model.d.ts +6 -0
- package/lib/Shared/components/documents-name-display/documents-name-display.module.d.ts +13 -0
- package/lib/Shared/components/editable-text-case/editable-text-case.component.d.ts +30 -0
- package/lib/Shared/components/editable-text-case/editable-text-case.module.d.ts +13 -0
- package/lib/Shared/components/export-table/export-table.component.d.ts +16 -0
- package/lib/Shared/components/export-table/export-table.module.d.ts +9 -0
- package/lib/Shared/components/file-upload/file-upload.component.d.ts +37 -0
- package/lib/Shared/components/file-upload/file-upload.module.d.ts +10 -0
- package/lib/Shared/components/form-generator/form-generator.component.d.ts +34 -0
- package/lib/Shared/components/form-generator/form-generator.module.d.ts +14 -0
- package/lib/Shared/components/form-link/form-link.component.d.ts +16 -0
- package/lib/Shared/components/form-link/form-link.module.d.ts +10 -0
- package/lib/Shared/components/form-tab-headers/form-tab-headers.component.d.ts +13 -0
- package/lib/Shared/components/form-tab-headers/form-tab-headers.module.d.ts +9 -0
- package/lib/Shared/components/info-dialog/happy-icon.component.d.ts +8 -0
- package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +25 -0
- package/lib/Shared/components/info-dialog/info-dialog.module.d.ts +17 -0
- package/lib/Shared/components/info-dialog/info-dialog.service.d.ts +10 -0
- package/lib/Shared/components/info-dialog/info-icon.component.d.ts +8 -0
- package/lib/Shared/components/info-dialog/sad-icon.component.d.ts +8 -0
- package/lib/Shared/components/info-icon/info-icon.component.d.ts +12 -0
- package/lib/Shared/components/info-icon/info-icon.module.d.ts +11 -0
- package/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.d.ts +27 -0
- package/lib/Shared/components/input/input-basic.component.d.ts +102 -0
- package/lib/Shared/components/input/input-control.component.d.ts +15 -0
- package/lib/Shared/components/input/input-label/input-label.component.d.ts +25 -0
- package/lib/Shared/components/input/input-td-rf.component.d.ts +22 -0
- package/lib/Shared/components/input/input.component.d.ts +73 -0
- package/lib/Shared/components/input/input.module.d.ts +21 -0
- package/lib/Shared/components/input/input.service.d.ts +22 -0
- package/lib/Shared/components/input/inputs-pipes.pipe.d.ts +55 -0
- package/lib/Shared/components/input/validation-message/validation-message.component.d.ts +29 -0
- package/lib/Shared/components/input/year-month-td-rf/year-month-td-rf.component.d.ts +15 -0
- package/lib/Shared/components/input-NgModel/input-ngmodel.component.d.ts +67 -0
- package/lib/Shared/components/input-NgModel/input-ngmodel.module.d.ts +13 -0
- package/lib/Shared/components/input-NgModel/validation-message-ngmodel/validation-message-ngmodel.component.d.ts +23 -0
- package/lib/Shared/components/label/label.component.d.ts +25 -0
- package/lib/Shared/components/label/label.module.d.ts +11 -0
- package/lib/Shared/components/loader/loader.component.d.ts +21 -0
- package/lib/Shared/components/loader/loader.module.d.ts +11 -0
- package/lib/Shared/components/loader/spinner.component.d.ts +8 -0
- package/lib/Shared/components/modal/modal.component.d.ts +26 -0
- package/lib/Shared/components/modal/modal.module.d.ts +12 -0
- package/lib/Shared/components/modal-form/modal-form.component.d.ts +28 -0
- package/lib/Shared/components/modal-form/modal-form.module.d.ts +13 -0
- package/lib/Shared/components/modal-header/modal-header.component.d.ts +16 -0
- package/lib/Shared/components/modal-header/modal-header.module.d.ts +13 -0
- package/lib/Shared/components/page-template/page-template.component.d.ts +34 -0
- package/lib/Shared/components/page-template/page-template.module.d.ts +8 -0
- package/lib/Shared/components/page-to-component/page-to-component.component.d.ts +34 -0
- package/lib/Shared/components/page-to-component/page-to-component.directive.d.ts +8 -0
- package/lib/Shared/components/page-to-component/page-to-component.module.d.ts +11 -0
- package/lib/Shared/components/page-to-component/page-to-component.service.d.ts +11 -0
- package/lib/Shared/components/phone-number/phone-number.component.d.ts +32 -0
- package/lib/Shared/components/phone-number/phone-number.directive.d.ts +11 -0
- package/lib/Shared/components/phone-number/phone-number.model.d.ts +139 -0
- package/lib/Shared/components/phone-number/phone-number.module.d.ts +15 -0
- package/lib/Shared/components/phone-number/phone-number.service.d.ts +37 -0
- package/lib/Shared/components/row-actions/row-actions.component.d.ts +13 -0
- package/lib/Shared/components/row-actions/row-actions.module.d.ts +9 -0
- package/lib/Shared/components/table-https/table-https.component.d.ts +61 -0
- package/lib/Shared/components/table-https/table-https.module.d.ts +24 -0
- package/lib/Shared/components/table-plain/table-plain.component.d.ts +81 -0
- package/lib/Shared/components/table-plain/table-plain.module.d.ts +28 -0
- package/lib/Shared/components/table-plain/table-plain.service.d.ts +8 -0
- package/lib/Shared/components/table-plain/table.pipe.d.ts +31 -0
- package/lib/Shared/components/text-case-1/text-case-1.component.d.ts +27 -0
- package/lib/Shared/components/text-case-1/text-case-1.module.d.ts +13 -0
- package/lib/Shared/components/text-case-2/text-case-2.component.d.ts +72 -0
- package/lib/Shared/components/text-case-2/text-case-2.module.d.ts +13 -0
- package/lib/Shared/components/view-form-buttons/view-form-buttons.component.d.ts +10 -0
- package/lib/Shared/components/view-form-buttons/view-form-buttons.module.d.ts +10 -0
- package/lib/Shared/directives/InputFormat.directive.d.ts +88 -0
- package/lib/Shared/directives/commafy-number.directive.d.ts +23 -0
- package/lib/Shared/directives/drag-drop-file-upload.directive.d.ts +15 -0
- package/lib/Shared/directives/index.directive.d.ts +85 -0
- package/lib/Shared/directives/integer-only.directive.d.ts +16 -0
- package/lib/Shared/directives/mHref.directive.d.ts +6 -0
- package/lib/Shared/directives/negative-number-only.directive.d.ts +9 -0
- package/lib/Shared/directives/permission-manager.directive.d.ts +27 -0
- package/lib/Shared/injection-tokens/index.injection-tokens.d.ts +3 -0
- package/lib/Shared/models/environment.model.d.ts +2 -0
- package/lib/Shared/pipes/translate.pipe.d.ts +20 -0
- package/lib/Shared/pipes/utility.pipe.d.ts +156 -0
- package/lib/Shared/shared.module.d.ts +43 -0
- package/lib/configs/index.config.d.ts +32 -0
- package/lib/configs/validation-messages.config.d.ts +101 -0
- package/lib/label-customization/label-customization.model.d.ts +9 -0
- package/lib/label-customization/label-customization.module.d.ts +7 -0
- package/lib/label-customization/label-customization.service.d.ts +22 -0
- package/package.json +6 -1
- package/public-api.d.ts +102 -0
package/README.md
CHANGED
|
@@ -4,18 +4,6 @@ This library was generated for use in Angular ETS projects
|
|
|
4
4
|
|
|
5
5
|
# New Features
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
environment.model
|
|
10
|
-
|
|
11
|
-
form-schema.model
|
|
12
|
-
|
|
13
|
-
form.class
|
|
14
|
-
|
|
15
|
-
IMenuItem
|
|
16
|
-
|
|
17
|
-
index.model
|
|
18
|
-
|
|
19
|
-
RouteItem.class
|
|
7
|
+
Migrated Shared modules. This is the first stable build.
|
|
20
8
|
|
|
21
9
|
# Bug Fixes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class Log {
|
|
2
|
+
constructor(data) {
|
|
3
|
+
Object.assign(this, data);
|
|
4
|
+
if (data.payload instanceof FormData) {
|
|
5
|
+
this.payload = null;
|
|
6
|
+
data.payload.forEach((file) => {
|
|
7
|
+
if (!(!file || file == undefined || file == null))
|
|
8
|
+
if (file instanceof File) {
|
|
9
|
+
this.files.push({ size: file.size, title: file.name, type: file.type });
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
this.payload = { ...this.payload, ...JSON.parse(file) };
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
this.route = this.route || location.pathname;
|
|
17
|
+
this.time = Date.now();
|
|
18
|
+
this.id = 'id' + Math.round(Math.random() * 1000000);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxPQUFPLEdBQUc7SUFVZCxZQUFZLElBQWE7UUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxZQUFZLFFBQVEsRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLFNBQVMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDO29CQUMvQyxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUU7d0JBQ3pCLElBQUksQ0FBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO3FCQUNsRTt5QkFBTTt3QkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO3FCQUN6RDtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFFLElBQUksQ0FBQyxLQUFLLElBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIgXG50eXBlIE1ldGhvZCA9ICdQT1NUJyB8ICdQVVQnO1xuZXhwb3J0IGludGVyZmFjZSBJTG9nPFQ+IHtcbiAgcGF5bG9hZDogVDtcbiAgZmlsZXM/OiBGaWxlW107XG4gIGlzU3VjY2Vzcz86IGJvb2xlYW47XG4gIHJvdXRlPzogc3RyaW5nO1xuICBlbmRwb2ludDogc3RyaW5nO1xuICBtZXRob2Q6IE1ldGhvZDtcbn1cbmV4cG9ydCBjbGFzcyBMb2c8VCA9IGFueT4ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0aW1lOiBudW1iZXI7XG4gIHBheWxvYWQ6IFQ7XG4gIGlzU3VjY2VzczogYm9vbGVhbjtcbiAgcm91dGU6IHN0cmluZztcbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgZmlsZXM6IElGaWxlRGF0YVtdO1xuICBtZXRob2Q6IHN0cmluZztcbiAgY29uc3RydWN0b3IoZGF0YTogSUxvZzxUPikge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7IFxuICAgIGlmIChkYXRhLnBheWxvYWQgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgdGhpcy5wYXlsb2FkID0gbnVsbDtcbiAgICAgIChkYXRhLnBheWxvYWQgYXMgRm9ybURhdGEpLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgaWYgKCEoIWZpbGUgfHwgZmlsZSA9PSB1bmRlZmluZWQgfHwgZmlsZSA9PSBudWxsKSlcbiAgICAgICAgICBpZiAoZmlsZSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgdGhpcy4gZmlsZXMucHVzaCh7c2l6ZTpmaWxlLnNpemUsdGl0bGU6ZmlsZS5uYW1lLHR5cGU6ZmlsZS50eXBlfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGF5bG9hZCA9IHsgLi4udGhpcy5wYXlsb2FkLCAuLi5KU09OLnBhcnNlKGZpbGUpIH07XG4gICAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSAgXG4gICAgdGhpcy5yb3V0ZSA9dGhpcy5yb3V0ZXx8IGxvY2F0aW9uLnBhdGhuYW1lOyBcbiAgICB0aGlzLnRpbWUgPSBEYXRlLm5vdygpO1xuICAgIHRoaXMuaWQgPSAnaWQnICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDAwMCk7XG4gIH1cbn1cbmludGVyZmFjZSBJRmlsZURhdGEge1xuICB0aXRsZTogc3RyaW5nO1xuICBzaXplOiBudW1iZXI7XG4gIHR5cGU6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Log } from './logger.interface';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@Services/storage.service";
|
|
5
|
+
export class LoggerService {
|
|
6
|
+
constructor(sS) {
|
|
7
|
+
this.sS = sS;
|
|
8
|
+
this.logAuthKey = 'logAuth';
|
|
9
|
+
this.logsKey = 'logs';
|
|
10
|
+
this._logs = [];
|
|
11
|
+
this.pwd = '1234';
|
|
12
|
+
setInterval(() => {
|
|
13
|
+
this.getLogs();
|
|
14
|
+
}, 1000);
|
|
15
|
+
this.checkAuth();
|
|
16
|
+
}
|
|
17
|
+
get logs() {
|
|
18
|
+
return this._logs;
|
|
19
|
+
}
|
|
20
|
+
addLog(log) {
|
|
21
|
+
this.pushLog(new Log(log));
|
|
22
|
+
}
|
|
23
|
+
pushLog(log) {
|
|
24
|
+
if (!Array.isArray(this._logs))
|
|
25
|
+
this._logs = [];
|
|
26
|
+
this._logs?.sort2('time').reverse();
|
|
27
|
+
if (this._logs.length >= 30)
|
|
28
|
+
this._logs.pop();
|
|
29
|
+
this._logs.unshift(log);
|
|
30
|
+
this.saveToLocal();
|
|
31
|
+
}
|
|
32
|
+
saveToLocal() {
|
|
33
|
+
this.sS.saveItem(this.logsKey, this._logs);
|
|
34
|
+
}
|
|
35
|
+
unlock() {
|
|
36
|
+
this.sS.saveItem(this.logAuthKey, this.pwd);
|
|
37
|
+
this.checkAuth();
|
|
38
|
+
}
|
|
39
|
+
lock() {
|
|
40
|
+
this.sS.removeItem(this.logAuthKey);
|
|
41
|
+
this.checkAuth();
|
|
42
|
+
}
|
|
43
|
+
getLogs() {
|
|
44
|
+
this.sS
|
|
45
|
+
.getItemA(this.logsKey)
|
|
46
|
+
.then((r) => (this._logs = r?.sort2('time').reverse() || []));
|
|
47
|
+
return this._logs;
|
|
48
|
+
}
|
|
49
|
+
checkAuth() {
|
|
50
|
+
this._isAuthed = this.sS.getItem(this.logAuthKey) == this.pwd;
|
|
51
|
+
}
|
|
52
|
+
get isAuthed() {
|
|
53
|
+
return this._isAuthed;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
LoggerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: LoggerService, deps: [{ token: i1.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
57
|
+
LoggerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: LoggerService, providedIn: 'root' });
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: LoggerService, decorators: [{
|
|
59
|
+
type: Injectable,
|
|
60
|
+
args: [{
|
|
61
|
+
providedIn: 'root',
|
|
62
|
+
}]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i1.StorageService }]; } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBUSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSy9DLE1BQU0sT0FBTyxhQUFhO0lBU3hCLFlBQW1CLEVBQWtCO1FBQWxCLE9BQUUsR0FBRixFQUFFLENBQWdCO1FBUjVCLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsWUFBTyxHQUFHLE1BQU0sQ0FBQztRQUNsQixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRWpCLFFBQUcsR0FBRyxNQUFNLENBQUM7UUFLcEIsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQVJELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBT0QsTUFBTSxDQUFJLEdBQVk7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBUTtRQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxFQUFFO2FBQ0osUUFBUSxDQUFRLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDaEUsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOzswR0EvQ1UsYUFBYTs4R0FBYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQFNlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBJTG9nLCBMb2cgfSBmcm9tICcuL2xvZ2dlci5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTG9nZ2VyU2VydmljZSB7XG4gIHJlYWRvbmx5IGxvZ0F1dGhLZXkgPSAnbG9nQXV0aCc7XG4gIHJlYWRvbmx5IGxvZ3NLZXkgPSAnbG9ncyc7XG4gIHByaXZhdGUgX2xvZ3M6IExvZ1tdID0gW107XG4gIHByaXZhdGUgX2lzQXV0aGVkOiBib29sZWFuO1xuICByZWFkb25seSBwd2QgPSAnMTIzNCc7XG4gIGdldCBsb2dzKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2dzO1xuICB9XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzUzogU3RvcmFnZVNlcnZpY2UpIHtcbiAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLmdldExvZ3MoKTtcbiAgICB9LCAxMDAwKTtcbiAgICB0aGlzLmNoZWNrQXV0aCgpO1xuICB9XG4gIGFkZExvZzxUPihsb2c6IElMb2c8VD4pIHtcbiAgICB0aGlzLnB1c2hMb2cobmV3IExvZyhsb2cpKTtcbiAgfVxuICBwdXNoTG9nKGxvZzogTG9nKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX2xvZ3MpKSB0aGlzLl9sb2dzID0gW107XG4gICAgdGhpcy5fbG9ncz8uc29ydDIoJ3RpbWUnKS5yZXZlcnNlKCk7XG4gICAgaWYgKHRoaXMuX2xvZ3MubGVuZ3RoID49IDMwKSB0aGlzLl9sb2dzLnBvcCgpO1xuICAgIHRoaXMuX2xvZ3MudW5zaGlmdChsb2cpO1xuICAgIHRoaXMuc2F2ZVRvTG9jYWwoKTtcbiAgfVxuICBzYXZlVG9Mb2NhbCgpIHtcbiAgICB0aGlzLnNTLnNhdmVJdGVtKHRoaXMubG9nc0tleSwgdGhpcy5fbG9ncyk7XG4gIH1cbiAgdW5sb2NrKCkge1xuICAgIHRoaXMuc1Muc2F2ZUl0ZW0odGhpcy5sb2dBdXRoS2V5LCB0aGlzLnB3ZCk7XG4gICAgdGhpcy5jaGVja0F1dGgoKTtcbiAgfVxuICBsb2NrKCkge1xuICAgIHRoaXMuc1MucmVtb3ZlSXRlbSh0aGlzLmxvZ0F1dGhLZXkpO1xuICAgIHRoaXMuY2hlY2tBdXRoKCk7XG4gIH1cbiAgZ2V0TG9ncygpIHtcbiAgICB0aGlzLnNTXG4gICAgICAuZ2V0SXRlbUE8TG9nW10+KHRoaXMubG9nc0tleSlcbiAgICAgIC50aGVuKChyKSA9PiAodGhpcy5fbG9ncyA9IHI/LnNvcnQyKCd0aW1lJykucmV2ZXJzZSgpIHx8IFtdKSk7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ3M7XG4gIH1cbiAgY2hlY2tBdXRoKCkge1xuICAgIHRoaXMuX2lzQXV0aGVkID0gdGhpcy5zUy5nZXRJdGVtKHRoaXMubG9nQXV0aEtleSkgPT0gdGhpcy5wd2Q7XG4gIH1cbiAgZ2V0IGlzQXV0aGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0F1dGhlZDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { environment } from "@environments/environment";
|
|
2
|
+
export class UserActivity {
|
|
3
|
+
constructor(data) {
|
|
4
|
+
Object.assign(this, data);
|
|
5
|
+
this.activityDescription = (codeToDescriptionMap.find((x) => x.key == this.code)?.value +
|
|
6
|
+
' ' +
|
|
7
|
+
(this.activityDescription ? `{${this.activityDescription}}` : ''))?.trim();
|
|
8
|
+
this.pageUrl = this.pageUrl || location.href;
|
|
9
|
+
this.pageTitle = this.pageTitle || environment.pageTitle;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export var EUA;
|
|
13
|
+
(function (EUA) {
|
|
14
|
+
EUA["exported"] = "export";
|
|
15
|
+
EUA["visited"] = "visited";
|
|
16
|
+
EUA["searched"] = "searched";
|
|
17
|
+
EUA["downloaded"] = "downloaded";
|
|
18
|
+
})(EUA || (EUA = {}));
|
|
19
|
+
const codeToDescriptionMap = [
|
|
20
|
+
{ key: EUA.exported, value: 'Exported data' },
|
|
21
|
+
{ key: EUA.visited, value: 'User visited new page' },
|
|
22
|
+
{ key: EUA.searched, value: 'User performed a search' },
|
|
23
|
+
{ key: EUA.downloaded, value: 'User downloaded an item' },
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpdml0eS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvdXNlci1hY3Rpdml0eS91YS1leHRyYXMvdXNlci1hY3Rpdml0eS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUEwQ3hELE1BQU0sT0FBTyxZQUFZO0lBUXZCLFlBQVksSUFBa0I7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQ3pCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSztZQUMzRCxHQUFHO1lBQ0gsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNsRSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRSxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRSxJQUFJLENBQUMsU0FBUyxJQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBQ0QsTUFBTSxDQUFOLElBQVksR0FLWDtBQUxELFdBQVksR0FBRztJQUNiLDBCQUFtQixDQUFBO0lBQ25CLDBCQUFtQixDQUFBO0lBQ25CLDRCQUFxQixDQUFBO0lBQ3JCLGdDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFMVyxHQUFHLEtBQUgsR0FBRyxRQUtkO0FBQ0QsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7SUFDN0MsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7SUFDcEQsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUU7SUFDdkQsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUU7Q0FDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSBcIkBlbnZpcm9ubWVudHMvZW52aXJvbm1lbnRcIjtcblxuIFxuZXhwb3J0IGludGVyZmFjZSBJVUFEZWxldGlvblBheWxvYWQge1xuICBpZDogbnVtYmVyO1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSVVBU2VhcmNoT2JqIHtcbiAgbG9nZ2VkVGltZUZyb206IHN0cmluZztcbiAgbG9nZ2VkVGltZVRvOiBzdHJpbmc7XG4gIHBhZ2VOdW1iZXI6IG51bWJlcjtcbiAgcGFnZVNpemU6IG51bWJlcjtcbiAgcGFnZVRpdGxlOiBzdHJpbmc7XG4gIHNjcmVlbjogc3RyaW5nO1xuICBzb3J0Qnk6IHN0cmluZztcbiAgdXNlckFnZW50OiBzdHJpbmc7XG4gIHVzZXJOYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIElVQVNlYXJjaFJlc3BvbnNlIHtcbiAgaWQ6IG51bWJlcjtcbiAgdXNlck5hbWU/OiBzdHJpbmc7XG4gIGxvZ2dlZEluOiBib29sZWFuO1xuICBpcEFkZHJlc3M6IHN0cmluZztcbiAgbG9nZ2VkVGltZTogc3RyaW5nO1xuICB1c2VyQWdlbnQ6IHN0cmluZztcbiAgcGFnZVVybD86IHN0cmluZztcbiAgc2NyZWVuPzogc3RyaW5nO1xuICBwYWdlVGl0bGU6IHN0cmluZztcbiAgYWN0aXZpdHlEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmVxdWVzdFVybD86IHN0cmluZztcbiAgcmVxdWVzdE1ldGhvZD86IHN0cmluZztcbiAgY29tcGFueUNvZGU/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIElVc2VyQWN0aXZpdHkge1xuICBpZD86IG51bWJlcjtcbiAgYWN0aXZpdHlEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcGFnZVRpdGxlPzogc3RyaW5nO1xuICBwYWdlVXJsPzogc3RyaW5nO1xuICByZXF1ZXN0TWV0aG9kPzogc3RyaW5nO1xuICByZXF1ZXN0VXJsPzogc3RyaW5nO1xuICBjb2RlOiBFVUE7XG59XG5leHBvcnQgY2xhc3MgVXNlckFjdGl2aXR5IGltcGxlbWVudHMgSVVzZXJBY3Rpdml0eSB7XG4gIGlkOiBudW1iZXI7XG4gIGFjdGl2aXR5RGVzY3JpcHRpb246IHN0cmluZztcbiAgcGFnZVRpdGxlOiBzdHJpbmc7XG4gIHBhZ2VVcmw6IHN0cmluZztcbiAgcmVxdWVzdE1ldGhvZDogc3RyaW5nO1xuICByZXF1ZXN0VXJsOiBzdHJpbmc7XG4gIGNvZGU6IEVVQTtcbiAgY29uc3RydWN0b3IoZGF0YTpJVXNlckFjdGl2aXR5KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcbiAgICB0aGlzLmFjdGl2aXR5RGVzY3JpcHRpb24gPSAoXG4gICAgICBjb2RlVG9EZXNjcmlwdGlvbk1hcC5maW5kKCh4KSA9PiB4LmtleSA9PSB0aGlzLmNvZGUpPy52YWx1ZSArXG4gICAgICAnICcgK1xuICAgICAgKHRoaXMuYWN0aXZpdHlEZXNjcmlwdGlvbiA/IGB7JHt0aGlzLmFjdGl2aXR5RGVzY3JpcHRpb259fWAgOiAnJylcbiAgICApPy50cmltKCk7XG4gICAgdGhpcy5wYWdlVXJsID10aGlzLnBhZ2VVcmwgfHwgbG9jYXRpb24uaHJlZjtcbiAgICB0aGlzLnBhZ2VUaXRsZSA9dGhpcy5wYWdlVGl0bGV8fCBlbnZpcm9ubWVudC5wYWdlVGl0bGU7XG4gIH1cbn1cbmV4cG9ydCBlbnVtIEVVQSB7XG4gIGV4cG9ydGVkID0gJ2V4cG9ydCcsXG4gIHZpc2l0ZWQgPSAndmlzaXRlZCcsXG4gIHNlYXJjaGVkID0gJ3NlYXJjaGVkJyxcbiAgZG93bmxvYWRlZCA9IFwiZG93bmxvYWRlZFwiXG59XG5jb25zdCBjb2RlVG9EZXNjcmlwdGlvbk1hcCA9IFtcbiAgeyBrZXk6IEVVQS5leHBvcnRlZCwgdmFsdWU6ICdFeHBvcnRlZCBkYXRhJyB9LFxuICB7IGtleTogRVVBLnZpc2l0ZWQsIHZhbHVlOiAnVXNlciB2aXNpdGVkIG5ldyBwYWdlJyB9LFxuICB7IGtleTogRVVBLnNlYXJjaGVkLCB2YWx1ZTogJ1VzZXIgcGVyZm9ybWVkIGEgc2VhcmNoJyB9LFxuICB7IGtleTogRVVBLmRvd25sb2FkZWQsIHZhbHVlOiAnVXNlciBkb3dubG9hZGVkIGFuIGl0ZW0nIH0sXG5dO1xuIl19
|
package/esm2020/lib/Reusables/reusable-pages/user-activity/ua-extras/user-activity.service.mjs
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { clone } from 'lodash-es';
|
|
3
|
+
import { environment } from '@environments/environment';
|
|
4
|
+
import { UserActivity } from './user-activity.model';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class UserActivityService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.activities = [];
|
|
9
|
+
this.add = (data) => {
|
|
10
|
+
if (environment.production)
|
|
11
|
+
this.activities.push(new UserActivity(data));
|
|
12
|
+
};
|
|
13
|
+
setInterval(() => {
|
|
14
|
+
if (!this.activities?.length)
|
|
15
|
+
return;
|
|
16
|
+
const activities = clone(this.activities);
|
|
17
|
+
this.activities = [];
|
|
18
|
+
this.submissionFunc(activities).toPromise();
|
|
19
|
+
}, 1000);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
UserActivityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UserActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
|
+
UserActivityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UserActivityService, providedIn: 'root' });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: UserActivityService, decorators: [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{
|
|
27
|
+
providedIn: 'root',
|
|
28
|
+
}]
|
|
29
|
+
}], ctorParameters: function () { return []; } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpdml0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy91c2VyLWFjdGl2aXR5L3VhLWV4dHJhcy91c2VyLWFjdGl2aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxPQUFPLEVBQWlCLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUtwRSxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCO1FBRlEsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFXekMsUUFBRyxHQUFHLENBQUMsSUFBbUIsRUFBRSxFQUFFO1lBQzVCLElBQUksV0FBVyxDQUFDLFVBQVU7Z0JBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7UUFWQSxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTTtnQkFBRSxPQUFPO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDOztnSEFWVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ0BlbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVVzZXJBY3Rpdml0eSwgVXNlckFjdGl2aXR5IH0gZnJvbSAnLi91c2VyLWFjdGl2aXR5Lm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJBY3Rpdml0eVNlcnZpY2Uge1xuICBwcml2YXRlIGFjdGl2aXRpZXM6IElVc2VyQWN0aXZpdHlbXSA9IFtdO1xuICBzdWJtaXNzaW9uRnVuYzogKGFjdGl2aXRpZXM6IFVzZXJBY3Rpdml0eVtdKSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5hY3Rpdml0aWVzPy5sZW5ndGgpIHJldHVybjtcbiAgICAgIGNvbnN0IGFjdGl2aXRpZXMgPSBjbG9uZSh0aGlzLmFjdGl2aXRpZXMpO1xuICAgICAgdGhpcy5hY3Rpdml0aWVzID0gW107XG4gICAgICB0aGlzLnN1Ym1pc3Npb25GdW5jKGFjdGl2aXRpZXMpLnRvUHJvbWlzZSgpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgYWRkID0gKGRhdGE6IElVc2VyQWN0aXZpdHkpID0+IHtcbiAgICBpZiAoZW52aXJvbm1lbnQucHJvZHVjdGlvbikgdGhpcy5hY3Rpdml0aWVzLnB1c2gobmV3IFVzZXJBY3Rpdml0eShkYXRhKSk7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpHeaders, HttpRequest, } from '@angular/common/http';
|
|
3
|
+
import { Observable, throwError } from 'rxjs';
|
|
4
|
+
import { catchError, map, retry, tap } from 'rxjs/operators';
|
|
5
|
+
import { environment } from '@environments/environment';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
import * as i2 from "./cache/cache.service";
|
|
9
|
+
import * as i3 from "./cache/local-cache.service";
|
|
10
|
+
export class ApiService {
|
|
11
|
+
constructor(http, cacheS, lCacheS) {
|
|
12
|
+
this.http = http;
|
|
13
|
+
this.cacheS = cacheS;
|
|
14
|
+
this.lCacheS = lCacheS;
|
|
15
|
+
this.showRoutes = 0;
|
|
16
|
+
this.retryCount = 0;
|
|
17
|
+
this.handleRequestError = (err) => {
|
|
18
|
+
let message;
|
|
19
|
+
if (err?.error instanceof ArrayBuffer)
|
|
20
|
+
message = String.fromCharCode.apply(null, new Uint8Array(err?.error));
|
|
21
|
+
return throwError(message || err?.error?.message);
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region GET
|
|
25
|
+
this.get = (route, parameters, extras) => {
|
|
26
|
+
this.logRoutes('get', route, parameters);
|
|
27
|
+
return new Observable((res) => {
|
|
28
|
+
const query = route + this.getRequestParse(parameters);
|
|
29
|
+
// if (this.cacheS.has(query)) {
|
|
30
|
+
// res.next(this.cacheS.getItem<T>(route));
|
|
31
|
+
// }
|
|
32
|
+
this.http
|
|
33
|
+
.get(query, {
|
|
34
|
+
headers: new HttpHeaders(this.headers),
|
|
35
|
+
responseType: 'json',
|
|
36
|
+
...extras?.options,
|
|
37
|
+
})
|
|
38
|
+
.pipe(retry(this.retryCount), tap((x) => (this.showRoutes ? console.log(x) : null)), map((res) => {
|
|
39
|
+
if (Array.isArray(res))
|
|
40
|
+
if (res[0]?.code)
|
|
41
|
+
return res.sort().sort2('code', true);
|
|
42
|
+
else if (res[0]?.columnName)
|
|
43
|
+
return res.sort().sort2('columnName', true);
|
|
44
|
+
else
|
|
45
|
+
return res.sort();
|
|
46
|
+
return res;
|
|
47
|
+
}), catchError(this.handleRequestError))
|
|
48
|
+
.toPromise()
|
|
49
|
+
.then((r) => {
|
|
50
|
+
res.next(r);
|
|
51
|
+
this.cacheS.setItem(query, r);
|
|
52
|
+
res.complete();
|
|
53
|
+
})
|
|
54
|
+
.catch((err) => res.error(err));
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
this.getCodes = (route) => this.get(route).pipe(map((res) => this.sortCodes(res)));
|
|
58
|
+
this.getText = (route, parameters) => this.get(route, parameters, {
|
|
59
|
+
options: {
|
|
60
|
+
headers: new HttpHeaders(this.headers),
|
|
61
|
+
responseType: 'text',
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
this.getFile = (route, parameters) => this.get(route, parameters, {
|
|
65
|
+
options: {
|
|
66
|
+
headers: new HttpHeaders(this.headers),
|
|
67
|
+
responseType: 'arrayBuffer',
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
this.getWithBody = (route, body, extras) => {
|
|
71
|
+
this.logRoutes('get', route);
|
|
72
|
+
// debugger
|
|
73
|
+
const req = new HttpRequest('GET', route, body, extras?.options || {
|
|
74
|
+
headers: new HttpHeaders(this.headers),
|
|
75
|
+
responseType: 'json',
|
|
76
|
+
});
|
|
77
|
+
return this.http
|
|
78
|
+
.request(req)
|
|
79
|
+
.pipe(catchError(this.handleRequestError));
|
|
80
|
+
};
|
|
81
|
+
this.getFromlocal = (route, parameters, options) => {
|
|
82
|
+
return new Observable((res) => {
|
|
83
|
+
const query = route + this.getRequestParse(parameters);
|
|
84
|
+
if (this.lCacheS.has(query)) {
|
|
85
|
+
res.next(this.lCacheS.getItem(query));
|
|
86
|
+
res.complete();
|
|
87
|
+
}
|
|
88
|
+
else
|
|
89
|
+
this.get(query, null, options)
|
|
90
|
+
.toPromise()
|
|
91
|
+
.then((r) => {
|
|
92
|
+
// if (!this.cS.has(route))
|
|
93
|
+
res.next(r);
|
|
94
|
+
this.lCacheS.setItem(query, r);
|
|
95
|
+
res.complete();
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
this.getWithLocalCache = (route, parameters, options) => {
|
|
100
|
+
return new Observable((res) => {
|
|
101
|
+
const query = route + this.getRequestParse(parameters);
|
|
102
|
+
if (this.lCacheS.has(query)) {
|
|
103
|
+
res.next(this.lCacheS.getItem(query));
|
|
104
|
+
}
|
|
105
|
+
this.get(query, null, options)
|
|
106
|
+
.toPromise()
|
|
107
|
+
.then((r) => {
|
|
108
|
+
// if (!this.cS.has(route))
|
|
109
|
+
res.next(r);
|
|
110
|
+
this.lCacheS.setItem(query, r);
|
|
111
|
+
res.complete();
|
|
112
|
+
})
|
|
113
|
+
.catch((e) => {
|
|
114
|
+
res.error(e);
|
|
115
|
+
res.complete();
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region DELETE
|
|
121
|
+
this.delete = (route, options) => {
|
|
122
|
+
this.logRoutes('delete', route);
|
|
123
|
+
return this.http
|
|
124
|
+
.delete(route, options || {
|
|
125
|
+
headers: new HttpHeaders(this.headers),
|
|
126
|
+
responseType: 'json',
|
|
127
|
+
})
|
|
128
|
+
.pipe(catchError(this.handleRequestError));
|
|
129
|
+
};
|
|
130
|
+
this.deleteWithBody = (route, body, options) => {
|
|
131
|
+
this.logRoutes('delete', route);
|
|
132
|
+
const req = new HttpRequest('DELETE', route, body, options || {
|
|
133
|
+
headers: new HttpHeaders(this.headers),
|
|
134
|
+
responseType: 'json',
|
|
135
|
+
});
|
|
136
|
+
return this.http
|
|
137
|
+
.request(req)
|
|
138
|
+
.pipe(catchError(this.handleRequestError));
|
|
139
|
+
};
|
|
140
|
+
this.deleteText = (route) => this.delete(route, {
|
|
141
|
+
headers: new HttpHeaders(this.headers),
|
|
142
|
+
responseType: 'text',
|
|
143
|
+
});
|
|
144
|
+
//#endregion
|
|
145
|
+
this.sortCodes = (data) => {
|
|
146
|
+
return data?.sort2('code', true)?.sort2('code');
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
get headers() {
|
|
150
|
+
return {
|
|
151
|
+
'Content-Type': 'application/json',
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
get fileHeaders() {
|
|
155
|
+
return {
|
|
156
|
+
enctype: 'multipart/form-data',
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
logRoutes(method, route, ...extras) {
|
|
160
|
+
if (this.showRoutes) {
|
|
161
|
+
console.log(method, route, ...extras);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//#region PATCH
|
|
165
|
+
patch(route, body, options) {
|
|
166
|
+
this.logRoutes('post', route, body);
|
|
167
|
+
console.log(body);
|
|
168
|
+
return this.http
|
|
169
|
+
.patch(encodeURI(route), body, {
|
|
170
|
+
headers: new HttpHeaders(this.headers),
|
|
171
|
+
responseType: 'json',
|
|
172
|
+
...options,
|
|
173
|
+
})
|
|
174
|
+
.pipe(catchError(this.handleRequestError));
|
|
175
|
+
}
|
|
176
|
+
//#endregion
|
|
177
|
+
//#region POST
|
|
178
|
+
post(route, body, extras) {
|
|
179
|
+
this.logRoutes('post', route, body);
|
|
180
|
+
console.log(body);
|
|
181
|
+
return this.http
|
|
182
|
+
.post(encodeURI(route), body, {
|
|
183
|
+
headers: new HttpHeaders(this.headers),
|
|
184
|
+
responseType: 'json',
|
|
185
|
+
...extras?.options,
|
|
186
|
+
})
|
|
187
|
+
.pipe(catchError(this.handleRequestError));
|
|
188
|
+
}
|
|
189
|
+
postFile(route, body) {
|
|
190
|
+
return this.post(route, body, {
|
|
191
|
+
options: {
|
|
192
|
+
headers: new HttpHeaders(this.fileHeaders),
|
|
193
|
+
responseType: 'json',
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
postFileWithEndorsement(route, body) {
|
|
198
|
+
return this.post(route, body, {
|
|
199
|
+
options: {
|
|
200
|
+
headers: new HttpHeaders(this.fileHeaders).set('useEndorsement', 'true'),
|
|
201
|
+
responseType: 'json',
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
postString(route, body) {
|
|
206
|
+
console.log('requestCount', ++environment.requestCount);
|
|
207
|
+
return this.post(route, body, {
|
|
208
|
+
options: {
|
|
209
|
+
headers: new HttpHeaders({
|
|
210
|
+
'Content-Type': 'text/plain',
|
|
211
|
+
}),
|
|
212
|
+
responseType: 'text',
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
postStringWithLocalCache(route, body) {
|
|
217
|
+
return new Observable((res) => {
|
|
218
|
+
const bdy = body?.trim();
|
|
219
|
+
// debugger
|
|
220
|
+
if (this.lCacheS.has(route + '_' + bdy)) {
|
|
221
|
+
res.next(this.lCacheS.getItem(route + '_' + bdy));
|
|
222
|
+
}
|
|
223
|
+
this.postString(route, bdy)
|
|
224
|
+
.toPromise()
|
|
225
|
+
.then((r) => {
|
|
226
|
+
res.next(r);
|
|
227
|
+
this.lCacheS.setItem(route + '_' + bdy, r);
|
|
228
|
+
res.complete();
|
|
229
|
+
})
|
|
230
|
+
.catch((e) => {
|
|
231
|
+
res.error(e);
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
getRequestParse(parameters) {
|
|
236
|
+
// const nbody = new URLSearchParams();
|
|
237
|
+
// for (const key in parameters) {
|
|
238
|
+
// if (Object.prototype.hasOwnProperty.call(parameters, key)) {
|
|
239
|
+
// const element = parameters[key];
|
|
240
|
+
// if (element != null) nbody.set(key, element + '');
|
|
241
|
+
// }
|
|
242
|
+
// }
|
|
243
|
+
// const str = nbody.toString();
|
|
244
|
+
// if(parameters)
|
|
245
|
+
// debugger;
|
|
246
|
+
if (!parameters)
|
|
247
|
+
return '';
|
|
248
|
+
return ('?' +
|
|
249
|
+
Object.keys(parameters)
|
|
250
|
+
.filter((key) => parameters[key]?.toString()?.trim() != null)
|
|
251
|
+
.map((key) => `${key}=${parameters[key]?.toString()?.trim()}`)
|
|
252
|
+
.join('&'));
|
|
253
|
+
}
|
|
254
|
+
//#endregion
|
|
255
|
+
//#region PUT
|
|
256
|
+
put(route, body, extras) {
|
|
257
|
+
this.logRoutes('put', route, body);
|
|
258
|
+
let query = route + '', nbody = body;
|
|
259
|
+
if (extras?.requestType == 'queryParams') {
|
|
260
|
+
query += this.getRequestParse(body);
|
|
261
|
+
nbody = null;
|
|
262
|
+
}
|
|
263
|
+
return this.http
|
|
264
|
+
.put(query, nbody, {
|
|
265
|
+
headers: new HttpHeaders(this.headers),
|
|
266
|
+
responseType: 'json',
|
|
267
|
+
...extras?.options,
|
|
268
|
+
})
|
|
269
|
+
.pipe(catchError(this.handleRequestError));
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
ApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ApiService, deps: [{ token: i1.HttpClient }, { token: i2.CacheService }, { token: i3.LocalCacheService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
273
|
+
ApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ApiService, providedIn: 'root' });
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ApiService, decorators: [{
|
|
275
|
+
type: Injectable,
|
|
276
|
+
args: [{
|
|
277
|
+
providedIn: 'root',
|
|
278
|
+
}]
|
|
279
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.CacheService }, { type: i3.LocalCacheService }]; } });
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBTyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBWXhELE1BQU0sT0FBTyxVQUFVO0lBYXJCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBb0IsRUFDcEIsT0FBMEI7UUFGMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBZjNCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFXZixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBZ0JmLHVCQUFrQixHQUFHLENBQUMsR0FBc0IsRUFBRSxFQUFFO1lBQ3RELElBQUksT0FBTyxDQUFDO1lBQ1osSUFBSSxHQUFHLEVBQUUsS0FBSyxZQUFZLFdBQVc7Z0JBQ25DLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEUsT0FBTyxVQUFVLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1FBNkVG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O1lBQ3hDLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNqQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN0QyxZQUFZLEVBQUUsTUFBTTtZQUNwQixHQUFHLE1BQU0sRUFBRSxPQUFPO1NBQ25CLENBQUM7YUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFvQixDQUFDO0lBQ2xFLENBQUM7O3VHQTlRVSxVQUFVOzJHQUFWLFVBQVUsY0FGVCxNQUFNOzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cENsaWVudCxcbiAgSHR0cEVycm9yUmVzcG9uc2UsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaWlmLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQ29kZURlc2NyaXB0aW9uLCBJQ29kZVRpdGxlIH0gZnJvbSAnLi4vU2hhcmVkL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ0BlbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZS9jYWNoZS5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZS9sb2NhbC1jYWNoZS5zZXJ2aWNlJztcbmV4cG9ydCBpbnRlcmZhY2UgSVJlc3BvbnNlIHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICByZXN1bHQ6IGFueTtcbiAgc3RhdHVzOiAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ2ZhaWx1cmUnO1xuICBzdGF0dXNDb2RlOiAnU00wMDAnIHwgJ1NNMDAxJyB8ICdTTTAwMicgfCAnU00wMDMnO1xufVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHNob3dSb3V0ZXMgPSAwO1xuICBwcml2YXRlIGdldCBoZWFkZXJzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBnZXQgZmlsZUhlYWRlcnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVuY3R5cGU6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJyxcbiAgICB9O1xuICB9XG4gIHByaXZhdGUgcmV0cnlDb3VudCA9IDA7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHB1YmxpYyBjYWNoZVM6IENhY2hlU2VydmljZSxcbiAgICBwdWJsaWMgbENhY2hlUzogTG9jYWxDYWNoZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgbG9nUm91dGVzKFxuICAgIG1ldGhvZDogJ2dldCcgfCAncG9zdCcgfCAncHV0JyB8ICdkZWxldGUnLFxuICAgIHJvdXRlLFxuICAgIC4uLmV4dHJhc1xuICApIHtcbiAgICBpZiAodGhpcy5zaG93Um91dGVzKSB7XG4gICAgICBjb25zb2xlLmxvZyhtZXRob2QsIHJvdXRlLCAuLi5leHRyYXMpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGhhbmRsZVJlcXVlc3RFcnJvciA9IChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKGVycj8uZXJyb3IgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilcbiAgICAgIG1lc3NhZ2UgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50OEFycmF5KGVycj8uZXJyb3IpKTtcbiAgICByZXR1cm4gdGhyb3dFcnJvcihtZXNzYWdlIHx8IGVycj8uZXJyb3I/Lm1lc3NhZ2UpO1xuICB9O1xuXG4gIC8vI3JlZ2lvbiBQQVRDSFxuICBwYXRjaDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5Pywgb3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdwb3N0Jywgcm91dGUsIGJvZHkpO1xuICAgIGNvbnNvbGUubG9nKGJvZHkpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wYXRjaChlbmNvZGVVUkkocm91dGUpLCBib2R5LCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuICAvLyNyZWdpb24gUE9TVFxuICBwb3N0PFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/LCBleHRyYXM/OiBJRXh0cmFzKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ3Bvc3QnLCByb3V0ZSwgYm9keSk7XG4gICAgY29uc29sZS5sb2coYm9keSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoZW5jb2RlVVJJKHJvdXRlKSwgYm9keSwge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICB9XG4gIHBvc3RGaWxlPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk6IEZvcm1EYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMucG9zdDxUPihyb3V0ZSwgYm9keSwge1xuICAgICAgb3B0aW9uczoge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5maWxlSGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwb3N0RmlsZVdpdGhFbmRvcnNlbWVudDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5OiBGb3JtRGF0YSkge1xuICAgIHJldHVybiB0aGlzLnBvc3Q8VD4ocm91dGUsIGJvZHksIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuZmlsZUhlYWRlcnMpLnNldChcbiAgICAgICAgICAndXNlRW5kb3JzZW1lbnQnLFxuICAgICAgICAgICd0cnVlJ1xuICAgICAgICApLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcG9zdFN0cmluZyhyb3V0ZTogc3RyaW5nLCBib2R5Pykge1xuICAgIGNvbnNvbGUubG9nKCdyZXF1ZXN0Q291bnQnLCArK2Vudmlyb25tZW50LnJlcXVlc3RDb3VudCk7XG4gICAgcmV0dXJuIHRoaXMucG9zdDxzdHJpbmc+KHJvdXRlLCBib2R5LCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgfSksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwb3N0U3RyaW5nV2l0aExvY2FsQ2FjaGUocm91dGU6IHN0cmluZywgYm9keTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgYmR5ID0gYm9keT8udHJpbSgpO1xuICAgICAgLy8gZGVidWdnZXJcbiAgICAgIGlmICh0aGlzLmxDYWNoZVMuaGFzKHJvdXRlICsgJ18nICsgYmR5KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxzdHJpbmc+KHJvdXRlICsgJ18nICsgYmR5KSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucG9zdFN0cmluZyhyb3V0ZSwgYmR5KVxuICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShyb3V0ZSArICdfJyArIGJkeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIHJlcy5lcnJvcihlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIEdFVFxuICBnZXQgPSA8VCA9IGFueT4oXG4gICAgcm91dGU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzPzogT2JqZWN0LFxuICAgIGV4dHJhcz86IElFeHRyYXNcbiAgKTogT2JzZXJ2YWJsZTxUPiA9PiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ2dldCcsIHJvdXRlLCBwYXJhbWV0ZXJzKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSByb3V0ZSArIHRoaXMuZ2V0UmVxdWVzdFBhcnNlKHBhcmFtZXRlcnMpO1xuICAgICAgLy8gaWYgKHRoaXMuY2FjaGVTLmhhcyhxdWVyeSkpIHtcbiAgICAgIC8vICAgcmVzLm5leHQodGhpcy5jYWNoZVMuZ2V0SXRlbTxUPihyb3V0ZSkpO1xuICAgICAgLy8gfVxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQocXVlcnksIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHJldHJ5KHRoaXMucmV0cnlDb3VudCksXG4gICAgICAgICAgdGFwKCh4KSA9PiAodGhpcy5zaG93Um91dGVzID8gY29uc29sZS5sb2coeCkgOiBudWxsKSksXG4gICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSlcbiAgICAgICAgICAgICAgaWYgKHJlc1swXT8uY29kZSkgcmV0dXJuIHJlcy5zb3J0KCkuc29ydDIoJ2NvZGUnLCB0cnVlKTtcbiAgICAgICAgICAgICAgZWxzZSBpZiAocmVzWzBdPy5jb2x1bW5OYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc29ydCgpLnNvcnQyKCdjb2x1bW5OYW1lJywgdHJ1ZSk7XG4gICAgICAgICAgICAgIGVsc2UgcmV0dXJuIHJlcy5zb3J0KCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpXG4gICAgICAgIClcbiAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgIC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgcmVzLm5leHQocik7XG4gICAgICAgICAgdGhpcy5jYWNoZVMuc2V0SXRlbShxdWVyeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiByZXMuZXJyb3IoZXJyKSk7XG4gICAgfSk7XG4gIH07XG5cbiAgZ2V0Q29kZXMgPSA8VCA9IElDb2RlVGl0bGUgJiBJQ29kZURlc2NyaXB0aW9uPihyb3V0ZTogc3RyaW5nKSA9PlxuICAgIHRoaXMuZ2V0PFRbXT4ocm91dGUpLnBpcGUobWFwKChyZXMpID0+IHRoaXMuc29ydENvZGVzKHJlcykpKTtcblxuICBnZXRUZXh0ID0gPFQgPSBzdHJpbmc+KHJvdXRlOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBPYmplY3QpID0+XG4gICAgdGhpcy5nZXQ8VD4ocm91dGUsIHBhcmFtZXRlcnMsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgZ2V0RmlsZSA9IDxUID0gc3RyaW5nPihyb3V0ZTogc3RyaW5nLCBwYXJhbWV0ZXJzPzogT2JqZWN0KSA9PlxuICAgIHRoaXMuZ2V0PFQ+KHJvdXRlLCBwYXJhbWV0ZXJzLCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdhcnJheUJ1ZmZlcicsXG4gICAgICB9LFxuICAgIH0pO1xuICBnZXRXaXRoQm9keSA9IDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5PzogYW55LCBleHRyYXM/OiBJRXh0cmFzKSA9PiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ2dldCcsIHJvdXRlKTtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdChcbiAgICAgICdHRVQnLFxuICAgICAgcm91dGUsXG4gICAgICBib2R5LFxuICAgICAgZXh0cmFzPy5vcHRpb25zIHx8IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnJlcXVlc3Q8VD4ocmVxKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8VD47XG4gIH07XG5cbiAgZ2V0RnJvbWxvY2FsID0gPFQgPSBhbnk+KFxuICAgIHJvdXRlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVycz86IE9iamVjdCxcbiAgICBvcHRpb25zPzogYW55XG4gICkgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigocmVzKSA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IHJvdXRlICsgdGhpcy5nZXRSZXF1ZXN0UGFyc2UocGFyYW1ldGVycyk7XG4gICAgICBpZiAodGhpcy5sQ2FjaGVTLmhhcyhxdWVyeSkpIHtcbiAgICAgICAgcmVzLm5leHQodGhpcy5sQ2FjaGVTLmdldEl0ZW08VD4ocXVlcnkpKTtcbiAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdGhpcy5nZXQocXVlcnksIG51bGwsIG9wdGlvbnMpXG4gICAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAgIC8vIGlmICghdGhpcy5jUy5oYXMocm91dGUpKVxuICAgICAgICAgICAgcmVzLm5leHQocik7XG4gICAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShxdWVyeSwgcik7XG4gICAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgZ2V0V2l0aExvY2FsQ2FjaGUgPSA8VCA9IGFueT4oXG4gICAgcm91dGU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzPzogT2JqZWN0LFxuICAgIG9wdGlvbnM/OiBhbnlcbiAgKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFQ+KChyZXMpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gcm91dGUgKyB0aGlzLmdldFJlcXVlc3RQYXJzZShwYXJhbWV0ZXJzKTtcbiAgICAgIGlmICh0aGlzLmxDYWNoZVMuaGFzKHF1ZXJ5KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxUPihxdWVyeSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXQocXVlcnksIG51bGwsIG9wdGlvbnMpXG4gICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgIC8vIGlmICghdGhpcy5jUy5oYXMocm91dGUpKVxuICAgICAgICAgIHJlcy5uZXh0KHIpO1xuICAgICAgICAgIHRoaXMubENhY2hlUy5zZXRJdGVtKHF1ZXJ5LCByKTtcbiAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgcmVzLmVycm9yKGUpO1xuICAgICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgZ2V0UmVxdWVzdFBhcnNlKHBhcmFtZXRlcnM/OiBPYmplY3QpIHtcbiAgICAvLyBjb25zdCBuYm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAvLyBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbWV0ZXJzKSB7XG4gICAgLy8gICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmFtZXRlcnMsIGtleSkpIHtcbiAgICAvLyAgICAgY29uc3QgZWxlbWVudCA9IHBhcmFtZXRlcnNba2V5XTtcbiAgICAvLyAgICAgaWYgKGVsZW1lbnQgIT0gbnVsbCkgbmJvZHkuc2V0KGtleSwgZWxlbWVudCArICcnKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLy8gY29uc3Qgc3RyID0gbmJvZHkudG9TdHJpbmcoKTtcbiAgICAvLyBpZihwYXJhbWV0ZXJzKVxuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICghcGFyYW1ldGVycykgcmV0dXJuICcnO1xuICAgIHJldHVybiAoXG4gICAgICAnPycgK1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1ldGVycylcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBwYXJhbWV0ZXJzW2tleV0/LnRvU3RyaW5nKCk/LnRyaW0oKSAhPSBudWxsKVxuICAgICAgICAubWFwKChrZXkpID0+IGAke2tleX09JHtwYXJhbWV0ZXJzW2tleV0/LnRvU3RyaW5nKCk/LnRyaW0oKX1gKVxuICAgICAgICAuam9pbignJicpXG4gICAgKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUFVUXG4gIHB1dDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5PywgZXh0cmFzPzogSUV4dHJhcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdwdXQnLCByb3V0ZSwgYm9keSk7XG4gICAgbGV0IHF1ZXJ5ID0gcm91dGUgKyAnJyxcbiAgICAgIG5ib2R5ID0gYm9keTtcbiAgICBpZiAoZXh0cmFzPy5yZXF1ZXN0VHlwZSA9PSAncXVlcnlQYXJhbXMnKSB7XG4gICAgICBxdWVyeSArPSB0aGlzLmdldFJlcXVlc3RQYXJzZShib2R5KTtcbiAgICAgIG5ib2R5ID0gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnB1dChxdWVyeSwgbmJvZHksIHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gREVMRVRFXG4gIGRlbGV0ZSA9IDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBvcHRpb25zPykgPT4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdkZWxldGUnLCByb3V0ZSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmRlbGV0ZTxUPihcbiAgICAgICAgcm91dGUsXG4gICAgICAgIG9wdGlvbnMgfHwge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICB9O1xuICBkZWxldGVXaXRoQm9keSA9IDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb25zPykgPT4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdkZWxldGUnLCByb3V0ZSk7XG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KFxuICAgICAgJ0RFTEVURScsXG4gICAgICByb3V0ZSxcbiAgICAgIGJvZHksXG4gICAgICBvcHRpb25zIHx8IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnJlcXVlc3Q8VD4ocmVxKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfTtcbiAgZGVsZXRlVGV4dCA9IChyb3V0ZTogc3RyaW5nKSA9PlxuICAgIHRoaXMuZGVsZXRlPHN0cmluZz4ocm91dGUsIHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgfSk7XG4gIC8vI2VuZHJlZ2lvblxuXG4gIHNvcnRDb2RlcyA9IDxUPihkYXRhOiBUW10pID0+IHtcbiAgICByZXR1cm4gZGF0YT8uc29ydDIoJ2NvZGUnLCB0cnVlKT8uc29ydDIoJ2NvZGUnKSBhcyBhbnkgYXMgVFtdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgSUV4dHJhcyB7XG4gIG5vRm9ybWF0PzogYm9vbGVhbjtcbiAgb3B0aW9ucz86IGFueTtcbiAgcmVxdWVzdFR5cGU/OiAncXVlcnlQYXJhbXMnO1xufVxuIl19
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { environment } from '@environments/environment';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/platform-browser";
|
|
5
|
+
import * as i2 from "./translation.service";
|
|
6
|
+
export class AppService {
|
|
7
|
+
constructor(titleS, translator) {
|
|
8
|
+
this.titleS = titleS;
|
|
9
|
+
this.translator = translator;
|
|
10
|
+
this.topMenu = environment.menus;
|
|
11
|
+
this.bottomMenu = [];
|
|
12
|
+
this.systemMetadataMap = new Map([]);
|
|
13
|
+
this.addTitle = (title, translate = environment.translate) => {
|
|
14
|
+
environment.pageTitle = title;
|
|
15
|
+
if (!translate)
|
|
16
|
+
this.titleS.setTitle((title ? title + ' | ' : '') +
|
|
17
|
+
environment.appName +
|
|
18
|
+
' | ' +
|
|
19
|
+
environment.name);
|
|
20
|
+
else
|
|
21
|
+
this.translator
|
|
22
|
+
.translateHTML((title ? title + ' | ' : '') +
|
|
23
|
+
environment.appName +
|
|
24
|
+
' | ' +
|
|
25
|
+
environment.name)
|
|
26
|
+
.subscribe((r) => {
|
|
27
|
+
this.titleS.setTitle(r);
|
|
28
|
+
}, (e) => {
|
|
29
|
+
this.addTitle(title, false);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
this.filterNavMenuFunc = (value) => !value.locations?.size;
|
|
33
|
+
this.busLines = [];
|
|
34
|
+
}
|
|
35
|
+
get system() {
|
|
36
|
+
return this._system;
|
|
37
|
+
}
|
|
38
|
+
set system(value) {
|
|
39
|
+
this._system = value;
|
|
40
|
+
environment.currentSystem = value;
|
|
41
|
+
document.getElementsByTagName('body')[0].className =
|
|
42
|
+
value?.toString() || value;
|
|
43
|
+
this.bottomMenu = this.topMenu.find((x) => x.system == value)?.subs;
|
|
44
|
+
// debugger
|
|
45
|
+
document.documentElement.style.setProperty('--primary', this.getCurrentSystemMetadata.colourCode);
|
|
46
|
+
}
|
|
47
|
+
get currentTopMenu() {
|
|
48
|
+
return this._currentTopMenu;
|
|
49
|
+
}
|
|
50
|
+
set currentTopMenu(value) {
|
|
51
|
+
this._currentTopMenu = value;
|
|
52
|
+
this.bottomMenu = value.subs;
|
|
53
|
+
// debugger
|
|
54
|
+
}
|
|
55
|
+
async setCurrentTopMenu(system) {
|
|
56
|
+
this.currentTopMenu = this.topMenu.find((x) => x.system == system);
|
|
57
|
+
}
|
|
58
|
+
get getFirstAvailableSystem() {
|
|
59
|
+
return this.systemMetadataMap.get(environment.activeSystems?.length
|
|
60
|
+
? environment.activeSystems[0]
|
|
61
|
+
: this.systemMetadataMap.keys[0]);
|
|
62
|
+
}
|
|
63
|
+
get getCurrentSystemMetadata() {
|
|
64
|
+
return this.systemMetadataMap.get(this.system);
|
|
65
|
+
}
|
|
66
|
+
setDefaultClass() {
|
|
67
|
+
document.getElementsByTagName('body')[0].className =
|
|
68
|
+
this.getFirstAvailableSystem.name?.toString();
|
|
69
|
+
}
|
|
70
|
+
get busLine() {
|
|
71
|
+
return this.getCurrentSystemMetadata?.busline;
|
|
72
|
+
}
|
|
73
|
+
get activeSystems() {
|
|
74
|
+
return environment.activeSystems?.length
|
|
75
|
+
? this.topMenu.filter((x) => environment.activeSystems.includes(x.system))
|
|
76
|
+
: this.topMenu;
|
|
77
|
+
}
|
|
78
|
+
get hasBusLine() {
|
|
79
|
+
return !!this.getCurrentSystemMetadata?.busline;
|
|
80
|
+
}
|
|
81
|
+
//#region pagename
|
|
82
|
+
get pageName() {
|
|
83
|
+
return this._pageName;
|
|
84
|
+
}
|
|
85
|
+
set pageName(value) {
|
|
86
|
+
this._pageName = value;
|
|
87
|
+
this.addTitle(this._pageName);
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
setMetaTheme() {
|
|
91
|
+
const metaTag = document.getElementById('metaThemeColour');
|
|
92
|
+
metaTag.content = this.getCurrentSystemMetadata.colourCode;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
AppService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: AppService, deps: [{ token: i1.Title }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
96
|
+
AppService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: AppService, providedIn: 'root' });
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: AppService, decorators: [{
|
|
98
|
+
type: Injectable,
|
|
99
|
+
args: [{
|
|
100
|
+
providedIn: 'root',
|
|
101
|
+
}]
|
|
102
|
+
}], ctorParameters: function () { return [{ type: i1.Title }, { type: i2.TranslationService }]; } });
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2VydmljZXMvYXBwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFheEQsTUFBTSxPQUFPLFVBQVU7SUE0Q3JCLFlBQW1CLE1BQWEsRUFBUyxVQUE4QjtRQUFwRCxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUEzQ3ZFLFlBQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBZSxFQUFFLENBQUM7UUE4QjVCLHNCQUFpQixHQUFHLElBQUksR0FBRyxDQUFtQixFQUFFLENBQUMsQ0FBQztRQXNDbEQsYUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdEQsV0FBVyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVM7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2xCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzFCLFdBQVcsQ0FBQyxPQUFPO29CQUNuQixLQUFLO29CQUNMLFdBQVcsQ0FBQyxJQUFJLENBQ25CLENBQUM7O2dCQUVGLElBQUksQ0FBQyxVQUFVO3FCQUNaLGFBQWEsQ0FDWixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMxQixXQUFXLENBQUMsT0FBTztvQkFDbkIsS0FBSztvQkFDTCxXQUFXLENBQUMsSUFBSSxDQUNuQjtxQkFDQSxTQUFTLENBQ1IsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDSixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxFQUNELENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLENBQUMsQ0FDRixDQUFDO1FBQ1IsQ0FBQyxDQUFDO1FBUUYsc0JBQWlCLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7UUFDaEUsYUFBUSxHQUFrQyxFQUFFLENBQUM7SUE1RDZCLENBQUM7SUF0QzNFLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixXQUFXLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUNsQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNoRCxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUssS0FBYSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDO1FBQ3BFLFdBQVc7UUFDWCxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3hDLFdBQVcsRUFDWCxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUN6QyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQVcsY0FBYyxDQUFDLEtBQWU7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzdCLFdBQVc7SUFDYixDQUFDO0lBQ0QsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQWU7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUMvQixXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU07WUFDL0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUlELGVBQWU7UUFDYixRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNoRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUM7SUFDaEQsQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNO1lBQ3RDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUEyQkQsWUFBWTtJQUNaLFlBQVk7UUFDVixNQUFNLE9BQU8sR0FBb0IsUUFBUSxDQUFDLGNBQWMsQ0FDdEQsaUJBQWlCLENBQ1gsQ0FBQztRQUNULE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQztJQUM3RCxDQUFDOzt1R0F0R1UsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ0BlbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHtcbiAgRVN5c3RlbSxcbiAgRVN5c3RlbUJ1c0xpbmUsXG4gIElTeXN0ZW0sXG4gIElWYWx1ZUxhYmVsLFxufSBmcm9tICcuLi9TaGFyZWQvbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vU2hhcmVkL21vZGVscy9JTWVudUl0ZW0nO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2Uge1xuICB0b3BNZW51ID0gZW52aXJvbm1lbnQubWVudXM7XG4gIGJvdHRvbU1lbnU6IE1lbnVJdGVtW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFRvcE1lbnU6IE1lbnVJdGVtO1xuICBwcml2YXRlIF9zeXN0ZW06IEVTeXN0ZW07XG4gIHByaXZhdGUgX3BhZ2VOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgc3lzdGVtKCk6IEVTeXN0ZW0ge1xuICAgIHJldHVybiB0aGlzLl9zeXN0ZW07XG4gIH1cbiAgcHVibGljIHNldCBzeXN0ZW0odmFsdWU6IEVTeXN0ZW0pIHtcbiAgICB0aGlzLl9zeXN0ZW0gPSB2YWx1ZTtcbiAgICBlbnZpcm9ubWVudC5jdXJyZW50U3lzdGVtID0gdmFsdWU7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5jbGFzc05hbWUgPVxuICAgICAgdmFsdWU/LnRvU3RyaW5nKCkgfHwgKHZhbHVlIGFzIGFueSk7XG4gICAgdGhpcy5ib3R0b21NZW51ID0gdGhpcy50b3BNZW51LmZpbmQoKHgpID0+IHguc3lzdGVtID09IHZhbHVlKT8uc3VicztcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLXByaW1hcnknLFxuICAgICAgdGhpcy5nZXRDdXJyZW50U3lzdGVtTWV0YWRhdGEuY29sb3VyQ29kZVxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldCBjdXJyZW50VG9wTWVudSgpOiBNZW51SXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUb3BNZW51O1xuICB9XG4gIHB1YmxpYyBzZXQgY3VycmVudFRvcE1lbnUodmFsdWU6IE1lbnVJdGVtKSB7XG4gICAgdGhpcy5fY3VycmVudFRvcE1lbnUgPSB2YWx1ZTtcbiAgICB0aGlzLmJvdHRvbU1lbnUgPSB2YWx1ZS5zdWJzO1xuICAgIC8vIGRlYnVnZ2VyXG4gIH1cbiAgYXN5bmMgc2V0Q3VycmVudFRvcE1lbnUoc3lzdGVtOiBFU3lzdGVtKSB7XG4gICAgdGhpcy5jdXJyZW50VG9wTWVudSA9IHRoaXMudG9wTWVudS5maW5kKCh4KSA9PiB4LnN5c3RlbSA9PSBzeXN0ZW0pO1xuICB9XG4gIHN5c3RlbU1ldGFkYXRhTWFwID0gbmV3IE1hcDxFU3lzdGVtLCBJU3lzdGVtPihbXSk7XG4gIGdldCBnZXRGaXJzdEF2YWlsYWJsZVN5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW1NZXRhZGF0YU1hcC5nZXQoXG4gICAgICBlbnZpcm9ubWVudC5hY3RpdmVTeXN0ZW1zPy5sZW5ndGhcbiAgICAgICAgPyBlbnZpcm9ubWVudC5hY3RpdmVTeXN0ZW1zWzBdXG4gICAgICAgIDogdGhpcy5zeXN0ZW1NZXRhZGF0YU1hcC5rZXlzWzBdXG4gICAgKTtcbiAgfVxuICBnZXQgZ2V0Q3VycmVudFN5c3RlbU1ldGFkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLnN5c3RlbU1ldGFkYXRhTWFwLmdldCh0aGlzLnN5c3RlbSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGl0bGVTOiBUaXRsZSwgcHVibGljIHRyYW5zbGF0b3I6IFRyYW5zbGF0aW9uU2VydmljZSkge31cblxuICBzZXREZWZhdWx0Q2xhc3MoKSB7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5jbGFzc05hbWUgPVxuICAgICAgdGhpcy5nZXRGaXJzdEF2YWlsYWJsZVN5c3RlbS5uYW1lPy50b1N0cmluZygpO1xuICB9XG4gIGdldCBidXNMaW5lKCkge1xuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRTeXN0ZW1NZXRhZGF0YT8uYnVzbGluZTtcbiAgfVxuICBnZXQgYWN0aXZlU3lzdGVtcygpIHtcbiAgICByZXR1cm4gZW52aXJvbm1lbnQuYWN0aXZlU3lzdGVtcz8ubGVuZ3RoXG4gICAgICA/IHRoaXMudG9wTWVudS5maWx0ZXIoKHgpID0+IGVudmlyb25tZW50LmFjdGl2ZVN5c3RlbXMuaW5jbHVkZXMoeC5zeXN0ZW0pKVxuICAgICAgOiB0aGlzLnRvcE1lbnU7XG4gIH1cbiAgZ2V0IGhhc0J1c0xpbmUoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRDdXJyZW50U3lzdGVtTWV0YWRhdGE/LmJ1c2xpbmU7XG4gIH1cblxuICAvLyNyZWdpb24gcGFnZW5hbWVcbiAgZ2V0IHBhZ2VOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9wYWdlTmFtZTtcbiAgfVxuICBzZXQgcGFnZU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3BhZ2VOYW1lID0gdmFsdWU7XG4gICAgdGhpcy5hZGRUaXRsZSh0aGlzLl9wYWdlTmFtZSk7XG4gIH1cbiAgYWRkVGl0bGUgPSAodGl0bGUsIHRyYW5zbGF0ZSA9IGVudmlyb25tZW50LnRyYW5zbGF0ZSkgPT4ge1xuICAgIGVudmlyb25tZW50LnBhZ2VUaXRsZSA9IHRpdGxlO1xuICAgIGlmICghdHJhbnNsYXRlKVxuICAgICAgdGhpcy50aXRsZVMuc2V0VGl0bGUoXG4gICAgICAgICh0aXRsZSA/IHRpdGxlICsgJyB8ICcgOiAnJykgK1xuICAgICAgICAgIGVudmlyb25tZW50LmFwcE5hbWUgK1xuICAgICAgICAgICcgfCAnICtcbiAgICAgICAgICBlbnZpcm9ubWVudC5uYW1lXG4gICAgICApO1xuICAgIGVsc2VcbiAgICAgIHRoaXMudHJhbnNsYXRvclxuICAgICAgICAudHJhbnNsYXRlSFRNTChcbiAgICAgICAgICAodGl0bGUgPyB0aXRsZSArICcgfCAnIDogJycpICtcbiAgICAgICAgICAgIGVudmlyb25tZW50LmFwcE5hbWUgK1xuICAgICAgICAgICAgJyB8ICcgK1xuICAgICAgICAgICAgZW52aXJvbm1lbnQubmFtZVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKHIpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGl0bGVTLnNldFRpdGxlKHIpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWRkVGl0bGUodGl0bGUsIGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gIH07XG4gIC8vI2VuZHJlZ2lvblxuICBzZXRNZXRhVGhlbWUoKSB7XG4gICAgY29uc3QgbWV0YVRhZzogSFRNTE1ldGFFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAnbWV0YVRoZW1lQ29sb3VyJ1xuICAgICkgYXMgYW55O1xuICAgIG1ldGFUYWcuY29udGVudCA9IHRoaXMuZ2V0Q3VycmVudFN5c3RlbU1ldGFkYXRhLmNvbG91ckNvZGU7XG4gIH1cbiAgZmlsdGVyTmF2TWVudUZ1bmMgPSAodmFsdWU6IE1lbnVJdGVtKSA9PiAhdmFsdWUubG9jYXRpb25zPy5zaXplO1xuICBidXNMaW5lczogSVZhbHVlTGFiZWw8RVN5c3RlbUJ1c0xpbmU+W10gPSBbXTtcbn1cbiJdfQ==
|