@eo-sdk/client 10.6.10 → 10.6.12
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/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
- package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts.map +1 -1
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +2 -0
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
- package/app/eo-framework/util/services/utilities.service.d.ts +190 -0
- package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +18 -1
- package/esm2020/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
- package/esm2020/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +2 -1
- package/esm2020/app/eo-framework/grid/grid.component.mjs +2 -2
- package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +3 -1
- package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +10 -3
- package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
- package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +7 -7
- package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
- package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
- package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +2 -2
- package/esm2020/app/eo-framework/util/services/utilities.service.mjs +4 -1
- package/fesm2015/eo-sdk-client.mjs +74 -46
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +74 -46
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/misc/scripts/exclude-core-ng-package.js +11 -0
- package/misc/scripts/prebuild-about-state.js +2 -3
- package/package.json +3 -11
- package/esm2020/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.mjs +0 -5
- package/esm2020/projects/eo-sdk/core/lib/config/core-config.mjs +0 -23
- package/esm2020/projects/eo-sdk/core/lib/config/core-init.service.mjs +0 -71
- package/esm2020/projects/eo-sdk/core/lib/config/core-init.tokens.mjs +0 -8
- package/esm2020/projects/eo-sdk/core/lib/config/initialize-module.mjs +0 -11
- package/esm2020/projects/eo-sdk/core/lib/config/missing-translation-handler.mjs +0 -15
- package/esm2020/projects/eo-sdk/core/lib/config/translate-json-loader.mjs +0 -130
- package/esm2020/projects/eo-sdk/core/lib/environment.enaio.mjs +0 -12
- package/esm2020/projects/eo-sdk/core/lib/eo-core-shared.module.mjs +0 -24
- package/esm2020/projects/eo-sdk/core/lib/eo-core.module.mjs +0 -117
- package/esm2020/projects/eo-sdk/core/lib/interface/change-password.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/interface/event.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/interface/http-options.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/interface/logger.interface.mjs +0 -7
- package/esm2020/projects/eo-sdk/core/lib/interface/organization-objects.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/interface/tree-node.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/model/baseparams.model.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/model/bpm.model.mjs +0 -70
- package/esm2020/projects/eo-sdk/core/lib/model/custom-action.model.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/model/dms-object-history.model.mjs +0 -30
- package/esm2020/projects/eo-sdk/core/lib/model/dms-object.model.mjs +0 -138
- package/esm2020/projects/eo-sdk/core/lib/model/eo-error.model.mjs +0 -37
- package/esm2020/projects/eo-sdk/core/lib/model/eo-user.model.mjs +0 -86
- package/esm2020/projects/eo-sdk/core/lib/model/inbox-item.model.mjs +0 -36
- package/esm2020/projects/eo-sdk/core/lib/model/object-type.model.mjs +0 -39
- package/esm2020/projects/eo-sdk/core/lib/model/org.model.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/model/prepared-item.model.mjs +0 -35
- package/esm2020/projects/eo-sdk/core/lib/model/range-value.model.mjs +0 -45
- package/esm2020/projects/eo-sdk/core/lib/model/upload-file-item.model.mjs +0 -17
- package/esm2020/projects/eo-sdk/core/lib/model/upload-target.model.mjs +0 -50
- package/esm2020/projects/eo-sdk/core/lib/model/work-item-history.model.mjs +0 -54
- package/esm2020/projects/eo-sdk/core/lib/service/auth/auth-interceptor.mjs +0 -29
- package/esm2020/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +0 -215
- package/esm2020/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/backend/backend.service.mjs +0 -360
- package/esm2020/projects/eo-sdk/core/lib/service/bpm/bpm.service.mjs +0 -286
- package/esm2020/projects/eo-sdk/core/lib/service/cache/app-cache.service.mjs +0 -117
- package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.mjs +0 -60
- package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.mjs +0 -6
- package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.mjs +0 -100
- package/esm2020/projects/eo-sdk/core/lib/service/config/config.enum.mjs +0 -6
- package/esm2020/projects/eo-sdk/core/lib/service/config/config.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/config/config.service.mjs +0 -135
- package/esm2020/projects/eo-sdk/core/lib/service/dms/dms.service.mjs +0 -507
- package/esm2020/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/events/event.service.mjs +0 -44
- package/esm2020/projects/eo-sdk/core/lib/service/events/events.mjs +0 -27
- package/esm2020/projects/eo-sdk/core/lib/service/inbox/inbox.service.mjs +0 -111
- package/esm2020/projects/eo-sdk/core/lib/service/logger/console-log.service.mjs +0 -41
- package/esm2020/projects/eo-sdk/core/lib/service/logger/logger.mjs +0 -47
- package/esm2020/projects/eo-sdk/core/lib/service/notifications/notifications.service.mjs +0 -136
- package/esm2020/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/prepare/prepare.service.mjs +0 -305
- package/esm2020/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/search/search-query.model.mjs +0 -510
- package/esm2020/projects/eo-sdk/core/lib/service/search/search.service.mjs +0 -484
- package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +0 -60
- package/esm2020/projects/eo-sdk/core/lib/service/storage/local-storage.service.mjs +0 -111
- package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.mjs +0 -216
- package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.mjs +0 -98
- package/esm2020/projects/eo-sdk/core/lib/service/system/system.service.mjs +0 -345
- package/esm2020/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/system-status/system-status.service.mjs +0 -104
- package/esm2020/projects/eo-sdk/core/lib/service/system-status/system.status.enum.mjs +0 -9
- package/esm2020/projects/eo-sdk/core/lib/service/system-status/system.status.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/upload/upload.service.mjs +0 -46
- package/esm2020/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.mjs +0 -83
- package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +0 -399
- package/esm2020/projects/eo-sdk/core/lib/util/utils.mjs +0 -304
- package/esm2020/projects/eo-sdk/core/public_api.mjs +0 -85
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +0 -6124
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +0 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +0 -6139
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +0 -1
- package/projects/eo-sdk/core/README.md +0 -113
- package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.d.ts.map +0 -1
- package/projects/eo-sdk/core/index.d.ts +0 -6
- package/projects/eo-sdk/core/lib/config/core-config.d.ts +0 -14
- package/projects/eo-sdk/core/lib/config/core-config.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/config/core-init.service.d.ts +0 -33
- package/projects/eo-sdk/core/lib/config/core-init.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/config/core-init.tokens.d.ts +0 -8
- package/projects/eo-sdk/core/lib/config/core-init.tokens.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/config/initialize-module.d.ts +0 -7
- package/projects/eo-sdk/core/lib/config/initialize-module.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/config/missing-translation-handler.d.ts +0 -14
- package/projects/eo-sdk/core/lib/config/missing-translation-handler.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/config/translate-json-loader.d.ts +0 -21
- package/projects/eo-sdk/core/lib/config/translate-json-loader.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/environment.enaio.d.ts +0 -6
- package/projects/eo-sdk/core/lib/environment.enaio.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/eo-core-shared.module.d.ts +0 -12
- package/projects/eo-sdk/core/lib/eo-core-shared.module.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/eo-core.module.d.ts +0 -46
- package/projects/eo-sdk/core/lib/eo-core.module.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/interface/change-password.interface.d.ts +0 -8
- package/projects/eo-sdk/core/lib/interface/change-password.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/interface/event.interface.d.ts +0 -14
- package/projects/eo-sdk/core/lib/interface/event.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/interface/http-options.interface.d.ts +0 -17
- package/projects/eo-sdk/core/lib/interface/http-options.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/interface/logger.interface.d.ts +0 -20
- package/projects/eo-sdk/core/lib/interface/logger.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/interface/organization-objects.interface.d.ts +0 -20
- package/projects/eo-sdk/core/lib/interface/organization-objects.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/interface/tree-node.interface.d.ts +0 -24
- package/projects/eo-sdk/core/lib/interface/tree-node.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/baseparams.model.d.ts +0 -58
- package/projects/eo-sdk/core/lib/model/baseparams.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/bpm.model.d.ts +0 -253
- package/projects/eo-sdk/core/lib/model/bpm.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/custom-action.model.d.ts +0 -34
- package/projects/eo-sdk/core/lib/model/custom-action.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts +0 -59
- package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts +0 -137
- package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/eo-error.model.d.ts +0 -19
- package/projects/eo-sdk/core/lib/model/eo-error.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/eo-user.model.d.ts +0 -107
- package/projects/eo-sdk/core/lib/model/eo-user.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts +0 -71
- package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/object-type.model.d.ts +0 -125
- package/projects/eo-sdk/core/lib/model/object-type.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/org.model.d.ts +0 -94
- package/projects/eo-sdk/core/lib/model/org.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/prepared-item.model.d.ts +0 -190
- package/projects/eo-sdk/core/lib/model/prepared-item.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/range-value.model.d.ts +0 -22
- package/projects/eo-sdk/core/lib/model/range-value.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/upload-file-item.model.d.ts +0 -30
- package/projects/eo-sdk/core/lib/model/upload-file-item.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/upload-target.model.d.ts +0 -60
- package/projects/eo-sdk/core/lib/model/upload-target.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/model/work-item-history.model.d.ts +0 -52
- package/projects/eo-sdk/core/lib/model/work-item-history.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/auth/auth-interceptor.d.ts +0 -12
- package/projects/eo-sdk/core/lib/service/auth/auth-interceptor.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.d.ts +0 -23
- package/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +0 -104
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts +0 -18
- package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +0 -209
- package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/bpm/bpm.service.d.ts +0 -150
- package/projects/eo-sdk/core/lib/service/bpm/bpm.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/cache/app-cache.service.d.ts +0 -59
- package/projects/eo-sdk/core/lib/service/cache/app-cache.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts +0 -54
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts +0 -35
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.d.ts +0 -5
- package/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.d.ts +0 -16
- package/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.d.ts +0 -49
- package/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/config/config.enum.d.ts +0 -5
- package/projects/eo-sdk/core/lib/service/config/config.enum.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/config/config.interface.d.ts +0 -55
- package/projects/eo-sdk/core/lib/service/config/config.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/config/config.service.d.ts +0 -80
- package/projects/eo-sdk/core/lib/service/config/config.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +0 -286
- package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.d.ts +0 -13
- package/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/events/event.service.d.ts +0 -31
- package/projects/eo-sdk/core/lib/service/events/event.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/events/events.d.ts +0 -27
- package/projects/eo-sdk/core/lib/service/events/events.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/inbox/inbox.service.d.ts +0 -66
- package/projects/eo-sdk/core/lib/service/inbox/inbox.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/logger/console-log.service.d.ts +0 -20
- package/projects/eo-sdk/core/lib/service/logger/console-log.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/logger/logger.d.ts +0 -25
- package/projects/eo-sdk/core/lib/service/logger/logger.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/notifications/notifications.service.d.ts +0 -78
- package/projects/eo-sdk/core/lib/service/notifications/notifications.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.d.ts +0 -9
- package/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts +0 -189
- package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.d.ts +0 -10
- package/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts +0 -327
- package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/search/search.service.d.ts +0 -173
- package/projects/eo-sdk/core/lib/service/search/search.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +0 -52
- package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/storage/local-storage.service.d.ts +0 -53
- package/projects/eo-sdk/core/lib/service/storage/local-storage.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.d.ts +0 -15
- package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.d.ts +0 -108
- package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.d.ts +0 -74
- package/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/system/system.service.d.ts +0 -125
- package/projects/eo-sdk/core/lib/service/system/system.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.d.ts +0 -53
- package/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/system-status/system-status.service.d.ts +0 -26
- package/projects/eo-sdk/core/lib/service/system-status/system-status.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/system-status/system.status.enum.d.ts +0 -8
- package/projects/eo-sdk/core/lib/service/system-status/system.status.enum.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/system-status/system.status.interface.d.ts +0 -8
- package/projects/eo-sdk/core/lib/service/system-status/system.status.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/upload/upload.service.d.ts +0 -28
- package/projects/eo-sdk/core/lib/service/upload/upload.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.d.ts +0 -50
- package/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +0 -216
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/util/utils.d.ts +0 -148
- package/projects/eo-sdk/core/lib/util/utils.d.ts.map +0 -1
- package/projects/eo-sdk/core/public_api.d.ts +0 -82
- package/projects/eo-sdk/core/public_api.d.ts.map +0 -1
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
import { forkJoin as observableForkJoin, of, ReplaySubject } from 'rxjs';
|
|
2
|
-
import { catchError, tap, map, switchMap } from 'rxjs/operators';
|
|
3
|
-
import { Injectable } from '@angular/core';
|
|
4
|
-
import { ObjectType } from '../../model/object-type.model';
|
|
5
|
-
import * as _ from 'lodash';
|
|
6
|
-
import { Utils } from '../../util/utils';
|
|
7
|
-
import { EnaioEvent } from '../events/events';
|
|
8
|
-
import moment from 'moment';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "../backend/backend.service";
|
|
11
|
-
import * as i2 from "../logger/logger";
|
|
12
|
-
import * as i3 from "../events/event.service";
|
|
13
|
-
import * as i4 from "../cache/app-cache.service";
|
|
14
|
-
/**
|
|
15
|
-
* Collection of System Services
|
|
16
|
-
*/
|
|
17
|
-
export class SystemService {
|
|
18
|
-
constructor(backend, logger, eventService, appCache) {
|
|
19
|
-
this.backend = backend;
|
|
20
|
-
this.logger = logger;
|
|
21
|
-
this.eventService = eventService;
|
|
22
|
-
this.appCache = appCache;
|
|
23
|
-
this.systemSource = new ReplaySubject();
|
|
24
|
-
this.system$ = this.systemSource.asObservable();
|
|
25
|
-
// session cache for object type forms
|
|
26
|
-
this.objectTypeForms = [];
|
|
27
|
-
this.cachedRoles = [];
|
|
28
|
-
this.eventService.on(EnaioEvent.SYSTEM_STATUS_SCHEMA_CHANGED).subscribe(() => {
|
|
29
|
-
this.fetchSystemDefinition(this.user);
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
set system(s) {
|
|
33
|
-
this._system = s;
|
|
34
|
-
}
|
|
35
|
-
get system() {
|
|
36
|
-
return JSON.parse(JSON.stringify(this._system));
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Gets all ObjectTypes
|
|
40
|
-
*
|
|
41
|
-
* @returns An array containing all object types
|
|
42
|
-
*/
|
|
43
|
-
getObjectTypes() {
|
|
44
|
-
return this.system.types;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Gets an ObjectType by name.
|
|
48
|
-
*
|
|
49
|
-
* @param objectTypeName The name of the object type
|
|
50
|
-
* @returns the ObjectType matching the given name
|
|
51
|
-
*/
|
|
52
|
-
getObjectType(objectTypeName) {
|
|
53
|
-
return this.system.types.find(t => t.name === objectTypeName);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get form elements from form model. This is useful if you have to fetch them
|
|
57
|
-
* for a special situation like SEARCH
|
|
58
|
-
* @param objectTypeName ObjectType to fetch elements for
|
|
59
|
-
* @param situation Form model situation to be fetched
|
|
60
|
-
* @param isContextType Flag indicating that the form model should be fetched for a context mode
|
|
61
|
-
*/
|
|
62
|
-
getFormElementsFromFormModel(objectTypeName, situation, isContextType) {
|
|
63
|
-
return this.getObjectTypeForm(objectTypeName, situation, isContextType ? 'CONTEXT' : null).pipe(switchMap(model => {
|
|
64
|
-
const elements = [];
|
|
65
|
-
this.processFormModelElements(model, elements);
|
|
66
|
-
return of(elements);
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
processFormModelElements(model, elements) {
|
|
70
|
-
model.elements.forEach(e => {
|
|
71
|
-
if (e.type !== "o2mGroup" && e.type !== "o2mGroupStack") {
|
|
72
|
-
elements.push(e);
|
|
73
|
-
}
|
|
74
|
-
else if (e.elements && e.elements.length) {
|
|
75
|
-
this.processFormModelElements(e, elements);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Checks whether or not the given type implements a given supertype
|
|
81
|
-
* @param type Type to be checked
|
|
82
|
-
* @param superTypeName Name of the supertype
|
|
83
|
-
*/
|
|
84
|
-
implementsType(type, superTypeName) {
|
|
85
|
-
return type.name === superTypeName || (type.implements && type.implements.indexOf(superTypeName) !== -1);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Gets a codesystem
|
|
89
|
-
*
|
|
90
|
-
* @param id The codesystems id
|
|
91
|
-
* @returns The codesystem object matching the given id
|
|
92
|
-
*/
|
|
93
|
-
getCodesystem(id) {
|
|
94
|
-
return this.system.codesystems.find(t => t.id === id || t.name === id);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get the form model of an object type.
|
|
98
|
-
*
|
|
99
|
-
* @param objectTypeName The object type name
|
|
100
|
-
* @param situation The form situation to be fetched
|
|
101
|
-
* @param mode Form mode to fetch (e.g. CONTEXT)
|
|
102
|
-
* @returns The object type form model
|
|
103
|
-
*/
|
|
104
|
-
getObjectTypeForm(objectTypeName, situation, mode) {
|
|
105
|
-
/** check if we have a cached form first */
|
|
106
|
-
let cachedForm;
|
|
107
|
-
let i = 0;
|
|
108
|
-
while (!cachedForm && i < this.objectTypeForms.length) {
|
|
109
|
-
if (this.objectTypeForms[i].name === objectTypeName &&
|
|
110
|
-
this.objectTypeForms[i].mode === mode &&
|
|
111
|
-
this.objectTypeForms[i].situation === situation) {
|
|
112
|
-
cachedForm = this.objectTypeForms[i];
|
|
113
|
-
}
|
|
114
|
-
i++;
|
|
115
|
-
}
|
|
116
|
-
if (cachedForm) {
|
|
117
|
-
/** return a clone of the cached model as otherwise model changes will be added to the chached model */
|
|
118
|
-
return of(_.cloneDeep(cachedForm));
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
let uri = `/ui/form/${objectTypeName}?situation=${situation}`;
|
|
122
|
-
uri += !!mode ? `&formmode=${mode}` : '';
|
|
123
|
-
/** fetch and cache the requested form, if no cached version was found */
|
|
124
|
-
return this.backend.getViaTempCache(uri, () => this.backend
|
|
125
|
-
.getJson(uri)
|
|
126
|
-
.pipe(tap((model) => this.objectTypeForms.push(_.cloneDeep(model)))));
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Fetches the backends system definition and updates system$ Observable.
|
|
131
|
-
* Subscribe to the system$ observable instead of calling this function, otherwise you'll trigger fetching the
|
|
132
|
-
* system definition every time.
|
|
133
|
-
*
|
|
134
|
-
* @param user The user to load the system definition for
|
|
135
|
-
* @returns true when successfull
|
|
136
|
-
*/
|
|
137
|
-
getSystemDefinition(user) {
|
|
138
|
-
this.user = user;
|
|
139
|
-
// todo: temporary: OrgChanges could not be recognized but affect object definition
|
|
140
|
-
return this.fetchSystemDefinition(user);
|
|
141
|
-
// todo: enable again when OrgChanges are recognizable (DO NOT DELETE!)
|
|
142
|
-
// // is there a cached version
|
|
143
|
-
// return this.appCache
|
|
144
|
-
// .getItem(this.appCache.SYSTEM_DEFINITION)
|
|
145
|
-
// .catch((error) => {
|
|
146
|
-
// this.logger.error('Error fetching cached version of system definition.', error);
|
|
147
|
-
// return this.fetchSystemDefinition(user);
|
|
148
|
-
// })
|
|
149
|
-
// .flatMap((cachedSystemDefinition: any) => {
|
|
150
|
-
//
|
|
151
|
-
// // yes? then check if it's up to date
|
|
152
|
-
// if (cachedSystemDefinition) {
|
|
153
|
-
//
|
|
154
|
-
// if (
|
|
155
|
-
// user.schema.version !== cachedSystemDefinition.info.version ||
|
|
156
|
-
// user.id !== cachedSystemDefinition.info.user ||
|
|
157
|
-
// user.getSchemaLocale() !== cachedSystemDefinition.info.locale
|
|
158
|
-
// ) {
|
|
159
|
-
// return this.fetchSystemDefinition(user);
|
|
160
|
-
// } else {
|
|
161
|
-
// // cache is up to date. return the cached one
|
|
162
|
-
// this.logger.debug('System definition is up to date, using cached version.', cachedSystemDefinition);
|
|
163
|
-
// this.system = cachedSystemDefinition;
|
|
164
|
-
// this.systemSource.next(this.system);
|
|
165
|
-
// return of(true);
|
|
166
|
-
// }
|
|
167
|
-
// } else {
|
|
168
|
-
// // no cached systemDefinition found
|
|
169
|
-
// return this.fetchSystemDefinition(user);
|
|
170
|
-
// }
|
|
171
|
-
// });
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Creates a value depending on a given Type
|
|
175
|
-
*
|
|
176
|
-
* @param string valueType
|
|
177
|
-
* @returns any
|
|
178
|
-
*/
|
|
179
|
-
getDefaultValue(valueType) {
|
|
180
|
-
let defaultValue;
|
|
181
|
-
switch (valueType) {
|
|
182
|
-
case 'CURRENT_USER': {
|
|
183
|
-
defaultValue = this.user.name;
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
186
|
-
case 'CURRENT_USER_NAME': {
|
|
187
|
-
defaultValue = this.user.title;
|
|
188
|
-
break;
|
|
189
|
-
}
|
|
190
|
-
case 'CURRENT_DATETIME': {
|
|
191
|
-
defaultValue = new Date();
|
|
192
|
-
break;
|
|
193
|
-
}
|
|
194
|
-
case 'CURRENT_DATE': {
|
|
195
|
-
defaultValue = moment().startOf('day').format('yyyy-MM-DD');
|
|
196
|
-
break;
|
|
197
|
-
}
|
|
198
|
-
case 'YEAR': {
|
|
199
|
-
defaultValue = moment().year();
|
|
200
|
-
break;
|
|
201
|
-
}
|
|
202
|
-
case 'MONTH': {
|
|
203
|
-
defaultValue = moment().month() + 1;
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
case 'DAY': {
|
|
207
|
-
defaultValue = moment().date();
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
case 'HOUR': {
|
|
211
|
-
defaultValue = moment().hour();
|
|
212
|
-
break;
|
|
213
|
-
}
|
|
214
|
-
case 'MINUTE': {
|
|
215
|
-
defaultValue = moment().minute();
|
|
216
|
-
break;
|
|
217
|
-
}
|
|
218
|
-
case 'SECOND': {
|
|
219
|
-
defaultValue = moment().second();
|
|
220
|
-
break;
|
|
221
|
-
}
|
|
222
|
-
case 'WEEK_OF_YEAR': {
|
|
223
|
-
defaultValue = moment().isoWeek();
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
case 'FIRST_DAY_OF_WEEK': {
|
|
227
|
-
defaultValue = moment().startOf('isoWeek').toDate();
|
|
228
|
-
break;
|
|
229
|
-
}
|
|
230
|
-
case 'FIRST_DAY_OF_MONTH': {
|
|
231
|
-
defaultValue = moment().startOf('month').toDate();
|
|
232
|
-
break;
|
|
233
|
-
}
|
|
234
|
-
case 'FIRST_DAY_OF_YEAR': {
|
|
235
|
-
defaultValue = moment().startOf('year').toDate();
|
|
236
|
-
break;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
return defaultValue;
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Fetches the system definition from the server. Provided params are used for storing the
|
|
243
|
-
* recent version in cache.
|
|
244
|
-
*
|
|
245
|
-
* @param user The user to fetch the system definition for
|
|
246
|
-
* @return boolean
|
|
247
|
-
*/
|
|
248
|
-
fetchSystemDefinition(user) {
|
|
249
|
-
const fetches = [
|
|
250
|
-
this.backend.getJson('/system/type/list?elements=true&basetypes=true'),
|
|
251
|
-
this.backend.getJson('/system/cs/list?elements=true')
|
|
252
|
-
];
|
|
253
|
-
return observableForkJoin(fetches)
|
|
254
|
-
.pipe(catchError(Utils.catch((error) => {
|
|
255
|
-
this.logger.error('Error fetching recent version of system definition from server.', error);
|
|
256
|
-
this.systemSource.error('Error fetching recent version of system definition from server.');
|
|
257
|
-
})), map((data) => {
|
|
258
|
-
this.objectTypeForms = [];
|
|
259
|
-
const system = {
|
|
260
|
-
/**
|
|
261
|
-
* info about the current system definition
|
|
262
|
-
*/
|
|
263
|
-
info: {
|
|
264
|
-
user: user.id,
|
|
265
|
-
locale: user.getSchemaLocale(),
|
|
266
|
-
version: user.schema.version
|
|
267
|
-
},
|
|
268
|
-
/**
|
|
269
|
-
* supported backend locales
|
|
270
|
-
*/
|
|
271
|
-
locales: user.schema.supportedLocales,
|
|
272
|
-
/**
|
|
273
|
-
* object type definitions
|
|
274
|
-
*/
|
|
275
|
-
types: [],
|
|
276
|
-
/**
|
|
277
|
-
* codesystems cache
|
|
278
|
-
*/
|
|
279
|
-
codesystems: []
|
|
280
|
-
};
|
|
281
|
-
const types = data[0];
|
|
282
|
-
system.types = types.map(t => new ObjectType(t));
|
|
283
|
-
system.codesystems = data[1];
|
|
284
|
-
this.system = system;
|
|
285
|
-
this.systemSource.next(system);
|
|
286
|
-
this.logger.debug('Fetched new version of system definition (user: ' + user.id + ', version: ' + user.schema.version + ').');
|
|
287
|
-
this.appCache
|
|
288
|
-
.setItem(this.appCache.SYSTEM_DEFINITION, system)
|
|
289
|
-
.subscribe(() => {
|
|
290
|
-
this.logger.debug('Cached recent version');
|
|
291
|
-
}, Utils.logError(null, 'Error caching recent version of system definition.'));
|
|
292
|
-
return true;
|
|
293
|
-
}));
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Retrieve an organization object by its ID
|
|
297
|
-
* @param id ID of org object
|
|
298
|
-
*/
|
|
299
|
-
getOrganizationObjectById(id) {
|
|
300
|
-
return this.backend.getJson(`/organization/id/${id}`);
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Fetches the organization object for a given name.
|
|
304
|
-
*
|
|
305
|
-
* @param name The name to fetch object for
|
|
306
|
-
* @returns
|
|
307
|
-
*/
|
|
308
|
-
getOrganizationObject(name) {
|
|
309
|
-
return this.getOrganizationObjects([name]).pipe(map(res => res[0]));
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Fetches a collection of organization objects
|
|
313
|
-
*
|
|
314
|
-
* @param names Array of names to fetch objects for
|
|
315
|
-
* @returns A Array of Organization Objects
|
|
316
|
-
*/
|
|
317
|
-
getOrganizationObjects(names) {
|
|
318
|
-
const toFetch = names.map(name => this.backend.getJson(`/organization/name/${name}`).pipe(catchError(error => of({ id: name, active: false }))));
|
|
319
|
-
return observableForkJoin(toFetch);
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Fetches a collection of organization roles
|
|
323
|
-
*
|
|
324
|
-
* @return A Array of Organization Roles
|
|
325
|
-
*/
|
|
326
|
-
getRoles() {
|
|
327
|
-
if (this.cachedRoles.length) {
|
|
328
|
-
return of(this.cachedRoles);
|
|
329
|
-
}
|
|
330
|
-
else {
|
|
331
|
-
return this.backend
|
|
332
|
-
.get('/organization/role')
|
|
333
|
-
.pipe(map(o => o), tap(roles => (this.cachedRoles = roles)));
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
SystemService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SystemService, deps: [{ token: i1.BackendService }, { token: i2.Logger }, { token: i3.EventService }, { token: i4.AppCacheService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
338
|
-
SystemService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SystemService, providedIn: 'root' });
|
|
339
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SystemService, decorators: [{
|
|
340
|
-
type: Injectable,
|
|
341
|
-
args: [{
|
|
342
|
-
providedIn: 'root'
|
|
343
|
-
}]
|
|
344
|
-
}], ctorParameters: function () { return [{ type: i1.BackendService }, { type: i2.Logger }, { type: i3.EventService }, { type: i4.AppCacheService }]; } });
|
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc3lzdGVtL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxFQUFjLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVuRixPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUt6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBR3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7OztBQUU1Qjs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBV3hCLFlBQW9CLE9BQXVCLEVBQ3ZCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixRQUF5QjtRQUh6QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFYckMsaUJBQVksR0FBRyxJQUFJLGFBQWEsRUFBTyxDQUFDO1FBQ3pDLFlBQU8sR0FBb0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuRSxzQ0FBc0M7UUFDOUIsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFFNUIsZ0JB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c2VydmFibGUsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2NhdGNoRXJyb3IsIHRhcCwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lPcmdhbml6YXRpb25PYmplY3RzfSBmcm9tICcuLi8uLi9pbnRlcmZhY2Uvb3JnYW5pemF0aW9uLW9iamVjdHMuaW50ZXJmYWNlJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9jYWNoZS9hcHAtY2FjaGUuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlcic7XG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcbmltcG9ydCB7RW9Vc2VyfSBmcm9tICcuLi8uLi9tb2RlbC9lby11c2VyLm1vZGVsJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7T3JnUm9sZX0gZnJvbSAnLi4vLi4vbW9kZWwvb3JnLm1vZGVsJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtJQ29kZVN5c3RlbX0gZnJvbSAnLi9zeXN0ZW1kZWZpbml0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIFN5c3RlbSBTZXJ2aWNlc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTeXN0ZW1TZXJ2aWNlIHtcblxuICBwcml2YXRlIF9zeXN0ZW07XG4gIHByaXZhdGUgc3lzdGVtU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgc3lzdGVtJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5zeXN0ZW1Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLy8gc2Vzc2lvbiBjYWNoZSBmb3Igb2JqZWN0IHR5cGUgZm9ybXNcbiAgcHJpdmF0ZSBvYmplY3RUeXBlRm9ybXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdXNlcjogRW9Vc2VyO1xuICBwcml2YXRlIGNhY2hlZFJvbGVzOiBPcmdSb2xlW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFwcENhY2hlOiBBcHBDYWNoZVNlcnZpY2UpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LlNZU1RFTV9TVEFUVVNfU0NIRU1BX0NIQU5HRUQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih0aGlzLnVzZXIpO1xuICAgIH0pXG4gIH1cblxuICBzZXQgc3lzdGVtKHMpe1xuICAgIHRoaXMuX3N5c3RlbSA9IHM7XG4gIH1cblxuICBnZXQgc3lzdGVtKCl7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5fc3lzdGVtKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgT2JqZWN0VHlwZXNcbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgY29udGFpbmluZyBhbGwgb2JqZWN0IHR5cGVzXG4gICAqL1xuICBwdWJsaWMgZ2V0T2JqZWN0VHlwZXMoKTogT2JqZWN0VHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW0udHlwZXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBPYmplY3RUeXBlIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlTmFtZSBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0IHR5cGVcbiAgICogQHJldHVybnMgdGhlIE9iamVjdFR5cGUgbWF0Y2hpbmcgdGhlIGdpdmVuIG5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXRPYmplY3RUeXBlKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcpOiBPYmplY3RUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW0udHlwZXMuZmluZCh0ID0+IHQubmFtZSA9PT0gb2JqZWN0VHlwZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmb3JtIGVsZW1lbnRzIGZyb20gZm9ybSBtb2RlbC4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IGhhdmUgdG8gZmV0Y2ggdGhlbVxuICAgKiBmb3IgYSBzcGVjaWFsIHNpdHVhdGlvbiBsaWtlIFNFQVJDSFxuICAgKiBAcGFyYW0gb2JqZWN0VHlwZU5hbWUgT2JqZWN0VHlwZSB0byBmZXRjaCBlbGVtZW50cyBmb3JcbiAgICogQHBhcmFtIHNpdHVhdGlvbiBGb3JtIG1vZGVsIHNpdHVhdGlvbiB0byBiZSBmZXRjaGVkXG4gICAqIEBwYXJhbSBpc0NvbnRleHRUeXBlIEZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBmb3JtIG1vZGVsIHNob3VsZCBiZSBmZXRjaGVkIGZvciBhIGNvbnRleHQgbW9kZVxuICAgKi9cbiAgZ2V0Rm9ybUVsZW1lbnRzRnJvbUZvcm1Nb2RlbChvYmplY3RUeXBlTmFtZTogc3RyaW5nLCBzaXR1YXRpb246IHN0cmluZywgaXNDb250ZXh0VHlwZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0VHlwZUZvcm0ob2JqZWN0VHlwZU5hbWUsIHNpdHVhdGlvbiwgaXNDb250ZXh0VHlwZSA/ICdDT05URVhUJyA6IG51bGwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAobW9kZWwgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IFtdO1xuICAgICAgICB0aGlzLnByb2Nlc3NGb3JtTW9kZWxFbGVtZW50cyhtb2RlbCwgZWxlbWVudHMpO1xuICAgICAgICByZXR1cm4gb2YoZWxlbWVudHMpO1xuICAgIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRm9ybU1vZGVsRWxlbWVudHMobW9kZWw6IGFueSwgZWxlbWVudHM6IGFueVtdKSB7XG4gICAgbW9kZWwuZWxlbWVudHMuZm9yRWFjaChlID0+IHtcbiAgICAgIGlmKGUudHlwZSAhPT0gXCJvMm1Hcm91cFwiICYmIGUudHlwZSAhPT0gXCJvMm1Hcm91cFN0YWNrXCIpIHtcbiAgICAgICAgZWxlbWVudHMucHVzaChlKTtcbiAgICAgIH0gZWxzZSBpZihlLmVsZW1lbnRzICYmIGUuZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0Zvcm1Nb2RlbEVsZW1lbnRzKGUsIGVsZW1lbnRzKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gdHlwZSBpbXBsZW1lbnRzIGEgZ2l2ZW4gc3VwZXJ0eXBlXG4gICAqIEBwYXJhbSB0eXBlIFR5cGUgdG8gYmUgY2hlY2tlZFxuICAgKiBAcGFyYW0gc3VwZXJUeXBlTmFtZSBOYW1lIG9mIHRoZSBzdXBlcnR5cGVcbiAgICovXG4gIHB1YmxpYyBpbXBsZW1lbnRzVHlwZSh0eXBlOiBPYmplY3RUeXBlLCBzdXBlclR5cGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZS5uYW1lID09PSBzdXBlclR5cGVOYW1lIHx8ICh0eXBlLmltcGxlbWVudHMgJiYgdHlwZS5pbXBsZW1lbnRzLmluZGV4T2Yoc3VwZXJUeXBlTmFtZSkgIT09IC0xKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY29kZXN5c3RlbVxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvZGVzeXN0ZW1zIGlkXG4gICAqIEByZXR1cm5zIFRoZSBjb2Rlc3lzdGVtIG9iamVjdCBtYXRjaGluZyB0aGUgZ2l2ZW4gaWRcbiAgICovXG4gIHB1YmxpYyBnZXRDb2Rlc3lzdGVtKGlkOiBzdHJpbmcpOiBJQ29kZVN5c3RlbSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtLmNvZGVzeXN0ZW1zLmZpbmQodCA9PiB0LmlkID09PSBpZCB8fCB0Lm5hbWUgPT09IGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZvcm0gbW9kZWwgb2YgYW4gb2JqZWN0IHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlTmFtZSBUaGUgb2JqZWN0IHR5cGUgbmFtZVxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIFRoZSBmb3JtIHNpdHVhdGlvbiB0byBiZSBmZXRjaGVkXG4gICAqIEBwYXJhbSBtb2RlIEZvcm0gbW9kZSB0byBmZXRjaCAoZS5nLiBDT05URVhUKVxuICAgKiBAcmV0dXJucyBUaGUgb2JqZWN0IHR5cGUgZm9ybSBtb2RlbFxuICAgKi9cbiAgcHVibGljIGdldE9iamVjdFR5cGVGb3JtKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcsIHNpdHVhdGlvbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIC8qKiBjaGVjayBpZiB3ZSBoYXZlIGEgY2FjaGVkIGZvcm0gZmlyc3QgKi9cbiAgICBsZXQgY2FjaGVkRm9ybTtcblxuICAgIGxldCBpID0gMDtcbiAgICB3aGlsZSAoIWNhY2hlZEZvcm0gJiYgaSA8IHRoaXMub2JqZWN0VHlwZUZvcm1zLmxlbmd0aCkge1xuICAgICAgaWYgKHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldLm5hbWUgPT09IG9iamVjdFR5cGVOYW1lICYmXG4gICAgICAgIHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldLm1vZGUgPT09IG1vZGUgJiZcbiAgICAgICAgdGhpcy5vYmplY3RUeXBlRm9ybXNbaV0uc2l0dWF0aW9uID09PSBzaXR1YXRpb24pIHtcbiAgICAgICAgY2FjaGVkRm9ybSA9IHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldO1xuICAgICAgfVxuICAgICAgaSsrO1xuICAgIH1cblxuICAgIGlmIChjYWNoZWRGb3JtKSB7XG4gICAgICAvKiogcmV0dXJuIGEgY2xvbmUgb2YgdGhlIGNhY2hlZCBtb2RlbCBhcyBvdGhlcndpc2UgbW9kZWwgY2hhbmdlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBjaGFjaGVkIG1vZGVsICovXG4gICAgICByZXR1cm4gb2YoXy5jbG9uZURlZXAoY2FjaGVkRm9ybSkpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGxldCB1cmkgPSBgL3VpL2Zvcm0vJHtvYmplY3RUeXBlTmFtZX0/c2l0dWF0aW9uPSR7c2l0dWF0aW9ufWA7XG4gICAgICB1cmkgKz0gISFtb2RlID8gYCZmb3JtbW9kZT0ke21vZGV9YCA6ICcnO1xuXG4gICAgICAvKiogZmV0Y2ggYW5kIGNhY2hlIHRoZSByZXF1ZXN0ZWQgZm9ybSwgaWYgbm8gY2FjaGVkIHZlcnNpb24gd2FzIGZvdW5kICovXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZSh1cmksICgpID0+IHRoaXMuYmFja2VuZFxuICAgICAgICAuZ2V0SnNvbih1cmkpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgobW9kZWwpID0+IHRoaXMub2JqZWN0VHlwZUZvcm1zLnB1c2goXy5jbG9uZURlZXAobW9kZWwpKSlcbiAgICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGJhY2tlbmRzIHN5c3RlbSBkZWZpbml0aW9uIGFuZCB1cGRhdGVzIHN5c3RlbSQgT2JzZXJ2YWJsZS5cbiAgICogU3Vic2NyaWJlIHRvIHRoZSBzeXN0ZW0kIG9ic2VydmFibGUgaW5zdGVhZCBvZiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIG90aGVyd2lzZSB5b3UnbGwgdHJpZ2dlciBmZXRjaGluZyB0aGVcbiAgICogc3lzdGVtIGRlZmluaXRpb24gZXZlcnkgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gbG9hZCB0aGUgc3lzdGVtIGRlZmluaXRpb24gZm9yXG4gICAqIEByZXR1cm5zIHRydWUgd2hlbiBzdWNjZXNzZnVsbFxuICAgKi9cbiAgcHVibGljIGdldFN5c3RlbURlZmluaXRpb24odXNlcjogRW9Vc2VyKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG5cbiAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgIC8vIHRvZG86IHRlbXBvcmFyeTogT3JnQ2hhbmdlcyBjb3VsZCBub3QgYmUgcmVjb2duaXplZCBidXQgYWZmZWN0IG9iamVjdCBkZWZpbml0aW9uXG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXIpO1xuXG4gICAgLy8gdG9kbzogZW5hYmxlIGFnYWluIHdoZW4gT3JnQ2hhbmdlcyBhcmUgcmVjb2duaXphYmxlIChETyBOT1QgREVMRVRFISlcbiAgICAvLyAvLyBpcyB0aGVyZSBhIGNhY2hlZCB2ZXJzaW9uXG4gICAgLy8gcmV0dXJuIHRoaXMuYXBwQ2FjaGVcbiAgICAvLyAgIC5nZXRJdGVtKHRoaXMuYXBwQ2FjaGUuU1lTVEVNX0RFRklOSVRJT04pXG4gICAgLy8gICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgLy8gICAgIHRoaXMubG9nZ2VyLmVycm9yKCdFcnJvciBmZXRjaGluZyBjYWNoZWQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbi4nLCBlcnJvcik7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyKTtcbiAgICAvLyAgIH0pXG4gICAgLy8gICAuZmxhdE1hcCgoY2FjaGVkU3lzdGVtRGVmaW5pdGlvbjogYW55KSA9PiB7XG4gICAgLy9cbiAgICAvLyAgICAgLy8geWVzPyB0aGVuIGNoZWNrIGlmIGl0J3MgdXAgdG8gZGF0ZVxuICAgIC8vICAgICBpZiAoY2FjaGVkU3lzdGVtRGVmaW5pdGlvbikge1xuICAgIC8vXG4gICAgLy8gICAgICAgaWYgKFxuICAgIC8vICAgICAgICAgdXNlci5zY2hlbWEudmVyc2lvbiAhPT0gY2FjaGVkU3lzdGVtRGVmaW5pdGlvbi5pbmZvLnZlcnNpb24gfHxcbiAgICAvLyAgICAgICAgIHVzZXIuaWQgIT09IGNhY2hlZFN5c3RlbURlZmluaXRpb24uaW5mby51c2VyIHx8XG4gICAgLy8gICAgICAgICB1c2VyLmdldFNjaGVtYUxvY2FsZSgpICE9PSBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uLmluZm8ubG9jYWxlXG4gICAgLy8gICAgICAgKSB7XG4gICAgLy8gICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFN5c3RlbURlZmluaXRpb24odXNlcik7XG4gICAgLy8gICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIC8vIGNhY2hlIGlzIHVwIHRvIGRhdGUuIHJldHVybiB0aGUgY2FjaGVkIG9uZVxuICAgIC8vICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1N5c3RlbSBkZWZpbml0aW9uIGlzIHVwIHRvIGRhdGUsIHVzaW5nIGNhY2hlZCB2ZXJzaW9uLicsIGNhY2hlZFN5c3RlbURlZmluaXRpb24pO1xuICAgIC8vICAgICAgICAgdGhpcy5zeXN0ZW0gPSBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uO1xuICAgIC8vICAgICAgICAgdGhpcy5zeXN0ZW1Tb3VyY2UubmV4dCh0aGlzLnN5c3RlbSk7XG4gICAgLy8gICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgIC8vIG5vIGNhY2hlZCBzeXN0ZW1EZWZpbml0aW9uIGZvdW5kXG4gICAgLy8gICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXIpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdmFsdWUgZGVwZW5kaW5nIG9uIGEgZ2l2ZW4gVHlwZVxuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIHZhbHVlVHlwZVxuICAgKiBAcmV0dXJucyBhbnlcbiAgICovXG4gIHB1YmxpYyBnZXREZWZhdWx0VmFsdWUodmFsdWVUeXBlOiBzdHJpbmcpOiBhbnkge1xuICAgIGxldCBkZWZhdWx0VmFsdWU7XG4gICAgc3dpdGNoICh2YWx1ZVR5cGUpIHtcbiAgICAgIGNhc2UgJ0NVUlJFTlRfVVNFUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gdGhpcy51c2VyLm5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ1VSUkVOVF9VU0VSX05BTUUnOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMudXNlci50aXRsZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDVVJSRU5UX0RBVEVUSU1FJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0NVUlJFTlRfREFURSc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZignZGF5JykuZm9ybWF0KCd5eXl5LU1NLUREJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnWUVBUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkueWVhcigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ01PTlRIJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5tb250aCgpICsgMTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdEQVknOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLmRhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdIT1VSJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5ob3VyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnTUlOVVRFJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5taW51dGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdTRUNPTkQnOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLnNlY29uZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1dFRUtfT0ZfWUVBUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuaXNvV2VlaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZJUlNUX0RBWV9PRl9XRUVLJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCdpc29XZWVrJykudG9EYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRklSU1RfREFZX09GX01PTlRIJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZJUlNUX0RBWV9PRl9ZRUFSJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykudG9EYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc3lzdGVtIGRlZmluaXRpb24gZnJvbSB0aGUgc2VydmVyLiBQcm92aWRlZCBwYXJhbXMgYXJlIHVzZWQgZm9yIHN0b3JpbmcgdGhlXG4gICAqIHJlY2VudCB2ZXJzaW9uIGluIGNhY2hlLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlciBUaGUgdXNlciB0byBmZXRjaCB0aGUgc3lzdGVtIGRlZmluaXRpb24gZm9yXG4gICAqIEByZXR1cm4gYm9vbGVhblxuICAgKi9cbiAgZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXI6IEVvVXNlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgY29uc3QgZmV0Y2hlcyA9IFtcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKCcvc3lzdGVtL3R5cGUvbGlzdD9lbGVtZW50cz10cnVlJmJhc2V0eXBlcz10cnVlJyksXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3N5c3RlbS9jcy9saXN0P2VsZW1lbnRzPXRydWUnKVxuICAgIF07XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKGZldGNoZXMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRXJyb3IgZmV0Y2hpbmcgcmVjZW50IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24gZnJvbSBzZXJ2ZXIuJywgZXJyb3IpO1xuICAgICAgICAgIHRoaXMuc3lzdGVtU291cmNlLmVycm9yKCdFcnJvciBmZXRjaGluZyByZWNlbnQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbiBmcm9tIHNlcnZlci4nKTtcbiAgICAgICAgfSkpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcblxuICAgICAgICAgIHRoaXMub2JqZWN0VHlwZUZvcm1zID0gW107XG4gICAgICAgICAgY29uc3Qgc3lzdGVtID0ge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBpbmZvIGFib3V0IHRoZSBjdXJyZW50IHN5c3RlbSBkZWZpbml0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGluZm86IHtcbiAgICAgICAgICAgICAgdXNlcjogdXNlci5pZCxcbiAgICAgICAgICAgICAgbG9jYWxlOiB1c2VyLmdldFNjaGVtYUxvY2FsZSgpLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiB1c2VyLnNjaGVtYS52ZXJzaW9uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBzdXBwb3J0ZWQgYmFja2VuZCBsb2NhbGVzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxvY2FsZXM6IHVzZXIuc2NoZW1hLnN1cHBvcnRlZExvY2FsZXMsXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIG9iamVjdCB0eXBlIGRlZmluaXRpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVzOiBbXSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogY29kZXN5c3RlbXMgY2FjaGVcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29kZXN5c3RlbXM6IFtdXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHR5cGVzID0gZGF0YVswXTtcbiAgICAgICAgICBzeXN0ZW0udHlwZXMgPSB0eXBlcy5tYXAodCA9PiBuZXcgT2JqZWN0VHlwZSh0KSk7XG4gICAgICAgICAgc3lzdGVtLmNvZGVzeXN0ZW1zID0gZGF0YVsxXTtcblxuICAgICAgICAgIHRoaXMuc3lzdGVtID0gc3lzdGVtO1xuICAgICAgICAgIHRoaXMuc3lzdGVtU291cmNlLm5leHQoc3lzdGVtKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRmV0Y2hlZCBuZXcgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbiAodXNlcjogJyArIHVzZXIuaWQgKyAnLCB2ZXJzaW9uOiAnICsgdXNlci5zY2hlbWEudmVyc2lvbiArICcpLicpO1xuICAgICAgICAgIHRoaXMuYXBwQ2FjaGVcbiAgICAgICAgICAgIC5zZXRJdGVtKHRoaXMuYXBwQ2FjaGUuU1lTVEVNX0RFRklOSVRJT04sIHN5c3RlbSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FjaGVkIHJlY2VudCB2ZXJzaW9uJyk7XG4gICAgICAgICAgICB9LCBVdGlscy5sb2dFcnJvcihudWxsLCAnRXJyb3IgY2FjaGluZyByZWNlbnQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbi4nKSk7XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGFuIG9yZ2FuaXphdGlvbiBvYmplY3QgYnkgaXRzIElEXG4gICAqIEBwYXJhbSBpZCBJRCBvZiBvcmcgb2JqZWN0XG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3RCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL29yZ2FuaXphdGlvbi9pZC8ke2lkfWApXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgb3JnYW5pemF0aW9uIG9iamVjdCBmb3IgYSBnaXZlbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSB0byBmZXRjaCBvYmplY3QgZm9yXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3QobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRPcmdhbml6YXRpb25PYmplY3RzKFtuYW1lXSkucGlwZShtYXAocmVzID0+IHJlc1swXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBjb2xsZWN0aW9uIG9mIG9yZ2FuaXphdGlvbiBvYmplY3RzXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lcyBBcnJheSBvZiBuYW1lcyB0byBmZXRjaCBvYmplY3RzIGZvclxuICAgKiBAcmV0dXJucyBBIEFycmF5IG9mIE9yZ2FuaXphdGlvbiBPYmplY3RzXG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3RzKG5hbWVzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8SU9yZ2FuaXphdGlvbk9iamVjdHNbXT4ge1xuICAgIGNvbnN0IHRvRmV0Y2g6IE9ic2VydmFibGU8SU9yZ2FuaXphdGlvbk9iamVjdHM+W10gPSBuYW1lcy5tYXAobmFtZSA9PiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL29yZ2FuaXphdGlvbi9uYW1lLyR7bmFtZX1gKS5waXBlKGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Yoe2lkOiBuYW1lLCBhY3RpdmU6IGZhbHNlfSkpKSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbih0b0ZldGNoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgY29sbGVjdGlvbiBvZiBvcmdhbml6YXRpb24gcm9sZXNcbiAgICpcbiAgICogQHJldHVybiBBIEFycmF5IG9mIE9yZ2FuaXphdGlvbiBSb2xlc1xuICAgKi9cbiAgZ2V0Um9sZXMoKTogT2JzZXJ2YWJsZTxPcmdSb2xlW10+IHtcbiAgICBpZiAodGhpcy5jYWNoZWRSb2xlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlZFJvbGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgICAuZ2V0KCcvb3JnYW5pemF0aW9uL3JvbGUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAobyA9PiBvIGFzIE9yZ1JvbGVbXSksXG4gICAgICAgICAgdGFwKHJvbGVzID0+ICh0aGlzLmNhY2hlZFJvbGVzID0gcm9sZXMgYXMgT3JnUm9sZVtdKSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtZGVmaW5pdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc3lzdGVtL3N5c3RlbWRlZmluaXRpb24uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU3lzdGVtRGVmaW5pdGlvbiB7XG4gIGNvZGVzeXN0ZW1zOiBhbnlbXTtcbiAgaW5mbzogSVN5c3RlbURlZmluaXRpb25JbmZvO1xuICBsb2NhbGVzOiBJU3lzdGVtRGVmaW5pdGlvbkxvY2FsZXNbXTtcbiAgdHlwZXM6IGFueVtdO1xufVxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVN5c3RlbURlZmluaXRpb25JbmZvIHtcbiAgdXNlcjogc3RyaW5nO1xuICBsb2NhbGU6IHN0cmluZztcbiAgdmVyc2lvbjogbnVtYmVyO1xufVxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVN5c3RlbURlZmluaXRpb25Mb2NhbGVzIHtcbiAgY29kZTogc3RyaW5nO1xuICBkaXNwbGF5bmFtZTogc3RyaW5nO1xuICBkaXNwbGF5bmFtZWxvY2FsOiBzdHJpbmc7XG59XG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29kZVN5c3RlbSB7XG4gIGFsbGVsZW1lbnRzc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgZW50cmllczogSUNvZGVTeXN0ZW1zRW50cmllc1tdO1xuICBpZDogc3RyaW5nO1xuICBpbm5lcnRpdGxlcGF0dGVybjogc3RyaW5nO1xuICBsZWFmdGl0bGVwYXR0ZXJuOiBzdHJpbmc7XG4gIHVyaTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNlcGVyYXRvcjogc3RyaW5nO1xuICBzeXN0ZW06IGJvb2xlYW47XG59XG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29kZVN5c3RlbXNFbnRyaWVzIHtcbiAgYWxsb3dlZG9ubmV3OiBib29sZWFuO1xuICBhbGxvd2Vkb251cGRhdGU6IGJvb2xlYW47XG4gIGRhdGE6IHN0cmluZztcbiAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG4gIHR5cGU6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { EnaioEvent } from '../events/events';
|
|
3
|
-
import { Subject, timer } from 'rxjs';
|
|
4
|
-
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { SystemStatusEnum } from './system.status.enum';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../events/event.service";
|
|
8
|
-
import * as i2 from "../backend/backend.service";
|
|
9
|
-
import * as i3 from "../cache/app-cache.service";
|
|
10
|
-
export class SystemStatusService {
|
|
11
|
-
constructor(eventService, backend, appCache, ngZone) {
|
|
12
|
-
this.eventService = eventService;
|
|
13
|
-
this.backend = backend;
|
|
14
|
-
this.appCache = appCache;
|
|
15
|
-
this.ngZone = ngZone;
|
|
16
|
-
this.statusCacheKey = 'eo.framework.cache.system.status';
|
|
17
|
-
this.pollingStopTrigger$ = new Subject();
|
|
18
|
-
this.appCache
|
|
19
|
-
.getItem(this.statusCacheKey)
|
|
20
|
-
.subscribe(status => this.currentStatus = status);
|
|
21
|
-
}
|
|
22
|
-
init(pollIntervalMilliSeconds = -1) {
|
|
23
|
-
if (pollIntervalMilliSeconds > -1) {
|
|
24
|
-
this.pollingStopTrigger$ = new Subject();
|
|
25
|
-
this.startPolling(pollIntervalMilliSeconds);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
stop() {
|
|
29
|
-
this.hasBeenStopped = true;
|
|
30
|
-
this.pollingStopTrigger$.next();
|
|
31
|
-
this.pollingStopTrigger$.complete();
|
|
32
|
-
}
|
|
33
|
-
startPolling(pollIntervalMilliSeconds) {
|
|
34
|
-
this.ngZone.runOutsideAngular(() => {
|
|
35
|
-
let requestSubscription;
|
|
36
|
-
timer(0, pollIntervalMilliSeconds)
|
|
37
|
-
.pipe(takeUntil(this.pollingStopTrigger$))
|
|
38
|
-
.subscribe(() => {
|
|
39
|
-
this.ngZone.run(() => {
|
|
40
|
-
// temporary fix while status service is disabled
|
|
41
|
-
this.eventService.trigger(EnaioEvent.SYSTEM_STATUS_INBOX_CHANGED, {});
|
|
42
|
-
});
|
|
43
|
-
// if (requestSubscription) {
|
|
44
|
-
// requestSubscription.unsubscribe();
|
|
45
|
-
// }
|
|
46
|
-
// requestSubscription = this.backend
|
|
47
|
-
// .get('/status', this.backend.getStatusBase())
|
|
48
|
-
// .subscribe((res: ISystemStatus) => {
|
|
49
|
-
// this.handleStatusResult(res);
|
|
50
|
-
// }, err => {
|
|
51
|
-
// this.handleStatusError(err);
|
|
52
|
-
// });
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
handleStatusResult(res) {
|
|
57
|
-
const eventsToBeTriggered = [];
|
|
58
|
-
Object.keys(res).forEach(val => {
|
|
59
|
-
if (this.statusCheck(res, val)) {
|
|
60
|
-
eventsToBeTriggered.push({
|
|
61
|
-
type: this.statusEvent(val),
|
|
62
|
-
data: res
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
if (eventsToBeTriggered.length || this.hasBeenStopped) {
|
|
67
|
-
// if polling has been stopped and get activated again, we need
|
|
68
|
-
// angular to detect changes immediately
|
|
69
|
-
this.ngZone.run(() => {
|
|
70
|
-
eventsToBeTriggered.forEach(e => {
|
|
71
|
-
this.eventService.trigger(e.type, e.data);
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
if (eventsToBeTriggered.length || !this.currentStatus) {
|
|
76
|
-
this.currentStatus = res;
|
|
77
|
-
this.appCache.setItem(this.statusCacheKey, res);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
handleStatusError(err) {
|
|
81
|
-
// execute within zone so components are able to be checked
|
|
82
|
-
// Getting a 401 would otherwise not trigger a route change (redirect to login state)
|
|
83
|
-
this.ngZone.run(() => {
|
|
84
|
-
setTimeout(_ => {
|
|
85
|
-
this.stop();
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
statusEvent(val) {
|
|
90
|
-
return EnaioEvent[Object.keys(SystemStatusEnum).find(key => SystemStatusEnum[key] === val)];
|
|
91
|
-
}
|
|
92
|
-
statusCheck(res, statusType) {
|
|
93
|
-
return this.currentStatus && (this.currentStatus[statusType] < res[statusType]);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
SystemStatusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SystemStatusService, deps: [{ token: i1.EventService }, { token: i2.BackendService }, { token: i3.AppCacheService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
97
|
-
SystemStatusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SystemStatusService, providedIn: 'root' });
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SystemStatusService, decorators: [{
|
|
99
|
-
type: Injectable,
|
|
100
|
-
args: [{
|
|
101
|
-
providedIn: 'root'
|
|
102
|
-
}]
|
|
103
|
-
}], ctorParameters: function () { return [{ type: i1.EventService }, { type: i2.BackendService }, { type: i3.AppCacheService }, { type: i0.NgZone }]; } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLXN0YXR1cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3N5c3RlbS1zdGF0dXMvc3lzdGVtLXN0YXR1cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxPQUFPLEVBQWdCLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBS3RELE1BQU0sT0FBTyxtQkFBbUI7SUFROUIsWUFBb0IsWUFBMEIsRUFBVSxPQUF1QixFQUFVLFFBQXlCLEVBQVUsTUFBYztRQUF0SCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTGxJLG1CQUFjLEdBQUcsa0NBQWtDLENBQUM7UUFHcEQsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUdoRCxJQUFJLENBQUMsUUFBUTthQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQzVCLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSx3QkFBd0IsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqQyxJQUFJ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VyxDQUFDLEdBQVc7UUFDN0IsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFrQixFQUFFLFVBQWtCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs7Z0hBL0ZVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQge0VuYWlvRXZlbnR9IGZyb20gJy4uL2V2ZW50cy9ldmVudHMnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0FwcENhY2hlU2VydmljZX0gZnJvbSAnLi4vY2FjaGUvYXBwLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHtJU3lzdGVtU3RhdHVzfSBmcm9tICcuL3N5c3RlbS5zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7U3lzdGVtU3RhdHVzRW51bX0gZnJvbSAnLi9zeXN0ZW0uc3RhdHVzLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTeXN0ZW1TdGF0dXNTZXJ2aWNlIHtcblxuICBwcml2YXRlIGN1cnJlbnRTdGF0dXM6IElTeXN0ZW1TdGF0dXM7XG4gIHByaXZhdGUgc3RhdHVzQ2FjaGVLZXkgPSAnZW8uZnJhbWV3b3JrLmNhY2hlLnN5c3RlbS5zdGF0dXMnO1xuICBwcml2YXRlIGhhc0JlZW5TdG9wcGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcG9sbGluZ1N0b3BUcmlnZ2VyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSwgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSwgcHJpdmF0ZSBhcHBDYWNoZTogQXBwQ2FjaGVTZXJ2aWNlLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgdGhpcy5hcHBDYWNoZVxuICAgICAgLmdldEl0ZW0odGhpcy5zdGF0dXNDYWNoZUtleSlcbiAgICAgIC5zdWJzY3JpYmUoc3RhdHVzID0+IHRoaXMuY3VycmVudFN0YXR1cyA9IHN0YXR1cyk7XG4gIH1cblxuICBpbml0KHBvbGxJbnRlcnZhbE1pbGxpU2Vjb25kcyA9IC0xKSB7XG4gICAgaWYgKHBvbGxJbnRlcnZhbE1pbGxpU2Vjb25kcyA+IC0xKSB7XG4gICAgICB0aGlzLnBvbGxpbmdTdG9wVHJpZ2dlciQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgdGhpcy5zdGFydFBvbGxpbmcocG9sbEludGVydmFsTWlsbGlTZWNvbmRzKTtcbiAgICB9XG4gIH1cblxuICBzdG9wKCkge1xuICAgIHRoaXMuaGFzQmVlblN0b3BwZWQgPSB0cnVlO1xuICAgIHRoaXMucG9sbGluZ1N0b3BUcmlnZ2VyJC5uZXh0KCk7XG4gICAgdGhpcy5wb2xsaW5nU3RvcFRyaWdnZXIkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UG9sbGluZyhwb2xsSW50ZXJ2YWxNaWxsaVNlY29uZHMpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBsZXQgcmVxdWVzdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgICAgdGltZXIoMCwgcG9sbEludGVydmFsTWlsbGlTZWNvbmRzKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5wb2xsaW5nU3RvcFRyaWdnZXIkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIC8vIHRlbXBvcmFyeSBmaXggd2hpbGUgc3RhdHVzIHNlcnZpY2UgaXMgZGlzYWJsZWRcbiAgICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5TWVNURU1fU1RBVFVTX0lOQk9YX0NIQU5HRUQsIHt9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIGlmIChyZXF1ZXN0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgLy8gICByZXF1ZXN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIC8vIHJlcXVlc3RTdWJzY3JpcHRpb24gPSB0aGlzLmJhY2tlbmRcbiAgICAgICAgICAvLyAgIC5nZXQoJy9zdGF0dXMnLCB0aGlzLmJhY2tlbmQuZ2V0U3RhdHVzQmFzZSgpKVxuICAgICAgICAgIC8vICAgLnN1YnNjcmliZSgocmVzOiBJU3lzdGVtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlU3RhdHVzUmVzdWx0KHJlcyk7XG4gICAgICAgICAgLy8gICB9LCBlcnIgPT4ge1xuICAgICAgICAgIC8vICAgICB0aGlzLmhhbmRsZVN0YXR1c0Vycm9yKGVycik7XG4gICAgICAgICAgLy8gICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVN0YXR1c1Jlc3VsdChyZXM6IElTeXN0ZW1TdGF0dXMpIHtcbiAgICBjb25zdCBldmVudHNUb0JlVHJpZ2dlcmVkOiB7IHR5cGU6IHN0cmluZywgZGF0YTogYW55IH1bXSA9IFtdO1xuICAgIE9iamVjdC5rZXlzKHJlcykuZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgaWYgKHRoaXMuc3RhdHVzQ2hlY2socmVzLCB2YWwpKSB7XG4gICAgICAgIGV2ZW50c1RvQmVUcmlnZ2VyZWQucHVzaCh7XG4gICAgICAgICAgdHlwZTogdGhpcy5zdGF0dXNFdmVudCh2YWwpLFxuICAgICAgICAgIGRhdGE6IHJlc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChldmVudHNUb0JlVHJpZ2dlcmVkLmxlbmd0aCB8fCB0aGlzLmhhc0JlZW5TdG9wcGVkKSB7XG4gICAgICAvLyBpZiBwb2xsaW5nIGhhcyBiZWVuIHN0b3BwZWQgYW5kIGdldCBhY3RpdmF0ZWQgYWdhaW4sIHdlIG5lZWRcbiAgICAgIC8vIGFuZ3VsYXIgdG8gZGV0ZWN0IGNoYW5nZXMgaW1tZWRpYXRlbHlcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGV2ZW50c1RvQmVUcmlnZ2VyZWQuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKGUudHlwZSwgZS5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnRzVG9CZVRyaWdnZXJlZC5sZW5ndGggfHwgIXRoaXMuY3VycmVudFN0YXR1cykge1xuICAgICAgdGhpcy5jdXJyZW50U3RhdHVzID0gcmVzO1xuICAgICAgdGhpcy5hcHBDYWNoZS5zZXRJdGVtKHRoaXMuc3RhdHVzQ2FjaGVLZXksIHJlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGF0dXNFcnJvcihlcnIpIHtcbiAgICAvLyBleGVjdXRlIHdpdGhpbiB6b25lIHNvIGNvbXBvbmVudHMgYXJlIGFibGUgdG8gYmUgY2hlY2tlZFxuICAgIC8vIEdldHRpbmcgYSA0MDEgd291bGQgb3RoZXJ3aXNlIG5vdCB0cmlnZ2VyIGEgcm91dGUgY2hhbmdlIChyZWRpcmVjdCB0byBsb2dpbiBzdGF0ZSlcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgc2V0VGltZW91dChfID0+IHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdHVzRXZlbnQodmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBFbmFpb0V2ZW50W09iamVjdC5rZXlzKFN5c3RlbVN0YXR1c0VudW0pLmZpbmQoa2V5ID0+IFN5c3RlbVN0YXR1c0VudW1ba2V5XSA9PT0gdmFsKV07XG4gIH1cblxuICBwcml2YXRlIHN0YXR1c0NoZWNrKHJlczogSVN5c3RlbVN0YXR1cywgc3RhdHVzVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXR1cyAmJiAodGhpcy5jdXJyZW50U3RhdHVzW3N0YXR1c1R5cGVdIDwgcmVzW3N0YXR1c1R5cGVdKTtcbiAgfVxufVxuXG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export var SystemStatusEnum;
|
|
2
|
-
(function (SystemStatusEnum) {
|
|
3
|
-
SystemStatusEnum["SYSTEM_STATUS_SCHEMA_CHANGED"] = "schemaChangedOn";
|
|
4
|
-
SystemStatusEnum["SYSTEM_STATUS_ORG_CHANGED"] = "orgChangedOn";
|
|
5
|
-
SystemStatusEnum["SYSTEM_STATUS_SEC_CHANGED"] = "securityChangedOn";
|
|
6
|
-
SystemStatusEnum["SYSTEM_STATUS_ACL_CHANGED"] = "aclChangedOn";
|
|
7
|
-
SystemStatusEnum["SYSTEM_STATUS_INBOX_CHANGED"] = "inboxChangedOn";
|
|
8
|
-
})(SystemStatusEnum || (SystemStatusEnum = {}));
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnN0YXR1cy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3N5c3RlbS1zdGF0dXMvc3lzdGVtLnN0YXR1cy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQU1YO0FBTkQsV0FBWSxnQkFBZ0I7SUFDMUIsb0VBQWdELENBQUE7SUFDaEQsOERBQTBDLENBQUE7SUFDMUMsbUVBQStDLENBQUE7SUFDL0MsOERBQTBDLENBQUE7SUFDMUMsa0VBQThDLENBQUE7QUFDaEQsQ0FBQyxFQU5XLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFNM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTeXN0ZW1TdGF0dXNFbnVtIHtcbiAgU1lTVEVNX1NUQVRVU19TQ0hFTUFfQ0hBTkdFRCA9ICdzY2hlbWFDaGFuZ2VkT24nLFxuICBTWVNURU1fU1RBVFVTX09SR19DSEFOR0VEID0gJ29yZ0NoYW5nZWRPbicsXG4gIFNZU1RFTV9TVEFUVVNfU0VDX0NIQU5HRUQgPSAnc2VjdXJpdHlDaGFuZ2VkT24nLFxuICBTWVNURU1fU1RBVFVTX0FDTF9DSEFOR0VEID0gJ2FjbENoYW5nZWRPbicsXG4gIFNZU1RFTV9TVEFUVVNfSU5CT1hfQ0hBTkdFRCA9ICdpbmJveENoYW5nZWRPbidcbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnN0YXR1cy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc3lzdGVtLXN0YXR1cy9zeXN0ZW0uc3RhdHVzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJU3lzdGVtU3RhdHVzIHtcbiAgYWNsQ2hhbmdlZE9uOiBzdHJpbmc7XG4gIGluYm94Q2hhbmdlZE9uOiBzdHJpbmc7XG4gIG9yZ0NoYW5nZWRPbjogc3RyaW5nO1xuICBzY2hlbWFDaGFuZ2VkT246IHN0cmluZztcbiAgc2VjdXJpdHlDaGFuZ2VkT246IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
-
import { Utils } from '../../util/utils';
|
|
4
|
-
import { CORE_CONFIG } from '../../config/core-init.tokens';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common/http";
|
|
7
|
-
import * as i2 from "../user/user.service";
|
|
8
|
-
import * as i3 from "../../config/core-config";
|
|
9
|
-
/**
|
|
10
|
-
* The Upload Service is provides access to Upload data (files)
|
|
11
|
-
*/
|
|
12
|
-
export class UploadService {
|
|
13
|
-
/**
|
|
14
|
-
* @ignore
|
|
15
|
-
*/
|
|
16
|
-
constructor(coreConfig, http, userService) {
|
|
17
|
-
this.coreConfig = coreConfig;
|
|
18
|
-
this.http = http;
|
|
19
|
-
this.userService = userService;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Uploads files.
|
|
23
|
-
*
|
|
24
|
-
* @param uri Upload destination uri
|
|
25
|
-
* @param files Files to be uploaded
|
|
26
|
-
* @returns resolved by the response of the upload destination
|
|
27
|
-
*/
|
|
28
|
-
upload(uri, files) {
|
|
29
|
-
const formData = new FormData();
|
|
30
|
-
const headers = new HttpHeaders({ 'Accept-Language': this.userService.getCurrentUser().getClientLocale() });
|
|
31
|
-
files.forEach(file => formData.append('files[]', file, Utils.encodeFileName(file.name)));
|
|
32
|
-
return this.http.post(uri, formData, { headers, withCredentials: this.coreConfig.withCredentials });
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
UploadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UploadService, deps: [{ token: CORE_CONFIG }, { token: i1.HttpClient }, { token: i2.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
-
UploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UploadService, providedIn: 'root' });
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UploadService, decorators: [{
|
|
38
|
-
type: Injectable,
|
|
39
|
-
args: [{
|
|
40
|
-
providedIn: 'root'
|
|
41
|
-
}]
|
|
42
|
-
}], ctorParameters: function () { return [{ type: i3.CoreConfig, decorators: [{
|
|
43
|
-
type: Inject,
|
|
44
|
-
args: [CORE_CONFIG]
|
|
45
|
-
}] }, { type: i1.HttpClient }, { type: i2.UserService }]; } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvdXBsb2FkL3VwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7OztBQUcxRDs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBQ3hCOztPQUVHO0lBQ0gsWUFDOEIsVUFBc0IsRUFDMUMsSUFBZ0IsRUFBVSxXQUF3QjtRQUQ5QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQzFDLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUM1RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFDdkgsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQzs7MEdBckJVLGFBQWEsa0JBS2QsV0FBVzs4R0FMVixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGVhZGVyc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uL3VzZXIvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtDb3JlQ29uZmlnfSBmcm9tICcuLi8uLi9jb25maWcvY29yZS1jb25maWcnO1xuaW1wb3J0IHtDT1JFX0NPTkZJR30gZnJvbSAnLi4vLi4vY29uZmlnL2NvcmUtaW5pdC50b2tlbnMnO1xuXG5cbi8qKlxuICogVGhlIFVwbG9hZCBTZXJ2aWNlIGlzIHByb3ZpZGVzIGFjY2VzcyB0byBVcGxvYWQgZGF0YSAoZmlsZXMpXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZFNlcnZpY2Uge1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDT1JFX0NPTkZJRykgcHVibGljIGNvcmVDb25maWc6IENvcmVDb25maWcsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZHMgZmlsZXMuXG4gICAqXG4gICAqIEBwYXJhbSB1cmkgVXBsb2FkIGRlc3RpbmF0aW9uIHVyaVxuICAgKiBAcGFyYW0gZmlsZXMgRmlsZXMgdG8gYmUgdXBsb2FkZWRcbiAgICogQHJldHVybnMgcmVzb2x2ZWQgYnkgdGhlIHJlc3BvbnNlIG9mIHRoZSB1cGxvYWQgZGVzdGluYXRpb25cbiAgICovXG4gIHVwbG9hZCh1cmk6IHN0cmluZywgZmlsZXM6IEZpbGVbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBjb25zdCBoZWFkZXJzOiBIdHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7J0FjY2VwdC1MYW5ndWFnZSc6IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5nZXRDbGllbnRMb2NhbGUoKX0pO1xuICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGVzW10nLCBmaWxlLCBVdGlscy5lbmNvZGVGaWxlTmFtZShmaWxlLm5hbWUpKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVyaSwgZm9ybURhdGEsIHtoZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29yZUNvbmZpZy53aXRoQ3JlZGVudGlhbHN9KTtcbiAgfVxufVxuIl19
|