@hmcts/rpx-xui-common-lib 2.1.7-angular-upgrade-11 → 2.1.7-javascript-void
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 -1
- package/esm2022/hmcts-rpx-xui-common-lib.mjs +5 -0
- package/esm2022/lib/components/accessibility/accessibility.component.mjs +833 -0
- package/esm2022/lib/components/checkbox-list/checkbox-list.component.mjs +232 -0
- package/esm2022/lib/components/contact-details/contact-details.component.mjs +123 -0
- package/esm2022/lib/components/cookie-banner/cookie-banner.component.mjs +151 -0
- package/esm2022/lib/components/due-date/due-date.component.mjs +141 -0
- package/esm2022/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +80 -0
- package/esm2022/lib/components/find-location/find-location.component.mjs +220 -0
- package/esm2022/lib/components/find-person/find-person.component.mjs +234 -0
- package/esm2022/lib/components/find-service/find-service.component.mjs +193 -0
- package/esm2022/lib/components/find-task-name/find-task-name.component.mjs +200 -0
- package/esm2022/lib/components/generic-filter/generic-filter-utils.mjs +21 -0
- package/esm2022/lib/components/generic-filter/generic-filter.component.mjs +1224 -0
- package/esm2022/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +56 -0
- package/esm2022/lib/components/invite-user-form/invite-user-form.component.mjs +51 -0
- package/esm2022/lib/components/invite-user-permissions/invite-user-permission.component.mjs +54 -0
- package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +33 -0
- package/esm2022/lib/components/pagination/pagination.component.mjs +92 -0
- package/esm2022/lib/components/public_api.mjs +39 -0
- package/esm2022/lib/components/search-judicials/search-judicials.component.mjs +185 -0
- package/esm2022/lib/components/search-location/search-location.component.mjs +240 -0
- package/esm2022/lib/components/search-service/search-service.component.mjs +94 -0
- package/esm2022/lib/components/search-venue/search-venue.component.mjs +188 -0
- package/esm2022/lib/components/selected-case/selected-case.component.mjs +381 -0
- package/esm2022/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +135 -0
- package/esm2022/lib/components/selected-case-list/selected-case-list.component.mjs +98 -0
- package/esm2022/lib/components/service-message/service-message.component.mjs +62 -0
- package/esm2022/lib/components/service-messages/service-messages.component.mjs +167 -0
- package/esm2022/lib/components/share-case/share-case.component.mjs +427 -0
- package/esm2022/lib/components/share-case-confirm/share-case-confirm.component.mjs +85 -0
- package/esm2022/lib/components/tab/tab.component.mjs +40 -0
- package/esm2022/lib/components/tc-confirm/tc-confirm.component.mjs +66 -0
- package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +17 -0
- package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +17 -0
- package/esm2022/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +58 -0
- package/esm2022/lib/components/user-details/user-details.component.mjs +276 -0
- package/esm2022/lib/components/user-list/user-list.component.mjs +100 -0
- package/esm2022/lib/components/user-select/user-select.component.mjs +94 -0
- package/esm2022/lib/components/write-address/write-address.component.mjs +342 -0
- package/esm2022/lib/components/write-address-inputs/write-address-inputs.component.mjs +165 -0
- package/esm2022/lib/directives/feature-toggle/feature-toggle.directive.mjs +41 -0
- package/esm2022/lib/directives/let/let.directive.mjs +29 -0
- package/esm2022/lib/exui-common-lib.module.mjs +313 -0
- package/esm2022/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +55 -0
- package/esm2022/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +137 -0
- package/esm2022/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +127 -0
- package/esm2022/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +46 -0
- package/esm2022/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +79 -0
- package/esm2022/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +79 -0
- package/esm2022/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +45 -0
- package/esm2022/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +71 -0
- package/esm2022/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +84 -0
- package/esm2022/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +48 -0
- package/esm2022/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +42 -0
- package/esm2022/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +80 -0
- package/esm2022/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +185 -0
- package/esm2022/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +57 -0
- package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs +2 -0
- package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +111 -0
- package/esm2022/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +140 -0
- package/esm2022/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +34 -0
- package/esm2022/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +129 -0
- package/esm2022/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +204 -0
- package/esm2022/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +60 -0
- package/esm2022/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +58 -0
- package/esm2022/lib/gov-ui/directives/remove-host.directive.mjs +30 -0
- package/esm2022/lib/gov-ui/gov-ui.service.mjs +14 -0
- package/esm2022/lib/gov-ui/models/checkboxes-model.mjs +2 -0
- package/{esm2015/lib/gov-ui/models/gov-ui-config-model.js → esm2022/lib/gov-ui/models/gov-ui-config-model.mjs} +1 -1
- package/{esm2015/lib/gov-ui/models/public_api.js → esm2022/lib/gov-ui/models/public_api.mjs} +1 -2
- package/esm2022/lib/gov-ui/models/radio-buttons.model.mjs +2 -0
- package/esm2022/lib/gov-ui/util/helpers/html-templates.helper.mjs +22 -0
- package/{esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js → esm2022/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs} +1 -1
- package/{esm2015/lib/gov-ui/validators/date.validator.js → esm2022/lib/gov-ui/validators/date.validator.mjs} +1 -1
- package/esm2022/lib/gov-ui/validators/radio-group.validator.mjs +15 -0
- package/esm2022/lib/models/address-message.enum.mjs +11 -0
- package/esm2022/lib/models/address-option.model.mjs +21 -0
- package/esm2022/lib/models/address.model.mjs +4 -0
- package/{esm2015/lib/models/contact-details.model.js → esm2022/lib/models/contact-details.model.mjs} +1 -1
- package/esm2022/lib/models/feature-user.mjs +5 -0
- package/esm2022/lib/models/filter.model.mjs +3 -0
- package/esm2022/lib/models/index.mjs +19 -0
- package/esm2022/lib/models/location.model.mjs +7 -0
- package/esm2022/lib/models/person.model.mjs +21 -0
- package/{esm2015/lib/models/public_api.js → esm2022/lib/models/public_api.mjs} +2 -1
- package/{esm2015/lib/models/search-options.model.js → esm2022/lib/models/search-options.model.mjs} +1 -1
- package/esm2022/lib/models/service-message.model.mjs +2 -0
- package/esm2022/lib/models/task-name.model.mjs +2 -0
- package/esm2022/lib/models/user-access-type.model.mjs +2 -0
- package/esm2022/lib/models/user-details.model.mjs +2 -0
- package/esm2022/lib/pipes/capitalize/capitalize.pipe.mjs +15 -0
- package/esm2022/lib/pipes/index.mjs +2 -0
- package/esm2022/lib/services/address/address-parser.mjs +76 -0
- package/esm2022/lib/services/address/address-type.enum.mjs +7 -0
- package/esm2022/lib/services/address/address.service.mjs +55 -0
- package/esm2022/lib/services/case-sharing-state/case-sharing-state.service.mjs +170 -0
- package/esm2022/lib/services/cookie/cookie.service.mjs +48 -0
- package/esm2022/lib/services/feature-toggle/feature-toggle.guard.mjs +37 -0
- package/esm2022/lib/services/feature-toggle/feature-toggle.service.mjs +33 -0
- package/esm2022/lib/services/feature-toggle/launch-darkly.service.mjs +70 -0
- package/esm2022/lib/services/filter/filter.service.mjs +95 -0
- package/esm2022/lib/services/find-person/find-person.service.mjs +92 -0
- package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +73 -0
- package/esm2022/lib/services/google-tag-manager/google-tag-manager.service.mjs +85 -0
- package/{esm2015/lib/services/loading/loading.service.js → esm2022/lib/services/loading/loading.service.mjs} +8 -6
- package/esm2022/lib/services/locations/location.service.mjs +38 -0
- package/{esm2015/lib/services/manage-session/manage-session.services.js → esm2022/lib/services/manage-session/manage-session.services.mjs} +8 -10
- package/esm2022/lib/services/public-api.mjs +18 -0
- package/esm2022/lib/services/ref-data/index.mjs +4 -0
- package/esm2022/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs +2 -0
- package/esm2022/lib/services/ref-data/models/ref-data-region.model.mjs +2 -0
- package/esm2022/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs +2 -0
- package/esm2022/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +33 -0
- package/esm2022/lib/services/ref-data/ref-data.service.mjs +34 -0
- package/esm2022/lib/services/role-guard/role.guard.mjs +43 -0
- package/esm2022/lib/services/role-guard/role.service.mjs +22 -0
- package/esm2022/lib/services/storage/session-storage/session-storage.service.mjs +43 -0
- package/esm2022/lib/services/task-name/task-name.service.mjs +35 -0
- package/esm2022/lib/services/timeout-notifications/timeout-notifications.service.mjs +103 -0
- package/{esm2015/public-api.js → esm2022/public-api.mjs} +2 -1
- package/fesm2022/hmcts-rpx-xui-common-lib.mjs +10386 -0
- package/fesm2022/hmcts-rpx-xui-common-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/accessibility/accessibility.component.d.ts +7 -1
- package/lib/components/checkbox-list/checkbox-list.component.d.ts +8 -2
- package/lib/components/contact-details/contact-details.component.d.ts +3 -0
- package/lib/components/cookie-banner/cookie-banner.component.d.ts +5 -1
- package/lib/components/due-date/due-date.component.d.ts +8 -2
- package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +3 -0
- package/lib/components/find-location/find-location.component.d.ts +12 -6
- package/lib/components/find-person/find-person.component.d.ts +5 -2
- package/lib/components/find-service/find-service.component.d.ts +24 -9
- package/lib/components/find-task-name/find-task-name.component.d.ts +44 -0
- package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -5
- package/lib/components/generic-filter/generic-filter.component.d.ts +25 -6
- package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +3 -0
- package/lib/components/invite-user-form/invite-user-form.component.d.ts +3 -0
- package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +3 -0
- package/lib/components/loading-spinner/loading-spinner.component.d.ts +8 -1
- package/lib/components/pagination/pagination.component.d.ts +3 -0
- package/lib/components/public_api.d.ts +6 -0
- package/lib/components/search-judicials/search-judicials.component.d.ts +3 -0
- package/lib/components/search-location/search-location.component.d.ts +25 -20
- package/lib/components/search-service/search-service.component.d.ts +16 -9
- package/lib/components/search-venue/search-venue.component.d.ts +3 -1
- package/lib/components/selected-case/selected-case.component.d.ts +3 -0
- package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +3 -0
- package/lib/components/selected-case-list/selected-case-list.component.d.ts +3 -0
- package/lib/components/service-message/service-message.component.d.ts +9 -4
- package/lib/components/service-messages/service-messages.component.d.ts +15 -5
- package/lib/components/share-case/share-case.component.d.ts +4 -0
- package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +3 -0
- package/lib/components/tab/tab.component.d.ts +3 -0
- package/lib/components/tc-confirm/tc-confirm.component.d.ts +3 -0
- package/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.d.ts +3 -0
- package/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.d.ts +3 -0
- package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +3 -0
- package/lib/components/user-details/user-details.component.d.ts +4 -0
- package/lib/components/user-list/user-list.component.d.ts +3 -0
- package/lib/components/user-select/user-select.component.d.ts +5 -3
- package/lib/components/write-address/write-address.component.d.ts +45 -0
- package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +16 -0
- package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +3 -0
- package/lib/directives/let/let.directive.d.ts +3 -0
- package/lib/exui-common-lib.module.d.ts +83 -4
- package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +17 -5
- package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +4 -2
- package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +4 -0
- package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +5 -2
- package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +3 -0
- package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +7 -0
- package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +7 -2
- package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +6 -3
- package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +3 -0
- package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +3 -0
- package/lib/gov-ui/directives/remove-host.directive.d.ts +3 -0
- package/lib/gov-ui/gov-ui.service.d.ts +3 -0
- package/lib/gov-ui/models/checkboxes-model.d.ts +4 -7
- package/lib/gov-ui/models/gov-ui-config-model.d.ts +2 -0
- package/lib/gov-ui/models/public_api.d.ts +0 -1
- package/lib/gov-ui/models/radio-buttons.model.d.ts +9 -0
- package/lib/models/address-message.enum.d.ts +9 -0
- package/lib/models/address-option.model.d.ts +9 -0
- package/lib/models/address.model.d.ts +9 -0
- package/lib/models/contact-details.model.d.ts +4 -0
- package/lib/models/feature-user.d.ts +4 -6
- package/lib/models/filter.model.d.ts +42 -9
- package/lib/models/index.d.ts +4 -0
- package/lib/models/location.model.d.ts +12 -12
- package/lib/models/person.model.d.ts +5 -3
- package/lib/models/public_api.d.ts +1 -0
- package/lib/models/search-options.model.d.ts +1 -1
- package/lib/models/service-message.model.d.ts +8 -0
- package/lib/models/task-name.model.d.ts +4 -0
- package/lib/models/user-access-type.model.d.ts +6 -0
- package/lib/models/user-details.model.d.ts +2 -0
- package/lib/pipes/capitalize/capitalize.pipe.d.ts +7 -0
- package/lib/pipes/index.d.ts +1 -0
- package/lib/services/address/address-parser.d.ts +17 -0
- package/lib/services/address/address-type.enum.d.ts +5 -0
- package/lib/services/address/address.service.d.ts +15 -0
- package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +3 -0
- package/lib/services/cookie/cookie.service.d.ts +3 -0
- package/lib/services/feature-toggle/feature-toggle.guard.d.ts +8 -2
- package/lib/services/feature-toggle/feature-toggle.service.d.ts +4 -0
- package/lib/services/feature-toggle/launch-darkly.service.d.ts +14 -10
- package/lib/services/filter/filter.service.d.ts +6 -0
- package/lib/services/find-person/find-person.service.d.ts +5 -2
- package/lib/services/google-analytics/google-analytics.service.d.ts +4 -1
- package/lib/services/google-tag-manager/google-tag-manager.service.d.ts +5 -1
- package/lib/services/loading/loading.service.d.ts +3 -0
- package/lib/services/locations/location.service.d.ts +4 -1
- package/lib/services/manage-session/manage-session.services.d.ts +3 -0
- package/lib/services/public-api.d.ts +2 -0
- package/lib/services/ref-data/index.d.ts +3 -0
- package/lib/services/ref-data/models/ref-data-htmcs-service.model.d.ts +13 -0
- package/lib/services/ref-data/models/ref-data-region.model.d.ts +4 -0
- package/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.d.ts +8 -0
- package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +18 -0
- package/lib/services/ref-data/ref-data.service.d.ts +17 -0
- package/lib/services/role-guard/role.guard.d.ts +7 -3
- package/lib/services/role-guard/role.service.d.ts +8 -4
- package/lib/services/{session-storage → storage/session-storage}/session-storage.service.d.ts +3 -0
- package/lib/services/task-name/task-name.service.d.ts +17 -0
- package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +8 -2
- package/package.json +21 -11
- package/public-api.d.ts +1 -0
- package/bundles/hmcts-rpx-xui-common-lib.umd.js +0 -5141
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +0 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +0 -2
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +0 -1
- package/esm2015/hmcts-rpx-xui-common-lib.js +0 -70
- package/esm2015/lib/components/accessibility/accessibility.component.js +0 -14
- package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +0 -177
- package/esm2015/lib/components/contact-details/contact-details.component.js +0 -17
- package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +0 -68
- package/esm2015/lib/components/due-date/due-date.component.js +0 -115
- package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +0 -28
- package/esm2015/lib/components/find-location/find-location.component.js +0 -124
- package/esm2015/lib/components/find-person/find-person.component.js +0 -118
- package/esm2015/lib/components/find-service/find-service.component.js +0 -31
- package/esm2015/lib/components/generic-filter/generic-filter-utils.js +0 -21
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +0 -387
- package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +0 -27
- package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +0 -25
- package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +0 -25
- package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +0 -18
- package/esm2015/lib/components/pagination/pagination.component.js +0 -28
- package/esm2015/lib/components/public_api.js +0 -33
- package/esm2015/lib/components/search-judicials/search-judicials.component.js +0 -126
- package/esm2015/lib/components/search-location/search-location.component.js +0 -133
- package/esm2015/lib/components/search-service/search-service.component.js +0 -31
- package/esm2015/lib/components/search-venue/search-venue.component.js +0 -123
- package/esm2015/lib/components/selected-case/selected-case.component.js +0 -158
- package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +0 -36
- package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +0 -49
- package/esm2015/lib/components/service-message/service-message.component.js +0 -22
- package/esm2015/lib/components/service-messages/service-messages.component.js +0 -48
- package/esm2015/lib/components/share-case/share-case.component.js +0 -205
- package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +0 -34
- package/esm2015/lib/components/tab/tab.component.js +0 -21
- package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +0 -22
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +0 -13
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +0 -13
- package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +0 -16
- package/esm2015/lib/components/user-details/user-details.component.js +0 -41
- package/esm2015/lib/components/user-list/user-list.component.js +0 -33
- package/esm2015/lib/components/user-select/user-select.component.js +0 -58
- package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +0 -42
- package/esm2015/lib/directives/let/let.directive.js +0 -30
- package/esm2015/lib/exui-common-lib.module.js +0 -160
- package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +0 -31
- package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +0 -21
- package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +0 -64
- package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +0 -22
- package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -28
- package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +0 -35
- package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +0 -23
- package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +0 -34
- package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +0 -21
- package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +0 -33
- package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +0 -21
- package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +0 -27
- package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +0 -39
- package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +0 -27
- package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +0 -23
- package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +0 -48
- package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +0 -19
- package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +0 -41
- package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +0 -28
- package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +0 -23
- package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +0 -15
- package/esm2015/lib/gov-ui/directives/remove-host.directive.js +0 -29
- package/esm2015/lib/gov-ui/gov-ui.service.js +0 -13
- package/esm2015/lib/gov-ui/models/banner-data-model.js +0 -2
- package/esm2015/lib/gov-ui/models/checkboxes-model.js +0 -2
- package/esm2015/lib/gov-ui/models/isession-storage.interface.js +0 -2
- package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +0 -22
- package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +0 -22
- package/esm2015/lib/gov-ui/validators/radio-group.validator.js +0 -15
- package/esm2015/lib/models/feature-user.js +0 -5
- package/esm2015/lib/models/filter.model.js +0 -3
- package/esm2015/lib/models/index.js +0 -15
- package/esm2015/lib/models/location.model.js +0 -7
- package/esm2015/lib/models/person.model.js +0 -19
- package/esm2015/lib/models/user-details.model.js +0 -2
- package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +0 -157
- package/esm2015/lib/services/cookie/cookie.service.js +0 -47
- package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +0 -35
- package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +0 -27
- package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +0 -59
- package/esm2015/lib/services/filter/filter.service.js +0 -64
- package/esm2015/lib/services/find-person/find-person.service.js +0 -106
- package/esm2015/lib/services/google-analytics/google-analytics.service.js +0 -68
- package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +0 -71
- package/esm2015/lib/services/locations/location.service.js +0 -39
- package/esm2015/lib/services/public-api.js +0 -16
- package/esm2015/lib/services/role-guard/role.guard.js +0 -37
- package/esm2015/lib/services/role-guard/role.service.js +0 -20
- package/esm2015/lib/services/session-storage/session-storage.service.js +0 -41
- package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +0 -94
- package/fesm2015/hmcts-rpx-xui-common-lib.js +0 -4174
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +0 -1
- package/hmcts-rpx-xui-common-lib.d.ts +0 -69
- package/hmcts-rpx-xui-common-lib.metadata.json +0 -1
- package/lib/gov-ui/models/banner-data-model.d.ts +0 -4
- package/lib/gov-ui/models/isession-storage.interface.d.ts +0 -4
- package/lib/gov-ui/util/session-storage/session-storage-utils.d.ts +0 -6
- /package/{esm2015/lib/components/index.js → esm2022/lib/components/index.mjs} +0 -0
- /package/{esm2015/lib/directives/index.js → esm2022/lib/directives/index.mjs} +0 -0
- /package/{esm2015/lib/directives/public-api.js → esm2022/lib/directives/public-api.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/components/index.js → esm2022/lib/gov-ui/components/index.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/components/public_api.js → esm2022/lib/gov-ui/components/public_api.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/index.js → esm2022/lib/gov-ui/index.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/models/error-messages-model.js → esm2022/lib/gov-ui/models/error-messages-model.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/models/index.js → esm2022/lib/gov-ui/models/index.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/public_api.js → esm2022/lib/gov-ui/public_api.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/validators/index.js → esm2022/lib/gov-ui/validators/index.mjs} +0 -0
- /package/{esm2015/lib/gov-ui/validators/public_api.js → esm2022/lib/gov-ui/validators/public_api.mjs} +0 -0
- /package/{esm2015/lib/models/case-share.model.js → esm2022/lib/models/case-share.model.mjs} +0 -0
- /package/{esm2015/lib/models/due-date.model.js → esm2022/lib/models/due-date.model.mjs} +0 -0
- /package/{esm2015/lib/models/idle-config.model.js → esm2022/lib/models/idle-config.model.mjs} +0 -0
- /package/{esm2015/lib/models/pagination.model.js → esm2022/lib/models/pagination.model.mjs} +0 -0
- /package/{esm2015/lib/models/tcDocument.model.js → esm2022/lib/models/tcDocument.model.mjs} +0 -0
- /package/{esm2015/lib/models/timeout-notification.model.js → esm2022/lib/models/timeout-notification.model.mjs} +0 -0
- /package/{esm2015/lib/models/user.model.js → esm2022/lib/models/user.model.mjs} +0 -0
- /package/{esm2015/lib/services/index.js → esm2022/lib/services/index.mjs} +0 -0
- /package/{esm2015/lib/window.js → esm2022/lib/window.mjs} +0 -0
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class CaseSharingStateService {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.caseState = [];
|
|
8
|
-
this.subject = new BehaviorSubject(this.caseState);
|
|
9
|
-
}
|
|
10
|
-
get state() {
|
|
11
|
-
return this.subject.asObservable().pipe(distinctUntilChanged());
|
|
12
|
-
}
|
|
13
|
-
setCases(cases) {
|
|
14
|
-
this.caseState = [];
|
|
15
|
-
cases.forEach(aCase => {
|
|
16
|
-
this.caseState.push({ caseId: aCase.caseId, caseTitle: aCase.caseTitle, caseTypeId: aCase.caseTypeId, roles: aCase.roles,
|
|
17
|
-
sharedWith: aCase.sharedWith, pendingShares: aCase.pendingShares, pendingUnshares: aCase.pendingUnshares });
|
|
18
|
-
});
|
|
19
|
-
this.subject.next(this.caseState);
|
|
20
|
-
}
|
|
21
|
-
getCases() {
|
|
22
|
-
return this.caseState;
|
|
23
|
-
}
|
|
24
|
-
requestShare(user) {
|
|
25
|
-
const oldSharedCases = this.caseState.slice();
|
|
26
|
-
const newSharedCases = [];
|
|
27
|
-
for (const sharedCase of oldSharedCases) {
|
|
28
|
-
if (!sharedCase.pendingShares) {
|
|
29
|
-
sharedCase.pendingShares = [];
|
|
30
|
-
}
|
|
31
|
-
const newPendingShares = sharedCase.pendingShares.slice();
|
|
32
|
-
if (!sharedCase.pendingUnshares) {
|
|
33
|
-
sharedCase.pendingUnshares = [];
|
|
34
|
-
}
|
|
35
|
-
const newPendingUnshares = sharedCase.pendingUnshares.slice();
|
|
36
|
-
if (!this.userHasAccess(sharedCase, user)) {
|
|
37
|
-
if (!newPendingShares.some(u => u.email === user.email)) {
|
|
38
|
-
newPendingShares.push(user);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
for (let u = 0, ul = newPendingUnshares.length; u < ul; u++) {
|
|
43
|
-
if (newPendingUnshares[u].email === user.email) {
|
|
44
|
-
newPendingUnshares.splice(u, 1);
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
const newSharedCase = Object.assign(Object.assign({}, sharedCase), { pendingUnshares: newPendingUnshares, pendingShares: newPendingShares });
|
|
50
|
-
newSharedCases.push(newSharedCase);
|
|
51
|
-
}
|
|
52
|
-
this.subject.next(newSharedCases);
|
|
53
|
-
return newSharedCases;
|
|
54
|
-
}
|
|
55
|
-
requestUnshare(user, caseId) {
|
|
56
|
-
const newSharedCases = [];
|
|
57
|
-
for (const sharedCase of this.caseState) {
|
|
58
|
-
// If no caseId, then request unshare from all shared cases
|
|
59
|
-
if (caseId === undefined || sharedCase.caseId === caseId) {
|
|
60
|
-
if (!sharedCase.pendingUnshares) {
|
|
61
|
-
sharedCase.pendingUnshares = [];
|
|
62
|
-
}
|
|
63
|
-
const newPendingUnshares = sharedCase.pendingUnshares.slice();
|
|
64
|
-
// If the user is pending shared access, just remove them from pendingShares
|
|
65
|
-
let newPendingShares;
|
|
66
|
-
let indexOfPreviouslyAddedUser = -1;
|
|
67
|
-
if (sharedCase.pendingShares) {
|
|
68
|
-
indexOfPreviouslyAddedUser = sharedCase.pendingShares.findIndex(u => u.idamId === user.idamId);
|
|
69
|
-
if (indexOfPreviouslyAddedUser > -1) {
|
|
70
|
-
newPendingShares = sharedCase.pendingShares.slice();
|
|
71
|
-
newPendingShares.splice(indexOfPreviouslyAddedUser, 1);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// If the user does not exist in pendingShares, and already has shared access (i.e. exists in sharedWith),
|
|
75
|
-
// request removal of shared access
|
|
76
|
-
if (indexOfPreviouslyAddedUser === -1 && sharedCase.sharedWith && sharedCase.sharedWith.findIndex(u => u.idamId === user.idamId) > -1) {
|
|
77
|
-
if (!newPendingUnshares.some(u => u.email === user.email)) {
|
|
78
|
-
newPendingUnshares.push(user);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
const newSharedCase = Object.assign(Object.assign(Object.assign({}, sharedCase), { pendingUnshares: newPendingUnshares }), (newPendingShares && {
|
|
82
|
-
pendingShares: newPendingShares
|
|
83
|
-
}));
|
|
84
|
-
newSharedCases.push(newSharedCase);
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
newSharedCases.push(sharedCase);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
this.subject.next(newSharedCases);
|
|
91
|
-
return newSharedCases;
|
|
92
|
-
}
|
|
93
|
-
requestCancel(caseId, user) {
|
|
94
|
-
const newSharedCases = [];
|
|
95
|
-
for (const sharedCase of this.caseState) {
|
|
96
|
-
if (sharedCase.caseId === caseId) {
|
|
97
|
-
if (!sharedCase.pendingUnshares) {
|
|
98
|
-
sharedCase.pendingUnshares = [];
|
|
99
|
-
}
|
|
100
|
-
const newPendingUnshares = sharedCase.pendingUnshares.slice();
|
|
101
|
-
for (let iPendingUnshares = 0; iPendingUnshares < newPendingUnshares.length; iPendingUnshares++) {
|
|
102
|
-
if (newPendingUnshares[iPendingUnshares].email === user.email) {
|
|
103
|
-
newPendingUnshares.splice(iPendingUnshares, 1);
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
if (!sharedCase.pendingShares) {
|
|
108
|
-
sharedCase.pendingShares = [];
|
|
109
|
-
}
|
|
110
|
-
const newPendingShares = sharedCase.pendingShares.slice();
|
|
111
|
-
for (let iPendingShares = 0; iPendingShares < newPendingShares.length; iPendingShares++) {
|
|
112
|
-
if (newPendingShares[iPendingShares].email === user.email) {
|
|
113
|
-
newPendingShares.splice(iPendingShares, 1);
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
const newSharedCase = Object.assign(Object.assign({}, sharedCase), { pendingUnshares: newPendingUnshares, pendingShares: newPendingShares });
|
|
118
|
-
newSharedCases.push(newSharedCase);
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
newSharedCases.push(sharedCase);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
this.subject.next(newSharedCases);
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
removeCase(caseId) {
|
|
128
|
-
if (this.caseState.length > 1) {
|
|
129
|
-
for (let i = 0, l = this.caseState.length; i < l; i++) {
|
|
130
|
-
if (this.caseState[i].caseId === caseId) {
|
|
131
|
-
this.caseState.splice(i, 1);
|
|
132
|
-
this.subject.next(this.caseState);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
userHasAccess(c, user) {
|
|
139
|
-
if (!c.sharedWith) {
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
for (let i = 0, l = c.sharedWith.length; i < l; i++) {
|
|
143
|
-
if (c.sharedWith[i].email === user.email) {
|
|
144
|
-
return true;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
CaseSharingStateService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CaseSharingStateService_Factory() { return new CaseSharingStateService(); }, token: CaseSharingStateService, providedIn: "root" });
|
|
151
|
-
CaseSharingStateService.decorators = [
|
|
152
|
-
{ type: Injectable, args: [{
|
|
153
|
-
providedIn: 'root'
|
|
154
|
-
},] }
|
|
155
|
-
];
|
|
156
|
-
CaseSharingStateService.ctorParameters = () => [];
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU90RCxNQUFNLE9BQU8sdUJBQXVCO0lBV2xDO1FBVFEsY0FBUyxHQUFpQixFQUFFLENBQUM7UUFDcEIsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQVE3RCxDQUFDO0lBTmpCLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ3JDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBSU0sUUFBUSxDQUFDLEtBQW1CO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ3RILFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxL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Z0JBQ3hDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OztZQXZLRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2hhcmVkQ2FzZSB9IGZyb20gJy4uLy4uL21vZGVscy9jYXNlLXNoYXJlLm1vZGVsJztcbmltcG9ydCB7IFVzZXJEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXItZGV0YWlscy5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlIHtcblxuICBwcml2YXRlIGNhc2VTdGF0ZTogU2hhcmVkQ2FzZVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2hhcmVkQ2FzZVtdPih0aGlzLmNhc2VTdGF0ZSk7XG5cbiAgcHVibGljIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIHNldENhc2VzKGNhc2VzOiBTaGFyZWRDYXNlW10pOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VTdGF0ZSA9IFtdO1xuICAgIGNhc2VzLmZvckVhY2goYUNhc2UgPT4ge1xuICAgICAgdGhpcy5jYXNlU3RhdGUucHVzaCh7IGNhc2VJZDogYUNhc2UuY2FzZUlkLCBjYXNlVGl0bGU6IGFDYXNlLmNhc2VUaXRsZSwgY2FzZVR5cGVJZDogYUNhc2UuY2FzZVR5cGVJZCwgcm9sZXM6IGFDYXNlLnJvbGVzLFxuICAgICAgICBzaGFyZWRXaXRoOiBhQ2FzZS5zaGFyZWRXaXRoLCBwZW5kaW5nU2hhcmVzOiBhQ2FzZS5wZW5kaW5nU2hhcmVzLCBwZW5kaW5nVW5zaGFyZXM6IGFDYXNlLnBlbmRpbmdVbnNoYXJlcyB9KTtcbiAgICB9KTtcbiAgICB0aGlzLnN1YmplY3QubmV4dCh0aGlzLmNhc2VTdGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZXMoKTogU2hhcmVkQ2FzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFNoYXJlKHVzZXI6IFVzZXJEZXRhaWxzKTogU2hhcmVkQ2FzZVtdIHtcbiAgICBjb25zdCBvbGRTaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdID0gdGhpcy5jYXNlU3RhdGUuc2xpY2UoKTtcbiAgICBjb25zdCBuZXdTaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdID0gW107XG4gICAgZm9yIChjb25zdCBzaGFyZWRDYXNlIG9mIG9sZFNoYXJlZENhc2VzKSB7XG4gICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMgPSBbXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld1BlbmRpbmdTaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuc2xpY2UoKTtcbiAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgPSBbXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld1BlbmRpbmdVbnNoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLnNsaWNlKCk7XG4gICAgICBpZiAoIXRoaXMudXNlckhhc0FjY2VzcyhzaGFyZWRDYXNlLCB1c2VyKSkge1xuICAgICAgICBpZiAoIW5ld1BlbmRpbmdTaGFyZXMuc29tZSh1ID0+IHUuZW1haWwgPT09IHVzZXIuZW1haWwpKSB7XG4gICAgICAgICAgbmV3UGVuZGluZ1NoYXJlcy5wdXNoKHVzZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGxldCB1ID0gMCwgdWwgPSBuZXdQZW5kaW5nVW5zaGFyZXMubGVuZ3RoOyB1IDwgdWw7IHUrKykge1xuICAgICAgICAgIGlmIChuZXdQZW5kaW5nVW5zaGFyZXNbdV0uZW1haWwgPT09IHVzZXIuZW1haWwpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdVbnNoYXJlcy5zcGxpY2UodSwgMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld1NoYXJlZENhc2UgPSB7XG4gICAgICAgIC4uLnNoYXJlZENhc2UsXG4gICAgICAgIHBlbmRpbmdVbnNoYXJlczogbmV3UGVuZGluZ1Vuc2hhcmVzLFxuICAgICAgICBwZW5kaW5nU2hhcmVzOiBuZXdQZW5kaW5nU2hhcmVzXG4gICAgICB9O1xuICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChuZXdTaGFyZWRDYXNlKTtcbiAgICB9XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIHJldHVybiBuZXdTaGFyZWRDYXNlcztcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0VW5zaGFyZSh1c2VyOiBVc2VyRGV0YWlscywgY2FzZUlkPzogc3RyaW5nKTogU2hhcmVkQ2FzZVtdIHtcbiAgICBjb25zdCBuZXdTaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdID0gW107XG4gICAgZm9yIChjb25zdCBzaGFyZWRDYXNlIG9mIHRoaXMuY2FzZVN0YXRlKSB7XG4gICAgICAvLyBJZiBubyBjYXNlSWQsIHRoZW4gcmVxdWVzdCB1bnNoYXJlIGZyb20gYWxsIHNoYXJlZCBjYXNlc1xuICAgICAgaWYgKGNhc2VJZCA9PT0gdW5kZWZpbmVkIHx8IHNoYXJlZENhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3UGVuZGluZ1Vuc2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgcGVuZGluZyBzaGFyZWQgYWNjZXNzLCBqdXN0IHJlbW92ZSB0aGVtIGZyb20gcGVuZGluZ1NoYXJlc1xuICAgICAgICBsZXQgbmV3UGVuZGluZ1NoYXJlcztcbiAgICAgICAgbGV0IGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyID0gLTE7XG4gICAgICAgIGlmIChzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgICAgICBpbmRleE9mUHJldmlvdXNseUFkZGVkVXNlciA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5maW5kSW5kZXgodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpO1xuICAgICAgICAgIGlmIChpbmRleE9mUHJldmlvdXNseUFkZGVkVXNlciA+IC0xKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLnNsaWNlKCk7XG4gICAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzLnNwbGljZShpbmRleE9mUHJldmlvdXNseUFkZGVkVXNlciwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGRvZXMgbm90IGV4aXN0IGluIHBlbmRpbmdTaGFyZXMsIGFuZCBhbHJlYWR5IGhhcyBzaGFyZWQgYWNjZXNzIChpLmUuIGV4aXN0cyBpbiBzaGFyZWRXaXRoKSxcbiAgICAgICAgLy8gcmVxdWVzdCByZW1vdmFsIG9mIHNoYXJlZCBhY2Nlc3NcbiAgICAgICAgaWYgKGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyID09PSAtMSAmJiBzaGFyZWRDYXNlLnNoYXJlZFdpdGggJiYgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmZpbmRJbmRleChcbiAgICAgICAgICB1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCkgPiAtMSkge1xuICAgICAgICAgIGlmICghbmV3UGVuZGluZ1Vuc2hhcmVzLnNvbWUodSA9PiB1LmVtYWlsID09PSB1c2VyLmVtYWlsKSkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1Vuc2hhcmVzLnB1c2godXNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1NoYXJlZENhc2UgPSB7XG4gICAgICAgICAgLi4uc2hhcmVkQ2FzZSxcbiAgICAgICAgICBwZW5kaW5nVW5zaGFyZXM6IG5ld1BlbmRpbmdVbnNoYXJlcyxcbiAgICAgICAgICAuLi4obmV3UGVuZGluZ1NoYXJlcyAmJiB7XG4gICAgICAgICAgICBwZW5kaW5nU2hhcmVzOiBuZXdQZW5kaW5nU2hhcmVzXG4gICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChuZXdTaGFyZWRDYXNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2goc2hhcmVkQ2FzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5ld1NoYXJlZENhc2VzKTtcbiAgICByZXR1cm4gbmV3U2hhcmVkQ2FzZXM7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdENhbmNlbChjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdTaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdID0gW107XG4gICAgZm9yIChjb25zdCBzaGFyZWRDYXNlIG9mIHRoaXMuY2FzZVN0YXRlKSB7XG4gICAgICBpZiAoc2hhcmVkQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzKSB7XG4gICAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdQZW5kaW5nVW5zaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5zbGljZSgpO1xuICAgICAgICBmb3IgKGxldCBpUGVuZGluZ1Vuc2hhcmVzID0gMDsgaVBlbmRpbmdVbnNoYXJlcyA8IG5ld1BlbmRpbmdVbnNoYXJlcy5sZW5ndGg7IGlQZW5kaW5nVW5zaGFyZXMrKykge1xuICAgICAgICAgIGlmIChuZXdQZW5kaW5nVW5zaGFyZXNbaVBlbmRpbmdVbnNoYXJlc10uZW1haWwgPT09IHVzZXIuZW1haWwpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdVbnNoYXJlcy5zcGxpY2UoaVBlbmRpbmdVbnNoYXJlcywgMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdQZW5kaW5nU2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLnNsaWNlKCk7XG4gICAgICAgIGZvciAobGV0IGlQZW5kaW5nU2hhcmVzID0gMDsgaVBlbmRpbmdTaGFyZXMgPCBuZXdQZW5kaW5nU2hhcmVzLmxlbmd0aDsgaVBlbmRpbmdTaGFyZXMrKykge1xuICAgICAgICAgIGlmIChuZXdQZW5kaW5nU2hhcmVzW2lQZW5kaW5nU2hhcmVzXS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1NoYXJlcy5zcGxpY2UoaVBlbmRpbmdTaGFyZXMsIDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1NoYXJlZENhc2UgPSB7XG4gICAgICAgICAgLi4uc2hhcmVkQ2FzZSxcbiAgICAgICAgICBwZW5kaW5nVW5zaGFyZXM6IG5ld1BlbmRpbmdVbnNoYXJlcyxcbiAgICAgICAgICBwZW5kaW5nU2hhcmVzOiBuZXdQZW5kaW5nU2hhcmVzXG4gICAgICAgIH07XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2gobmV3U2hhcmVkQ2FzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKHNoYXJlZENhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN1YmplY3QubmV4dChuZXdTaGFyZWRDYXNlcyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUNhc2UoY2FzZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYXNlU3RhdGUubGVuZ3RoID4gMSkge1xuICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLmNhc2VTdGF0ZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgaWYgKHRoaXMuY2FzZVN0YXRlW2ldLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgdGhpcy5jYXNlU3RhdGUuc3BsaWNlKGksIDEpO1xuICAgICAgICAgIHRoaXMuc3ViamVjdC5uZXh0KHRoaXMuY2FzZVN0YXRlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXNlckhhc0FjY2VzcyhjOiBTaGFyZWRDYXNlLCB1c2VyOiBVc2VyRGV0YWlscyk6IGJvb2xlYW4ge1xuICAgIGlmICghYy5zaGFyZWRXaXRoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gYy5zaGFyZWRXaXRoLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGMuc2hhcmVkV2l0aFtpXS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class CookieService {
|
|
6
|
-
constructor(doc) {
|
|
7
|
-
this.document = doc;
|
|
8
|
-
}
|
|
9
|
-
setCookie(key, value, expiryDate) {
|
|
10
|
-
const expiry = expiryDate ? ` expires=${expiryDate}` : '';
|
|
11
|
-
const cookie = `${key}=${value};${expiry}`;
|
|
12
|
-
this.document.cookie = cookie;
|
|
13
|
-
}
|
|
14
|
-
getCookie(key) {
|
|
15
|
-
const cookieValue = this.document.cookie
|
|
16
|
-
.split('; ')
|
|
17
|
-
.find(row => row.startsWith(`${key}=`))
|
|
18
|
-
.split('=')[1];
|
|
19
|
-
return cookieValue;
|
|
20
|
-
}
|
|
21
|
-
deleteCookie(key, path, domain) {
|
|
22
|
-
const pathValue = path ? `; path=${path}` : '';
|
|
23
|
-
const domainValue = domain ? `; domain=${domain}` : '';
|
|
24
|
-
this.document.cookie = `${key}=${pathValue}${domainValue}; expires=Thu, 01 Jan 1970 00:00:01 GMT; max-age=0`;
|
|
25
|
-
}
|
|
26
|
-
deleteCookieByPartialMatch(key, path, domain) {
|
|
27
|
-
this.document.cookie
|
|
28
|
-
.split('; ')
|
|
29
|
-
.filter(row => row.startsWith(`${key}`))
|
|
30
|
-
.forEach(element => {
|
|
31
|
-
this.deleteCookie(element.split('=')[0], path, domain);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
checkCookie(key) {
|
|
35
|
-
return this.document.cookie.split('; ').some(item => item.trim().startsWith(`${key}=`));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
CookieService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CookieService_Factory() { return new CookieService(i0.ɵɵinject(i1.DOCUMENT)); }, token: CookieService, providedIn: "root" });
|
|
39
|
-
CookieService.decorators = [
|
|
40
|
-
{ type: Injectable, args: [{
|
|
41
|
-
providedIn: 'root'
|
|
42
|
-
},] }
|
|
43
|
-
];
|
|
44
|
-
CookieService.ctorParameters = () => [
|
|
45
|
-
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
46
|
-
];
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jb29raWUvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLbkQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBOEIsR0FBUztRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQWUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsVUFBbUI7UUFDOUQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQVc7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO2FBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDWCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQzthQUN0QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVNLFlBQVksQ0FBQyxHQUFXLEVBQUUsSUFBYSxFQUFFLE1BQWU7UUFDN0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksU0FBUyxHQUFHLFdBQVcsb0RBQW9ELENBQUM7SUFDL0csQ0FBQztJQUVNLDBCQUEwQixDQUFDLEdBQVcsRUFBRSxJQUFhLEVBQUUsTUFBZTtRQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07YUFDakIsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFXO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQzs7OztZQXpDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs0Q0FJYyxNQUFNLFNBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudD86IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvYz86IGFueSkge1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2MgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29va2llKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBleHBpcnlEYXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJ5ID0gZXhwaXJ5RGF0ZSA/IGAgZXhwaXJlcz0ke2V4cGlyeURhdGV9YCA6ICcnO1xuICAgIGNvbnN0IGNvb2tpZSA9IGAke2tleX09JHt2YWx1ZX07JHtleHBpcnl9YDtcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb29raWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gdGhpcy5kb2N1bWVudC5jb29raWVcbiAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX09YCkpXG4gICAgICAuc3BsaXQoJz0nKVsxXTtcbiAgICByZXR1cm4gY29va2llVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llKGtleTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoVmFsdWUgPSBwYXRoID8gYDsgcGF0aD0ke3BhdGh9YCA6ICcnO1xuICAgIGNvbnN0IGRvbWFpblZhbHVlID0gZG9tYWluID8gYDsgZG9tYWluPSR7ZG9tYWlufWAgOiAnJztcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGAke2tleX09JHtwYXRoVmFsdWV9JHtkb21haW5WYWx1ZX07IGV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7IG1heC1hZ2U9MGA7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llQnlQYXJ0aWFsTWF0Y2goa2V5OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuY29va2llXG4gICAgICAuc3BsaXQoJzsgJylcbiAgICAgIC5maWx0ZXIocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX1gKSlcbiAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICB0aGlzLmRlbGV0ZUNvb2tpZShlbGVtZW50LnNwbGl0KCc9JylbMF0sIHBhdGgsIGRvbWFpbik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0Nvb2tpZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5zb21lKGl0ZW0gPT4gaXRlbS50cmltKCkuc3RhcnRzV2l0aChgJHtrZXl9PWApKTtcbiAgfVxufVxuIl19
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { combineLatest } from 'rxjs';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
|
-
import { FeatureToggleService } from './feature-toggle.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./feature-toggle.service";
|
|
8
|
-
import * as i2 from "@angular/router";
|
|
9
|
-
export class FeatureToggleGuard {
|
|
10
|
-
constructor(featureToggleService, router) {
|
|
11
|
-
this.featureToggleService = featureToggleService;
|
|
12
|
-
this.router = router;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Usage: Add the FeatureToggleGuard as the Guard for a route, and provide the following
|
|
16
|
-
* in the data array for the route:
|
|
17
|
-
* - needsFeaturesEnabled: An array of feature keys that need to be enabled for this route
|
|
18
|
-
* - featureDisabledRedirect: the URL to redirect to when the this route is not accessible due to disabled features
|
|
19
|
-
* @param route Automatically provided by Angular
|
|
20
|
-
*/
|
|
21
|
-
canActivate(route) {
|
|
22
|
-
return combineLatest(...route.data.needsFeaturesEnabled.map(feature => this.featureToggleService.getValueOnce(feature, false))).pipe(map(featureStatuses => featureStatuses.every(status => status)), map(status => status || this.router.parseUrl(route.data.featureDisabledRedirect)));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
FeatureToggleGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function FeatureToggleGuard_Factory() { return new FeatureToggleGuard(i0.ɵɵinject(i1.FeatureToggleService), i0.ɵɵinject(i2.Router)); }, token: FeatureToggleGuard, providedIn: "root" });
|
|
26
|
-
FeatureToggleGuard.decorators = [
|
|
27
|
-
{ type: Injectable, args: [{
|
|
28
|
-
providedIn: 'root'
|
|
29
|
-
},] }
|
|
30
|
-
];
|
|
31
|
-
FeatureToggleGuard.ctorParameters = () => [
|
|
32
|
-
{ type: FeatureToggleService },
|
|
33
|
-
{ type: Router }
|
|
34
|
-
];
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBdUMsTUFBTSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNxQixvQkFBMEMsRUFDMUMsTUFBYztRQURkLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNoQyxDQUFDO0lBRUo7Ozs7OztPQU1HO0lBQ0ksV0FBVyxDQUFDLEtBQTZCO1FBQzVDLE9BQU8sYUFBYSxDQUFDLEdBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBaUMsQ0FBQyxHQUFHLENBQ2pFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQ2pGLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQy9ELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUFpQyxDQUFDLENBQUMsQ0FDOUYsQ0FBQztJQUNOLENBQUM7Ozs7WUF4QkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFKUSxvQkFBb0I7WUFIaUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVUb2dnbGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlVG9nZ2xlU2VydmljZTogRmVhdHVyZVRvZ2dsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiBVc2FnZTogQWRkIHRoZSBGZWF0dXJlVG9nZ2xlR3VhcmQgYXMgdGhlIEd1YXJkIGZvciBhIHJvdXRlLCBhbmQgcHJvdmlkZSB0aGUgZm9sbG93aW5nXG4gICAgICogaW4gdGhlIGRhdGEgYXJyYXkgZm9yIHRoZSByb3V0ZTpcbiAgICAgKiAtIG5lZWRzRmVhdHVyZXNFbmFibGVkOiBBbiBhcnJheSBvZiBmZWF0dXJlIGtleXMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgcm91dGVcbiAgICAgKiAtIGZlYXR1cmVEaXNhYmxlZFJlZGlyZWN0OiB0aGUgVVJMIHRvIHJlZGlyZWN0IHRvIHdoZW4gdGhlIHRoaXMgcm91dGUgaXMgbm90IGFjY2Vzc2libGUgZHVlIHRvIGRpc2FibGVkIGZlYXR1cmVzXG4gICAgICogQHBhcmFtIHJvdXRlIEF1dG9tYXRpY2FsbHkgcHJvdmlkZWQgYnkgQW5ndWxhclxuICAgICAqL1xuICAgIHB1YmxpYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoLi4uKHJvdXRlLmRhdGEubmVlZHNGZWF0dXJlc0VuYWJsZWQgYXMgc3RyaW5nW10pLm1hcChcbiAgICAgICAgICAgICAgICBmZWF0dXJlID0+IHRoaXMuZmVhdHVyZVRvZ2dsZVNlcnZpY2UuZ2V0VmFsdWVPbmNlPGJvb2xlYW4+KGZlYXR1cmUsIGZhbHNlKVxuICAgICAgICApKS5waXBlKFxuICAgICAgICAgICAgbWFwKGZlYXR1cmVTdGF0dXNlcyA9PiBmZWF0dXJlU3RhdHVzZXMuZXZlcnkoc3RhdHVzID0+IHN0YXR1cykpLFxuICAgICAgICAgICAgbWFwKHN0YXR1cyA9PiBzdGF0dXMgfHwgdGhpcy5yb3V0ZXIucGFyc2VVcmwocm91dGUuZGF0YS5mZWF0dXJlRGlzYWJsZWRSZWRpcmVjdCBhcyBzdHJpbmcpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class FeatureToggleService {
|
|
4
|
-
// tslint:disable-next-line: variable-name
|
|
5
|
-
initialize(_user, _clientId) {
|
|
6
|
-
throw new Error('Not implemented');
|
|
7
|
-
}
|
|
8
|
-
// tslint:disable-next-line: variable-name
|
|
9
|
-
isEnabled(_feature) {
|
|
10
|
-
throw new Error('Not implemented');
|
|
11
|
-
}
|
|
12
|
-
// tslint:disable-next-line: variable-name
|
|
13
|
-
getValue(_key, _defaultValue) {
|
|
14
|
-
throw new Error('Not implemented');
|
|
15
|
-
}
|
|
16
|
-
// tslint:disable-next-line: variable-name
|
|
17
|
-
getValueOnce(_key, _defaultValue) {
|
|
18
|
-
throw new Error('Not implemented');
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
FeatureToggleService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FeatureToggleService_Factory() { return new FeatureToggleService(); }, token: FeatureToggleService, providedIn: "root" });
|
|
22
|
-
FeatureToggleService.decorators = [
|
|
23
|
-
{ type: Injectable, args: [{
|
|
24
|
-
providedIn: 'root'
|
|
25
|
-
},] }
|
|
26
|
-
];
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QiwwQ0FBMEM7SUFDbkMsVUFBVSxDQUFDLEtBQWtCLEVBQUUsU0FBaUI7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCwwQ0FBMEM7SUFDbkMsU0FBUyxDQUFDLFFBQWdCO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsMENBQTBDO0lBQ25DLFFBQVEsQ0FBSSxJQUFZLEVBQUUsYUFBZ0I7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQ0FBMEM7SUFDbkMsWUFBWSxDQUFJLElBQVksRUFBRSxhQUFnQjtRQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQzs7OztZQXBCSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGZWF0dXJlVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy9mZWF0dXJlLXVzZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVUb2dnbGVTZXJ2aWNlIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHZhcmlhYmxlLW5hbWVcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShfdXNlcjogRmVhdHVyZVVzZXIsIF9jbGllbnRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdmFyaWFibGUtbmFtZVxuICAgIHB1YmxpYyBpc0VuYWJsZWQoX2ZlYXR1cmU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHZhcmlhYmxlLW5hbWVcbiAgICBwdWJsaWMgZ2V0VmFsdWU8Uj4oX2tleTogc3RyaW5nLCBfZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGdldFZhbHVlT25jZTxSPihfa2V5OiBzdHJpbmcsIF9kZWZhdWx0VmFsdWU6IFIpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as LDClient from 'launchdarkly-js-client-sdk';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { distinctUntilChanged, filter, map } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class LaunchDarklyService {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.ready = new BehaviorSubject(false);
|
|
9
|
-
this.features = {};
|
|
10
|
-
this.user = { anonymous: true };
|
|
11
|
-
this.clientId = '';
|
|
12
|
-
}
|
|
13
|
-
initialize(user = { anonymous: true }, clientId) {
|
|
14
|
-
this.ready.next(false);
|
|
15
|
-
this.user = user;
|
|
16
|
-
this.clientId = clientId;
|
|
17
|
-
this.client = LDClient.initialize(this.clientId, this.user, {});
|
|
18
|
-
this.client.on('ready', () => {
|
|
19
|
-
this.client.identify(this.user).then(() => this.ready.next(true));
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
isEnabled(feature) {
|
|
23
|
-
return this.getValue(feature, false);
|
|
24
|
-
}
|
|
25
|
-
getArray(feature) {
|
|
26
|
-
return this.getValue(feature, []);
|
|
27
|
-
}
|
|
28
|
-
getValue(feature, defaultValue) {
|
|
29
|
-
if (!this.features.hasOwnProperty(feature)) {
|
|
30
|
-
this.features[feature] = new BehaviorSubject(defaultValue);
|
|
31
|
-
this.ready.pipe(filter(ready => ready), map(() => this.client.variation(feature, defaultValue))).subscribe(value => {
|
|
32
|
-
this.features[feature].next(value);
|
|
33
|
-
this.client.on(`change:${feature}`, (val) => {
|
|
34
|
-
this.features[feature].next(val);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
return this.features[feature].pipe(distinctUntilChanged());
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* This method returns an observable that will only get the state of the feature toggle
|
|
42
|
-
* once. It calls the LD SDK directly, and should only be used in circumstances where
|
|
43
|
-
* only one value should be emitted, that value coming directly from LD. This will likely
|
|
44
|
-
* only apply for Guards, and should be used only when absolutely necessary.
|
|
45
|
-
* @see getValue for regular usage.
|
|
46
|
-
* @param feature string
|
|
47
|
-
* @param defaultValue R
|
|
48
|
-
*/
|
|
49
|
-
getValueOnce(feature, defaultValue) {
|
|
50
|
-
return this.ready.pipe(filter(ready => ready), map(() => this.client.variation(feature, defaultValue)));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
LaunchDarklyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LaunchDarklyService_Factory() { return new LaunchDarklyService(); }, token: LaunchDarklyService, providedIn: "root" });
|
|
54
|
-
LaunchDarklyService.decorators = [
|
|
55
|
-
{ type: Injectable, args: [{
|
|
56
|
-
providedIn: 'root'
|
|
57
|
-
},] }
|
|
58
|
-
];
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLWRhcmtseS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvZmVhdHVyZS10b2dnbGUvbGF1bmNoLWRhcmtseS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBT25FLE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFNcUIsVUFBSyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN0RSxhQUFRLEdBQXlDLEVBQUUsQ0FBQztRQUM3RCxTQUFJLEdBQWdCLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3hDLGFBQVEsR0FBVyxFQUFFLENBQUM7S0FxRGpDO0lBbkRVLFVBQVUsQ0FBQyxPQUFvQixFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxRQUFnQjtRQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFlO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLFFBQVEsQ0FBVSxPQUFlO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBTSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFFBQVEsQ0FBSSxPQUFlLEVBQUUsWUFBZTtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBSSxZQUFZLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDWCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUMxRCxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFNLEVBQUUsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlCLG9CQUFvQixFQUFFLENBQ3pCLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxZQUFZLENBQUksT0FBZSxFQUFFLFlBQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQ3RCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FDMUQsQ0FBQztJQUNOLENBQUM7Ozs7WUE3REosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgTERDbGllbnQgZnJvbSAnbGF1bmNoZGFya2x5LWpzLWNsaWVudC1zZGsnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGZWF0dXJlVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy9mZWF0dXJlLXVzZXInO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExhdW5jaERhcmtseVNlcnZpY2UgaW1wbGVtZW50cyBGZWF0dXJlVG9nZ2xlU2VydmljZSB7XG5cbiAgICBwcml2YXRlIGNsaWVudDogTERDbGllbnQuTERDbGllbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWFkeTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlczogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JTdWJqZWN0PGFueT4+ID0ge307XG4gICAgcHJpdmF0ZSB1c2VyOiBGZWF0dXJlVXNlciA9IHsgYW5vbnltb3VzOiB0cnVlIH07XG4gICAgcHJpdmF0ZSBjbGllbnRJZDogc3RyaW5nID0gJyc7XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZSh1c2VyOiBGZWF0dXJlVXNlciA9IHsgYW5vbnltb3VzOiB0cnVlIH0sIGNsaWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAgICAgdGhpcy5jbGllbnRJZCA9IGNsaWVudElkO1xuICAgICAgICB0aGlzLmNsaWVudCA9IExEQ2xpZW50LmluaXRpYWxpemUodGhpcy5jbGllbnRJZCwgdGhpcy51c2VyLCB7fSk7XG4gICAgICAgIHRoaXMuY2xpZW50Lm9uKCdyZWFkeScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xpZW50LmlkZW50aWZ5KHRoaXMudXNlcikudGhlbigoKSA9PiB0aGlzLnJlYWR5Lm5leHQodHJ1ZSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFbmFibGVkKGZlYXR1cmU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZTxib29sZWFuPihmZWF0dXJlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFycmF5PFIgPSBhbnk+KGZlYXR1cmU6IHN0cmluZyk6IE9ic2VydmFibGU8UltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlPFJbXT4oZmVhdHVyZSwgW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZTxSPihmZWF0dXJlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogUik6IE9ic2VydmFibGU8Uj4ge1xuICAgICAgICBpZiAoIXRoaXMuZmVhdHVyZXMuaGFzT3duUHJvcGVydHkoZmVhdHVyZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFI+KGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnJlYWR5LnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKHJlYWR5ID0+IHJlYWR5KSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5jbGllbnQudmFyaWF0aW9uKGZlYXR1cmUsIGRlZmF1bHRWYWx1ZSkpXG4gICAgICAgICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlc1tmZWF0dXJlXS5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsaWVudC5vbihgY2hhbmdlOiR7ZmVhdHVyZX1gLCAodmFsOiBSKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0ubmV4dCh2YWwpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZmVhdHVyZXNbZmVhdHVyZV0ucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIG9ubHkgZ2V0IHRoZSBzdGF0ZSBvZiB0aGUgZmVhdHVyZSB0b2dnbGVcbiAgICAgKiBvbmNlLiBJdCBjYWxscyB0aGUgTEQgU0RLIGRpcmVjdGx5LCBhbmQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiBjaXJjdW1zdGFuY2VzIHdoZXJlXG4gICAgICogb25seSBvbmUgdmFsdWUgc2hvdWxkIGJlIGVtaXR0ZWQsIHRoYXQgdmFsdWUgY29taW5nIGRpcmVjdGx5IGZyb20gTEQuIFRoaXMgd2lsbCBsaWtlbHlcbiAgICAgKiBvbmx5IGFwcGx5IGZvciBHdWFyZHMsIGFuZCBzaG91bGQgYmUgdXNlZCBvbmx5IHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnkuXG4gICAgICogQHNlZSBnZXRWYWx1ZSBmb3IgcmVndWxhciB1c2FnZS5cbiAgICAgKiBAcGFyYW0gZmVhdHVyZSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIFJcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmFsdWVPbmNlPFI+KGZlYXR1cmU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWR5LnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIocmVhZHkgPT4gcmVhZHkpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuY2xpZW50LnZhcmlhdGlvbihmZWF0dXJlLCBkZWZhdWx0VmFsdWUpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class FilterService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.givenErrors = new BehaviorSubject(null);
|
|
7
|
-
this.isInitialSetting = false;
|
|
8
|
-
this.filterSettings = {};
|
|
9
|
-
this.streams = {};
|
|
10
|
-
}
|
|
11
|
-
persist(setting, persistence) {
|
|
12
|
-
switch (persistence) {
|
|
13
|
-
case 'local':
|
|
14
|
-
this.persistLocal(setting);
|
|
15
|
-
break;
|
|
16
|
-
case 'session':
|
|
17
|
-
this.persistSession(setting);
|
|
18
|
-
break;
|
|
19
|
-
default:
|
|
20
|
-
break;
|
|
21
|
-
}
|
|
22
|
-
this.persistMemory(setting);
|
|
23
|
-
this.updateStreams(setting);
|
|
24
|
-
}
|
|
25
|
-
get(id) {
|
|
26
|
-
if (this.filterSettings[id]) {
|
|
27
|
-
return this.filterSettings[id];
|
|
28
|
-
}
|
|
29
|
-
if (sessionStorage.getItem(id)) {
|
|
30
|
-
return JSON.parse(window.sessionStorage.getItem(id));
|
|
31
|
-
}
|
|
32
|
-
if (localStorage.getItem(id)) {
|
|
33
|
-
return JSON.parse(window.localStorage.getItem(id));
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
getStream(id) {
|
|
38
|
-
if (!this.streams[id]) {
|
|
39
|
-
this.streams[id] = new BehaviorSubject(this.get(id));
|
|
40
|
-
}
|
|
41
|
-
return this.streams[id].asObservable();
|
|
42
|
-
}
|
|
43
|
-
persistLocal(setting) {
|
|
44
|
-
window.localStorage.setItem(setting.id, JSON.stringify(setting));
|
|
45
|
-
}
|
|
46
|
-
persistSession(setting) {
|
|
47
|
-
window.sessionStorage.setItem(setting.id, JSON.stringify(setting));
|
|
48
|
-
}
|
|
49
|
-
persistMemory(setting) {
|
|
50
|
-
this.filterSettings[setting.id] = setting;
|
|
51
|
-
}
|
|
52
|
-
updateStreams(setting) {
|
|
53
|
-
if (this.streams[setting.id]) {
|
|
54
|
-
this.streams[setting.id].next(setting);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
FilterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FilterService_Factory() { return new FilterService(); }, token: FilterService, providedIn: "root" });
|
|
59
|
-
FilterService.decorators = [
|
|
60
|
-
{ type: Injectable, args: [{
|
|
61
|
-
providedIn: 'root'
|
|
62
|
-
},] }
|
|
63
|
-
];
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9maWx0ZXIvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDOztBQU1qRCxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUtTLGdCQUFXLEdBQW1DLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hFLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFvQyxFQUFFLENBQUM7UUFDckQsWUFBTyxHQUFxRCxFQUFFLENBQUM7S0FzRGpGO0lBcERRLE9BQU8sQ0FBQyxPQUFzQixFQUFFLFdBQThCO1FBQ25FLFFBQVEsV0FBVyxFQUFFO1lBQ25CLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDUjtnQkFDRSxNQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxFQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxTQUFTLENBQUMsRUFBVTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckU7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUFzQjtRQUN6QyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQXNCO1FBQzNDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBc0I7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBc0I7UUFDMUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDOzs7O1lBN0RGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpbHRlckVycm9yLCBGaWx0ZXJQZXJzaXN0ZW5jZSwgRmlsdGVyU2V0dGluZ30gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyU2VydmljZSB7XG5cbiAgcHVibGljIGdpdmVuRXJyb3JzOiBCZWhhdmlvclN1YmplY3Q8RmlsdGVyRXJyb3JbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwdWJsaWMgaXNJbml0aWFsU2V0dGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlclNldHRpbmdzOiB7IFtpZDogc3RyaW5nXTogRmlsdGVyU2V0dGluZyB9ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtczogeyBbaWQ6IHN0cmluZ106IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJTZXR0aW5nPiB9ID0ge307XG5cbiAgcHVibGljIHBlcnNpc3Qoc2V0dGluZzogRmlsdGVyU2V0dGluZywgcGVyc2lzdGVuY2U6IEZpbHRlclBlcnNpc3RlbmNlKTogdm9pZCB7XG4gICAgc3dpdGNoIChwZXJzaXN0ZW5jZSkge1xuICAgICAgY2FzZSAnbG9jYWwnOlxuICAgICAgICB0aGlzLnBlcnNpc3RMb2NhbChzZXR0aW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZXNzaW9uJzpcbiAgICAgICAgdGhpcy5wZXJzaXN0U2Vzc2lvbihzZXR0aW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5wZXJzaXN0TWVtb3J5KHNldHRpbmcpO1xuICAgIHRoaXMudXBkYXRlU3RyZWFtcyhzZXR0aW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoaWQ6IHN0cmluZyk6IEZpbHRlclNldHRpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5maWx0ZXJTZXR0aW5nc1tpZF0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlclNldHRpbmdzW2lkXTtcbiAgICB9XG4gICAgaWYgKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oaWQpKSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShpZCkpO1xuICAgIH1cbiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oaWQpKSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oaWQpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RyZWFtKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZpbHRlclNldHRpbmc+IHtcbiAgICBpZiAoIXRoaXMuc3RyZWFtc1tpZF0pIHtcbiAgICAgIHRoaXMuc3RyZWFtc1tpZF0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlclNldHRpbmc+KHRoaXMuZ2V0KGlkKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0cmVhbXNbaWRdLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBwZXJzaXN0TG9jYWwoc2V0dGluZzogRmlsdGVyU2V0dGluZyk6IHZvaWQge1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShzZXR0aW5nLmlkLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSk7XG4gIH1cblxuICBwcml2YXRlIHBlcnNpc3RTZXNzaW9uKHNldHRpbmc6IEZpbHRlclNldHRpbmcpOiB2b2lkIHtcbiAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShzZXR0aW5nLmlkLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSk7XG4gIH1cblxuICBwcml2YXRlIHBlcnNpc3RNZW1vcnkoc2V0dGluZzogRmlsdGVyU2V0dGluZyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyU2V0dGluZ3Nbc2V0dGluZy5pZF0gPSBzZXR0aW5nO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdHJlYW1zKHNldHRpbmc6IEZpbHRlclNldHRpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdHJlYW1zW3NldHRpbmcuaWRdKSB7XG4gICAgICB0aGlzLnN0cmVhbXNbc2V0dGluZy5pZF0ubmV4dChzZXR0aW5nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { of } from 'rxjs';
|
|
4
|
-
import { map, tap } from 'rxjs/operators';
|
|
5
|
-
import { getAllCaseworkersFromServices, getSessionStorageKeyForServiceId, setCaseworkers } from '../../gov-ui/util/session-storage/session-storage-utils';
|
|
6
|
-
import { PersonRole, RoleCategory } from '../../models';
|
|
7
|
-
import { SessionStorageService } from '../session-storage/session-storage.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/common/http";
|
|
10
|
-
import * as i2 from "../session-storage/session-storage.service";
|
|
11
|
-
export class FindAPersonService {
|
|
12
|
-
constructor(http, sessionStorageService) {
|
|
13
|
-
this.http = http;
|
|
14
|
-
this.sessionStorageService = sessionStorageService;
|
|
15
|
-
}
|
|
16
|
-
find(searchOptions) {
|
|
17
|
-
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
18
|
-
if (userInfoStr && !searchOptions.userIncluded) {
|
|
19
|
-
const userInfo = JSON.parse(userInfoStr);
|
|
20
|
-
this.userId = userInfo.id ? userInfo.id : userInfo.uid;
|
|
21
|
-
}
|
|
22
|
-
this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
|
|
23
|
-
return this.http.post('/workallocation/findPerson', { searchOptions })
|
|
24
|
-
.pipe(map(judiciary => judiciary.filter(judge => !([this.assignedUser, this.userId].includes(judge.id)))));
|
|
25
|
-
}
|
|
26
|
-
findCaseworkers(searchOptions) {
|
|
27
|
-
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
28
|
-
if (userInfoStr) {
|
|
29
|
-
const userInfo = JSON.parse(userInfoStr);
|
|
30
|
-
this.userId = userInfo.id ? userInfo.id : userInfo.uid;
|
|
31
|
-
}
|
|
32
|
-
this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
|
|
33
|
-
const fullServices = searchOptions.services;
|
|
34
|
-
const storedServices = [];
|
|
35
|
-
const newServices = [];
|
|
36
|
-
const storedCaseworkersByService = [];
|
|
37
|
-
fullServices.forEach(serviceId => {
|
|
38
|
-
const serviceKey = getSessionStorageKeyForServiceId(serviceId);
|
|
39
|
-
if (this.sessionStorageService.getItem(serviceKey)) {
|
|
40
|
-
storedServices.push(serviceId);
|
|
41
|
-
storedCaseworkersByService.push({ service: serviceId, caseworkers: JSON.parse(this.sessionStorageService.getItem(serviceKey)) });
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
newServices.push(serviceId);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
// if all services are stored then return the stored caseworkers by service
|
|
48
|
-
if (storedServices.length === fullServices.length) {
|
|
49
|
-
const storedCaseworkers = getAllCaseworkersFromServices(storedCaseworkersByService);
|
|
50
|
-
return of(this.searchInCaseworkers(storedCaseworkers, searchOptions));
|
|
51
|
-
}
|
|
52
|
-
// all serviceIds passed in as node layer getting used anyway and caseworkers also stored there
|
|
53
|
-
return this.http.post('/workallocation/retrieveCaseWorkersForServices', { fullServices }).pipe(tap(caseworkersByService => {
|
|
54
|
-
caseworkersByService.forEach(caseworkerListByService => {
|
|
55
|
-
// for any new service, ensure that they are then stored in the session
|
|
56
|
-
if (newServices.includes(caseworkerListByService.service)) {
|
|
57
|
-
setCaseworkers(caseworkerListByService.service, caseworkerListByService.caseworkers, this.sessionStorageService);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}), map(caseworkersByService => {
|
|
61
|
-
const givenCaseworkers = getAllCaseworkersFromServices(caseworkersByService);
|
|
62
|
-
return this.searchInCaseworkers(givenCaseworkers, searchOptions);
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
mapCaseworkers(caseworkers, roleCategory) {
|
|
66
|
-
const people = [];
|
|
67
|
-
caseworkers.forEach((caseworker) => {
|
|
68
|
-
const thisPerson = {
|
|
69
|
-
email: caseworker.email,
|
|
70
|
-
name: `${caseworker.firstName} ${caseworker.lastName}`,
|
|
71
|
-
id: caseworker.idamId,
|
|
72
|
-
domain: caseworker.roleCategory === RoleCategory.CASEWORKER ? PersonRole.CASEWORKER : PersonRole.ADMIN,
|
|
73
|
-
};
|
|
74
|
-
if (caseworker.roleCategory === roleCategory || roleCategory === RoleCategory.ALL) {
|
|
75
|
-
people.push(thisPerson);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
return people;
|
|
79
|
-
}
|
|
80
|
-
searchInCaseworkers(caseworkers, searchOptions) {
|
|
81
|
-
let roleCategory = RoleCategory.ALL;
|
|
82
|
-
if (!(searchOptions.userRole === PersonRole.ALL)) {
|
|
83
|
-
roleCategory = searchOptions.userRole === PersonRole.CASEWORKER ? RoleCategory.CASEWORKER : RoleCategory.ADMIN;
|
|
84
|
-
}
|
|
85
|
-
const searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';
|
|
86
|
-
const people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];
|
|
87
|
-
const finalPeopleList = people.filter(person => person && person.name && person.name.toLowerCase().includes(searchTerm));
|
|
88
|
-
return searchOptions.userIncluded ? finalPeopleList.filter(person => person && person.id !== this.assignedUser)
|
|
89
|
-
: finalPeopleList.filter(person => person && person.id !== this.userId && person.id !== this.assignedUser);
|
|
90
|
-
}
|
|
91
|
-
searchJudicial(value, serviceId) {
|
|
92
|
-
return this.http.post('api/prd/judicial/getJudicialUsersSearch', { searchString: value, serviceCode: serviceId });
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
FindAPersonService.caseworkersKey = 'caseworkers';
|
|
96
|
-
FindAPersonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FindAPersonService_Factory() { return new FindAPersonService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.SessionStorageService)); }, token: FindAPersonService, providedIn: "root" });
|
|
97
|
-
FindAPersonService.decorators = [
|
|
98
|
-
{ type: Injectable, args: [{
|
|
99
|
-
providedIn: 'root'
|
|
100
|
-
},] }
|
|
101
|
-
];
|
|
102
|
-
FindAPersonService.ctorParameters = () => [
|
|
103
|
-
{ type: HttpClient },
|
|
104
|
-
{ type: SessionStorageService }
|
|
105
|
-
];
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEVBQ2hDLGNBQWMsRUFDZixNQUFNLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8sRUFLTCxVQUFVLEVBQ1YsWUFBWSxFQUViLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7O0FBS2pGLE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFBNkIsSUFBZ0IsRUFBbUIscUJBQTRDO1FBQS9FLFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUM1RyxDQUFDO0lBRU0sSUFBSSxDQUFDLGFBQTRCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsSUFBSSxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENB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O0lBRU0sY0FBYyxDQUFDLEtBQWEsRUFBRSxTQUFpQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFzQix5Q0FBeUMsRUFDbEYsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O0FBNUZhLGlDQUFjLEdBQVcsYUFBYSxDQUFDOzs7WUFMdEQsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUF0Qk8sVUFBVTtZQWtCVixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzLFxuICBnZXRTZXNzaW9uU3RvcmFnZUtleUZvclNlcnZpY2VJZCxcbiAgc2V0Q2FzZXdvcmtlcnNcbn0gZnJvbSAnLi4vLi4vZ292LXVpL3V0aWwvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS11dGlscyc7XG5pbXBvcnQge1xuICBDYXNld29ya2VyLFxuICBDYXNld29ya2Vyc0J5U2VydmljZSxcbiAgSnVkaWNpYWxVc2VyTW9kZWwsXG4gIFBlcnNvbixcbiAgUGVyc29uUm9sZSxcbiAgUm9sZUNhdGVnb3J5LFxuICBTZWFyY2hPcHRpb25zXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1Nlc3Npb25TdG9yYWdlU2VydmljZX0gZnJvbSAnLi4vc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmluZEFQZXJzb25TZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIGNhc2V3b3JrZXJzS2V5OiBzdHJpbmcgPSAnY2FzZXdvcmtlcnMnO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0ciAmJiAhc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFBlcnNvbltdPignL3dvcmthbGxvY2F0aW9uL2ZpbmRQZXJzb24nLCB7IHNlYXJjaE9wdGlvbnMgfSlcbiAgICAgIC5waXBlKG1hcChqdWRpY2lhcnkgPT4ganVkaWNpYXJ5LmZpbHRlcihqdWRnZSA9PiAhKFt0aGlzLmFzc2lnbmVkVXNlciwgdGhpcy51c2VySWRdLmluY2x1ZGVzKGp1ZGdlLmlkKSkpKSk7XG4gIH1cblxuICBwdWJsaWMgZmluZENhc2V3b3JrZXJzKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHRoaXMudXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgdGhpcy5hc3NpZ25lZFVzZXIgPSBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA/IHNlYXJjaE9wdGlvbnMuYXNzaWduZWRVc2VyIDogbnVsbDtcbiAgICBjb25zdCBmdWxsU2VydmljZXMgPSBzZWFyY2hPcHRpb25zLnNlcnZpY2VzO1xuICAgIGNvbnN0IHN0b3JlZFNlcnZpY2VzID0gW107XG4gICAgY29uc3QgbmV3U2VydmljZXM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc3RvcmVkQ2FzZXdvcmtlcnNCeVNlcnZpY2U6IENhc2V3b3JrZXJzQnlTZXJ2aWNlW10gPSBbXTtcbiAgICBmdWxsU2VydmljZXMuZm9yRWFjaChzZXJ2aWNlSWQgPT4ge1xuICAgICAgY29uc3Qgc2VydmljZUtleSA9IGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkKHNlcnZpY2VJZCk7XG4gICAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShzZXJ2aWNlS2V5KSkge1xuICAgICAgICBzdG9yZWRTZXJ2aWNlcy5wdXNoKHNlcnZpY2VJZCk7XG4gICAgICAgIHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlLnB1c2goeyBzZXJ2aWNlOiBzZXJ2aWNlSWQsIGNhc2V3b3JrZXJzOiBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oc2VydmljZUtleSkpIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2VydmljZXMucHVzaChzZXJ2aWNlSWQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vIGlmIGFsbCBzZXJ2aWNlcyBhcmUgc3RvcmVkIHRoZW4gcmV0dXJuIHRoZSBzdG9yZWQgY2FzZXdvcmtlcnMgYnkgc2VydmljZVxuICAgIGlmIChzdG9yZWRTZXJ2aWNlcy5sZW5ndGggPT09IGZ1bGxTZXJ2aWNlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN0b3JlZENhc2V3b3JrZXJzID0gZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMoc3RvcmVkQ2FzZXdvcmtlcnNCeVNlcnZpY2UpO1xuICAgICAgcmV0dXJuIG9mKHRoaXMuc2VhcmNoSW5DYXNld29ya2VycyhzdG9yZWRDYXNld29ya2Vycywgc2VhcmNoT3B0aW9ucykpO1xuICAgIH1cbiAgICAvLyBhbGwgc2VydmljZUlkcyBwYXNzZWQgaW4gYXMgbm9kZSBsYXllciBnZXR0aW5nIHVzZWQgYW55d2F5IGFuZCBjYXNld29ya2VycyBhbHNvIHN0b3JlZCB0aGVyZVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDYXNld29ya2Vyc0J5U2VydmljZVtdPignL3dvcmthbGxvY2F0aW9uL3JldHJpZXZlQ2FzZVdvcmtlcnNGb3JTZXJ2aWNlcycsIHsgZnVsbFNlcnZpY2VzIH0pLnBpcGUoXG4gICAgICB0YXAoY2FzZXdvcmtlcnNCeVNlcnZpY2UgPT4ge1xuICAgICAgICBjYXNld29ya2Vyc0J5U2VydmljZS5mb3JFYWNoKGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlID0+IHtcbiAgICAgICAgICAvLyBmb3IgYW55IG5ldyBzZXJ2aWNlLCBlbnN1cmUgdGhhdCB0aGV5IGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgc2Vzc2lvblxuICAgICAgICAgIGlmIChuZXdTZXJ2aWNlcy5pbmNsdWRlcyhjYXNld29ya2VyTGlzdEJ5U2VydmljZS5zZXJ2aWNlKSkge1xuICAgICAgICAgICAgc2V0Q2FzZXdvcmtlcnMoY2FzZXdvcmtlckxpc3RCeVNlcnZpY2Uuc2VydmljZSwgY2FzZXdvcmtlckxpc3RCeVNlcnZpY2UuY2FzZXdvcmtlcnMsIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoY2FzZXdvcmtlcnNCeVNlcnZpY2UgPT4ge1xuICAgICAgICBjb25zdCBnaXZlbkNhc2V3b3JrZXJzID0gZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMoY2FzZXdvcmtlcnNCeVNlcnZpY2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hJbkNhc2V3b3JrZXJzKGdpdmVuQ2FzZXdvcmtlcnMsIHNlYXJjaE9wdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1hcENhc2V3b3JrZXJzKGNhc2V3b3JrZXJzOiBDYXNld29ya2VyW10sIHJvbGVDYXRlZ29yeTogc3RyaW5nKTogUGVyc29uW10ge1xuICAgIGNvbnN0IHBlb3BsZTogUGVyc29uW10gPSBbXTtcbiAgICBjYXNld29ya2Vycy5mb3JFYWNoKChjYXNld29ya2VyKSA9PiB7XG4gICAgICBjb25zdCB0aGlzUGVyc29uOiBQZXJzb24gPSB7XG4gICAgICAgIGVtYWlsOiBjYXNld29ya2VyLmVtYWlsLFxuICAgICAgICBuYW1lOiBgJHtjYXNld29ya2VyLmZpcnN0TmFtZX0gJHtjYXNld29ya2VyLmxhc3ROYW1lfWAsXG4gICAgICAgIGlkOiBjYXNld29ya2VyLmlkYW1JZCxcbiAgICAgICAgZG9tYWluOiBjYXNld29ya2VyLnJvbGVDYXRlZ29yeSA9PT0gUm9sZUNhdGVnb3J5LkNBU0VXT1JLRVIgPyBQZXJzb25Sb2xlLkNBU0VXT1JLRVIgOiBQZXJzb25Sb2xlLkFETUlOLFxuICAgICAgICAvLyBrbm93bkFzIGNhbiBiZSBhZGRlZCBpZiByZXF1aXJlZFxuICAgICAgfTtcbiAgICAgIGlmIChjYXNld29ya2VyLnJvbGVDYXRlZ29yeSA9PT0gcm9sZUNhdGVnb3J5IHx8IHJvbGVDYXRlZ29yeSA9PT0gUm9sZUNhdGVnb3J5LkFMTCkge1xuICAgICAgICBwZW9wbGUucHVzaCh0aGlzUGVyc29uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcGVvcGxlO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEluQ2FzZXdvcmtlcnMoY2FzZXdvcmtlcnM6IENhc2V3b3JrZXJbXSwgc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IFBlcnNvbltdIHtcbiAgICBsZXQgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkFMTDtcbiAgICBpZiAoIShzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkFMTCkpIHtcbiAgICAgIHJvbGVDYXRlZ29yeSA9IHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQ0FTRVdPUktFUiA/IFJvbGVDYXRlZ29yeS5DQVNFV09SS0VSIDogUm9sZUNhdGVnb3J5LkFETUlOO1xuICAgIH1cbiAgICBjb25zdCBzZWFyY2hUZXJtID0gc2VhcmNoT3B0aW9ucyAmJiBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0gPyBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgIGNvbnN0IHBlb3BsZSA9IGNhc2V3b3JrZXJzID8gdGhpcy5tYXBDYXNld29ya2VycyhjYXNld29ya2Vycywgcm9sZUNhdGVnb3J5KSA6IFtdO1xuICAgIGNvbnN0IGZpbmFsUGVvcGxlTGlzdCA9IHBlb3BsZS5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24ubmFtZSAmJiBwZXJzb24ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pKTtcbiAgICByZXR1cm4gc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQgPyBmaW5hbFBlb3BsZUxpc3QuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLmlkICE9PSB0aGlzLmFzc2lnbmVkVXNlcilcbiAgICAgIDogZmluYWxQZW9wbGVMaXN0LmZpbHRlcihwZXJzb24gPT4gcGVyc29uICYmIHBlcnNvbi5pZCAhPT0gdGhpcy51c2VySWQgJiYgcGVyc29uLmlkICE9PSB0aGlzLmFzc2lnbmVkVXNlcik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoSnVkaWNpYWwodmFsdWU6IHN0cmluZywgc2VydmljZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEp1ZGljaWFsVXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SnVkaWNpYWxVc2VyTW9kZWxbXT4oJ2FwaS9wcmQvanVkaWNpYWwvZ2V0SnVkaWNpYWxVc2Vyc1NlYXJjaCcsXG4gICAgICB7IHNlYXJjaFN0cmluZzogdmFsdWUsIHNlcnZpY2VDb2RlOiBzZXJ2aWNlSWQgfSk7XG4gIH1cbn1cblxuIl19
|