@hmcts/rpx-xui-common-lib 2.1.0-angular-upgrade-11 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -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 +165 -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/esm2022/lib/models/case-share.model.mjs +7 -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 +19 -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 +65 -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 +86 -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 +10378 -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 +13 -6
- package/lib/components/find-person/find-person.component.d.ts +5 -2
- package/lib/components/find-service/find-service.component.d.ts +29 -0
- 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 +26 -18
- package/lib/components/search-service/search-service.component.d.ts +20 -0
- package/lib/components/search-venue/search-venue.component.d.ts +3 -1
- package/lib/components/selected-case/selected-case.component.d.ts +4 -1
- 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 +4 -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 +41 -2
- 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/case-share.model.d.ts +5 -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 +45 -9
- package/lib/models/index.d.ts +5 -0
- package/lib/models/location.model.d.ts +22 -11
- package/lib/models/person.model.d.ts +3 -0
- 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 +4 -1
- 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 +5 -2
- 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 -4893
- 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 -68
- 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 -120
- package/esm2015/lib/components/find-person/find-person.component.js +0 -118
- package/esm2015/lib/components/generic-filter/generic-filter-utils.js +0 -21
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +0 -381
- 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 -114
- package/esm2015/lib/components/search-venue/search-venue.component.js +0 -123
- package/esm2015/lib/components/selected-case/selected-case.component.js +0 -160
- 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 -45
- 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 -91
- 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 -156
- 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/case-share.model.js +0 -2
- 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 -14
- package/esm2015/lib/models/location.model.js +0 -2
- package/esm2015/lib/models/person.model.js +0 -17
- package/esm2015/lib/models/user-details.model.js +0 -2
- package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +0 -143
- 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 -92
- package/fesm2015/hmcts-rpx-xui-common-lib.js +0 -3942
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +0 -1
- package/hmcts-rpx-xui-common-lib.d.ts +0 -67
- 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/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
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './address-message.enum';
|
|
2
|
+
export * from './address-option.model';
|
|
3
|
+
export * from './address.model';
|
|
4
|
+
export * from './case-share.model';
|
|
5
|
+
export * from './contact-details.model';
|
|
6
|
+
export * from './due-date.model';
|
|
7
|
+
export * from './feature-user';
|
|
8
|
+
export * from './filter.model';
|
|
9
|
+
export * from './idle-config.model';
|
|
10
|
+
export * from './location.model';
|
|
11
|
+
export * from './pagination.model';
|
|
12
|
+
export * from './person.model';
|
|
13
|
+
export * from './public_api';
|
|
14
|
+
export * from './search-options.model';
|
|
15
|
+
export * from './tcDocument.model';
|
|
16
|
+
export * from './timeout-notification.model';
|
|
17
|
+
export * from './user-details.model';
|
|
18
|
+
export * from './user.model';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWRkcmVzcy1tZXNzYWdlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzLW9wdGlvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3MubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXNoYXJlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdC1kZXRhaWxzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZHVlLWRhdGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLXVzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9pZGxlLWNvbmZpZy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2F0aW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3BlcnNvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtb3B0aW9ucy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3RjRG9jdW1lbnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lb3V0LW5vdGlmaWNhdGlvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItZGV0YWlscy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXIubW9kZWwnO1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var BookingCheckType;
|
|
2
|
+
(function (BookingCheckType) {
|
|
3
|
+
BookingCheckType["NO_CHECK"] = "NO_CHECK";
|
|
4
|
+
BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
|
|
5
|
+
BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
|
|
6
|
+
})(BookingCheckType || (BookingCheckType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9tb2RlbHMvbG9jYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMERBLE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIseUNBQXFCLENBQUE7SUFDckIsMkRBQXVDLENBQUE7SUFDdkMsMkRBQXVDLENBQUE7QUFDekMsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uTW9kZWwge1xuICBjb3VydF92ZW51ZV9pZDogc3RyaW5nO1xuICBzaXRlX25hbWU6IHN0cmluZztcbiAgY291cnRfbmFtZT86IHN0cmluZztcbiAgZXBpbW1zX2lkOiBzdHJpbmc7XG4gIG9wZW5fZm9yX3B1YmxpYz86IHN0cmluZztcbiAgY291cnRfdHlwZV9pZDogc3RyaW5nO1xuICBjb3VydF90eXBlOiBzdHJpbmc7XG4gIHJlZ2lvbl9pZDogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgY2x1c3Rlcl9pZD86IHN0cmluZztcbiAgY2x1c3Rlcl9uYW1lPzogc3RyaW5nO1xuICBjb3VydF9zdGF0dXM/OiBzdHJpbmc7XG4gIGNvdXJ0X29wZW5fZGF0ZT86IHN0cmluZztcbiAgY2xvc2VkX2RhdGU/OiBzdHJpbmc7XG4gIHBvc3Rjb2RlPzogc3RyaW5nO1xuICBjb3VydF9hZGRyZXNzPzogc3RyaW5nO1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGNvdXJ0X2xvY2F0aW9uX2NvZGU/OiBzdHJpbmc7XG4gIGR4X2FkZHJlc3M/OiBzdHJpbmc7XG4gIHdlbHNoX3NpdGVfbmFtZT86IHN0cmluZztcbiAgd2Vsc2hfY291cnRfYWRkcmVzcz86IHN0cmluZztcbiAgdmVudWVfbmFtZT86IHN0cmluZztcbiAgaXNfY2FzZV9tYW5hZ2VtZW50X2xvY2F0aW9uPzogc3RyaW5nO1xuICBpc19oZWFyaW5nX2xvY2F0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uQnlFUElNTVNNb2RlbCB7XG4gIGVwaW1tc19pZDogc3RyaW5nO1xuICBzaXRlX25hbWU/OiBzdHJpbmc7XG4gIGNvdXJ0X25hbWU/OiBzdHJpbmc7XG4gIG9wZW5fZm9yX3B1YmxpYz86IHN0cmluZztcbiAgcmVnaW9uX2lkPzogc3RyaW5nO1xuICByZWdpb24/OiBzdHJpbmc7XG4gIGNsdXN0ZXJfaWQ/OiBzdHJpbmc7XG4gIGNsdXN0ZXJfbmFtZT86IHN0cmluZztcbiAgY291cnRfc3RhdHVzPzogc3RyaW5nO1xuICBjb3VydF9vcGVuX2RhdGU/OiBzdHJpbmc7XG4gIGNsb3NlZF9kYXRlPzogc3RyaW5nO1xuICBwb3N0Y29kZT86IHN0cmluZztcbiAgY291cnRfYWRkcmVzcz86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBjb3VydF9sb2NhdGlvbl9jb2RlPzogc3RyaW5nO1xuICBkeF9hZGRyZXNzPzogc3RyaW5nO1xuICB3ZWxzaF9zaXRlX25hbWU/OiBzdHJpbmc7XG4gIHdlbHNoX2NvdXJ0X2FkZHJlc3M/OiBzdHJpbmc7XG4gIHZlbnVlX25hbWU/OiBzdHJpbmc7XG4gIGlzX2Nhc2VfbWFuYWdlbWVudF9sb2NhdGlvbj86IHN0cmluZztcbiAgaXNfaGVhcmluZ19sb2NhdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbnNCeVNlcnZpY2Uge1xuICBzZXJ2aWNlPzogc3RyaW5nO1xuICBzZXJ2aWNlQ29kZT86IHN0cmluZztcbiAgYm9va2FibGU/OiBib29sZWFuO1xuICBsb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdO1xufVxuXG5leHBvcnQgZW51bSBCb29raW5nQ2hlY2tUeXBlIHtcbiAgTk9fQ0hFQ0sgPSAnTk9fQ0hFQ0snLFxuICBCT09LSU5HU19BTkRfQkFTRSA9ICdCT09LSU5HU19BTkRfQkFTRScsXG4gIFBPU1NJQkxFX0JPT0tJTkdTID0gJ1BPU1NJQkxFX0JPT0tJTkdTJyxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export var PersonRole;
|
|
2
|
+
(function (PersonRole) {
|
|
3
|
+
PersonRole["JUDICIAL"] = "Judicial";
|
|
4
|
+
PersonRole["CASEWORKER"] = "Legal Ops";
|
|
5
|
+
PersonRole["ADMIN"] = "Admin";
|
|
6
|
+
PersonRole["CTSC"] = "CTSC";
|
|
7
|
+
PersonRole["ALL"] = "All";
|
|
8
|
+
})(PersonRole || (PersonRole = {}));
|
|
9
|
+
// Note: RoleCategory could replace PersonRole possibly
|
|
10
|
+
// However a lot of webapp logic is based on current PersonRole understanding
|
|
11
|
+
export var RoleCategory;
|
|
12
|
+
(function (RoleCategory) {
|
|
13
|
+
RoleCategory["JUDICIAL"] = "JUDICIAL";
|
|
14
|
+
RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
|
|
15
|
+
RoleCategory["ADMIN"] = "ADMIN";
|
|
16
|
+
RoleCategory["CTSC"] = "CTSC";
|
|
17
|
+
RoleCategory["ALL"] = "ALL";
|
|
18
|
+
})(RoleCategory || (RoleCategory = {}));
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvbW9kZWxzL3BlcnNvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQ0EsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNwQixtQ0FBcUIsQ0FBQTtJQUNyQixzQ0FBd0IsQ0FBQTtJQUN4Qiw2QkFBZSxDQUFBO0lBQ2YsMkJBQWEsQ0FBQTtJQUNiLHlCQUFXLENBQUE7QUFDYixDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckI7QUFFRCx1REFBdUQ7QUFDdkQsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBTixJQUFZLFlBTVg7QUFORCxXQUFZLFlBQVk7SUFDdEIscUNBQXFCLENBQUE7SUFDckIsK0NBQStCLENBQUE7SUFDL0IsK0JBQWUsQ0FBQTtJQUNmLDZCQUFhLENBQUE7SUFDYiwyQkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQZXJzb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBkb21haW46IHN0cmluZztcbiAga25vd25Bcz86IHN0cmluZztcbiAgZnVsbE5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSnVkaWNpYWxVc2VyTW9kZWwge1xuICBlbWFpbElkOiBzdHJpbmc7XG4gIGZ1bGxOYW1lOiBzdHJpbmc7XG4gIGlkYW1JZDogc3RyaW5nO1xuICBpc0p1ZGdlOiBzdHJpbmc7XG4gIGlzTWFnaXN0cmF0ZTogc3RyaW5nO1xuICBpc1BhbmVsTWVtYmVyOiBzdHJpbmc7XG4gIGtub3duQXM6IHN0cmluZztcbiAgcGVyc29uYWxDb2RlOiBzdHJpbmc7XG4gIHN1cm5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXNld29ya2Vyc0J5U2VydmljZSB7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgY2FzZXdvcmtlcnM6IENhc2V3b3JrZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXNld29ya2VyIHtcbiAgaWRhbUlkOiBzdHJpbmc7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBrbm93bkFzPzogc3RyaW5nO1xuICByb2xlQ2F0ZWdvcnk6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gUGVyc29uUm9sZSB7XG4gIEpVRElDSUFMID0gJ0p1ZGljaWFsJyxcbiAgQ0FTRVdPUktFUiA9ICdMZWdhbCBPcHMnLFxuICBBRE1JTiA9ICdBZG1pbicsXG4gIENUU0MgPSAnQ1RTQycsXG4gIEFMTCA9ICdBbGwnLFxufVxuXG4vLyBOb3RlOiBSb2xlQ2F0ZWdvcnkgY291bGQgcmVwbGFjZSBQZXJzb25Sb2xlIHBvc3NpYmx5XG4vLyBIb3dldmVyIGEgbG90IG9mIHdlYmFwcCBsb2dpYyBpcyBiYXNlZCBvbiBjdXJyZW50IFBlcnNvblJvbGUgdW5kZXJzdGFuZGluZ1xuZXhwb3J0IGVudW0gUm9sZUNhdGVnb3J5IHtcbiAgSlVESUNJQUwgPSAnSlVESUNJQUwnLFxuICBDQVNFV09SS0VSID0gJ0xFR0FMX09QRVJBVElPTlMnLFxuICBBRE1JTiA9ICdBRE1JTicsXG4gIENUU0MgPSAnQ1RTQycsXG4gIEFMTCA9ICdBTEwnXG59XG4iXX0=
|
|
@@ -2,5 +2,6 @@ export * from './tcDocument.model';
|
|
|
2
2
|
export * from './contact-details.model';
|
|
3
3
|
export * from './feature-user';
|
|
4
4
|
export * from './user.model';
|
|
5
|
+
export * from './user-access-type.model';
|
|
5
6
|
export * from './filter.model';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL21vZGVscy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGNEb2N1bWVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhY3QtZGV0YWlscy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtdXNlcic7XG5leHBvcnQgKiBmcm9tICcuL3VzZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLWFjY2Vzcy10eXBlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLm1vZGVsJztcbiJdfQ==
|
package/{esm2015/lib/models/search-options.model.js → esm2022/lib/models/search-options.model.mjs}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW9wdGlvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9tb2RlbHMvc2VhcmNoLW9wdGlvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcnNvblJvbGUgfSBmcm9tICcuL3BlcnNvbi5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoT3B0aW9ucyB7XG4gIHNlYXJjaFRlcm06IHN0cmluZztcbiAgdXNlclJvbGU6IFBlcnNvblJvbGU7XG4gIHNlcnZpY2VzOiBzdHJpbmdbXTtcbiAgdXNlckluY2x1ZGVkPzogYm9vbGVhbjtcbiAgYXNzaWduZWRVc2VyPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1tZXNzYWdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvbW9kZWxzL3NlcnZpY2UtbWVzc2FnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlTWVzc2FnZXMge1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgcm9sZXM6IHN0cmluZztcbiAgICBtZXNzYWdlX2VuOiBzdHJpbmc7XG4gICAgbWVzc2FnZV9jeTogc3RyaW5nO1xuICAgIGJlZ2luPzogc3RyaW5nO1xuICAgIGVuZD86IHN0cmluZztcbiAgfSJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1uYW1lLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvbW9kZWxzL3Rhc2stbmFtZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUYXNrTmFtZU1vZGVsIHtcbiAgdGFza0lkOiBudW1iZXI7XG4gIHRhc2tOYW1lOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY2Nlc3MtdHlwZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL21vZGVscy91c2VyLWFjY2Vzcy10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXJBY2Nlc3NUeXBlIHtcbiAganVyaXNkaWN0aW9uSWQ6IHN0cmluZztcbiAgb3JnYW5pc2F0aW9uUHJvZmlsZUlkOiBzdHJpbmc7XG4gIGFjY2Vzc1R5cGVJZDogc3RyaW5nO1xuICBlbmFibGVkOiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kZXRhaWxzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvbW9kZWxzL3VzZXItZGV0YWlscy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckFjY2Vzc1R5cGUgfSBmcm9tICcuL3VzZXItYWNjZXNzLXR5cGUubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJEZXRhaWxzIHtcbiAgY2FzZVJvbGVzPzogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgaWRhbUlkOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIHVzZXJBY2Nlc3NUeXBlcz86IFVzZXJBY2Nlc3NUeXBlW107XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CapitalizePipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
const lowerCaseString = value.toLowerCase();
|
|
6
|
+
return lowerCaseString.charAt(0).toUpperCase() + lowerCaseString.slice(1);
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = function CapitalizePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CapitalizePipe)(); }; }
|
|
9
|
+
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "capitalize", type: CapitalizePipe, pure: true }); }
|
|
10
|
+
}
|
|
11
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CapitalizePipe, [{
|
|
12
|
+
type: Pipe,
|
|
13
|
+
args: [{ name: 'capitalize' }]
|
|
14
|
+
}], null, null); })();
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvcGlwZXMvY2FwaXRhbGl6ZS9jYXBpdGFsaXplLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxjQUFjO0lBQ2xCLFNBQVMsQ0FBQyxLQUFhO1FBQzVCLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QyxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDOytHQUpVLGNBQWM7b0ZBQWQsY0FBYzs7aUZBQWQsY0FBYztjQUQxQixJQUFJO2VBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7bmFtZTogJ2NhcGl0YWxpemUnfSlcbmV4cG9ydCBjbGFzcyBDYXBpdGFsaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvd2VyQ2FzZVN0cmluZyA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIGxvd2VyQ2FzZVN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGxvd2VyQ2FzZVN0cmluZy5zbGljZSgxKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './capitalize/capitalize.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9waXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYXBpdGFsaXplL2NhcGl0YWxpemUucGlwZSc7XG4iXX0=
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AddressModel } from '../../models';
|
|
2
|
+
import { AddressType } from './address-type.enum';
|
|
3
|
+
/**
|
|
4
|
+
* Moving all this logic here into Address Parser class, so that it
|
|
5
|
+
* will be easier for us when we move this parsing logic to into
|
|
6
|
+
* `Shim` java service.
|
|
7
|
+
*/
|
|
8
|
+
export class AddressParser {
|
|
9
|
+
parse(address) {
|
|
10
|
+
const classification = `${address.CLASSIFICATION_CODE}`;
|
|
11
|
+
const addressModel = new AddressModel();
|
|
12
|
+
addressModel.addressLine1 = this.parseAddressLine1(classification, address);
|
|
13
|
+
addressModel.addressLine2 = this.parseAddressLine2(classification, address);
|
|
14
|
+
addressModel.addressLine3 = this.parseAddressLine3(classification, address);
|
|
15
|
+
addressModel.postCode = address.POSTCODE;
|
|
16
|
+
addressModel.postTown = address.POST_TOWN;
|
|
17
|
+
addressModel.country = AddressType.UK;
|
|
18
|
+
return addressModel;
|
|
19
|
+
}
|
|
20
|
+
parseAddressLine1(classification, address) {
|
|
21
|
+
let addressLine;
|
|
22
|
+
if (classification === AddressType.RD06) {
|
|
23
|
+
addressLine =
|
|
24
|
+
`${address.SUB_BUILDING_NAME} ${address.ORGANISATION_NAME} ${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
addressLine =
|
|
28
|
+
`${address.ORGANISATION_NAME}${this.prefixWithCommaIfPresent(address.BUILDING_NAME)}` +
|
|
29
|
+
`${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
|
|
30
|
+
}
|
|
31
|
+
return this.removeNonAddressValues(addressLine);
|
|
32
|
+
}
|
|
33
|
+
parseAddressLine2(classification, address) {
|
|
34
|
+
let addressLine;
|
|
35
|
+
if (classification === AddressType.RD06) {
|
|
36
|
+
addressLine = `${address.BUILDING_NAME} `;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
addressLine =
|
|
40
|
+
`${address.SUB_BUILDING_NAME} ${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
|
|
41
|
+
}
|
|
42
|
+
return this.removeNonAddressValues(addressLine);
|
|
43
|
+
}
|
|
44
|
+
parseAddressLine3(classification, address) {
|
|
45
|
+
let addressLine;
|
|
46
|
+
if (classification === AddressType.RD06) {
|
|
47
|
+
addressLine =
|
|
48
|
+
`${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
addressLine =
|
|
52
|
+
`${address.DEPENDENT_LOCALITY} ${address.DOUBLE_DEPENDENT_LOCALITY} ${address.DEPENDENT_THOROUGHFARE_NAME}`;
|
|
53
|
+
}
|
|
54
|
+
return this.removeNonAddressValues(addressLine);
|
|
55
|
+
}
|
|
56
|
+
removeNonAddressValues(line) {
|
|
57
|
+
line = line.replace(' null', ' ').replace('null ', ' ');
|
|
58
|
+
line = this.removeUndefinedString(line);
|
|
59
|
+
line = this.removeInitialComma(line);
|
|
60
|
+
line = this.removeEmptySpaces(line);
|
|
61
|
+
return line;
|
|
62
|
+
}
|
|
63
|
+
removeUndefinedString(value) {
|
|
64
|
+
return value.replace(new RegExp('undefined', 'gi'), '');
|
|
65
|
+
}
|
|
66
|
+
removeEmptySpaces(value) {
|
|
67
|
+
return value.replace(new RegExp(' +', 'gi'), ' ').trim();
|
|
68
|
+
}
|
|
69
|
+
removeInitialComma(value) {
|
|
70
|
+
return value.replace(new RegExp('^,', 'gi'), '');
|
|
71
|
+
}
|
|
72
|
+
prefixWithCommaIfPresent(value) {
|
|
73
|
+
return value ? `, ${value}` : value;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9hZGRyZXNzL2FkZHJlc3MtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxEOzs7O0dBSUc7QUFDRixNQUFNLE9BQU8sYUFBYTtJQUNsQixLQUFLLENBQUMsT0FBWTtRQUN2QixNQUFNLGNBQWMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVFLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RSxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUUsWUFBWSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3pDLFlBQVksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUMxQyxZQUFZLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLGNBQXNCLEVBQUUsT0FBWTtRQUM1RCxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLGNBQWMsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7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Q3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZHJlc3NNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBZGRyZXNzVHlwZSB9IGZyb20gJy4vYWRkcmVzcy10eXBlLmVudW0nO1xuXG4vKipcbiAqIE1vdmluZyBhbGwgdGhpcyBsb2dpYyBoZXJlIGludG8gQWRkcmVzcyBQYXJzZXIgY2xhc3MsIHNvIHRoYXQgaXRcbiAqIHdpbGwgYmUgZWFzaWVyIGZvciB1cyB3aGVuIHdlIG1vdmUgdGhpcyBwYXJzaW5nIGxvZ2ljIHRvIGludG9cbiAqIGBTaGltYCBqYXZhIHNlcnZpY2UuXG4gKi9cbiBleHBvcnQgY2xhc3MgQWRkcmVzc1BhcnNlciB7XG4gIHB1YmxpYyBwYXJzZShhZGRyZXNzOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc2lmaWNhdGlvbiA9IGAke2FkZHJlc3MuQ0xBU1NJRklDQVRJT05fQ09ERX1gO1xuICAgIGNvbnN0IGFkZHJlc3NNb2RlbCA9IG5ldyBBZGRyZXNzTW9kZWwoKTtcbiAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUxID0gdGhpcy5wYXJzZUFkZHJlc3NMaW5lMShjbGFzc2lmaWNhdGlvbiwgYWRkcmVzcyk7XG4gICAgYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMiA9IHRoaXMucGFyc2VBZGRyZXNzTGluZTIoY2xhc3NpZmljYXRpb24sIGFkZHJlc3MpO1xuICAgIGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTMgPSB0aGlzLnBhcnNlQWRkcmVzc0xpbmUzKGNsYXNzaWZpY2F0aW9uLCBhZGRyZXNzKTtcbiAgICBhZGRyZXNzTW9kZWwucG9zdENvZGUgPSBhZGRyZXNzLlBPU1RDT0RFO1xuICAgIGFkZHJlc3NNb2RlbC5wb3N0VG93biA9IGFkZHJlc3MuUE9TVF9UT1dOO1xuICAgIGFkZHJlc3NNb2RlbC5jb3VudHJ5ID0gQWRkcmVzc1R5cGUuVUs7XG4gICAgcmV0dXJuIGFkZHJlc3NNb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VBZGRyZXNzTGluZTEoY2xhc3NpZmljYXRpb246IHN0cmluZywgYWRkcmVzczogYW55KSB7XG4gICAgbGV0IGFkZHJlc3NMaW5lO1xuICAgIGlmIChjbGFzc2lmaWNhdGlvbiA9PT0gQWRkcmVzc1R5cGUuUkQwNikge1xuICAgICAgYWRkcmVzc0xpbmUgPVxuICAgICAgICBgJHthZGRyZXNzLlNVQl9CVUlMRElOR19OQU1FfSAke2FkZHJlc3MuT1JHQU5JU0FUSU9OX05BTUV9ICR7YWRkcmVzcy5ERVBBUlRNRU5UX05BTUV9ICR7YWRkcmVzcy5QT19CT1hfTlVNQkVSfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3NMaW5lID1cbiAgICAgICAgYCR7YWRkcmVzcy5PUkdBTklTQVRJT05fTkFNRX0ke3RoaXMucHJlZml4V2l0aENvbW1hSWZQcmVzZW50KGFkZHJlc3MuQlVJTERJTkdfTkFNRSl9YCArXG4gICAgICAgIGAke2FkZHJlc3MuREVQQVJUTUVOVF9OQU1FfSAke2FkZHJlc3MuUE9fQk9YX05VTUJFUn1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZW1vdmVOb25BZGRyZXNzVmFsdWVzKGFkZHJlc3NMaW5lKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VBZGRyZXNzTGluZTIoY2xhc3NpZmljYXRpb246IHN0cmluZywgYWRkcmVzczogYW55KSB7XG4gICAgbGV0IGFkZHJlc3NMaW5lO1xuICAgIGlmIChjbGFzc2lmaWNhdGlvbiA9PT0gQWRkcmVzc1R5cGUuUkQwNikge1xuICAgICAgYWRkcmVzc0xpbmUgPSBgJHthZGRyZXNzLkJVSUxESU5HX05BTUV9IGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3NMaW5lID1cbiAgICAgICAgYCR7YWRkcmVzcy5TVUJfQlVJTERJTkdfTkFNRX0gJHthZGRyZXNzLkJVSUxESU5HX05VTUJFUn0gJHthZGRyZXNzLlRIT1JPVUdIRkFSRV9OQU1FfWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlbW92ZU5vbkFkZHJlc3NWYWx1ZXMoYWRkcmVzc0xpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUFkZHJlc3NMaW5lMyhjbGFzc2lmaWNhdGlvbjogc3RyaW5nLCBhZGRyZXNzOiBhbnkpIHtcbiAgICBsZXQgYWRkcmVzc0xpbmU7XG4gICAgaWYgKGNsYXNzaWZpY2F0aW9uID09PSBBZGRyZXNzVHlwZS5SRDA2KSB7XG4gICAgICBhZGRyZXNzTGluZSA9XG4gICAgICAgIGAke2FkZHJlc3MuQlVJTERJTkdfTlVNQkVSfSAke2FkZHJlc3MuVEhPUk9VR0hGQVJFX05BTUV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkcmVzc0xpbmUgPVxuICAgICAgICBgJHthZGRyZXNzLkRFUEVOREVOVF9MT0NBTElUWX0gJHthZGRyZXNzLkRPVUJMRV9ERVBFTkRFTlRfTE9DQUxJVFl9ICR7YWRkcmVzcy5ERVBFTkRFTlRfVEhPUk9VR0hGQVJFX05BTUV9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZlTm9uQWRkcmVzc1ZhbHVlcyhhZGRyZXNzTGluZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU5vbkFkZHJlc3NWYWx1ZXMobGluZTogc3RyaW5nKSB7XG4gICAgbGluZSA9IGxpbmUucmVwbGFjZSgnIG51bGwnLCAnICcpLnJlcGxhY2UoJ251bGwgJywgJyAnKTtcbiAgICBsaW5lID0gdGhpcy5yZW1vdmVVbmRlZmluZWRTdHJpbmcobGluZSk7XG4gICAgbGluZSA9IHRoaXMucmVtb3ZlSW5pdGlhbENvbW1hKGxpbmUpO1xuICAgIGxpbmUgPSB0aGlzLnJlbW92ZUVtcHR5U3BhY2VzKGxpbmUpO1xuICAgIHJldHVybiBsaW5lO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVVbmRlZmluZWRTdHJpbmcodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoJ3VuZGVmaW5lZCcsICdnaScpLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUVtcHR5U3BhY2VzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKCcgKycsICdnaScpLCAnICcpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSW5pdGlhbENvbW1hKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKCdeLCcsICdnaScpLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIHByZWZpeFdpdGhDb21tYUlmUHJlc2VudCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gYCwgJHt2YWx1ZX1gIDogdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var AddressType;
|
|
2
|
+
(function (AddressType) {
|
|
3
|
+
AddressType["DPA"] = "DPA";
|
|
4
|
+
AddressType["UK"] = "United Kingdom";
|
|
5
|
+
AddressType["RD06"] = "RD06";
|
|
6
|
+
})(AddressType || (AddressType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9hZGRyZXNzL2FkZHJlc3MtdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDbkIsMEJBQVcsQ0FBQTtJQUNYLG9DQUFxQixDQUFBO0lBQ3JCLDRCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUpXLFdBQVcsS0FBWCxXQUFXLFFBSXRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQWRkcmVzc1R5cGUge1xuICAgIERQQSA9ICdEUEEnLFxuICAgIFVLID0gJ1VuaXRlZCBLaW5nZG9tJyxcbiAgICBSRDA2ID0gJ1JEMDYnXG59XG4iXX0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { of } from 'rxjs/internal/observable/of';
|
|
4
|
+
import { map } from 'rxjs/operators';
|
|
5
|
+
import { AddressParser } from './address-parser';
|
|
6
|
+
import { AddressType } from './address-type.enum';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common/http";
|
|
9
|
+
export class AddressService {
|
|
10
|
+
constructor(http) {
|
|
11
|
+
this.http = http;
|
|
12
|
+
}
|
|
13
|
+
getAddressesForPostcode(postcode) {
|
|
14
|
+
if (!postcode) {
|
|
15
|
+
return of([]);
|
|
16
|
+
}
|
|
17
|
+
return this.http
|
|
18
|
+
.get('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined)
|
|
19
|
+
.pipe(map((res) => res.results))
|
|
20
|
+
.pipe(map(output => output ? output.map((addresses) => this.format(new AddressParser().parse(addresses[AddressType.DPA]))) : []));
|
|
21
|
+
}
|
|
22
|
+
format(addressModel) {
|
|
23
|
+
return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
|
|
24
|
+
}
|
|
25
|
+
formatAddressLines(addressModel) {
|
|
26
|
+
['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach((value) => {
|
|
27
|
+
addressModel[value] = this.toCapitalCase(addressModel[value]);
|
|
28
|
+
});
|
|
29
|
+
return addressModel;
|
|
30
|
+
}
|
|
31
|
+
shiftAddressLinesUp(addressModel) {
|
|
32
|
+
if (addressModel.addressLine2 === '') {
|
|
33
|
+
addressModel.addressLine2 = addressModel.addressLine3;
|
|
34
|
+
addressModel.addressLine3 = '';
|
|
35
|
+
}
|
|
36
|
+
if (addressModel.addressLine1 === '') {
|
|
37
|
+
addressModel.addressLine1 = addressModel.addressLine2;
|
|
38
|
+
addressModel.addressLine2 = '';
|
|
39
|
+
}
|
|
40
|
+
return addressModel;
|
|
41
|
+
}
|
|
42
|
+
toCapitalCase(sentence) {
|
|
43
|
+
sentence = sentence.toLowerCase();
|
|
44
|
+
sentence.split(' ').forEach((value) => {
|
|
45
|
+
sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));
|
|
46
|
+
});
|
|
47
|
+
return sentence;
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = function AddressService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AddressService)(i0.ɵɵinject(i1.HttpClient)); }; }
|
|
50
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AddressService, factory: AddressService.ɵfac }); }
|
|
51
|
+
}
|
|
52
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddressService, [{
|
|
53
|
+
type: Injectable
|
|
54
|
+
}], () => [{ type: i1.HttpClient }], null); })();
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvYWRkcmVzcy9hZGRyZXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFHbEQsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBNkIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUM3QyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBZ0I7UUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sMENBQTBDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsRUFBRSxTQUFtQixDQUFDO2FBQzFHLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzQixJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDbkUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ1IsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsWUFBMEI7UUFDdkMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFlBQTBCO1FBQ25ELENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBZ0MsRUFBRSxFQUFFO1lBQ3hHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFlBQTBCO1FBQ3BELElBQUksWUFBWSxDQUFDLFlBQVksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxZQUFZLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDdEQsWUFBWSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFlBQVksS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxZQUFZLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7WUFDdEQsWUFBWSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxhQUFhLENBQUMsUUFBZ0I7UUFDcEMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xDLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0dBbERVLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWM7O2lGQUFkLGNBQWM7Y0FEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBZGRyZXNzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWRkcmVzc1BhcnNlciB9IGZyb20gJy4vYWRkcmVzcy1wYXJzZXInO1xuaW1wb3J0IHsgQWRkcmVzc1R5cGUgfSBmcm9tICcuL2FkZHJlc3MtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFkZHJlc3NTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBZGRyZXNzZXNGb3JQb3N0Y29kZShwb3N0Y29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBZGRyZXNzTW9kZWxbXT4ge1xuICAgIGlmICghcG9zdGNvZGUpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PignL2V4dGVybmFsL2FkZHJlc3Nlcz9wb3N0Y29kZT0ke3Bvc3Rjb2RlfScucmVwbGFjZSgnJHtwb3N0Y29kZX0nLCBwb3N0Y29kZSksIHVuZGVmaW5lZCBhcyBvYmplY3QpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHJlcy5yZXN1bHRzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAob3V0cHV0ID0+IG91dHB1dCA/IG91dHB1dC5tYXAoKGFkZHJlc3NlczogYW55KSA9PlxuICAgICAgICAgIHRoaXMuZm9ybWF0KG5ldyBBZGRyZXNzUGFyc2VyKCkucGFyc2UoYWRkcmVzc2VzW0FkZHJlc3NUeXBlLkRQQV0pKVxuICAgICAgICApIDogW10pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXQoYWRkcmVzc01vZGVsOiBBZGRyZXNzTW9kZWwpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRBZGRyZXNzTGluZXModGhpcy5zaGlmdEFkZHJlc3NMaW5lc1VwKGFkZHJlc3NNb2RlbCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRBZGRyZXNzTGluZXMoYWRkcmVzc01vZGVsOiBBZGRyZXNzTW9kZWwpIHtcbiAgICBbJ2FkZHJlc3NMaW5lMScsICdhZGRyZXNzTGluZTInLCAnYWRkcmVzc0xpbmUzJywgJ3Bvc3RUb3duJ10uZm9yRWFjaCgodmFsdWU6IGtleW9mIHR5cGVvZiBhZGRyZXNzTW9kZWwpID0+IHtcbiAgICAgIGFkZHJlc3NNb2RlbFt2YWx1ZV0gPSB0aGlzLnRvQ2FwaXRhbENhc2UoYWRkcmVzc01vZGVsW3ZhbHVlXSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFkZHJlc3NNb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgc2hpZnRBZGRyZXNzTGluZXNVcChhZGRyZXNzTW9kZWw6IEFkZHJlc3NNb2RlbCkge1xuICAgIGlmIChhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUyID09PSAnJykge1xuICAgICAgYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMiA9IGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTM7XG4gICAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUzID0gJyc7XG4gICAgfVxuICAgIGlmIChhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUxID09PSAnJykge1xuICAgICAgYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMSA9IGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTI7XG4gICAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUyID0gJyc7XG4gICAgfVxuICAgIHJldHVybiBhZGRyZXNzTW9kZWw7XG4gIH1cblxuICBwcml2YXRlIHRvQ2FwaXRhbENhc2Uoc2VudGVuY2U6IHN0cmluZykge1xuICAgIHNlbnRlbmNlID0gc2VudGVuY2UudG9Mb3dlckNhc2UoKTtcbiAgICBzZW50ZW5jZS5zcGxpdCgnICcpLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgIHNlbnRlbmNlID0gc2VudGVuY2UucmVwbGFjZSh2YWx1ZSwgdmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zdWJzdHIoMSkpO1xuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHNlbnRlbmNlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,170 @@
|
|
|
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
|
+
get state() {
|
|
7
|
+
return this.subject.asObservable().pipe(distinctUntilChanged());
|
|
8
|
+
}
|
|
9
|
+
constructor() {
|
|
10
|
+
this.caseState = [];
|
|
11
|
+
this.subject = new BehaviorSubject(this.caseState);
|
|
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 = {
|
|
50
|
+
...sharedCase,
|
|
51
|
+
pendingUnshares: newPendingUnshares,
|
|
52
|
+
pendingShares: newPendingShares
|
|
53
|
+
};
|
|
54
|
+
newSharedCases.push(newSharedCase);
|
|
55
|
+
}
|
|
56
|
+
this.subject.next(newSharedCases);
|
|
57
|
+
return newSharedCases;
|
|
58
|
+
}
|
|
59
|
+
requestUnshare(user, caseId) {
|
|
60
|
+
const newSharedCases = [];
|
|
61
|
+
for (const sharedCase of this.caseState) {
|
|
62
|
+
// If no caseId, then request unshare from all shared cases
|
|
63
|
+
if (caseId === undefined || sharedCase.caseId === caseId) {
|
|
64
|
+
if (!sharedCase.pendingUnshares) {
|
|
65
|
+
sharedCase.pendingUnshares = [];
|
|
66
|
+
}
|
|
67
|
+
const newPendingUnshares = sharedCase.pendingUnshares.slice();
|
|
68
|
+
// If the user is pending shared access, just remove them from pendingShares
|
|
69
|
+
let newPendingShares;
|
|
70
|
+
let indexOfPreviouslyAddedUser = -1;
|
|
71
|
+
if (sharedCase.pendingShares) {
|
|
72
|
+
indexOfPreviouslyAddedUser = sharedCase.pendingShares.findIndex(u => u.idamId === user.idamId);
|
|
73
|
+
if (indexOfPreviouslyAddedUser > -1) {
|
|
74
|
+
newPendingShares = sharedCase.pendingShares.slice();
|
|
75
|
+
newPendingShares.splice(indexOfPreviouslyAddedUser, 1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// If the user does not exist in pendingShares, and already has shared access (i.e. exists in sharedWith),
|
|
79
|
+
// request removal of shared access
|
|
80
|
+
if (indexOfPreviouslyAddedUser === -1 && sharedCase.sharedWith && sharedCase.sharedWith.findIndex(u => u.idamId === user.idamId) > -1) {
|
|
81
|
+
if (!newPendingUnshares.some(u => u.email === user.email)) {
|
|
82
|
+
newPendingUnshares.push(user);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const newSharedCase = {
|
|
86
|
+
...sharedCase,
|
|
87
|
+
pendingUnshares: newPendingUnshares,
|
|
88
|
+
...(newPendingShares && {
|
|
89
|
+
pendingShares: newPendingShares
|
|
90
|
+
})
|
|
91
|
+
};
|
|
92
|
+
newSharedCases.push(newSharedCase);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
newSharedCases.push(sharedCase);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
this.subject.next(newSharedCases);
|
|
99
|
+
return newSharedCases;
|
|
100
|
+
}
|
|
101
|
+
requestCancel(caseId, user) {
|
|
102
|
+
const newSharedCases = [];
|
|
103
|
+
for (const sharedCase of this.caseState) {
|
|
104
|
+
if (sharedCase.caseId === caseId) {
|
|
105
|
+
if (!sharedCase.pendingUnshares) {
|
|
106
|
+
sharedCase.pendingUnshares = [];
|
|
107
|
+
}
|
|
108
|
+
const newPendingUnshares = sharedCase.pendingUnshares.slice();
|
|
109
|
+
for (let iPendingUnshares = 0; iPendingUnshares < newPendingUnshares.length; iPendingUnshares++) {
|
|
110
|
+
if (newPendingUnshares[iPendingUnshares].email === user.email) {
|
|
111
|
+
newPendingUnshares.splice(iPendingUnshares, 1);
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (!sharedCase.pendingShares) {
|
|
116
|
+
sharedCase.pendingShares = [];
|
|
117
|
+
}
|
|
118
|
+
const newPendingShares = sharedCase.pendingShares.slice();
|
|
119
|
+
for (let iPendingShares = 0; iPendingShares < newPendingShares.length; iPendingShares++) {
|
|
120
|
+
if (newPendingShares[iPendingShares].email === user.email) {
|
|
121
|
+
newPendingShares.splice(iPendingShares, 1);
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const newSharedCase = {
|
|
126
|
+
...sharedCase,
|
|
127
|
+
pendingUnshares: newPendingUnshares,
|
|
128
|
+
pendingShares: newPendingShares
|
|
129
|
+
};
|
|
130
|
+
newSharedCases.push(newSharedCase);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
newSharedCases.push(sharedCase);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
this.subject.next(newSharedCases);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
removeCase(caseId) {
|
|
140
|
+
if (this.caseState.length > 1) {
|
|
141
|
+
for (let i = 0, l = this.caseState.length; i < l; i++) {
|
|
142
|
+
if (this.caseState[i].caseId === caseId) {
|
|
143
|
+
this.caseState.splice(i, 1);
|
|
144
|
+
this.subject.next(this.caseState);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
userHasAccess(c, user) {
|
|
151
|
+
if (!c.sharedWith) {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
for (let i = 0, l = c.sharedWith.length; i < l; i++) {
|
|
155
|
+
if (c.sharedWith[i].email === user.email) {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
static { this.ɵfac = function CaseSharingStateService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseSharingStateService)(); }; }
|
|
162
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseSharingStateService, factory: CaseSharingStateService.ɵfac, providedIn: 'root' }); }
|
|
163
|
+
}
|
|
164
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseSharingStateService, [{
|
|
165
|
+
type: Injectable,
|
|
166
|
+
args: [{
|
|
167
|
+
providedIn: 'root'
|
|
168
|
+
}]
|
|
169
|
+
}], () => [], null); })();
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU90RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ3JDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQ7UUFUUSxjQUFTLEdBQWlCLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBUTdELENBQUM7SUFFVixRQUFRLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDdEgsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLEtB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T0FBTztnQkFDVCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLENBQWEsRUFBRSxJQUFpQjtRQUNuRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0hBcEtVLHVCQUF1Qjt1RUFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1QixtQkFGdEIsTUFBTTs7aUZBRVAsdUJBQXVCO2NBSG5DLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaGFyZWRDYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgY2FzZVN0YXRlOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTaGFyZWRDYXNlW10+KHRoaXMuY2FzZVN0YXRlKTtcblxuICBwdWJsaWMgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgc2V0Q2FzZXMoY2FzZXM6IFNoYXJlZENhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuY2FzZVN0YXRlID0gW107XG4gICAgY2FzZXMuZm9yRWFjaChhQ2FzZSA9PiB7XG4gICAgICB0aGlzLmNhc2VTdGF0ZS5wdXNoKHsgY2FzZUlkOiBhQ2FzZS5jYXNlSWQsIGNhc2VUaXRsZTogYUNhc2UuY2FzZVRpdGxlLCBjYXNlVHlwZUlkOiBhQ2FzZS5jYXNlVHlwZUlkLCByb2xlczogYUNhc2Uucm9sZXMsXG4gICAgICAgIHNoYXJlZFdpdGg6IGFDYXNlLnNoYXJlZFdpdGgsIHBlbmRpbmdTaGFyZXM6IGFDYXNlLnBlbmRpbmdTaGFyZXMsIHBlbmRpbmdVbnNoYXJlczogYUNhc2UucGVuZGluZ1Vuc2hhcmVzIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KHRoaXMuY2FzZVN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlcygpOiBTaGFyZWRDYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmNhc2VTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0U2hhcmUodXNlcjogVXNlckRldGFpbHMpOiBTaGFyZWRDYXNlW10ge1xuICAgIGNvbnN0IG9sZFNoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSB0aGlzLmNhc2VTdGF0ZS5zbGljZSgpO1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2Ygb2xkU2hhcmVkQ2FzZXMpIHtcbiAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UGVuZGluZ1NoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5zbGljZSgpO1xuICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UGVuZGluZ1Vuc2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc2xpY2UoKTtcbiAgICAgIGlmICghdGhpcy51c2VySGFzQWNjZXNzKHNoYXJlZENhc2UsIHVzZXIpKSB7XG4gICAgICAgIGlmICghbmV3UGVuZGluZ1NoYXJlcy5zb21lKHUgPT4gdS5lbWFpbCA9PT0gdXNlci5lbWFpbCkpIHtcbiAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzLnB1c2godXNlcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAobGV0IHUgPSAwLCB1bCA9IG5ld1BlbmRpbmdVbnNoYXJlcy5sZW5ndGg7IHUgPCB1bDsgdSsrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdVbnNoYXJlc1t1XS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1Vuc2hhcmVzLnNwbGljZSh1LCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgLi4uc2hhcmVkQ2FzZSxcbiAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXMsXG4gICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgIH07XG4gICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgIH1cbiAgICB0aGlzLnN1YmplY3QubmV4dChuZXdTaGFyZWRDYXNlcyk7XG4gICAgcmV0dXJuIG5ld1NoYXJlZENhc2VzO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RVbnNoYXJlKHVzZXI6IFVzZXJEZXRhaWxzLCBjYXNlSWQ/OiBzdHJpbmcpOiBTaGFyZWRDYXNlW10ge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2YgdGhpcy5jYXNlU3RhdGUpIHtcbiAgICAgIC8vIElmIG5vIGNhc2VJZCwgdGhlbiByZXF1ZXN0IHVuc2hhcmUgZnJvbSBhbGwgc2hhcmVkIGNhc2VzXG4gICAgICBpZiAoY2FzZUlkID09PSB1bmRlZmluZWQgfHwgc2hhcmVkQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzKSB7XG4gICAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdQZW5kaW5nVW5zaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5zbGljZSgpO1xuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBwZW5kaW5nIHNoYXJlZCBhY2Nlc3MsIGp1c3QgcmVtb3ZlIHRoZW0gZnJvbSBwZW5kaW5nU2hhcmVzXG4gICAgICAgIGxldCBuZXdQZW5kaW5nU2hhcmVzO1xuICAgICAgICBsZXQgaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPSAtMTtcbiAgICAgICAgaWYgKHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgICAgIGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyID0gc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmZpbmRJbmRleCh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCk7XG4gICAgICAgICAgaWYgKGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyID4gLTEpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMuc3BsaWNlKGluZGV4T2ZQcmV2aW91c2x5QWRkZWRVc2VyLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgZG9lcyBub3QgZXhpc3QgaW4gcGVuZGluZ1NoYXJlcywgYW5kIGFscmVhZHkgaGFzIHNoYXJlZCBhY2Nlc3MgKGkuZS4gZXhpc3RzIGluIHNoYXJlZFdpdGgpLFxuICAgICAgICAvLyByZXF1ZXN0IHJlbW92YWwgb2Ygc2hhcmVkIGFjY2Vzc1xuICAgICAgICBpZiAoaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPT09IC0xICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aCAmJiBzaGFyZWRDYXNlLnNoYXJlZFdpdGguZmluZEluZGV4KFxuICAgICAgICAgIHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSA+IC0xKSB7XG4gICAgICAgICAgaWYgKCFuZXdQZW5kaW5nVW5zaGFyZXMuc29tZSh1ID0+IHUuZW1haWwgPT09IHVzZXIuZW1haWwpKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nVW5zaGFyZXMucHVzaCh1c2VyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgICAuLi5zaGFyZWRDYXNlLFxuICAgICAgICAgIHBlbmRpbmdVbnNoYXJlczogbmV3UGVuZGluZ1Vuc2hhcmVzLFxuICAgICAgICAgIC4uLihuZXdQZW5kaW5nU2hhcmVzICYmIHtcbiAgICAgICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChzaGFyZWRDYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIHJldHVybiBuZXdTaGFyZWRDYXNlcztcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0Q2FuY2VsKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNoYXJlZENhc2Ugb2YgdGhpcy5jYXNlU3RhdGUpIHtcbiAgICAgIGlmIChzaGFyZWRDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdVbnNoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLnNsaWNlKCk7XG4gICAgICAgIGZvciAobGV0IGlQZW5kaW5nVW5zaGFyZXMgPSAwOyBpUGVuZGluZ1Vuc2hhcmVzIDwgbmV3UGVuZGluZ1Vuc2hhcmVzLmxlbmd0aDsgaVBlbmRpbmdVbnNoYXJlcysrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdVbnNoYXJlc1tpUGVuZGluZ1Vuc2hhcmVzXS5lbWFpbCA9PT0gdXNlci5lbWFpbCkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1Vuc2hhcmVzLnNwbGljZShpUGVuZGluZ1Vuc2hhcmVzLCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1NoYXJlcykge1xuICAgICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdTaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChsZXQgaVBlbmRpbmdTaGFyZXMgPSAwOyBpUGVuZGluZ1NoYXJlcyA8IG5ld1BlbmRpbmdTaGFyZXMubGVuZ3RoOyBpUGVuZGluZ1NoYXJlcysrKSB7XG4gICAgICAgICAgaWYgKG5ld1BlbmRpbmdTaGFyZXNbaVBlbmRpbmdTaGFyZXNdLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nU2hhcmVzLnNwbGljZShpUGVuZGluZ1NoYXJlcywgMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZSA9IHtcbiAgICAgICAgICAuLi5zaGFyZWRDYXNlLFxuICAgICAgICAgIHBlbmRpbmdVbnNoYXJlczogbmV3UGVuZGluZ1Vuc2hhcmVzLFxuICAgICAgICAgIHBlbmRpbmdTaGFyZXM6IG5ld1BlbmRpbmdTaGFyZXNcbiAgICAgICAgfTtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChuZXdTaGFyZWRDYXNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2goc2hhcmVkQ2FzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5ld1NoYXJlZENhc2VzKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2FzZShjYXNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhc2VTdGF0ZS5sZW5ndGggPiAxKSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMuY2FzZVN0YXRlLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBpZiAodGhpcy5jYXNlU3RhdGVbaV0uY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICB0aGlzLmNhc2VTdGF0ZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgdGhpcy5zdWJqZWN0Lm5leHQodGhpcy5jYXNlU3RhdGUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1c2VySGFzQWNjZXNzKGM6IFNoYXJlZENhc2UsIHVzZXI6IFVzZXJEZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjLnNoYXJlZFdpdGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBjLnNoYXJlZFdpdGgubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYy5zaGFyZWRXaXRoW2ldLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { Inject, Injectable } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CookieService {
|
|
5
|
+
constructor(doc) {
|
|
6
|
+
this.document = doc;
|
|
7
|
+
}
|
|
8
|
+
setCookie(key, value, expiryDate) {
|
|
9
|
+
const expiry = expiryDate ? ` expires=${expiryDate}` : '';
|
|
10
|
+
const cookie = `${key}=${value};${expiry}`;
|
|
11
|
+
this.document.cookie = cookie;
|
|
12
|
+
}
|
|
13
|
+
getCookie(key) {
|
|
14
|
+
const cookieValue = this.document.cookie
|
|
15
|
+
.split('; ')
|
|
16
|
+
.find(row => row.startsWith(`${key}=`))
|
|
17
|
+
.split('=')[1];
|
|
18
|
+
return cookieValue;
|
|
19
|
+
}
|
|
20
|
+
deleteCookie(key, path, domain) {
|
|
21
|
+
const pathValue = path ? `; path=${path}` : '';
|
|
22
|
+
const domainValue = domain ? `; domain=${domain}` : '';
|
|
23
|
+
this.document.cookie = `${key}=${pathValue}${domainValue}; expires=Thu, 01 Jan 1970 00:00:01 GMT; max-age=0`;
|
|
24
|
+
}
|
|
25
|
+
deleteCookieByPartialMatch(key, path, domain) {
|
|
26
|
+
this.document.cookie
|
|
27
|
+
.split('; ')
|
|
28
|
+
.filter(row => row.startsWith(`${key}`))
|
|
29
|
+
.forEach(element => {
|
|
30
|
+
this.deleteCookie(element.split('=')[0], path, domain);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
checkCookie(key) {
|
|
34
|
+
return this.document.cookie.split('; ').some(item => item.trim().startsWith(`${key}=`));
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = function CookieService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CookieService)(i0.ɵɵinject(DOCUMENT)); }; }
|
|
37
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CookieService, factory: CookieService.ɵfac, providedIn: 'root' }); }
|
|
38
|
+
}
|
|
39
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CookieService, [{
|
|
40
|
+
type: Injectable,
|
|
41
|
+
args: [{
|
|
42
|
+
providedIn: 'root'
|
|
43
|
+
}]
|
|
44
|
+
}], () => [{ type: undefined, decorators: [{
|
|
45
|
+
type: Inject,
|
|
46
|
+
args: [DOCUMENT]
|
|
47
|
+
}] }], null); })();
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jb29raWUvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUE4QixHQUFTO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBZSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxVQUFtQjtRQUM5RCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVztRQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07YUFDckMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ3RDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQVcsRUFBRSxJQUFhLEVBQUUsTUFBZTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTLEdBQUcsV0FBVyxvREFBb0QsQ0FBQztJQUMvRyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsR0FBVyxFQUFFLElBQWEsRUFBRSxNQUFlO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTthQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDOzhHQXRDVSxhQUFhLGNBR0osUUFBUTt1RUFIakIsYUFBYSxXQUFiLGFBQWEsbUJBRlosTUFBTTs7aUZBRVAsYUFBYTtjQUh6QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQUljLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudD86IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvYz86IGFueSkge1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2MgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29va2llKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBleHBpcnlEYXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJ5ID0gZXhwaXJ5RGF0ZSA/IGAgZXhwaXJlcz0ke2V4cGlyeURhdGV9YCA6ICcnO1xuICAgIGNvbnN0IGNvb2tpZSA9IGAke2tleX09JHt2YWx1ZX07JHtleHBpcnl9YDtcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb29raWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gdGhpcy5kb2N1bWVudC5jb29raWVcbiAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX09YCkpXG4gICAgICAuc3BsaXQoJz0nKVsxXTtcbiAgICByZXR1cm4gY29va2llVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llKGtleTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoVmFsdWUgPSBwYXRoID8gYDsgcGF0aD0ke3BhdGh9YCA6ICcnO1xuICAgIGNvbnN0IGRvbWFpblZhbHVlID0gZG9tYWluID8gYDsgZG9tYWluPSR7ZG9tYWlufWAgOiAnJztcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGAke2tleX09JHtwYXRoVmFsdWV9JHtkb21haW5WYWx1ZX07IGV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7IG1heC1hZ2U9MGA7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llQnlQYXJ0aWFsTWF0Y2goa2V5OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuY29va2llXG4gICAgICAuc3BsaXQoJzsgJylcbiAgICAgIC5maWx0ZXIocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX1gKSlcbiAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICB0aGlzLmRlbGV0ZUNvb2tpZShlbGVtZW50LnNwbGl0KCc9JylbMF0sIHBhdGgsIGRvbWFpbik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0Nvb2tpZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5zb21lKGl0ZW0gPT4gaXRlbS50cmltKCkuc3RhcnRzV2l0aChgJHtrZXl9PWApKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
// TEST-TODO
|
|
15
|
+
/**
|
|
16
|
+
* Usage: Add the FeatureToggleGuard as the Guard for a route, and provide the following
|
|
17
|
+
* in the data array for the route:
|
|
18
|
+
* - needsFeaturesEnabled: An array of feature keys that need to be enabled for this route
|
|
19
|
+
* - featureDisabledRedirect: the URL to redirect to when the this route is not accessible due to disabled features
|
|
20
|
+
* - expectFeatureEnabled: Sets whether a route should be enabled/disabled based on whether feature is present
|
|
21
|
+
* @param route Automatically provided by Angular
|
|
22
|
+
* Note: Per Angular 18, when a guard returns a UrlTree as a redirect,
|
|
23
|
+
* the redirecting navigation will now use replaceUrl if the initial navigation was also using the replaceUrl option.
|
|
24
|
+
*/
|
|
25
|
+
canActivate(route) {
|
|
26
|
+
return combineLatest([...route.data.needsFeaturesEnabled.map(feature => this.featureToggleService.getValueOnce(feature, false))]).pipe(map(featureStatuses => featureStatuses.every(status => status)), map(status => (route.data.expectFeatureEnabled !== false && status) || (route.data.expectFeatureEnabled === false && !status) || this.router.parseUrl(route.data.featureDisabledRedirect)));
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = function FeatureToggleGuard_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FeatureToggleGuard)(i0.ɵɵinject(i1.FeatureToggleService), i0.ɵɵinject(i2.Router)); }; }
|
|
29
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureToggleGuard, factory: FeatureToggleGuard.ɵfac, providedIn: 'root' }); }
|
|
30
|
+
}
|
|
31
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureToggleGuard, [{
|
|
32
|
+
type: Injectable,
|
|
33
|
+
args: [{
|
|
34
|
+
providedIn: 'root'
|
|
35
|
+
}]
|
|
36
|
+
}], () => [{ type: i1.FeatureToggleService }, { type: i2.Router }], null); })();
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBMEIsTUFBTSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNxQixvQkFBMEMsRUFDMUMsTUFBYztRQURkLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNoQyxDQUFDO0lBRUosWUFBWTtJQUNaOzs7Ozs7Ozs7T0FTRztJQUNJLFdBQVcsQ0FBQyxLQUE2QjtRQUM1QyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEdBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBaUMsQ0FBQyxHQUFHLENBQ2xFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQ2pGLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDL0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBaUMsQ0FBQyxDQUFDLENBQ3ZNLENBQUM7SUFDTixDQUFDO21IQXpCUSxrQkFBa0I7dUVBQWxCLGtCQUFrQixXQUFsQixrQkFBa0IsbUJBRmYsTUFBTTs7aUZBRVQsa0JBQWtCO2NBSDlCLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGZWF0dXJlVG9nZ2xlU2VydmljZSB9IGZyb20gJy4vZmVhdHVyZS10b2dnbGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZVRvZ2dsZUd1YXJkICB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmVhdHVyZVRvZ2dsZVNlcnZpY2U6IEZlYXR1cmVUb2dnbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyXG4gICAgKSB7fVxuXG4gICAgLy8gVEVTVC1UT0RPXG4gICAgLyoqXG4gICAgICogVXNhZ2U6IEFkZCB0aGUgRmVhdHVyZVRvZ2dsZUd1YXJkIGFzIHRoZSBHdWFyZCBmb3IgYSByb3V0ZSwgYW5kIHByb3ZpZGUgdGhlIGZvbGxvd2luZ1xuICAgICAqIGluIHRoZSBkYXRhIGFycmF5IGZvciB0aGUgcm91dGU6XG4gICAgICogLSBuZWVkc0ZlYXR1cmVzRW5hYmxlZDogQW4gYXJyYXkgb2YgZmVhdHVyZSBrZXlzIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciB0aGlzIHJvdXRlXG4gICAgICogLSBmZWF0dXJlRGlzYWJsZWRSZWRpcmVjdDogdGhlIFVSTCB0byByZWRpcmVjdCB0byB3aGVuIHRoZSB0aGlzIHJvdXRlIGlzIG5vdCBhY2Nlc3NpYmxlIGR1ZSB0byBkaXNhYmxlZCBmZWF0dXJlc1xuICAgICAqIC0gZXhwZWN0RmVhdHVyZUVuYWJsZWQ6IFNldHMgd2hldGhlciBhIHJvdXRlIHNob3VsZCBiZSBlbmFibGVkL2Rpc2FibGVkIGJhc2VkIG9uIHdoZXRoZXIgZmVhdHVyZSBpcyBwcmVzZW50XG4gICAgICogQHBhcmFtIHJvdXRlIEF1dG9tYXRpY2FsbHkgcHJvdmlkZWQgYnkgQW5ndWxhclxuICAgICAqIE5vdGU6IFBlciBBbmd1bGFyIDE4LCB3aGVuIGEgZ3VhcmQgcmV0dXJucyBhIFVybFRyZWUgYXMgYSByZWRpcmVjdCxcbiAgICAgKiB0aGUgcmVkaXJlY3RpbmcgbmF2aWdhdGlvbiB3aWxsIG5vdyB1c2UgcmVwbGFjZVVybCBpZiB0aGUgaW5pdGlhbCBuYXZpZ2F0aW9uIHdhcyBhbHNvIHVzaW5nIHRoZSByZXBsYWNlVXJsIG9wdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFsuLi4ocm91dGUuZGF0YS5uZWVkc0ZlYXR1cmVzRW5hYmxlZCBhcyBzdHJpbmdbXSkubWFwKFxuICAgICAgICAgICAgICAgIGZlYXR1cmUgPT4gdGhpcy5mZWF0dXJlVG9nZ2xlU2VydmljZS5nZXRWYWx1ZU9uY2U8Ym9vbGVhbj4oZmVhdHVyZSwgZmFsc2UpXG4gICAgICAgICldKS5waXBlKFxuICAgICAgICAgICAgbWFwKGZlYXR1cmVTdGF0dXNlcyA9PiBmZWF0dXJlU3RhdHVzZXMuZXZlcnkoc3RhdHVzID0+IHN0YXR1cykpLFxuICAgICAgICAgICAgbWFwKHN0YXR1cyA9PiAocm91dGUuZGF0YS5leHBlY3RGZWF0dXJlRW5hYmxlZCAhPT0gZmFsc2UgJiYgc3RhdHVzKSB8fCAocm91dGUuZGF0YS5leHBlY3RGZWF0dXJlRW5hYmxlZCA9PT0gZmFsc2UgJiYgIXN0YXR1cykgfHwgdGhpcy5yb3V0ZXIucGFyc2VVcmwocm91dGUuZGF0YS5mZWF0dXJlRGlzYWJsZWRSZWRpcmVjdCBhcyBzdHJpbmcpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|