@hmcts/rpx-xui-common-lib 2.0.2-pre-release-include-user-access-type → 2.0.2-pre-release-accessibility-updated-version
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/bundles/hmcts-rpx-xui-common-lib.umd.js +6257 -0
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -0
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +2 -0
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -0
- package/esm2015/hmcts-rpx-xui-common-lib.js +77 -0
- package/esm2015/lib/components/accessibility/accessibility.component.js +27 -0
- package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +185 -0
- package/esm2015/lib/components/contact-details/contact-details.component.js +17 -0
- package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +68 -0
- package/esm2015/lib/components/due-date/due-date.component.js +123 -0
- package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +28 -0
- package/esm2015/lib/components/find-location/find-location.component.js +146 -0
- package/esm2015/lib/components/find-person/find-person.component.js +120 -0
- package/esm2015/lib/components/find-service/find-service.component.js +113 -0
- package/esm2015/lib/components/find-task-name/find-task-name.component.js +97 -0
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +629 -0
- package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +27 -0
- package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +25 -0
- package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +25 -0
- package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +26 -0
- package/esm2015/lib/components/pagination/pagination.component.js +28 -0
- package/esm2015/lib/components/search-judicials/search-judicials.component.js +126 -0
- package/esm2015/lib/components/search-location/search-location.component.js +135 -0
- package/esm2015/lib/components/search-service/search-service.component.js +42 -0
- package/esm2015/lib/components/search-venue/search-venue.component.js +123 -0
- package/esm2015/lib/components/selected-case/selected-case.component.js +158 -0
- package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +36 -0
- package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +49 -0
- package/esm2015/lib/components/service-message/service-message.component.js +22 -0
- package/esm2015/lib/components/service-messages/service-messages.component.js +48 -0
- package/esm2015/lib/components/share-case/share-case.component.js +205 -0
- package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +34 -0
- package/esm2015/lib/components/tab/tab.component.js +21 -0
- package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +22 -0
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +13 -0
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +13 -0
- package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +16 -0
- package/esm2015/lib/components/user-details/user-details.component.js +41 -0
- package/esm2015/lib/components/user-list/user-list.component.js +33 -0
- package/esm2015/lib/components/user-select/user-select.component.js +58 -0
- package/esm2015/lib/components/write-address/write-address.component.js +182 -0
- package/esm2015/lib/components/write-address-inputs/write-address-inputs.component.js +36 -0
- package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +42 -0
- package/esm2015/lib/directives/let/let.directive.js +30 -0
- package/esm2015/lib/exui-common-lib.module.js +174 -0
- package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +31 -0
- package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +60 -0
- package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +64 -0
- package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +22 -0
- package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +28 -0
- package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +35 -0
- package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +23 -0
- package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +34 -0
- package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +22 -0
- package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +33 -0
- package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +21 -0
- package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +27 -0
- package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +39 -0
- package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +27 -0
- package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +23 -0
- package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +48 -0
- package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +19 -0
- package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +41 -0
- package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +28 -0
- package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +23 -0
- package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +15 -0
- package/esm2015/lib/gov-ui/directives/remove-host.directive.js +29 -0
- package/esm2015/lib/gov-ui/gov-ui.service.js +13 -0
- package/{esm2020/lib/models/public_api.mjs → esm2015/lib/models/public_api.js} +1 -2
- package/esm2015/lib/models/user-details.model.js +2 -0
- package/esm2015/lib/pipes/capitalize/capitalize.pipe.js +11 -0
- package/esm2015/lib/services/address/address.service.js +50 -0
- package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +157 -0
- package/esm2015/lib/services/cookie/cookie.service.js +47 -0
- package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +36 -0
- package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +27 -0
- package/{esm2020/lib/services/feature-toggle/launch-darkly.service.mjs → esm2015/lib/services/feature-toggle/launch-darkly.service.js} +6 -8
- package/{esm2020/lib/services/filter/filter.service.mjs → esm2015/lib/services/filter/filter.service.js} +6 -8
- package/esm2015/lib/services/find-person/find-person.service.js +115 -0
- package/esm2015/lib/services/google-analytics/google-analytics.service.js +68 -0
- package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +71 -0
- package/{esm2020/lib/services/loading/loading.service.mjs → esm2015/lib/services/loading/loading.service.js} +6 -8
- package/esm2015/lib/services/locations/location.service.js +39 -0
- package/{esm2020/lib/services/manage-session/manage-session.services.mjs → esm2015/lib/services/manage-session/manage-session.services.js} +10 -8
- package/esm2015/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.js +34 -0
- package/{esm2020/lib/services/ref-data/ref-data.service.mjs → esm2015/lib/services/ref-data/ref-data.service.js} +9 -8
- package/{esm2020/lib/services/role-guard/role.guard.mjs → esm2015/lib/services/role-guard/role.guard.js} +10 -8
- package/esm2015/lib/services/role-guard/role.service.js +20 -0
- package/{esm2020/lib/services/storage/session-storage/session-storage.service.mjs → esm2015/lib/services/storage/session-storage/session-storage.service.js} +6 -8
- package/{esm2020/lib/services/task-name/task-name.service.mjs → esm2015/lib/services/task-name/task-name.service.js} +10 -8
- package/{esm2020/lib/services/timeout-notifications/timeout-notifications.service.mjs → esm2015/lib/services/timeout-notifications/timeout-notifications.service.js} +10 -8
- package/fesm2015/hmcts-rpx-xui-common-lib.js +5227 -0
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -0
- package/hmcts-rpx-xui-common-lib.d.ts +76 -0
- package/hmcts-rpx-xui-common-lib.metadata.json +1 -0
- package/lib/components/accessibility/accessibility.component.d.ts +4 -4
- package/lib/components/checkbox-list/checkbox-list.component.d.ts +0 -3
- package/lib/components/contact-details/contact-details.component.d.ts +0 -3
- package/lib/components/cookie-banner/cookie-banner.component.d.ts +1 -6
- package/lib/components/due-date/due-date.component.d.ts +0 -3
- package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +0 -3
- package/lib/components/find-location/find-location.component.d.ts +0 -3
- package/lib/components/find-person/find-person.component.d.ts +0 -3
- package/lib/components/find-service/find-service.component.d.ts +0 -3
- package/lib/components/find-task-name/find-task-name.component.d.ts +0 -3
- package/lib/components/generic-filter/generic-filter.component.d.ts +0 -3
- package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +0 -3
- package/lib/components/invite-user-form/invite-user-form.component.d.ts +0 -3
- package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +0 -3
- package/lib/components/loading-spinner/loading-spinner.component.d.ts +0 -3
- package/lib/components/pagination/pagination.component.d.ts +0 -3
- package/lib/components/search-judicials/search-judicials.component.d.ts +0 -3
- package/lib/components/search-location/search-location.component.d.ts +1 -4
- package/lib/components/search-service/search-service.component.d.ts +1 -4
- package/lib/components/search-venue/search-venue.component.d.ts +0 -3
- package/lib/components/selected-case/selected-case.component.d.ts +0 -3
- package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +0 -3
- package/lib/components/selected-case-list/selected-case-list.component.d.ts +0 -3
- package/lib/components/service-message/service-message.component.d.ts +0 -3
- package/lib/components/service-messages/service-messages.component.d.ts +0 -3
- package/lib/components/share-case/share-case.component.d.ts +0 -3
- package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +0 -3
- package/lib/components/tab/tab.component.d.ts +0 -3
- package/lib/components/tc-confirm/tc-confirm.component.d.ts +0 -3
- package/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.d.ts +0 -3
- package/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.d.ts +0 -3
- package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +0 -3
- package/lib/components/user-details/user-details.component.d.ts +0 -3
- package/lib/components/user-list/user-list.component.d.ts +0 -3
- package/lib/components/user-select/user-select.component.d.ts +2 -5
- package/lib/components/write-address/write-address.component.d.ts +0 -3
- package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +3 -3
- package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +0 -3
- package/lib/directives/let/let.directive.d.ts +0 -3
- package/lib/exui-common-lib.module.d.ts +3 -77
- package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +0 -3
- package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +0 -3
- package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +0 -3
- package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +0 -3
- package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +0 -3
- package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +0 -3
- package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +0 -3
- package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +0 -3
- package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +0 -3
- package/lib/gov-ui/directives/remove-host.directive.d.ts +0 -3
- package/lib/gov-ui/gov-ui.service.d.ts +0 -3
- package/lib/models/feature-user.d.ts +1 -1
- package/lib/models/filter.model.d.ts +2 -2
- package/lib/models/public_api.d.ts +0 -1
- package/lib/models/user-details.model.d.ts +0 -2
- package/lib/pipes/capitalize/capitalize.pipe.d.ts +0 -3
- package/lib/services/address/address.service.d.ts +0 -3
- package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +0 -3
- package/lib/services/cookie/cookie.service.d.ts +0 -3
- package/lib/services/feature-toggle/feature-toggle.guard.d.ts +0 -3
- package/lib/services/feature-toggle/feature-toggle.service.d.ts +0 -3
- package/lib/services/feature-toggle/launch-darkly.service.d.ts +0 -3
- package/lib/services/filter/filter.service.d.ts +0 -3
- package/lib/services/find-person/find-person.service.d.ts +0 -3
- package/lib/services/google-analytics/google-analytics.service.d.ts +0 -3
- package/lib/services/google-tag-manager/google-tag-manager.service.d.ts +0 -3
- package/lib/services/loading/loading.service.d.ts +0 -3
- package/lib/services/locations/location.service.d.ts +0 -3
- package/lib/services/manage-session/manage-session.services.d.ts +0 -3
- package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +0 -3
- package/lib/services/ref-data/ref-data.service.d.ts +0 -3
- package/lib/services/role-guard/role.guard.d.ts +0 -3
- package/lib/services/role-guard/role.service.d.ts +2 -5
- package/lib/services/storage/session-storage/session-storage.service.d.ts +0 -3
- package/lib/services/task-name/task-name.service.d.ts +0 -3
- package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +0 -3
- package/package.json +9 -24
- package/esm2020/hmcts-rpx-xui-common-lib.mjs +0 -5
- package/esm2020/lib/components/accessibility/accessibility.component.mjs +0 -486
- package/esm2020/lib/components/checkbox-list/checkbox-list.component.mjs +0 -231
- package/esm2020/lib/components/contact-details/contact-details.component.mjs +0 -107
- package/esm2020/lib/components/cookie-banner/cookie-banner.component.mjs +0 -144
- package/esm2020/lib/components/due-date/due-date.component.mjs +0 -140
- package/esm2020/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +0 -79
- package/esm2020/lib/components/find-location/find-location.component.mjs +0 -219
- package/esm2020/lib/components/find-person/find-person.component.mjs +0 -234
- package/esm2020/lib/components/find-service/find-service.component.mjs +0 -187
- package/esm2020/lib/components/find-task-name/find-task-name.component.mjs +0 -200
- package/esm2020/lib/components/generic-filter/generic-filter.component.mjs +0 -1198
- package/esm2020/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +0 -55
- package/esm2020/lib/components/invite-user-form/invite-user-form.component.mjs +0 -50
- package/esm2020/lib/components/invite-user-permissions/invite-user-permission.component.mjs +0 -54
- package/esm2020/lib/components/loading-spinner/loading-spinner.component.mjs +0 -32
- package/esm2020/lib/components/pagination/pagination.component.mjs +0 -93
- package/esm2020/lib/components/search-judicials/search-judicials.component.mjs +0 -184
- package/esm2020/lib/components/search-location/search-location.component.mjs +0 -205
- package/esm2020/lib/components/search-service/search-service.component.mjs +0 -81
- package/esm2020/lib/components/search-venue/search-venue.component.mjs +0 -188
- package/esm2020/lib/components/selected-case/selected-case.component.mjs +0 -380
- package/esm2020/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +0 -130
- package/esm2020/lib/components/selected-case-list/selected-case-list.component.mjs +0 -98
- package/esm2020/lib/components/service-message/service-message.component.mjs +0 -50
- package/esm2020/lib/components/service-messages/service-messages.component.mjs +0 -75
- package/esm2020/lib/components/share-case/share-case.component.mjs +0 -410
- package/esm2020/lib/components/share-case-confirm/share-case-confirm.component.mjs +0 -85
- package/esm2020/lib/components/tab/tab.component.mjs +0 -39
- package/esm2020/lib/components/tc-confirm/tc-confirm.component.mjs +0 -65
- package/esm2020/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +0 -16
- package/esm2020/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +0 -16
- package/esm2020/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +0 -59
- package/esm2020/lib/components/user-details/user-details.component.mjs +0 -265
- package/esm2020/lib/components/user-list/user-list.component.mjs +0 -99
- package/esm2020/lib/components/user-select/user-select.component.mjs +0 -92
- package/esm2020/lib/components/write-address/write-address.component.mjs +0 -345
- package/esm2020/lib/components/write-address-inputs/write-address-inputs.component.mjs +0 -165
- package/esm2020/lib/directives/feature-toggle/feature-toggle.directive.mjs +0 -41
- package/esm2020/lib/directives/let/let.directive.mjs +0 -29
- package/esm2020/lib/exui-common-lib.module.mjs +0 -313
- package/esm2020/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +0 -54
- package/esm2020/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +0 -136
- package/esm2020/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +0 -120
- package/esm2020/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +0 -45
- package/esm2020/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +0 -80
- package/esm2020/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +0 -78
- package/esm2020/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +0 -45
- package/esm2020/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +0 -70
- package/esm2020/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +0 -84
- package/esm2020/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +0 -47
- package/esm2020/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +0 -41
- package/esm2020/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +0 -79
- package/esm2020/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +0 -188
- package/esm2020/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +0 -56
- package/esm2020/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +0 -112
- package/esm2020/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +0 -141
- package/esm2020/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +0 -33
- package/esm2020/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +0 -130
- package/esm2020/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +0 -204
- package/esm2020/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +0 -59
- package/esm2020/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +0 -57
- package/esm2020/lib/gov-ui/directives/remove-host.directive.mjs +0 -30
- package/esm2020/lib/gov-ui/gov-ui.service.mjs +0 -14
- package/esm2020/lib/models/user-access-type.model.mjs +0 -2
- package/esm2020/lib/models/user-details.model.mjs +0 -2
- package/esm2020/lib/pipes/capitalize/capitalize.pipe.mjs +0 -15
- package/esm2020/lib/services/address/address.service.mjs +0 -55
- package/esm2020/lib/services/case-sharing-state/case-sharing-state.service.mjs +0 -170
- package/esm2020/lib/services/cookie/cookie.service.mjs +0 -48
- package/esm2020/lib/services/feature-toggle/feature-toggle.guard.mjs +0 -34
- package/esm2020/lib/services/feature-toggle/feature-toggle.service.mjs +0 -29
- package/esm2020/lib/services/find-person/find-person.service.mjs +0 -114
- package/esm2020/lib/services/google-analytics/google-analytics.service.mjs +0 -68
- package/esm2020/lib/services/google-tag-manager/google-tag-manager.service.mjs +0 -71
- package/esm2020/lib/services/locations/location.service.mjs +0 -38
- package/esm2020/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +0 -33
- package/esm2020/lib/services/role-guard/role.service.mjs +0 -22
- package/fesm2015/hmcts-rpx-xui-common-lib.mjs +0 -10735
- package/fesm2015/hmcts-rpx-xui-common-lib.mjs.map +0 -1
- package/fesm2020/hmcts-rpx-xui-common-lib.mjs +0 -9774
- package/fesm2020/hmcts-rpx-xui-common-lib.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/models/user-access-type.model.d.ts +0 -6
- /package/{esm2020/lib/components/generic-filter/generic-filter-utils.mjs → esm2015/lib/components/generic-filter/generic-filter-utils.js} +0 -0
- /package/{esm2020/lib/components/index.mjs → esm2015/lib/components/index.js} +0 -0
- /package/{esm2020/lib/components/public_api.mjs → esm2015/lib/components/public_api.js} +0 -0
- /package/{esm2020/lib/directives/index.mjs → esm2015/lib/directives/index.js} +0 -0
- /package/{esm2020/lib/directives/public-api.mjs → esm2015/lib/directives/public-api.js} +0 -0
- /package/{esm2020/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs → esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js} +0 -0
- /package/{esm2020/lib/gov-ui/components/index.mjs → esm2015/lib/gov-ui/components/index.js} +0 -0
- /package/{esm2020/lib/gov-ui/components/public_api.mjs → esm2015/lib/gov-ui/components/public_api.js} +0 -0
- /package/{esm2020/lib/gov-ui/index.mjs → esm2015/lib/gov-ui/index.js} +0 -0
- /package/{esm2020/lib/gov-ui/models/checkboxes-model.mjs → esm2015/lib/gov-ui/models/checkboxes-model.js} +0 -0
- /package/{esm2020/lib/gov-ui/models/error-messages-model.mjs → esm2015/lib/gov-ui/models/error-messages-model.js} +0 -0
- /package/{esm2020/lib/gov-ui/models/gov-ui-config-model.mjs → esm2015/lib/gov-ui/models/gov-ui-config-model.js} +0 -0
- /package/{esm2020/lib/gov-ui/models/index.mjs → esm2015/lib/gov-ui/models/index.js} +0 -0
- /package/{esm2020/lib/gov-ui/models/isession-storage.interface.mjs → esm2015/lib/gov-ui/models/isession-storage.interface.js} +0 -0
- /package/{esm2020/lib/gov-ui/models/public_api.mjs → esm2015/lib/gov-ui/models/public_api.js} +0 -0
- /package/{esm2020/lib/gov-ui/models/radio-buttons.model.mjs → esm2015/lib/gov-ui/models/radio-buttons.model.js} +0 -0
- /package/{esm2020/lib/gov-ui/public_api.mjs → esm2015/lib/gov-ui/public_api.js} +0 -0
- /package/{esm2020/lib/gov-ui/util/helpers/html-templates.helper.mjs → esm2015/lib/gov-ui/util/helpers/html-templates.helper.js} +0 -0
- /package/{esm2020/lib/gov-ui/util/session-storage/session-storage-utils.mjs → esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js} +0 -0
- /package/{esm2020/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs → esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js} +0 -0
- /package/{esm2020/lib/gov-ui/validators/date.validator.mjs → esm2015/lib/gov-ui/validators/date.validator.js} +0 -0
- /package/{esm2020/lib/gov-ui/validators/index.mjs → esm2015/lib/gov-ui/validators/index.js} +0 -0
- /package/{esm2020/lib/gov-ui/validators/public_api.mjs → esm2015/lib/gov-ui/validators/public_api.js} +0 -0
- /package/{esm2020/lib/gov-ui/validators/radio-group.validator.mjs → esm2015/lib/gov-ui/validators/radio-group.validator.js} +0 -0
- /package/{esm2020/lib/models/address-message.enum.mjs → esm2015/lib/models/address-message.enum.js} +0 -0
- /package/{esm2020/lib/models/address-option.model.mjs → esm2015/lib/models/address-option.model.js} +0 -0
- /package/{esm2020/lib/models/address.model.mjs → esm2015/lib/models/address.model.js} +0 -0
- /package/{esm2020/lib/models/case-share.model.mjs → esm2015/lib/models/case-share.model.js} +0 -0
- /package/{esm2020/lib/models/contact-details.model.mjs → esm2015/lib/models/contact-details.model.js} +0 -0
- /package/{esm2020/lib/models/due-date.model.mjs → esm2015/lib/models/due-date.model.js} +0 -0
- /package/{esm2020/lib/models/feature-user.mjs → esm2015/lib/models/feature-user.js} +0 -0
- /package/{esm2020/lib/models/filter.model.mjs → esm2015/lib/models/filter.model.js} +0 -0
- /package/{esm2020/lib/models/idle-config.model.mjs → esm2015/lib/models/idle-config.model.js} +0 -0
- /package/{esm2020/lib/models/index.mjs → esm2015/lib/models/index.js} +0 -0
- /package/{esm2020/lib/models/location.model.mjs → esm2015/lib/models/location.model.js} +0 -0
- /package/{esm2020/lib/models/pagination.model.mjs → esm2015/lib/models/pagination.model.js} +0 -0
- /package/{esm2020/lib/models/person.model.mjs → esm2015/lib/models/person.model.js} +0 -0
- /package/{esm2020/lib/models/search-options.model.mjs → esm2015/lib/models/search-options.model.js} +0 -0
- /package/{esm2020/lib/models/task-name.model.mjs → esm2015/lib/models/task-name.model.js} +0 -0
- /package/{esm2020/lib/models/tcDocument.model.mjs → esm2015/lib/models/tcDocument.model.js} +0 -0
- /package/{esm2020/lib/models/timeout-notification.model.mjs → esm2015/lib/models/timeout-notification.model.js} +0 -0
- /package/{esm2020/lib/models/user.model.mjs → esm2015/lib/models/user.model.js} +0 -0
- /package/{esm2020/lib/pipes/index.mjs → esm2015/lib/pipes/index.js} +0 -0
- /package/{esm2020/lib/services/address/address-parser.mjs → esm2015/lib/services/address/address-parser.js} +0 -0
- /package/{esm2020/lib/services/address/address-type.enum.mjs → esm2015/lib/services/address/address-type.enum.js} +0 -0
- /package/{esm2020/lib/services/index.mjs → esm2015/lib/services/index.js} +0 -0
- /package/{esm2020/lib/services/public-api.mjs → esm2015/lib/services/public-api.js} +0 -0
- /package/{esm2020/lib/services/ref-data/index.mjs → esm2015/lib/services/ref-data/index.js} +0 -0
- /package/{esm2020/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs → esm2015/lib/services/ref-data/models/ref-data-htmcs-service.model.js} +0 -0
- /package/{esm2020/lib/services/ref-data/models/ref-data-region.model.mjs → esm2015/lib/services/ref-data/models/ref-data-region.model.js} +0 -0
- /package/{esm2020/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs → esm2015/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.js} +0 -0
- /package/{esm2020/lib/window.mjs → esm2015/lib/window.js} +0 -0
- /package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class CaseSharingStateService {
|
|
6
|
-
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
|
-
}
|
|
162
|
-
CaseSharingStateService.ɵfac = function CaseSharingStateService_Factory(t) { return new (t || CaseSharingStateService)(); };
|
|
163
|
-
CaseSharingStateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseSharingStateService, factory: CaseSharingStateService.ɵfac, providedIn: 'root' });
|
|
164
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseSharingStateService, [{
|
|
165
|
-
type: Injectable,
|
|
166
|
-
args: [{
|
|
167
|
-
providedIn: 'root'
|
|
168
|
-
}]
|
|
169
|
-
}], function () { return []; }, null); })();
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU90RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ3JDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQ7UUFUUSxjQUFTLEdBQWlCLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBUTdELENBQUM7SUFFVixRQUFRLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDdEgsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLEtB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Q0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3hDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OEZBcEtVLHVCQUF1Qjs2RUFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1QixtQkFGdEIsTUFBTTt1RkFFUCx1QkFBdUI7Y0FIbkMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNoYXJlZENhc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FzZS1zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyRGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWRldGFpbHMubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBjYXNlU3RhdGU6IFNoYXJlZENhc2VbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNoYXJlZENhc2VbXT4odGhpcy5jYXNlU3RhdGUpO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBzZXRDYXNlcyhjYXNlczogU2hhcmVkQ2FzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlU3RhdGUgPSBbXTtcbiAgICBjYXNlcy5mb3JFYWNoKGFDYXNlID0+IHtcbiAgICAgIHRoaXMuY2FzZVN0YXRlLnB1c2goeyBjYXNlSWQ6IGFDYXNlLmNhc2VJZCwgY2FzZVRpdGxlOiBhQ2FzZS5jYXNlVGl0bGUsIGNhc2VUeXBlSWQ6IGFDYXNlLmNhc2VUeXBlSWQsIHJvbGVzOiBhQ2FzZS5yb2xlcyxcbiAgICAgICAgc2hhcmVkV2l0aDogYUNhc2Uuc2hhcmVkV2l0aCwgcGVuZGluZ1NoYXJlczogYUNhc2UucGVuZGluZ1NoYXJlcywgcGVuZGluZ1Vuc2hhcmVzOiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQodGhpcy5jYXNlU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VzKCk6IFNoYXJlZENhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZVN0YXRlO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RTaGFyZSh1c2VyOiBVc2VyRGV0YWlscyk6IFNoYXJlZENhc2VbXSB7XG4gICAgY29uc3Qgb2xkU2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSA9IHRoaXMuY2FzZVN0YXRlLnNsaWNlKCk7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2hhcmVkQ2FzZSBvZiBvbGRTaGFyZWRDYXNlcykge1xuICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzID0gW107XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdQZW5kaW5nU2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLnNsaWNlKCk7XG4gICAgICBpZiAoIXNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzKSB7XG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzID0gW107XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdQZW5kaW5nVW5zaGFyZXMgPSBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5zbGljZSgpO1xuICAgICAgaWYgKCF0aGlzLnVzZXJIYXNBY2Nlc3Moc2hhcmVkQ2FzZSwgdXNlcikpIHtcbiAgICAgICAgaWYgKCFuZXdQZW5kaW5nU2hhcmVzLnNvbWUodSA9PiB1LmVtYWlsID09PSB1c2VyLmVtYWlsKSkge1xuICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMucHVzaCh1c2VyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChsZXQgdSA9IDAsIHVsID0gbmV3UGVuZGluZ1Vuc2hhcmVzLmxlbmd0aDsgdSA8IHVsOyB1KyspIHtcbiAgICAgICAgICBpZiAobmV3UGVuZGluZ1Vuc2hhcmVzW3VdLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nVW5zaGFyZXMuc3BsaWNlKHUsIDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdTaGFyZWRDYXNlID0ge1xuICAgICAgICAuLi5zaGFyZWRDYXNlLFxuICAgICAgICBwZW5kaW5nVW5zaGFyZXM6IG5ld1BlbmRpbmdVbnNoYXJlcyxcbiAgICAgICAgcGVuZGluZ1NoYXJlczogbmV3UGVuZGluZ1NoYXJlc1xuICAgICAgfTtcbiAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2gobmV3U2hhcmVkQ2FzZSk7XG4gICAgfVxuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5ld1NoYXJlZENhc2VzKTtcbiAgICByZXR1cm4gbmV3U2hhcmVkQ2FzZXM7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFVuc2hhcmUodXNlcjogVXNlckRldGFpbHMsIGNhc2VJZD86IHN0cmluZyk6IFNoYXJlZENhc2VbXSB7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2hhcmVkQ2FzZSBvZiB0aGlzLmNhc2VTdGF0ZSkge1xuICAgICAgLy8gSWYgbm8gY2FzZUlkLCB0aGVuIHJlcXVlc3QgdW5zaGFyZSBmcm9tIGFsbCBzaGFyZWQgY2FzZXNcbiAgICAgIGlmIChjYXNlSWQgPT09IHVuZGVmaW5lZCB8fCBzaGFyZWRDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1BlbmRpbmdVbnNoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLnNsaWNlKCk7XG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIHBlbmRpbmcgc2hhcmVkIGFjY2VzcywganVzdCByZW1vdmUgdGhlbSBmcm9tIHBlbmRpbmdTaGFyZXNcbiAgICAgICAgbGV0IG5ld1BlbmRpbmdTaGFyZXM7XG4gICAgICAgIGxldCBpbmRleE9mUHJldmlvdXNseUFkZGVkVXNlciA9IC0xO1xuICAgICAgICBpZiAoc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgICAgaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPSBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMuZmluZEluZGV4KHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKTtcbiAgICAgICAgICBpZiAoaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIgPiAtMSkge1xuICAgICAgICAgICAgbmV3UGVuZGluZ1NoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5zbGljZSgpO1xuICAgICAgICAgICAgbmV3UGVuZGluZ1NoYXJlcy5zcGxpY2UoaW5kZXhPZlByZXZpb3VzbHlBZGRlZFVzZXIsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgdXNlciBkb2VzIG5vdCBleGlzdCBpbiBwZW5kaW5nU2hhcmVzLCBhbmQgYWxyZWFkeSBoYXMgc2hhcmVkIGFjY2VzcyAoaS5lLiBleGlzdHMgaW4gc2hhcmVkV2l0aCksXG4gICAgICAgIC8vIHJlcXVlc3QgcmVtb3ZhbCBvZiBzaGFyZWQgYWNjZXNzXG4gICAgICAgIGlmIChpbmRleE9mUHJldmlvdXNseUFkZGVkVXNlciA9PT0gLTEgJiYgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5maW5kSW5kZXgoXG4gICAgICAgICAgdSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpID4gLTEpIHtcbiAgICAgICAgICBpZiAoIW5ld1BlbmRpbmdVbnNoYXJlcy5zb21lKHUgPT4gdS5lbWFpbCA9PT0gdXNlci5lbWFpbCkpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdVbnNoYXJlcy5wdXNoKHVzZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdTaGFyZWRDYXNlID0ge1xuICAgICAgICAgIC4uLnNoYXJlZENhc2UsXG4gICAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXMsXG4gICAgICAgICAgLi4uKG5ld1BlbmRpbmdTaGFyZXMgJiYge1xuICAgICAgICAgICAgcGVuZGluZ1NoYXJlczogbmV3UGVuZGluZ1NoYXJlc1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICAgIG5ld1NoYXJlZENhc2VzLnB1c2gobmV3U2hhcmVkQ2FzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKHNoYXJlZENhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN1YmplY3QubmV4dChuZXdTaGFyZWRDYXNlcyk7XG4gICAgcmV0dXJuIG5ld1NoYXJlZENhc2VzO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RDYW5jZWwoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogdm9pZCB7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2hhcmVkQ2FzZSBvZiB0aGlzLmNhc2VTdGF0ZSkge1xuICAgICAgaWYgKHNoYXJlZENhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgaWYgKCFzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcykge1xuICAgICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3UGVuZGluZ1Vuc2hhcmVzID0gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChsZXQgaVBlbmRpbmdVbnNoYXJlcyA9IDA7IGlQZW5kaW5nVW5zaGFyZXMgPCBuZXdQZW5kaW5nVW5zaGFyZXMubGVuZ3RoOyBpUGVuZGluZ1Vuc2hhcmVzKyspIHtcbiAgICAgICAgICBpZiAobmV3UGVuZGluZ1Vuc2hhcmVzW2lQZW5kaW5nVW5zaGFyZXNdLmVtYWlsID09PSB1c2VyLmVtYWlsKSB7XG4gICAgICAgICAgICBuZXdQZW5kaW5nVW5zaGFyZXMuc3BsaWNlKGlQZW5kaW5nVW5zaGFyZXMsIDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3UGVuZGluZ1NoYXJlcyA9IHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5zbGljZSgpO1xuICAgICAgICBmb3IgKGxldCBpUGVuZGluZ1NoYXJlcyA9IDA7IGlQZW5kaW5nU2hhcmVzIDwgbmV3UGVuZGluZ1NoYXJlcy5sZW5ndGg7IGlQZW5kaW5nU2hhcmVzKyspIHtcbiAgICAgICAgICBpZiAobmV3UGVuZGluZ1NoYXJlc1tpUGVuZGluZ1NoYXJlc10uZW1haWwgPT09IHVzZXIuZW1haWwpIHtcbiAgICAgICAgICAgIG5ld1BlbmRpbmdTaGFyZXMuc3BsaWNlKGlQZW5kaW5nU2hhcmVzLCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdTaGFyZWRDYXNlID0ge1xuICAgICAgICAgIC4uLnNoYXJlZENhc2UsXG4gICAgICAgICAgcGVuZGluZ1Vuc2hhcmVzOiBuZXdQZW5kaW5nVW5zaGFyZXMsXG4gICAgICAgICAgcGVuZGluZ1NoYXJlczogbmV3UGVuZGluZ1NoYXJlc1xuICAgICAgICB9O1xuICAgICAgICBuZXdTaGFyZWRDYXNlcy5wdXNoKG5ld1NoYXJlZENhc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2hhcmVkQ2FzZXMucHVzaChzaGFyZWRDYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDYXNlKGNhc2VJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FzZVN0YXRlLmxlbmd0aCA+IDEpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5jYXNlU3RhdGUubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLmNhc2VTdGF0ZVtpXS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgIHRoaXMuY2FzZVN0YXRlLnNwbGljZShpLCAxKTtcbiAgICAgICAgICB0aGlzLnN1YmplY3QubmV4dCh0aGlzLmNhc2VTdGF0ZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVzZXJIYXNBY2Nlc3MoYzogU2hhcmVkQ2FzZSwgdXNlcjogVXNlckRldGFpbHMpOiBib29sZWFuIHtcbiAgICBpZiAoIWMuc2hhcmVkV2l0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IGMuc2hhcmVkV2l0aC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChjLnNoYXJlZFdpdGhbaV0uZW1haWwgPT09IHVzZXIuZW1haWwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -1,48 +0,0 @@
|
|
|
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
|
-
}
|
|
37
|
-
CookieService.ɵfac = function CookieService_Factory(t) { return new (t || CookieService)(i0.ɵɵinject(DOCUMENT)); };
|
|
38
|
-
CookieService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CookieService, factory: CookieService.ɵfac, providedIn: 'root' });
|
|
39
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CookieService, [{
|
|
40
|
-
type: Injectable,
|
|
41
|
-
args: [{
|
|
42
|
-
providedIn: 'root'
|
|
43
|
-
}]
|
|
44
|
-
}], function () { return [{ type: undefined, decorators: [{
|
|
45
|
-
type: Inject,
|
|
46
|
-
args: [DOCUMENT]
|
|
47
|
-
}] }]; }, null); })();
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jb29raWUvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUE4QixHQUFTO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBZSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxVQUFtQjtRQUM5RCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVztRQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07YUFDckMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ3RDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQVcsRUFBRSxJQUFhLEVBQUUsTUFBZTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTLEdBQUcsV0FBVyxvREFBb0QsQ0FBQztJQUMvRyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsR0FBVyxFQUFFLElBQWEsRUFBRSxNQUFlO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTthQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDOzswRUF0Q1UsYUFBYSxjQUdKLFFBQVE7bUVBSGpCLGFBQWEsV0FBYixhQUFhLG1CQUZaLE1BQU07dUZBRVAsYUFBYTtjQUh6QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQUljLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudD86IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvYz86IGFueSkge1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2MgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29va2llKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBleHBpcnlEYXRlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJ5ID0gZXhwaXJ5RGF0ZSA/IGAgZXhwaXJlcz0ke2V4cGlyeURhdGV9YCA6ICcnO1xuICAgIGNvbnN0IGNvb2tpZSA9IGAke2tleX09JHt2YWx1ZX07JHtleHBpcnl9YDtcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb29raWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gdGhpcy5kb2N1bWVudC5jb29raWVcbiAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX09YCkpXG4gICAgICAuc3BsaXQoJz0nKVsxXTtcbiAgICByZXR1cm4gY29va2llVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llKGtleTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoVmFsdWUgPSBwYXRoID8gYDsgcGF0aD0ke3BhdGh9YCA6ICcnO1xuICAgIGNvbnN0IGRvbWFpblZhbHVlID0gZG9tYWluID8gYDsgZG9tYWluPSR7ZG9tYWlufWAgOiAnJztcbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGAke2tleX09JHtwYXRoVmFsdWV9JHtkb21haW5WYWx1ZX07IGV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7IG1heC1hZ2U9MGA7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29va2llQnlQYXJ0aWFsTWF0Y2goa2V5OiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuY29va2llXG4gICAgICAuc3BsaXQoJzsgJylcbiAgICAgIC5maWx0ZXIocm93ID0+IHJvdy5zdGFydHNXaXRoKGAke2tleX1gKSlcbiAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICB0aGlzLmRlbGV0ZUNvb2tpZShlbGVtZW50LnNwbGl0KCc9JylbMF0sIHBhdGgsIGRvbWFpbik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0Nvb2tpZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5zb21lKGl0ZW0gPT4gaXRlbS50cmltKCkuc3RhcnRzV2l0aChgJHtrZXl9PWApKTtcbiAgfVxufVxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { combineLatest } from 'rxjs';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
|
-
import { FeatureToggleService } from './feature-toggle.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./feature-toggle.service";
|
|
8
|
-
import * as i2 from "@angular/router";
|
|
9
|
-
export class FeatureToggleGuard {
|
|
10
|
-
constructor(featureToggleService, router) {
|
|
11
|
-
this.featureToggleService = featureToggleService;
|
|
12
|
-
this.router = router;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Usage: Add the FeatureToggleGuard as the Guard for a route, and provide the following
|
|
16
|
-
* in the data array for the route:
|
|
17
|
-
* - needsFeaturesEnabled: An array of feature keys that need to be enabled for this route
|
|
18
|
-
* - featureDisabledRedirect: the URL to redirect to when the this route is not accessible due to disabled features
|
|
19
|
-
* - expectFeatureEnabled: Sets whether a route should be enabled/disabled based on whether feature is present
|
|
20
|
-
* @param route Automatically provided by Angular
|
|
21
|
-
*/
|
|
22
|
-
canActivate(route) {
|
|
23
|
-
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)));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
FeatureToggleGuard.ɵfac = function FeatureToggleGuard_Factory(t) { return new (t || FeatureToggleGuard)(i0.ɵɵinject(i1.FeatureToggleService), i0.ɵɵinject(i2.Router)); };
|
|
27
|
-
FeatureToggleGuard.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureToggleGuard, factory: FeatureToggleGuard.ɵfac, providedIn: 'root' });
|
|
28
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureToggleGuard, [{
|
|
29
|
-
type: Injectable,
|
|
30
|
-
args: [{
|
|
31
|
-
providedIn: 'root'
|
|
32
|
-
}]
|
|
33
|
-
}], function () { return [{ type: i1.FeatureToggleService }, { type: i2.Router }]; }, null); })();
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBdUMsTUFBTSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNxQixvQkFBMEMsRUFDMUMsTUFBYztRQURkLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNoQyxDQUFDO0lBRUo7Ozs7Ozs7T0FPRztJQUNJLFdBQVcsQ0FBQyxLQUE2QjtRQUM1QyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEdBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBaUMsQ0FBQyxHQUFHLENBQ2xFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBVSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQ2pGLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDL0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBaUMsQ0FBQyxDQUFDLENBQ3ZNLENBQUM7SUFDTixDQUFDOztvRkF0QlEsa0JBQWtCO3dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZmLE1BQU07dUZBRVQsa0JBQWtCO2NBSDlCLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVUb2dnbGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlVG9nZ2xlU2VydmljZTogRmVhdHVyZVRvZ2dsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiBVc2FnZTogQWRkIHRoZSBGZWF0dXJlVG9nZ2xlR3VhcmQgYXMgdGhlIEd1YXJkIGZvciBhIHJvdXRlLCBhbmQgcHJvdmlkZSB0aGUgZm9sbG93aW5nXG4gICAgICogaW4gdGhlIGRhdGEgYXJyYXkgZm9yIHRoZSByb3V0ZTpcbiAgICAgKiAtIG5lZWRzRmVhdHVyZXNFbmFibGVkOiBBbiBhcnJheSBvZiBmZWF0dXJlIGtleXMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgcm91dGVcbiAgICAgKiAtIGZlYXR1cmVEaXNhYmxlZFJlZGlyZWN0OiB0aGUgVVJMIHRvIHJlZGlyZWN0IHRvIHdoZW4gdGhlIHRoaXMgcm91dGUgaXMgbm90IGFjY2Vzc2libGUgZHVlIHRvIGRpc2FibGVkIGZlYXR1cmVzXG4gICAgICogLSBleHBlY3RGZWF0dXJlRW5hYmxlZDogU2V0cyB3aGV0aGVyIGEgcm91dGUgc2hvdWxkIGJlIGVuYWJsZWQvZGlzYWJsZWQgYmFzZWQgb24gd2hldGhlciBmZWF0dXJlIGlzIHByZXNlbnRcbiAgICAgKiBAcGFyYW0gcm91dGUgQXV0b21hdGljYWxseSBwcm92aWRlZCBieSBBbmd1bGFyXG4gICAgICovXG4gICAgcHVibGljIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbLi4uKHJvdXRlLmRhdGEubmVlZHNGZWF0dXJlc0VuYWJsZWQgYXMgc3RyaW5nW10pLm1hcChcbiAgICAgICAgICAgICAgICBmZWF0dXJlID0+IHRoaXMuZmVhdHVyZVRvZ2dsZVNlcnZpY2UuZ2V0VmFsdWVPbmNlPGJvb2xlYW4+KGZlYXR1cmUsIGZhbHNlKVxuICAgICAgICApXSkucGlwZShcbiAgICAgICAgICAgIG1hcChmZWF0dXJlU3RhdHVzZXMgPT4gZmVhdHVyZVN0YXR1c2VzLmV2ZXJ5KHN0YXR1cyA9PiBzdGF0dXMpKSxcbiAgICAgICAgICAgIG1hcChzdGF0dXMgPT4gKHJvdXRlLmRhdGEuZXhwZWN0RmVhdHVyZUVuYWJsZWQgIT09IGZhbHNlICYmIHN0YXR1cykgfHwgKHJvdXRlLmRhdGEuZXhwZWN0RmVhdHVyZUVuYWJsZWQgPT09IGZhbHNlICYmICFzdGF0dXMpIHx8IHRoaXMucm91dGVyLnBhcnNlVXJsKHJvdXRlLmRhdGEuZmVhdHVyZURpc2FibGVkUmVkaXJlY3QgYXMgc3RyaW5nKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class FeatureToggleService {
|
|
4
|
-
// tslint:disable-next-line: variable-name
|
|
5
|
-
initialize(_user, _clientId) {
|
|
6
|
-
throw new Error('Not implemented');
|
|
7
|
-
}
|
|
8
|
-
// tslint:disable-next-line: variable-name
|
|
9
|
-
isEnabled(_feature) {
|
|
10
|
-
throw new Error('Not implemented');
|
|
11
|
-
}
|
|
12
|
-
// tslint:disable-next-line: variable-name
|
|
13
|
-
getValue(_key, _defaultValue) {
|
|
14
|
-
throw new Error('Not implemented');
|
|
15
|
-
}
|
|
16
|
-
// tslint:disable-next-line: variable-name
|
|
17
|
-
getValueOnce(_key, _defaultValue) {
|
|
18
|
-
throw new Error('Not implemented');
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
FeatureToggleService.ɵfac = function FeatureToggleService_Factory(t) { return new (t || FeatureToggleService)(); };
|
|
22
|
-
FeatureToggleService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureToggleService, factory: FeatureToggleService.ɵfac, providedIn: 'root' });
|
|
23
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureToggleService, [{
|
|
24
|
-
type: Injectable,
|
|
25
|
-
args: [{
|
|
26
|
-
providedIn: 'root'
|
|
27
|
-
}]
|
|
28
|
-
}], null, null); })();
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QiwwQ0FBMEM7SUFDbkMsVUFBVSxDQUFDLEtBQWtCLEVBQUUsU0FBaUI7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCwwQ0FBMEM7SUFDbkMsU0FBUyxDQUFDLFFBQWdCO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsMENBQTBDO0lBQ25DLFFBQVEsQ0FBSSxJQUFZLEVBQUUsYUFBZ0I7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQ0FBMEM7SUFDbkMsWUFBWSxDQUFJLElBQVksRUFBRSxhQUFnQjtRQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQzs7d0ZBakJRLG9CQUFvQjswRUFBcEIsb0JBQW9CLFdBQXBCLG9CQUFvQixtQkFGakIsTUFBTTt1RkFFVCxvQkFBb0I7Y0FIaEMsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmVhdHVyZVVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmVhdHVyZS11c2VyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlVG9nZ2xlU2VydmljZSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGluaXRpYWxpemUoX3VzZXI6IEZlYXR1cmVVc2VyLCBfY2xpZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHZhcmlhYmxlLW5hbWVcbiAgICBwdWJsaWMgaXNFbmFibGVkKF9mZWF0dXJlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIGdldFZhbHVlPFI+KF9rZXk6IHN0cmluZywgX2RlZmF1bHRWYWx1ZTogUik6IE9ic2VydmFibGU8Uj4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdmFyaWFibGUtbmFtZVxuICAgIHB1YmxpYyBnZXRWYWx1ZU9uY2U8Uj4oX2tleTogc3RyaW5nLCBfZGVmYXVsdFZhbHVlOiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { of } from 'rxjs';
|
|
4
|
-
import { map, tap } from 'rxjs/operators';
|
|
5
|
-
import { getAllCaseworkersFromServices, getSessionStorageKeyForServiceId, setCaseworkers } from '../../gov-ui/util/session-storage/session-storage-utils';
|
|
6
|
-
import { PersonRole, RoleCategory } from '../../models';
|
|
7
|
-
import { SessionStorageService } from '../storage/session-storage/session-storage.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/common/http";
|
|
10
|
-
import * as i2 from "../storage/session-storage/session-storage.service";
|
|
11
|
-
export class FindAPersonService {
|
|
12
|
-
constructor(http, sessionStorageService) {
|
|
13
|
-
this.http = http;
|
|
14
|
-
this.sessionStorageService = sessionStorageService;
|
|
15
|
-
}
|
|
16
|
-
find(searchOptions) {
|
|
17
|
-
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
18
|
-
if (userInfoStr && !searchOptions.userIncluded) {
|
|
19
|
-
const userInfo = JSON.parse(userInfoStr);
|
|
20
|
-
this.userId = userInfo.id ? userInfo.id : userInfo.uid;
|
|
21
|
-
}
|
|
22
|
-
this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
|
|
23
|
-
return this.http.post('/workallocation/findPerson', { searchOptions })
|
|
24
|
-
.pipe(map(judiciary => judiciary.filter(judge => !([this.assignedUser].includes(judge.id)))));
|
|
25
|
-
// Removed the current user id to fix EUI-8465.
|
|
26
|
-
}
|
|
27
|
-
findCaseworkers(searchOptions) {
|
|
28
|
-
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
29
|
-
if (userInfoStr) {
|
|
30
|
-
const userInfo = JSON.parse(userInfoStr);
|
|
31
|
-
this.userId = userInfo.id ? userInfo.id : userInfo.uid;
|
|
32
|
-
}
|
|
33
|
-
this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
|
|
34
|
-
const fullServices = searchOptions.services;
|
|
35
|
-
const storedServices = [];
|
|
36
|
-
const newServices = [];
|
|
37
|
-
const storedCaseworkersByService = [];
|
|
38
|
-
fullServices.forEach(serviceId => {
|
|
39
|
-
const serviceKey = getSessionStorageKeyForServiceId(serviceId);
|
|
40
|
-
if (this.sessionStorageService.getItem(serviceKey)) {
|
|
41
|
-
storedServices.push(serviceId);
|
|
42
|
-
storedCaseworkersByService.push({ service: serviceId, caseworkers: JSON.parse(this.sessionStorageService.getItem(serviceKey)) });
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
newServices.push(serviceId);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
// if all services are stored then return the stored caseworkers by service
|
|
49
|
-
if (storedServices.length === fullServices.length) {
|
|
50
|
-
const storedCaseworkers = getAllCaseworkersFromServices(storedCaseworkersByService);
|
|
51
|
-
return of(this.searchInCaseworkers(storedCaseworkers, searchOptions));
|
|
52
|
-
}
|
|
53
|
-
// all serviceIds passed in as node layer getting used anyway and caseworkers also stored there
|
|
54
|
-
return this.http.post('/workallocation/retrieveCaseWorkersForServices', { fullServices }).pipe(tap(caseworkersByService => {
|
|
55
|
-
caseworkersByService.forEach(caseworkerListByService => {
|
|
56
|
-
// for any new service, ensure that they are then stored in the session
|
|
57
|
-
if (newServices.includes(caseworkerListByService.service)) {
|
|
58
|
-
setCaseworkers(caseworkerListByService.service, caseworkerListByService.caseworkers, this.sessionStorageService);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}), map(caseworkersByService => {
|
|
62
|
-
const givenCaseworkers = getAllCaseworkersFromServices(caseworkersByService);
|
|
63
|
-
return this.searchInCaseworkers(givenCaseworkers, searchOptions);
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
mapCaseworkers(caseworkers, roleCategory) {
|
|
67
|
-
const people = [];
|
|
68
|
-
caseworkers.forEach((caseworker) => {
|
|
69
|
-
const thisPerson = {
|
|
70
|
-
email: caseworker.email,
|
|
71
|
-
name: `${caseworker.firstName} ${caseworker.lastName}`,
|
|
72
|
-
id: caseworker.idamId,
|
|
73
|
-
domain: caseworker.roleCategory === RoleCategory.CASEWORKER ? PersonRole.CASEWORKER : PersonRole.ADMIN,
|
|
74
|
-
// knownAs can be added if required
|
|
75
|
-
};
|
|
76
|
-
if (caseworker.roleCategory === roleCategory || roleCategory === RoleCategory.ALL) {
|
|
77
|
-
people.push(thisPerson);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
return people;
|
|
81
|
-
}
|
|
82
|
-
searchInCaseworkers(caseworkers, searchOptions) {
|
|
83
|
-
let roleCategory = RoleCategory.ALL;
|
|
84
|
-
if (!(searchOptions.userRole === PersonRole.ALL)) {
|
|
85
|
-
if (searchOptions.userRole === PersonRole.CASEWORKER) {
|
|
86
|
-
roleCategory = RoleCategory.CASEWORKER;
|
|
87
|
-
}
|
|
88
|
-
else if (searchOptions.userRole === PersonRole.ADMIN) {
|
|
89
|
-
roleCategory = RoleCategory.ADMIN;
|
|
90
|
-
}
|
|
91
|
-
else if (searchOptions.userRole === PersonRole.CTSC) {
|
|
92
|
-
roleCategory = RoleCategory.CTSC;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
const searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';
|
|
96
|
-
const people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];
|
|
97
|
-
const finalPeopleList = people.filter(person => person && person.name && person.name.toLowerCase().includes(searchTerm));
|
|
98
|
-
return searchOptions.userIncluded ? finalPeopleList.filter(person => person && person.id !== this.assignedUser)
|
|
99
|
-
: finalPeopleList.filter(person => person && person.id !== this.userId && person.id !== this.assignedUser);
|
|
100
|
-
}
|
|
101
|
-
searchJudicial(value, serviceId) {
|
|
102
|
-
return this.http.post('api/prd/judicial/getJudicialUsersSearch', { searchString: value, serviceCode: serviceId });
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
FindAPersonService.caseworkersKey = 'caseworkers';
|
|
106
|
-
FindAPersonService.ɵfac = function FindAPersonService_Factory(t) { return new (t || FindAPersonService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.SessionStorageService)); };
|
|
107
|
-
FindAPersonService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FindAPersonService, factory: FindAPersonService.ɵfac, providedIn: 'root' });
|
|
108
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FindAPersonService, [{
|
|
109
|
-
type: Injectable,
|
|
110
|
-
args: [{
|
|
111
|
-
providedIn: 'root'
|
|
112
|
-
}]
|
|
113
|
-
}], function () { return [{ type: i1.HttpClient }, { type: i2.SessionStorageService }]; }, null); })();
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEVBQ2hDLGNBQWMsRUFDZixNQUFNLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8sRUFLTCxVQUFVLEVBQ1YsWUFBWSxFQUViLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBSzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFBNkIsSUFBZ0IsRUFBbUIscUJBQTRDO1FBQS9FLFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUM1RyxDQUFDO0lBRU0sSUFBSSxDQUFDLGFBQTRCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsSUFBSSxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVyw0QkFBNEIsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDO2FBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRywrQ0FBK0M7SUFDakQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxhQUE0QjtRQUNqRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksV0FBVyxFQUFFO1lBQ2YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuRixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQzVDLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMxQixNQUFNLFdBQVcsR0FBYSxFQUFFLENBQUM7UUFDakMsTUFBTSwwQkFBMEIsR0FBMkIsRUFBRSxDQUFDO1FBQzlELFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDL0IsTUFBTSxVQUFVLEdBQUcsZ0NBQWdDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNsRCxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQiwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDbEk7aUJBQU07Z0JBQ0wsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsMkVBQTJFO1FBQzNFLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ2pELE1BQU0saUJBQWlCLEdBQUcsNkJBQTZCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUNwRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUNELCtGQUErRjtRQUMvRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF5QixnREFBZ0QsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNwSCxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRTtZQUN6QixvQkFBb0IsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsRUFBRTtnQkFDckQsdUVBQXVFO2dCQUN2RSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3pELGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2lCQUNsSDtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7WUFDekIsTUFBTSxnQkFBZ0IsR0FBRyw2QkFBNkIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU0sY0FBYyxDQUFDLFdBQXlCLEVBQUUsWUFBb0I7UUFDbkUsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFVBQVUsR0FBVztnQkFDekIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RELEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTTtnQkFDckIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUs7Z0JBQ3RHLG1DQUFtQzthQUNwQyxDQUFDO1lBQ0YsSUFBSSxVQUFVLENBQUMsWUFBWSxLQUFLLFlBQVksSUFBSSxZQUFZLEtBQUssWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDakYsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFdBQXlCLEVBQUUsYUFBNEI7UUFDaEYsSUFBSSxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQztRQUNwQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLFVBQVUsRUFBRTtnQkFDcEQsWUFBWSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7YUFDeEM7aUJBQU0sSUFBSSxhQUFhLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3RELFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO2FBQ25DO2lCQUFNLElBQUksYUFBYSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsSUFBSSxFQUFFO2dCQUNyRCxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQzthQUNsQztTQUNGO1FBQ0QsTUFBTSxVQUFVLEdBQUcsYUFBYSxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDekgsT0FBTyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM3RyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0IseUNBQXlDLEVBQ2xGLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDOztBQW5HYSxpQ0FBYyxHQUFXLGFBQWEsQ0FBQztvRkFGMUMsa0JBQWtCO3dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZqQixNQUFNO3VGQUVQLGtCQUFrQjtjQUg5QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMsXG4gIGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkLFxuICBzZXRDYXNld29ya2Vyc1xufSBmcm9tICcuLi8uLi9nb3YtdWkvdXRpbC9zZXNzaW9uLXN0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlLXV0aWxzJztcbmltcG9ydCB7XG4gIENhc2V3b3JrZXIsXG4gIENhc2V3b3JrZXJzQnlTZXJ2aWNlLFxuICBKdWRpY2lhbFVzZXJNb2RlbCxcbiAgUGVyc29uLFxuICBQZXJzb25Sb2xlLFxuICBSb2xlQ2F0ZWdvcnksXG4gIFNlYXJjaE9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmluZEFQZXJzb25TZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIGNhc2V3b3JrZXJzS2V5OiBzdHJpbmcgPSAnY2FzZXdvcmtlcnMnO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0ciAmJiAhc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFBlcnNvbltdPignL3dvcmthbGxvY2F0aW9uL2ZpbmRQZXJzb24nLCB7IHNlYXJjaE9wdGlvbnMgfSlcbiAgICAgIC5waXBlKG1hcChqdWRpY2lhcnkgPT4ganVkaWNpYXJ5LmZpbHRlcihqdWRnZSA9PiAhKFt0aGlzLmFzc2lnbmVkVXNlcl0uaW5jbHVkZXMoanVkZ2UuaWQpKSkpKTtcbiAgICAvLyBSZW1vdmVkIHRoZSBjdXJyZW50IHVzZXIgaWQgdG8gZml4IEVVSS04NDY1LlxuICB9XG5cbiAgcHVibGljIGZpbmRDYXNld29ya2VycyhzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zKTogT2JzZXJ2YWJsZTxQZXJzb25bXT4ge1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgY29uc3QgZnVsbFNlcnZpY2VzID0gc2VhcmNoT3B0aW9ucy5zZXJ2aWNlcztcbiAgICBjb25zdCBzdG9yZWRTZXJ2aWNlcyA9IFtdO1xuICAgIGNvbnN0IG5ld1NlcnZpY2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlOiBDYXNld29ya2Vyc0J5U2VydmljZVtdID0gW107XG4gICAgZnVsbFNlcnZpY2VzLmZvckVhY2goc2VydmljZUlkID0+IHtcbiAgICAgIGNvbnN0IHNlcnZpY2VLZXkgPSBnZXRTZXNzaW9uU3RvcmFnZUtleUZvclNlcnZpY2VJZChzZXJ2aWNlSWQpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oc2VydmljZUtleSkpIHtcbiAgICAgICAgc3RvcmVkU2VydmljZXMucHVzaChzZXJ2aWNlSWQpO1xuICAgICAgICBzdG9yZWRDYXNld29ya2Vyc0J5U2VydmljZS5wdXNoKHsgc2VydmljZTogc2VydmljZUlkLCBjYXNld29ya2VyczogSlNPTi5wYXJzZSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKHNlcnZpY2VLZXkpKSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NlcnZpY2VzLnB1c2goc2VydmljZUlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBpZiBhbGwgc2VydmljZXMgYXJlIHN0b3JlZCB0aGVuIHJldHVybiB0aGUgc3RvcmVkIGNhc2V3b3JrZXJzIGJ5IHNlcnZpY2VcbiAgICBpZiAoc3RvcmVkU2VydmljZXMubGVuZ3RoID09PSBmdWxsU2VydmljZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdG9yZWRDYXNld29ya2VycyA9IGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzKHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlKTtcbiAgICAgIHJldHVybiBvZih0aGlzLnNlYXJjaEluQ2FzZXdvcmtlcnMoc3RvcmVkQ2FzZXdvcmtlcnMsIHNlYXJjaE9wdGlvbnMpKTtcbiAgICB9XG4gICAgLy8gYWxsIHNlcnZpY2VJZHMgcGFzc2VkIGluIGFzIG5vZGUgbGF5ZXIgZ2V0dGluZyB1c2VkIGFueXdheSBhbmQgY2FzZXdvcmtlcnMgYWxzbyBzdG9yZWQgdGhlcmVcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2FzZXdvcmtlcnNCeVNlcnZpY2VbXT4oJy93b3JrYWxsb2NhdGlvbi9yZXRyaWV2ZUNhc2VXb3JrZXJzRm9yU2VydmljZXMnLCB7IGZ1bGxTZXJ2aWNlcyB9KS5waXBlKFxuICAgICAgdGFwKGNhc2V3b3JrZXJzQnlTZXJ2aWNlID0+IHtcbiAgICAgICAgY2FzZXdvcmtlcnNCeVNlcnZpY2UuZm9yRWFjaChjYXNld29ya2VyTGlzdEJ5U2VydmljZSA9PiB7XG4gICAgICAgICAgLy8gZm9yIGFueSBuZXcgc2VydmljZSwgZW5zdXJlIHRoYXQgdGhleSBhcmUgdGhlbiBzdG9yZWQgaW4gdGhlIHNlc3Npb25cbiAgICAgICAgICBpZiAobmV3U2VydmljZXMuaW5jbHVkZXMoY2FzZXdvcmtlckxpc3RCeVNlcnZpY2Uuc2VydmljZSkpIHtcbiAgICAgICAgICAgIHNldENhc2V3b3JrZXJzKGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlLnNlcnZpY2UsIGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlLmNhc2V3b3JrZXJzLCB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKGNhc2V3b3JrZXJzQnlTZXJ2aWNlID0+IHtcbiAgICAgICAgY29uc3QgZ2l2ZW5DYXNld29ya2VycyA9IGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzKGNhc2V3b3JrZXJzQnlTZXJ2aWNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoSW5DYXNld29ya2VycyhnaXZlbkNhc2V3b3JrZXJzLCBzZWFyY2hPcHRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBDYXNld29ya2VycyhjYXNld29ya2VyczogQ2FzZXdvcmtlcltdLCByb2xlQ2F0ZWdvcnk6IHN0cmluZyk6IFBlcnNvbltdIHtcbiAgICBjb25zdCBwZW9wbGU6IFBlcnNvbltdID0gW107XG4gICAgY2FzZXdvcmtlcnMuZm9yRWFjaCgoY2FzZXdvcmtlcikgPT4ge1xuICAgICAgY29uc3QgdGhpc1BlcnNvbjogUGVyc29uID0ge1xuICAgICAgICBlbWFpbDogY2FzZXdvcmtlci5lbWFpbCxcbiAgICAgICAgbmFtZTogYCR7Y2FzZXdvcmtlci5maXJzdE5hbWV9ICR7Y2FzZXdvcmtlci5sYXN0TmFtZX1gLFxuICAgICAgICBpZDogY2FzZXdvcmtlci5pZGFtSWQsXG4gICAgICAgIGRvbWFpbjogY2FzZXdvcmtlci5yb2xlQ2F0ZWdvcnkgPT09IFJvbGVDYXRlZ29yeS5DQVNFV09SS0VSID8gUGVyc29uUm9sZS5DQVNFV09SS0VSIDogUGVyc29uUm9sZS5BRE1JTixcbiAgICAgICAgLy8ga25vd25BcyBjYW4gYmUgYWRkZWQgaWYgcmVxdWlyZWRcbiAgICAgIH07XG4gICAgICBpZiAoY2FzZXdvcmtlci5yb2xlQ2F0ZWdvcnkgPT09IHJvbGVDYXRlZ29yeSB8fCByb2xlQ2F0ZWdvcnkgPT09IFJvbGVDYXRlZ29yeS5BTEwpIHtcbiAgICAgICAgcGVvcGxlLnB1c2godGhpc1BlcnNvbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBlb3BsZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hJbkNhc2V3b3JrZXJzKGNhc2V3b3JrZXJzOiBDYXNld29ya2VyW10sIHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBQZXJzb25bXSB7XG4gICAgbGV0IHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5BTEw7XG4gICAgaWYgKCEoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5BTEwpKSB7XG4gICAgICBpZiAoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5DQVNFV09SS0VSKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5DQVNFV09SS0VSO1xuICAgICAgfSBlbHNlIGlmIChzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkFETUlOKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5BRE1JTjtcbiAgICAgIH0gZWxzZSBpZiAoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5DVFNDKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5DVFNDO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWFyY2hUZXJtID0gc2VhcmNoT3B0aW9ucyAmJiBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0gPyBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgIGNvbnN0IHBlb3BsZSA9IGNhc2V3b3JrZXJzID8gdGhpcy5tYXBDYXNld29ya2VycyhjYXNld29ya2Vycywgcm9sZUNhdGVnb3J5KSA6IFtdO1xuICAgIGNvbnN0IGZpbmFsUGVvcGxlTGlzdCA9IHBlb3BsZS5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24ubmFtZSAmJiBwZXJzb24ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pKTtcbiAgICByZXR1cm4gc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQgPyBmaW5hbFBlb3BsZUxpc3QuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLmlkICE9PSB0aGlzLmFzc2lnbmVkVXNlcilcbiAgICAgIDogZmluYWxQZW9wbGVMaXN0LmZpbHRlcihwZXJzb24gPT4gcGVyc29uICYmIHBlcnNvbi5pZCAhPT0gdGhpcy51c2VySWQgJiYgcGVyc29uLmlkICE9PSB0aGlzLmFzc2lnbmVkVXNlcik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoSnVkaWNpYWwodmFsdWU6IHN0cmluZywgc2VydmljZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEp1ZGljaWFsVXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SnVkaWNpYWxVc2VyTW9kZWxbXT4oJ2FwaS9wcmQvanVkaWNpYWwvZ2V0SnVkaWNpYWxVc2Vyc1NlYXJjaCcsXG4gICAgICB7IHNlYXJjaFN0cmluZzogdmFsdWUsIHNlcnZpY2VDb2RlOiBzZXJ2aWNlSWQgfSk7XG4gIH1cbn1cblxuIl19
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { Title } from '@angular/platform-browser';
|
|
4
|
-
import { NavigationEnd, Router } from '@angular/router';
|
|
5
|
-
import { windowToken } from '../../window';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
import * as i2 from "@angular/platform-browser";
|
|
9
|
-
export class GoogleAnalyticsService {
|
|
10
|
-
constructor(router, title, window, document) {
|
|
11
|
-
this.router = router;
|
|
12
|
-
this.title = title;
|
|
13
|
-
this.window = window;
|
|
14
|
-
this.document = document;
|
|
15
|
-
}
|
|
16
|
-
init(googleAnalyticsKey) {
|
|
17
|
-
this.googleAnalyticsKey = googleAnalyticsKey;
|
|
18
|
-
try {
|
|
19
|
-
const script1 = this.document.createElement('script');
|
|
20
|
-
script1.async = true;
|
|
21
|
-
script1.src = `https://www.googletagmanager.com/gtag/js?id=${this.googleAnalyticsKey}`;
|
|
22
|
-
this.document.head.appendChild(script1);
|
|
23
|
-
const script2 = this.document.createElement('script');
|
|
24
|
-
script2.innerHTML = `
|
|
25
|
-
window.dataLayer = window.dataLayer || [];
|
|
26
|
-
function gtag(){dataLayer.push(arguments);}
|
|
27
|
-
gtag('js', new Date());
|
|
28
|
-
gtag('config', '${this.googleAnalyticsKey}', {'send_page_view': false});
|
|
29
|
-
`;
|
|
30
|
-
this.document.head.appendChild(script2);
|
|
31
|
-
}
|
|
32
|
-
catch (ex) {
|
|
33
|
-
console.error('Error appending google analytics');
|
|
34
|
-
console.error(ex);
|
|
35
|
-
}
|
|
36
|
-
this.listenForRouteChanges();
|
|
37
|
-
}
|
|
38
|
-
listenForRouteChanges() {
|
|
39
|
-
if (this.googleAnalyticsKey) {
|
|
40
|
-
this.router.events.subscribe(event => {
|
|
41
|
-
if (event instanceof NavigationEnd) {
|
|
42
|
-
this.window.gtag('config', this.googleAnalyticsKey, {
|
|
43
|
-
page_path: event.urlAfterRedirects,
|
|
44
|
-
page_title: this.title.getTitle(),
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
event(eventName, params) {
|
|
51
|
-
this.window.gtag('event', eventName, params);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
GoogleAnalyticsService.ɵfac = function GoogleAnalyticsService_Factory(t) { return new (t || GoogleAnalyticsService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Title), i0.ɵɵinject(windowToken), i0.ɵɵinject(DOCUMENT)); };
|
|
55
|
-
GoogleAnalyticsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GoogleAnalyticsService, factory: GoogleAnalyticsService.ɵfac, providedIn: 'root' });
|
|
56
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GoogleAnalyticsService, [{
|
|
57
|
-
type: Injectable,
|
|
58
|
-
args: [{
|
|
59
|
-
providedIn: 'root'
|
|
60
|
-
}]
|
|
61
|
-
}], function () { return [{ type: i1.Router }, { type: i2.Title }, { type: undefined, decorators: [{
|
|
62
|
-
type: Inject,
|
|
63
|
-
args: [windowToken]
|
|
64
|
-
}] }, { type: undefined, decorators: [{
|
|
65
|
-
type: Inject,
|
|
66
|
-
args: [DOCUMENT]
|
|
67
|
-
}] }]; }, null); })();
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvZ29vZ2xlLWFuYWx5dGljcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFNM0MsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUNtQixNQUFjLEVBQ2QsS0FBWSxFQUNSLE1BQVcsRUFDZCxRQUFhO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQU87UUFJN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFnQixDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBb0IsQ0FBQztJQUV2QyxDQUFDO0lBRU0sSUFBSSxDQUFDLGtCQUEwQjtRQUNwQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsK0NBQStDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0RCxPQUFPLENBQUMsU0FBUyxHQUFHOzs7OzBCQUlBLElBQUksQ0FBQyxrQkFBa0I7T0FDMUMsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QztRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO29CQUNqQyxJQUFJLENBQUMsTUFBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUMzRCxTQUFTLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjt3QkFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO3FCQUNsQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFpQixFQUFFLE1BQVU7UUFDdkMsSUFBSSxDQUFDLE1BQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs0RkF2RFUsc0JBQXNCLDZEQVN2QixXQUFXLGVBQ1gsUUFBUTs0RUFWUCxzQkFBc0IsV0FBdEIsc0JBQXNCLG1CQUhyQixNQUFNO3VGQUdQLHNCQUFzQjtjQUpsQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVdJLE1BQU07dUJBQUMsV0FBVzs7c0JBQ2xCLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlQW5hbHl0aWNzU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XG5cbiAgcHVibGljIGdvb2dsZUFuYWx5dGljc0tleTogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGU6IFRpdGxlLFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pIHdpbmRvdzogYW55LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICkge1xuICAgIHRoaXMud2luZG93ID0gd2luZG93IGFzIFdpbmRvdztcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG5cbiAgfVxuXG4gIHB1YmxpYyBpbml0KGdvb2dsZUFuYWx5dGljc0tleTogc3RyaW5nKSB7XG4gICAgdGhpcy5nb29nbGVBbmFseXRpY3NLZXkgPSBnb29nbGVBbmFseXRpY3NLZXk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNjcmlwdDEgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0MS5hc3luYyA9IHRydWU7XG4gICAgICBzY3JpcHQxLnNyYyA9IGBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPSR7dGhpcy5nb29nbGVBbmFseXRpY3NLZXl9YDtcbiAgICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQxKTtcblxuICAgICAgY29uc3Qgc2NyaXB0MiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQyLmlubmVySFRNTCA9IGBcbiAgICAgICAgd2luZG93LmRhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107XG4gICAgICAgIGZ1bmN0aW9uIGd0YWcoKXtkYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpO31cbiAgICAgICAgZ3RhZygnanMnLCBuZXcgRGF0ZSgpKTtcbiAgICAgICAgZ3RhZygnY29uZmlnJywgJyR7dGhpcy5nb29nbGVBbmFseXRpY3NLZXl9JywgeydzZW5kX3BhZ2Vfdmlldyc6IGZhbHNlfSk7XG4gICAgICBgO1xuICAgICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdDIpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhcHBlbmRpbmcgZ29vZ2xlIGFuYWx5dGljcycpO1xuICAgICAgY29uc29sZS5lcnJvcihleCk7XG4gICAgfVxuICAgIHRoaXMubGlzdGVuRm9yUm91dGVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvclJvdXRlQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5nb29nbGVBbmFseXRpY3NLZXkpIHtcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZ3RhZygnY29uZmlnJywgdGhpcy5nb29nbGVBbmFseXRpY3NLZXksIHtcbiAgICAgICAgICAgIHBhZ2VfcGF0aDogZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMsXG4gICAgICAgICAgICBwYWdlX3RpdGxlOiB0aGlzLnRpdGxlLmdldFRpdGxlKCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBldmVudChldmVudE5hbWU6IHN0cmluZywgcGFyYW1zOiB7fSkge1xuICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmd0YWcoJ2V2ZW50JywgZXZlbnROYW1lLCBwYXJhbXMpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { Title } from '@angular/platform-browser';
|
|
4
|
-
import { NavigationEnd, Router } from '@angular/router';
|
|
5
|
-
import { windowToken } from '../../window';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
import * as i2 from "@angular/platform-browser";
|
|
9
|
-
export class GoogleTagManagerService {
|
|
10
|
-
constructor(router, title, window, document) {
|
|
11
|
-
this.router = router;
|
|
12
|
-
this.title = title;
|
|
13
|
-
this.window = window;
|
|
14
|
-
this.document = document;
|
|
15
|
-
}
|
|
16
|
-
init(googleTagManagerKey) {
|
|
17
|
-
this.googleTagManagerKey = googleTagManagerKey;
|
|
18
|
-
try {
|
|
19
|
-
this.window.dataLayer = this.window.dataLayer || [];
|
|
20
|
-
this.window.dataLayer.push({
|
|
21
|
-
'gtm.start': new Date().getTime(),
|
|
22
|
-
event: 'gtm.js'
|
|
23
|
-
});
|
|
24
|
-
const script = this.document.createElement('script');
|
|
25
|
-
script.async = true;
|
|
26
|
-
script.src = `https://www.googletagmanager.com/gtm.js?id=${this.googleTagManagerKey}`;
|
|
27
|
-
this.document.head.appendChild(script);
|
|
28
|
-
}
|
|
29
|
-
catch (ex) {
|
|
30
|
-
console.error('Error appending google tag manager');
|
|
31
|
-
console.error(ex);
|
|
32
|
-
}
|
|
33
|
-
this.listenForRouteChanges();
|
|
34
|
-
}
|
|
35
|
-
listenForRouteChanges() {
|
|
36
|
-
if (this.googleTagManagerKey) {
|
|
37
|
-
this.router.events.subscribe(event => {
|
|
38
|
-
if (event instanceof NavigationEnd) {
|
|
39
|
-
this.window.dataLayer.push({
|
|
40
|
-
event: 'pageview',
|
|
41
|
-
page: {
|
|
42
|
-
path: event.urlAfterRedirects,
|
|
43
|
-
title: this.title.getTitle()
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
event(eventName, params) {
|
|
51
|
-
this.window.dataLayer.push({
|
|
52
|
-
event: eventName,
|
|
53
|
-
params
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
GoogleTagManagerService.ɵfac = function GoogleTagManagerService_Factory(t) { return new (t || GoogleTagManagerService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Title), i0.ɵɵinject(windowToken), i0.ɵɵinject(DOCUMENT)); };
|
|
58
|
-
GoogleTagManagerService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GoogleTagManagerService, factory: GoogleTagManagerService.ɵfac, providedIn: 'root' });
|
|
59
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GoogleTagManagerService, [{
|
|
60
|
-
type: Injectable,
|
|
61
|
-
args: [{
|
|
62
|
-
providedIn: 'root'
|
|
63
|
-
}]
|
|
64
|
-
}], function () { return [{ type: i1.Router }, { type: i2.Title }, { type: undefined, decorators: [{
|
|
65
|
-
type: Inject,
|
|
66
|
-
args: [windowToken]
|
|
67
|
-
}] }, { type: undefined, decorators: [{
|
|
68
|
-
type: Inject,
|
|
69
|
-
args: [DOCUMENT]
|
|
70
|
-
}] }]; }, null); })();
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9nb29nbGUtdGFnLW1hbmFnZXIvZ29vZ2xlLXRhZy1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFLM0MsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUNtQixNQUFjLEVBQ2QsS0FBWSxFQUNSLE1BQVcsRUFDZCxRQUFhO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQU87UUFJN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFnQixDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBb0IsQ0FBQztJQUN2QyxDQUFDO0lBRU0sSUFBSSxDQUFDLG1CQUEyQjtRQUNyQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSTtZQUVELElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxHQUFJLElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNyRSxJQUFJLENBQUMsTUFBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xDLFdBQVcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsS0FBSyxFQUFFLFFBQVE7YUFDaEIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTSxDQUFDLEdBQUcsR0FBRyw4Q0FBOEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBRXhDO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxNQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDbEMsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLElBQUksRUFBRTs0QkFDSixJQUFJLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjs0QkFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO3lCQUM3QjtxQkFDRixDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFpQixFQUFFLE1BQVU7UUFDdkMsSUFBSSxDQUFDLE1BQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2xDLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDOzs4RkExRFUsdUJBQXVCLDZEQVF4QixXQUFXLGVBQ1gsUUFBUTs2RUFUUCx1QkFBdUIsV0FBdkIsdUJBQXVCLG1CQUZ0QixNQUFNO3VGQUVQLHVCQUF1QjtjQUhuQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVNJLE1BQU07dUJBQUMsV0FBVzs7c0JBQ2xCLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVRhZ01hbmFnZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XG5cbiAgcHVibGljIGdvb2dsZVRhZ01hbmFnZXJLZXk6IHN0cmluZztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlOiBUaXRsZSxcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSB3aW5kb3c6IGFueSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55XG4gICkge1xuICAgIHRoaXMud2luZG93ID0gd2luZG93IGFzIFdpbmRvdztcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgaW5pdChnb29nbGVUYWdNYW5hZ2VyS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmdvb2dsZVRhZ01hbmFnZXJLZXkgPSBnb29nbGVUYWdNYW5hZ2VyS2V5O1xuICAgIHRyeSB7XG5cbiAgICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllciA9ICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllciB8fCBbXTtcbiAgICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllci5wdXNoKHtcbiAgICAgICAgJ2d0bS5zdGFydCc6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxuICAgICAgICBldmVudDogJ2d0bS5qcydcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgIHNjcmlwdC5zcmMgPSBgaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPSR7dGhpcy5nb29nbGVUYWdNYW5hZ2VyS2V5fWA7XG4gICAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblxuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhcHBlbmRpbmcgZ29vZ2xlIHRhZyBtYW5hZ2VyJyk7XG4gICAgICBjb25zb2xlLmVycm9yKGV4KTtcbiAgICB9XG4gICAgdGhpcy5saXN0ZW5Gb3JSb3V0ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9yUm91dGVDaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLmdvb2dsZVRhZ01hbmFnZXJLZXkpIHtcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgKHRoaXMud2luZG93IGFzIGFueSkuZGF0YUxheWVyLnB1c2goe1xuICAgICAgICAgICAgZXZlbnQ6ICdwYWdldmlldycsXG4gICAgICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgICAgIHBhdGg6IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50aXRsZS5nZXRUaXRsZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBldmVudChldmVudE5hbWU6IHN0cmluZywgcGFyYW1zOiB7fSkge1xuICAgICh0aGlzLndpbmRvdyBhcyBhbnkpLmRhdGFMYXllci5wdXNoKHtcbiAgICAgIGV2ZW50OiBldmVudE5hbWUsXG4gICAgICBwYXJhbXNcbiAgICB9KTtcbiAgfVxufVxuIl19
|