@hmcts/rpx-xui-common-lib 1.8.0-angular-upgrade-9-rc.6 → 2.0.0-angular-upgrade-8
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 +7435 -3173
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +2 -2
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
- package/esm2015/hmcts-rpx-xui-common-lib.js +28 -22
- package/esm2015/lib/components/accessibility/accessibility.component.js +17 -13
- package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +127 -45
- package/esm2015/lib/components/contact-details/contact-details.component.js +23 -16
- package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +78 -31
- package/esm2015/lib/components/due-date/due-date.component.js +110 -24
- package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +34 -29
- package/esm2015/lib/components/find-location/find-location.component.js +140 -69
- package/esm2015/lib/components/find-person/find-person.component.js +180 -97
- package/esm2015/lib/components/generic-filter/generic-filter-utils.js +55 -11
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +293 -54
- package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +29 -20
- package/esm2015/lib/components/index.js +7 -2
- package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +33 -23
- package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +35 -34
- package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +22 -16
- package/esm2015/lib/components/pagination/pagination.component.js +38 -28
- package/esm2015/lib/components/public_api.js +33 -33
- package/esm2015/lib/components/search-judicials/search-judicials.component.js +156 -70
- package/esm2015/lib/components/search-location/search-location.component.js +183 -80
- package/esm2015/lib/components/search-venue/search-venue.component.js +154 -62
- package/esm2015/lib/components/selected-case/selected-case.component.js +191 -54
- package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +53 -22
- package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +68 -38
- package/esm2015/lib/components/service-message/service-message.component.js +32 -23
- package/esm2015/lib/components/service-messages/service-messages.component.js +77 -29
- package/esm2015/lib/components/share-case/share-case.component.js +104 -45
- package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +50 -27
- package/esm2015/lib/components/tab/tab.component.js +37 -19
- package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +29 -20
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +17 -13
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +17 -13
- package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +23 -16
- package/esm2015/lib/components/user-details/user-details.component.js +57 -47
- package/esm2015/lib/components/user-list/user-list.component.js +54 -19
- package/esm2015/lib/components/user-select/user-select.component.js +64 -23
- package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +67 -21
- package/esm2015/lib/directives/index.js +7 -2
- package/esm2015/lib/directives/let/let.directive.js +49 -16
- package/esm2015/lib/directives/public-api.js +8 -3
- package/esm2015/lib/exui-common-lib.module.js +40 -31
- package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +34 -23
- package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +23 -18
- package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +68 -30
- package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +25 -19
- package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +28 -19
- package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +36 -23
- package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +28 -23
- package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +35 -24
- package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +22 -15
- package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +35 -23
- package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +23 -18
- package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +34 -27
- package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +47 -32
- package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +29 -22
- package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +26 -20
- package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +56 -26
- package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +27 -17
- package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +52 -40
- package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +49 -0
- package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +36 -29
- package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +40 -18
- package/esm2015/lib/gov-ui/components/index.js +7 -2
- package/esm2015/lib/gov-ui/components/public_api.js +7 -21
- package/esm2015/lib/gov-ui/directives/remove-host.directive.js +30 -12
- package/esm2015/lib/gov-ui/gov-ui.service.js +16 -12
- package/esm2015/lib/gov-ui/index.js +7 -2
- package/esm2015/lib/gov-ui/models/banner-data-model.js +16 -1
- package/esm2015/lib/gov-ui/models/checkboxes-model.js +22 -1
- package/esm2015/lib/gov-ui/models/error-messages-model.js +16 -1
- package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +36 -1
- package/esm2015/lib/gov-ui/models/index.js +7 -1
- package/esm2015/lib/gov-ui/models/isession-storage.interface.js +24 -1
- package/esm2015/lib/gov-ui/models/public_api.js +10 -1
- package/esm2015/lib/gov-ui/public_api.js +9 -5
- package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +14 -4
- package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +48 -12
- package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +24 -5
- package/esm2015/lib/gov-ui/validators/date.validator.js +20 -3
- package/esm2015/lib/gov-ui/validators/index.js +7 -2
- package/esm2015/lib/gov-ui/validators/public_api.js +9 -4
- package/esm2015/lib/gov-ui/validators/radio-group.validator.js +15 -3
- package/esm2015/lib/models/case-share.model.js +26 -1
- package/esm2015/lib/models/contact-details.model.js +31 -7
- package/esm2015/lib/models/due-date.model.js +14 -7
- package/esm2015/lib/models/feature-user.js +16 -1
- package/esm2015/lib/models/filter.model.js +116 -1
- package/esm2015/lib/models/idle-config.model.js +20 -1
- package/esm2015/lib/models/index.js +19 -6
- package/esm2015/lib/models/location.model.js +108 -1
- package/esm2015/lib/models/pagination.model.js +18 -0
- package/esm2015/lib/models/person.model.js +92 -17
- package/esm2015/lib/models/public_api.js +11 -4
- package/esm2015/lib/models/search-options.model.js +22 -1
- package/esm2015/lib/models/tcDocument.model.js +18 -1
- package/esm2015/lib/models/timeout-notification.model.js +18 -1
- package/esm2015/lib/models/user-details.model.js +22 -1
- package/esm2015/lib/models/user.model.js +25 -1
- package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +92 -19
- package/esm2015/lib/services/cookie/cookie.service.js +78 -19
- package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +51 -16
- package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +35 -11
- package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +101 -21
- package/esm2015/lib/services/filter/filter.service.js +63 -11
- package/esm2015/lib/services/find-person/find-person.service.js +130 -25
- package/esm2015/lib/services/google-analytics/google-analytics.service.js +70 -21
- package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +71 -23
- package/esm2015/lib/services/index.js +7 -2
- package/esm2015/lib/services/loading/loading.service.js +48 -11
- package/esm2015/lib/services/locations/location.service.js +35 -22
- package/esm2015/lib/services/manage-session/manage-session.services.js +70 -21
- package/esm2015/lib/services/public-api.js +18 -13
- package/esm2015/lib/services/role-guard/role.guard.js +61 -24
- package/esm2015/lib/services/role-guard/role.service.js +28 -11
- package/esm2015/lib/services/session-storage/session-storage.service.js +24 -12
- package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +82 -20
- package/esm2015/lib/window.js +10 -1
- package/esm2015/public-api.js +13 -8
- package/esm5/hmcts-rpx-xui-common-lib.js +28 -22
- package/esm5/lib/components/accessibility/accessibility.component.js +15 -10
- package/esm5/lib/components/checkbox-list/checkbox-list.component.js +232 -57
- package/esm5/lib/components/contact-details/contact-details.component.js +22 -14
- package/esm5/lib/components/cookie-banner/cookie-banner.component.js +106 -36
- package/esm5/lib/components/due-date/due-date.component.js +142 -29
- package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +33 -27
- package/esm5/lib/components/find-location/find-location.component.js +180 -80
- package/esm5/lib/components/find-person/find-person.component.js +203 -102
- package/esm5/lib/components/generic-filter/generic-filter-utils.js +57 -13
- package/esm5/lib/components/generic-filter/generic-filter.component.js +421 -85
- package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +32 -19
- package/esm5/lib/components/index.js +7 -2
- package/esm5/lib/components/invite-user-form/invite-user-form.component.js +37 -23
- package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +34 -32
- package/esm5/lib/components/loading-spinner/loading-spinner.component.js +21 -14
- package/esm5/lib/components/pagination/pagination.component.js +45 -28
- package/esm5/lib/components/public_api.js +33 -33
- package/esm5/lib/components/search-judicials/search-judicials.component.js +198 -78
- package/esm5/lib/components/search-location/search-location.component.js +217 -89
- package/esm5/lib/components/search-venue/search-venue.component.js +199 -71
- package/esm5/lib/components/selected-case/selected-case.component.js +279 -72
- package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +61 -22
- package/esm5/lib/components/selected-case-list/selected-case-list.component.js +82 -39
- package/esm5/lib/components/service-message/service-message.component.js +36 -22
- package/esm5/lib/components/service-messages/service-messages.component.js +91 -30
- package/esm5/lib/components/share-case/share-case.component.js +138 -52
- package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +49 -25
- package/esm5/lib/components/tab/tab.component.js +41 -18
- package/esm5/lib/components/tc-confirm/tc-confirm.component.js +32 -19
- package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +15 -10
- package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +15 -10
- package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +22 -14
- package/esm5/lib/components/user-details/user-details.component.js +71 -48
- package/esm5/lib/components/user-list/user-list.component.js +65 -18
- package/esm5/lib/components/user-select/user-select.component.js +92 -27
- package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +70 -21
- package/esm5/lib/directives/index.js +7 -2
- package/esm5/lib/directives/let/let.directive.js +51 -15
- package/esm5/lib/directives/public-api.js +8 -3
- package/esm5/lib/exui-common-lib.module.js +34 -22
- package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +37 -22
- package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +22 -16
- package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +89 -32
- package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +24 -17
- package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +31 -18
- package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +43 -23
- package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +27 -21
- package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +45 -24
- package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +21 -13
- package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +44 -18
- package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +22 -16
- package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +37 -26
- package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +51 -31
- package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +32 -21
- package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +25 -18
- package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +71 -28
- package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +27 -16
- package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +60 -41
- package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +51 -0
- package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +36 -28
- package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +39 -16
- package/esm5/lib/gov-ui/components/index.js +7 -2
- package/esm5/lib/gov-ui/components/public_api.js +7 -21
- package/esm5/lib/gov-ui/directives/remove-host.directive.js +29 -10
- package/esm5/lib/gov-ui/gov-ui.service.js +14 -9
- package/esm5/lib/gov-ui/index.js +7 -2
- package/esm5/lib/gov-ui/models/banner-data-model.js +16 -1
- package/esm5/lib/gov-ui/models/checkboxes-model.js +22 -1
- package/esm5/lib/gov-ui/models/error-messages-model.js +16 -1
- package/esm5/lib/gov-ui/models/gov-ui-config-model.js +36 -1
- package/esm5/lib/gov-ui/models/index.js +7 -1
- package/esm5/lib/gov-ui/models/isession-storage.interface.js +24 -1
- package/esm5/lib/gov-ui/models/public_api.js +10 -1
- package/esm5/lib/gov-ui/public_api.js +9 -5
- package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +34 -3
- package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +48 -12
- package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +24 -5
- package/esm5/lib/gov-ui/validators/date.validator.js +20 -3
- package/esm5/lib/gov-ui/validators/index.js +7 -2
- package/esm5/lib/gov-ui/validators/public_api.js +9 -4
- package/esm5/lib/gov-ui/validators/radio-group.validator.js +15 -3
- package/esm5/lib/models/case-share.model.js +26 -1
- package/esm5/lib/models/contact-details.model.js +31 -7
- package/esm5/lib/models/due-date.model.js +14 -7
- package/esm5/lib/models/feature-user.js +16 -1
- package/esm5/lib/models/filter.model.js +116 -1
- package/esm5/lib/models/idle-config.model.js +20 -1
- package/esm5/lib/models/index.js +19 -6
- package/esm5/lib/models/location.model.js +108 -1
- package/esm5/lib/models/pagination.model.js +18 -0
- package/esm5/lib/models/person.model.js +92 -17
- package/esm5/lib/models/public_api.js +11 -4
- package/esm5/lib/models/search-options.model.js +22 -1
- package/esm5/lib/models/tcDocument.model.js +18 -1
- package/esm5/lib/models/timeout-notification.model.js +18 -1
- package/esm5/lib/models/user-details.model.js +22 -1
- package/esm5/lib/models/user.model.js +25 -1
- package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +132 -27
- package/esm5/lib/services/cookie/cookie.service.js +104 -21
- package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +61 -13
- package/esm5/lib/services/feature-toggle/feature-toggle.service.js +70 -12
- package/esm5/lib/services/feature-toggle/launch-darkly.service.js +142 -21
- package/esm5/lib/services/filter/filter.service.js +101 -15
- package/esm5/lib/services/find-person/find-person.service.js +152 -27
- package/esm5/lib/services/google-analytics/google-analytics.service.js +78 -21
- package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +79 -23
- package/esm5/lib/services/index.js +7 -2
- package/esm5/lib/services/loading/loading.service.js +69 -14
- package/esm5/lib/services/locations/location.service.js +50 -11
- package/esm5/lib/services/manage-session/manage-session.services.js +73 -20
- package/esm5/lib/services/public-api.js +18 -13
- package/esm5/lib/services/role-guard/role.guard.js +60 -22
- package/esm5/lib/services/role-guard/role.service.js +28 -10
- package/esm5/lib/services/session-storage/session-storage.service.js +61 -12
- package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +111 -19
- package/esm5/lib/window.js +10 -1
- package/esm5/public-api.js +13 -8
- package/fesm2015/hmcts-rpx-xui-common-lib.js +6513 -3192
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/fesm5/hmcts-rpx-xui-common-lib.js +7455 -3160
- package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/hmcts-rpx-xui-common-lib.d.ts +21 -20
- package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
- package/lib/components/checkbox-list/checkbox-list.component.d.ts +5 -6
- package/lib/components/due-date/due-date.component.d.ts +4 -4
- package/lib/components/find-location/find-location.component.d.ts +2 -4
- package/lib/components/generic-filter/generic-filter.component.d.ts +2 -4
- package/lib/components/invite-user-form/invite-user-form.component.d.ts +1 -1
- package/lib/components/public_api.d.ts +4 -9
- package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
- package/lib/components/search-location/search-location.component.d.ts +2 -4
- package/lib/components/search-venue/search-venue.component.d.ts +1 -1
- package/lib/components/user-list/user-list.component.d.ts +9 -2
- package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
- package/lib/directives/let/let.directive.d.ts +1 -1
- package/lib/exui-common-lib.module.d.ts +4 -2
- package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
- package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
- package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
- package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +10 -0
- package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
- package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +2 -0
- package/lib/gov-ui/components/public_api.d.ts +0 -19
- package/lib/gov-ui/public_api.d.ts +1 -2
- package/lib/models/index.d.ts +1 -0
- package/lib/models/pagination.model.d.ts +5 -0
- package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
- package/lib/services/loading/loading.service.d.ts +2 -2
- package/lib/services/role-guard/role.service.d.ts +1 -2
- package/lib/window.d.ts +1 -1
- package/package.json +10 -6
- package/esm2015/lib/gov-ui/directives/index.js +0 -2
- package/esm2015/lib/gov-ui/directives/public_api.js +0 -2
- package/esm5/lib/gov-ui/directives/index.js +0 -2
- package/esm5/lib/gov-ui/directives/public_api.js +0 -2
- package/lib/gov-ui/directives/index.d.ts +0 -1
- package/lib/gov-ui/directives/public_api.d.ts +0 -1
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/services/manage-session/manage-session.services.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
2
6
|
import { Injectable } from '@angular/core';
|
|
3
7
|
import { DocumentInterruptSource, Idle, } from '@ng-idle/core';
|
|
4
8
|
import { Keepalive } from '@ng-idle/keepalive';
|
|
@@ -7,50 +11,95 @@ import { delay, distinctUntilChanged, map } from 'rxjs/operators';
|
|
|
7
11
|
import * as i0 from "@angular/core";
|
|
8
12
|
import * as i1 from "@ng-idle/core";
|
|
9
13
|
import * as i2 from "@ng-idle/keepalive";
|
|
10
|
-
|
|
14
|
+
export class ManageSessionServices {
|
|
15
|
+
/**
|
|
16
|
+
* @param {?} idle
|
|
17
|
+
* @param {?} keepalive
|
|
18
|
+
*/
|
|
11
19
|
constructor(idle, keepalive) {
|
|
12
20
|
this.idle = idle;
|
|
13
21
|
this.keepalive = keepalive;
|
|
14
22
|
this.appStateEmitter = new Subject();
|
|
15
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* @param {?} idleConfig
|
|
26
|
+
* @return {?}
|
|
27
|
+
*/
|
|
16
28
|
init(idleConfig) {
|
|
17
29
|
this.idle.setIdleName(idleConfig.idleServiceName);
|
|
18
30
|
this.idle.setTimeout(idleConfig.timeout);
|
|
31
|
+
/** @type {?} */
|
|
19
32
|
const interrupt = new DocumentInterruptSource('mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll');
|
|
20
33
|
this.idle.setInterrupts([interrupt]);
|
|
21
34
|
// adding delay so that user can click on sign out before the modal shuts
|
|
22
|
-
this.idle.onIdleEnd.pipe(delay(250)).subscribe((
|
|
35
|
+
this.idle.onIdleEnd.pipe(delay(250)).subscribe((/**
|
|
36
|
+
* @return {?}
|
|
37
|
+
*/
|
|
38
|
+
() => {
|
|
23
39
|
this.appStateEmitter.next({ type: 'modal', countdown: undefined, isVisible: false });
|
|
24
|
-
});
|
|
25
|
-
this.idle.onTimeout.subscribe((
|
|
40
|
+
}));
|
|
41
|
+
this.idle.onTimeout.subscribe((/**
|
|
42
|
+
* @return {?}
|
|
43
|
+
*/
|
|
44
|
+
() => {
|
|
26
45
|
this.appStateEmitter.next({ type: 'signout' });
|
|
27
|
-
});
|
|
28
|
-
this.idle.onTimeoutWarning.pipe(map(
|
|
46
|
+
}));
|
|
47
|
+
this.idle.onTimeoutWarning.pipe(map((/**
|
|
48
|
+
* @param {?} sec
|
|
49
|
+
* @return {?}
|
|
50
|
+
*/
|
|
51
|
+
sec => (sec > 60) ? `${Math.ceil(sec / 60)} minutes` : `${sec} seconds`)), distinctUntilChanged()).subscribe((/**
|
|
52
|
+
* @param {?} countdown
|
|
53
|
+
* @return {?}
|
|
54
|
+
*/
|
|
55
|
+
(countdown) => {
|
|
29
56
|
this.appStateEmitter.next({ type: 'modal', countdown, isVisible: true });
|
|
30
|
-
});
|
|
57
|
+
}));
|
|
31
58
|
this.keepalive.interval(idleConfig.keepAliveInSeconds);
|
|
32
|
-
this.keepalive.onPing.subscribe((
|
|
59
|
+
this.keepalive.onPing.subscribe((/**
|
|
60
|
+
* @return {?}
|
|
61
|
+
*/
|
|
62
|
+
() => {
|
|
33
63
|
this.appStateEmitter.next({ type: 'keepalive' });
|
|
34
|
-
});
|
|
64
|
+
}));
|
|
65
|
+
/** @type {?} */
|
|
35
66
|
const idleInSeconds = Math.floor((idleConfig.idleMilliseconds / 1000)) - idleConfig.timeout;
|
|
36
67
|
this.idle.setIdle(idleInSeconds);
|
|
37
68
|
this.idle.watch();
|
|
38
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* @return {?}
|
|
72
|
+
*/
|
|
39
73
|
appStateChanges() {
|
|
40
74
|
return this.appStateEmitter.asObservable();
|
|
41
75
|
}
|
|
42
|
-
}
|
|
76
|
+
}
|
|
77
|
+
ManageSessionServices.decorators = [
|
|
78
|
+
{ type: Injectable, args: [{
|
|
79
|
+
providedIn: 'root'
|
|
80
|
+
},] }
|
|
81
|
+
];
|
|
82
|
+
/** @nocollapse */
|
|
43
83
|
ManageSessionServices.ctorParameters = () => [
|
|
44
84
|
{ type: Idle },
|
|
45
85
|
{ type: Keepalive }
|
|
46
86
|
];
|
|
47
|
-
ManageSessionServices
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
87
|
+
/** @nocollapse */ ManageSessionServices.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ManageSessionServices_Factory() { return new ManageSessionServices(i0.ɵɵinject(i1.Idle), i0.ɵɵinject(i2.Keepalive)); }, token: ManageSessionServices, providedIn: "root" });
|
|
88
|
+
if (false) {
|
|
89
|
+
/**
|
|
90
|
+
* @type {?}
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
ManageSessionServices.prototype.appStateEmitter;
|
|
94
|
+
/**
|
|
95
|
+
* @type {?}
|
|
96
|
+
* @private
|
|
97
|
+
*/
|
|
98
|
+
ManageSessionServices.prototype.idle;
|
|
99
|
+
/**
|
|
100
|
+
* @type {?}
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
ManageSessionServices.prototype.keepalive;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXNlc3Npb24uc2VydmljZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL21hbmFnZS1zZXNzaW9uL21hbmFnZS1zZXNzaW9uLnNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsSUFBSSxHQUFHLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxLQUFLLEVBQ0wsb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXhCLE1BQU0sT0FBTyxxQkFBcUI7Ozs7O0lBR2hDLFlBQ21CLElBQVUsRUFDVixTQUFvQjtRQURwQixTQUFJLEdBQUosSUFBSSxDQUFNO1FBQ1YsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUVyQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7Ozs7SUFFTSxJQUFJLENBQUMsVUFBMkI7UUFFckMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Y0FFbkMsU0FBUyxHQUNiLElBQUksdUJBQXVCLENBQUMseUVBQXlFLENBQUM7UUFDeEcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXJDLHlFQUF5RTtRQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFO1lBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ3JGLENBQUMsRUFBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDN0IsR0FBRzs7OztRQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFVBQVUsRUFBQyxFQUM1RSxvQkFBb0IsRUFBRSxDQUN2QixDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDLEVBQUMsQ0FBQzs7Y0FDRyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxPQUFPO1FBQzNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7OztJQUVNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7OztZQWpERixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFaZ0MsSUFBSTtZQUM3QixTQUFTOzs7Ozs7OztJQWFmLGdEQUFtRzs7Ozs7SUFHakcscUNBQTJCOzs7OztJQUMzQiwwQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvY3VtZW50SW50ZXJydXB0U291cmNlLCBJZGxlLCB9IGZyb20gJ0BuZy1pZGxlL2NvcmUnO1xuaW1wb3J0IHtLZWVwYWxpdmV9IGZyb20gJ0BuZy1pZGxlL2tlZXBhbGl2ZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGVsYXksXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJZGxlQ29uZmlnTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9pZGxlLWNvbmZpZy5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1hbmFnZVNlc3Npb25TZXJ2aWNlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwU3RhdGVFbWl0dGVyOiBTdWJqZWN0PHt0eXBlOiBzdHJpbmcsIGNvdW50ZG93bj86IHN0cmluZzsgaXNWaXNpYmxlPzogYm9vbGVhbn0+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWRsZTogSWRsZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGtlZXBhbGl2ZTogS2VlcGFsaXZlLFxuICApIHtcbiAgICB0aGlzLmFwcFN0YXRlRW1pdHRlciA9IG5ldyBTdWJqZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdChpZGxlQ29uZmlnOiBJZGxlQ29uZmlnTW9kZWwpOiB2b2lkIHtcblxuICAgIHRoaXMuaWRsZS5zZXRJZGxlTmFtZShpZGxlQ29uZmlnLmlkbGVTZXJ2aWNlTmFtZSk7XG4gICAgdGhpcy5pZGxlLnNldFRpbWVvdXQoaWRsZUNvbmZpZy50aW1lb3V0KTtcblxuICAgIGNvbnN0IGludGVycnVwdCA9XG4gICAgICBuZXcgRG9jdW1lbnRJbnRlcnJ1cHRTb3VyY2UoJ21vdXNlZG93biBrZXlkb3duIERPTU1vdXNlU2Nyb2xsIG1vdXNld2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUgc2Nyb2xsJyk7XG4gICAgdGhpcy5pZGxlLnNldEludGVycnVwdHMoW2ludGVycnVwdF0pO1xuXG4gICAgLy8gYWRkaW5nIGRlbGF5IHNvIHRoYXQgdXNlciBjYW4gY2xpY2sgb24gc2lnbiBvdXQgYmVmb3JlIHRoZSBtb2RhbCBzaHV0c1xuICAgIHRoaXMuaWRsZS5vbklkbGVFbmQucGlwZShkZWxheSgyNTApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5hcHBTdGF0ZUVtaXR0ZXIubmV4dCh7dHlwZTogJ21vZGFsJywgY291bnRkb3duOiB1bmRlZmluZWQsIGlzVmlzaWJsZTogZmFsc2V9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuaWRsZS5vblRpbWVvdXQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYXBwU3RhdGVFbWl0dGVyLm5leHQoe3R5cGU6ICdzaWdub3V0J30pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pZGxlLm9uVGltZW91dFdhcm5pbmcucGlwZShcbiAgICAgIG1hcChzZWMgPT4gKHNlYyA+IDYwKSA/IGAke01hdGguY2VpbChzZWMgLyA2MCl9IG1pbnV0ZXNgIDogYCR7c2VjfSBzZWNvbmRzYCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoKGNvdW50ZG93bikgPT4ge1xuICAgICAgdGhpcy5hcHBTdGF0ZUVtaXR0ZXIubmV4dCh7dHlwZTogJ21vZGFsJywgY291bnRkb3duLCBpc1Zpc2libGU6IHRydWV9KTtcbiAgICB9KTtcblxuICAgIHRoaXMua2VlcGFsaXZlLmludGVydmFsKGlkbGVDb25maWcua2VlcEFsaXZlSW5TZWNvbmRzKTtcbiAgICB0aGlzLmtlZXBhbGl2ZS5vblBpbmcuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYXBwU3RhdGVFbWl0dGVyLm5leHQoe3R5cGU6ICdrZWVwYWxpdmUnfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaWRsZUluU2Vjb25kcyA9IE1hdGguZmxvb3IoKGlkbGVDb25maWcuaWRsZU1pbGxpc2Vjb25kcyAvIDEwMDApKSAtIGlkbGVDb25maWcudGltZW91dDtcbiAgICB0aGlzLmlkbGUuc2V0SWRsZShpZGxlSW5TZWNvbmRzKTtcbiAgICB0aGlzLmlkbGUud2F0Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBTdGF0ZUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hcHBTdGF0ZUVtaXR0ZXIuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,16 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/services/public-api.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
1
6
|
/*
|
|
2
7
|
* Public API Surface of exui-common-lib
|
|
3
8
|
*/
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
export { FeatureToggleGuard } from './feature-toggle/feature-toggle.guard';
|
|
10
|
+
export { FeatureToggleService } from './feature-toggle/feature-toggle.service';
|
|
11
|
+
export { LaunchDarklyService } from './feature-toggle/launch-darkly.service';
|
|
12
|
+
export { GoogleAnalyticsService } from './google-analytics/google-analytics.service';
|
|
13
|
+
export { GoogleTagManagerService } from './google-tag-manager/google-tag-manager.service';
|
|
14
|
+
export { ManageSessionServices } from './manage-session/manage-session.services';
|
|
15
|
+
export { TimeoutNotificationsService } from './timeout-notifications/timeout-notifications.service';
|
|
16
|
+
export { RoleMatching, RoleGuard } from './role-guard/role.guard';
|
|
17
|
+
export { RoleService } from './role-guard/role.service';
|
|
18
|
+
export { CookieService } from './cookie/cookie.service';
|
|
19
|
+
export { HasLoadingState, LoadingService } from './loading/loading.service';
|
|
20
|
+
export { FilterService } from './filter/filter.service';
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLG1DQUFjLHVDQUF1QyxDQUFDO0FBQ3RELHFDQUFjLHlDQUF5QyxDQUFDO0FBQ3hELG9DQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELHVDQUFjLDZDQUE2QyxDQUFDO0FBQzVELHdDQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLHNDQUFjLDBDQUEwQyxDQUFDO0FBQ3pELDRDQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLHdDQUFjLHlCQUF5QixDQUFDO0FBQ3hDLDRCQUFjLDJCQUEyQixDQUFDO0FBQzFDLDhCQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGdEQUFjLDJCQUEyQixDQUFDO0FBQzFDLDhCQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBleHVpLWNvbW1vbi1saWJcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLXRvZ2dsZS9sYXVuY2gtZGFya2x5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtYW5hbHl0aWNzL2dvb2dsZS1hbmFseXRpY3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZS10YWctbWFuYWdlci9nb29nbGUtdGFnLW1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21hbmFnZS1zZXNzaW9uL21hbmFnZS1zZXNzaW9uLnNlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdGltZW91dC1ub3RpZmljYXRpb25zL3RpbWVvdXQtbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcm9sZS1ndWFyZC9yb2xlLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vcm9sZS1ndWFyZC9yb2xlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb29raWUvY29va2llLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nL2xvYWRpbmcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci9maWx0ZXIuc2VydmljZSc7XG4iXX0=
|
|
@@ -1,41 +1,78 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/services/role-guard/role.guard.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
2
6
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import {
|
|
7
|
+
import { Router } from '@angular/router';
|
|
4
8
|
import { RoleService } from './role.service';
|
|
5
9
|
import * as i0 from "@angular/core";
|
|
6
10
|
import * as i1 from "./role.service";
|
|
7
11
|
import * as i2 from "@angular/router";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
12
|
+
/** @enum {number} */
|
|
13
|
+
const RoleMatching = {
|
|
14
|
+
ALL: 0,
|
|
15
|
+
ANY: 1,
|
|
16
|
+
};
|
|
17
|
+
export { RoleMatching };
|
|
18
|
+
RoleMatching[RoleMatching.ALL] = 'ALL';
|
|
19
|
+
RoleMatching[RoleMatching.ANY] = 'ANY';
|
|
20
|
+
export class RoleGuard {
|
|
21
|
+
/**
|
|
22
|
+
* @param {?} roleService
|
|
23
|
+
* @param {?} router
|
|
24
|
+
*/
|
|
14
25
|
constructor(roleService, router) {
|
|
15
26
|
this.roleService = roleService;
|
|
16
27
|
this.router = router;
|
|
17
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* @param {?} route
|
|
31
|
+
* @return {?}
|
|
32
|
+
*/
|
|
18
33
|
canActivate(route) {
|
|
19
|
-
|
|
20
|
-
const
|
|
34
|
+
/** @type {?} */
|
|
35
|
+
const roles = ((/** @type {?} */ (route.data.needsRole)));
|
|
36
|
+
/** @type {?} */
|
|
37
|
+
const check = (/**
|
|
38
|
+
* @param {?} roleRegEx
|
|
39
|
+
* @return {?}
|
|
40
|
+
*/
|
|
41
|
+
(roleRegEx) => {
|
|
42
|
+
/** @type {?} */
|
|
21
43
|
const regex = new RegExp(roleRegEx);
|
|
22
|
-
return this.roleService.roles.some(
|
|
23
|
-
|
|
44
|
+
return this.roleService.roles.some((/**
|
|
45
|
+
* @param {?} role
|
|
46
|
+
* @return {?}
|
|
47
|
+
*/
|
|
48
|
+
role => regex.test(role)));
|
|
49
|
+
});
|
|
50
|
+
/** @type {?} */
|
|
24
51
|
const match = route.data.roleMatching === RoleMatching.ALL ? roles.every(check) : roles.some(check);
|
|
25
|
-
return match || this.router.parseUrl(route.data.noRoleMatchRedirect);
|
|
52
|
+
return match || this.router.parseUrl((/** @type {?} */ (route.data.noRoleMatchRedirect)));
|
|
26
53
|
}
|
|
27
|
-
}
|
|
54
|
+
}
|
|
55
|
+
RoleGuard.decorators = [
|
|
56
|
+
{ type: Injectable, args: [{
|
|
57
|
+
providedIn: 'root'
|
|
58
|
+
},] }
|
|
59
|
+
];
|
|
60
|
+
/** @nocollapse */
|
|
28
61
|
RoleGuard.ctorParameters = () => [
|
|
29
62
|
{ type: RoleService },
|
|
30
63
|
{ type: Router }
|
|
31
64
|
];
|
|
32
|
-
RoleGuard
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
65
|
+
/** @nocollapse */ RoleGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function RoleGuard_Factory() { return new RoleGuard(i0.ɵɵinject(i1.RoleService), i0.ɵɵinject(i2.Router)); }, token: RoleGuard, providedIn: "root" });
|
|
66
|
+
if (false) {
|
|
67
|
+
/**
|
|
68
|
+
* @type {?}
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
RoleGuard.prototype.roleService;
|
|
72
|
+
/**
|
|
73
|
+
* @type {?}
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
RoleGuard.prototype.router;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcm9sZS1ndWFyZC9yb2xlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFN0MsTUFBWSxZQUFZO0lBQ3BCLEdBQUcsR0FBQTtJQUNILEdBQUcsR0FBQTtFQUNOOzs7O0FBS0QsTUFBTSxPQUFPLFNBQVM7Ozs7O0lBRWxCLFlBQ3FCLFdBQXdCLEVBQ3hCLE1BQWM7UUFEZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2hDLENBQUM7Ozs7O0lBRUcsV0FBVyxDQUFDLEtBQTZCOztjQUN0QyxLQUFLLEdBQUcsQ0FBQyxtQkFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBWSxDQUFDOztjQUMxQyxLQUFLOzs7O1FBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7O2tCQUMxQixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSTs7OztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQTs7Y0FDSyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFbkcsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBVSxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7O1lBbkJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVRNLFdBQVc7WUFEMEIsTUFBTTs7Ozs7Ozs7SUFjNUMsZ0NBQXlDOzs7OztJQUN6QywyQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJvbGVTZXJ2aWNlIH0gZnJvbSAnLi9yb2xlLnNlcnZpY2UnO1xuXG5leHBvcnQgZW51bSBSb2xlTWF0Y2hpbmcge1xuICAgIEFMTCxcbiAgICBBTllcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xuICB9KVxuZXhwb3J0IGNsYXNzIFJvbGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb2xlU2VydmljZTogUm9sZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIGNvbnN0IHJvbGVzID0gKHJvdXRlLmRhdGEubmVlZHNSb2xlIGFzIHN0cmluZ1tdKTtcbiAgICAgICAgY29uc3QgY2hlY2sgPSAocm9sZVJlZ0V4OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChyb2xlUmVnRXgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm9sZVNlcnZpY2Uucm9sZXMuc29tZShyb2xlID0+IHJlZ2V4LnRlc3Qocm9sZSkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtYXRjaCA9IHJvdXRlLmRhdGEucm9sZU1hdGNoaW5nID09PSBSb2xlTWF0Y2hpbmcuQUxMID8gcm9sZXMuZXZlcnkoY2hlY2spIDogcm9sZXMuc29tZShjaGVjayk7XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoIHx8IHRoaXMucm91dGVyLnBhcnNlVXJsKHJvdXRlLmRhdGEubm9Sb2xlTWF0Y2hSZWRpcmVjdCBhcyBzdHJpbmcpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,22 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/services/role-guard/role.service.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
2
6
|
import { Injectable } from '@angular/core';
|
|
3
7
|
import * as i0 from "@angular/core";
|
|
4
|
-
|
|
8
|
+
export class RoleService {
|
|
5
9
|
constructor() {
|
|
6
10
|
this.pRoles = [];
|
|
7
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* @return {?}
|
|
14
|
+
*/
|
|
8
15
|
get roles() {
|
|
9
16
|
return this.pRoles;
|
|
10
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* @param {?} roles
|
|
20
|
+
* @return {?}
|
|
21
|
+
*/
|
|
11
22
|
set roles(roles) {
|
|
12
23
|
this.pRoles = roles;
|
|
13
24
|
}
|
|
14
|
-
}
|
|
15
|
-
RoleService
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
}
|
|
26
|
+
RoleService.decorators = [
|
|
27
|
+
{ type: Injectable, args: [{
|
|
28
|
+
providedIn: 'root'
|
|
29
|
+
},] }
|
|
30
|
+
];
|
|
31
|
+
/** @nocollapse */ RoleService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function RoleService_Factory() { return new RoleService(); }, token: RoleService, providedIn: "root" });
|
|
32
|
+
if (false) {
|
|
33
|
+
/**
|
|
34
|
+
* @type {?}
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
37
|
+
RoleService.prototype.pRoles;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9yb2xlLWd1YXJkL3JvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzNDLE1BQU0sT0FBTyxXQUFXO0lBSHhCO1FBSVksV0FBTSxHQUFVLEVBQUUsQ0FBQztLQVM5Qjs7OztJQVBHLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELElBQVcsS0FBSyxDQUFDLEtBQVk7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQzs7O1lBWkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7Ozs7OztJQUVDLDZCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gdXNlIHR5cGVzIHNvIHdlIGNhbiBtb3ZlIHRvIHN0cmljdGVkIHR5cGluZyBsYXRlciBvblxuZXhwb3J0IHR5cGUgUm9sZSA9IHN0cmluZztcbmV4cG9ydCB0eXBlIFJvbGVzID0gUm9sZVtdO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4gIH0pXG5leHBvcnQgY2xhc3MgUm9sZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcFJvbGVzOiBSb2xlcyA9IFtdO1xuXG4gICAgcHVibGljIGdldCByb2xlcygpOiBSb2xlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBSb2xlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJvbGVzKHJvbGVzOiBSb2xlcykge1xuICAgICAgICB0aGlzLnBSb2xlcyA9IHJvbGVzO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/services/session-storage/session-storage.service.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
2
6
|
import { Injectable } from '@angular/core';
|
|
3
7
|
import * as i0 from "@angular/core";
|
|
4
|
-
|
|
8
|
+
export class SessionStorageService {
|
|
5
9
|
/**
|
|
6
10
|
* Get an item from the session storage.
|
|
7
11
|
* If remove is true, the item will be removed once read
|
|
8
|
-
* @param
|
|
12
|
+
* @param {?} key
|
|
13
|
+
* @param {?=} removeAfterRead removed the key once it has been read
|
|
14
|
+
* @return {?}
|
|
9
15
|
*/
|
|
10
16
|
getItem(key, removeAfterRead = false) {
|
|
17
|
+
/** @type {?} */
|
|
11
18
|
const item = sessionStorage.getItem(key);
|
|
12
19
|
if (removeAfterRead) {
|
|
13
20
|
this.removeItem(key);
|
|
@@ -16,28 +23,33 @@ let SessionStorageService = class SessionStorageService {
|
|
|
16
23
|
}
|
|
17
24
|
/**
|
|
18
25
|
* Set an item in the session storage.
|
|
26
|
+
* @param {?} key
|
|
27
|
+
* @param {?} value
|
|
28
|
+
* @return {?}
|
|
19
29
|
*/
|
|
20
30
|
setItem(key, value) {
|
|
21
31
|
sessionStorage.setItem(key, value);
|
|
22
32
|
}
|
|
23
33
|
/**
|
|
24
34
|
* Remove an item in the session storage.
|
|
35
|
+
* @param {?} key
|
|
36
|
+
* @return {?}
|
|
25
37
|
*/
|
|
26
38
|
removeItem(key) {
|
|
27
39
|
sessionStorage.removeItem(key);
|
|
28
40
|
}
|
|
29
41
|
/**
|
|
30
42
|
* Clear all the items held in session storage.
|
|
43
|
+
* @return {?}
|
|
31
44
|
*/
|
|
32
45
|
clear() {
|
|
33
46
|
sessionStorage.clear();
|
|
34
47
|
}
|
|
35
|
-
}
|
|
36
|
-
SessionStorageService
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBcUI7SUFFaEM7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxHQUFXLEVBQUUsa0JBQTJCLEtBQUs7UUFDMUQsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QyxJQUFJLGVBQWUsRUFBRTtZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FBRTtRQUU5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUN2QyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsR0FBVztRQUMzQixjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDVixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGLENBQUE7O0FBbkNZLHFCQUFxQjtJQUhqQyxVQUFVLENBQUM7UUFDVixVQUFVLEVBQUUsTUFBTTtLQUNuQixDQUFDO0dBQ1cscUJBQXFCLENBbUNqQztTQW5DWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdG9yYWdlU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIEdldCBhbiBpdGVtIGZyb20gdGhlIHNlc3Npb24gc3RvcmFnZS5cbiAgICogSWYgcmVtb3ZlIGlzIHRydWUsIHRoZSBpdGVtIHdpbGwgYmUgcmVtb3ZlZCBvbmNlIHJlYWRcbiAgICogQHBhcmFtIHJlbW92ZUFmdGVyUmVhZCByZW1vdmVkIHRoZSBrZXkgb25jZSBpdCBoYXMgYmVlbiByZWFkXG4gICAqL1xuICBwdWJsaWMgZ2V0SXRlbShrZXk6IHN0cmluZywgcmVtb3ZlQWZ0ZXJSZWFkOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IGl0ZW0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSk7XG5cbiAgICBpZiAocmVtb3ZlQWZ0ZXJSZWFkKSB7IHRoaXMucmVtb3ZlSXRlbShrZXkpOyB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW4gaXRlbSBpbiB0aGUgc2Vzc2lvbiBzdG9yYWdlLlxuICAgKi9cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBpdGVtIGluIHRoZSBzZXNzaW9uIHN0b3JhZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgdGhlIGl0ZW1zIGhlbGQgaW4gc2Vzc2lvbiBzdG9yYWdlLlxuICAgKi9cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
|
|
48
|
+
}
|
|
49
|
+
SessionStorageService.decorators = [
|
|
50
|
+
{ type: Injectable, args: [{
|
|
51
|
+
providedIn: 'root'
|
|
52
|
+
},] }
|
|
53
|
+
];
|
|
54
|
+
/** @nocollapse */ SessionStorageService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function SessionStorageService_Factory() { return new SessionStorageService(); }, token: SessionStorageService, providedIn: "root" });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxxQkFBcUI7Ozs7Ozs7O0lBT3pCLE9BQU8sQ0FBQyxHQUFXLEVBQUUsa0JBQTJCLEtBQUs7O2NBQ3BELElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUV4QyxJQUFJLGVBQWUsRUFBRTtZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FBRTtRQUU5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7Ozs7SUFLTSxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDdkMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7Ozs7O0lBS00sVUFBVSxDQUFDLEdBQVc7UUFDM0IsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDOzs7OztJQUtNLEtBQUs7UUFDVixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7O1lBckNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIHtcblxuICAvKipcbiAgICogR2V0IGFuIGl0ZW0gZnJvbSB0aGUgc2Vzc2lvbiBzdG9yYWdlLlxuICAgKiBJZiByZW1vdmUgaXMgdHJ1ZSwgdGhlIGl0ZW0gd2lsbCBiZSByZW1vdmVkIG9uY2UgcmVhZFxuICAgKiBAcGFyYW0gcmVtb3ZlQWZ0ZXJSZWFkIHJlbW92ZWQgdGhlIGtleSBvbmNlIGl0IGhhcyBiZWVuIHJlYWRcbiAgICovXG4gIHB1YmxpYyBnZXRJdGVtKGtleTogc3RyaW5nLCByZW1vdmVBZnRlclJlYWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgY29uc3QgaXRlbSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KTtcblxuICAgIGlmIChyZW1vdmVBZnRlclJlYWQpIHsgdGhpcy5yZW1vdmVJdGVtKGtleSk7IH1cblxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhbiBpdGVtIGluIHRoZSBzZXNzaW9uIHN0b3JhZ2UuXG4gICAqL1xuICBwdWJsaWMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGl0ZW0gaW4gdGhlIHNlc3Npb24gc3RvcmFnZS5cbiAgICovXG4gIHB1YmxpYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCB0aGUgaXRlbXMgaGVsZCBpbiBzZXNzaW9uIHN0b3JhZ2UuXG4gICAqL1xuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* Generated from: lib/services/timeout-notifications/timeout-notifications.service.ts
|
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
+
*/
|
|
2
6
|
import { Injectable } from '@angular/core';
|
|
3
7
|
import { DocumentInterruptSource, Idle, } from '@ng-idle/core';
|
|
4
8
|
import { Keepalive } from '@ng-idle/keepalive';
|
|
@@ -21,7 +25,11 @@ import * as i2 from "@ng-idle/keepalive";
|
|
|
21
25
|
* @see README.md for implementation details and code, on how to implement the Timeout Notification
|
|
22
26
|
* Service within your application.
|
|
23
27
|
*/
|
|
24
|
-
|
|
28
|
+
export class TimeoutNotificationsService {
|
|
29
|
+
/**
|
|
30
|
+
* @param {?} idle
|
|
31
|
+
* @param {?} keepalive
|
|
32
|
+
*/
|
|
25
33
|
constructor(idle, keepalive) {
|
|
26
34
|
this.idle = idle;
|
|
27
35
|
this.keepalive = keepalive;
|
|
@@ -31,7 +39,11 @@ let TimeoutNotificationsService = class TimeoutNotificationsService {
|
|
|
31
39
|
* @param milliseconds - 1000
|
|
32
40
|
* @return seconds - 1
|
|
33
41
|
*/
|
|
34
|
-
this.millisecondsToSeconds = (
|
|
42
|
+
this.millisecondsToSeconds = (/**
|
|
43
|
+
* @param {?} milliseconds
|
|
44
|
+
* @return {?}
|
|
45
|
+
*/
|
|
46
|
+
(milliseconds) => milliseconds / 1000);
|
|
35
47
|
this.eventEmitter = new Subject();
|
|
36
48
|
}
|
|
37
49
|
/**
|
|
@@ -45,52 +57,102 @@ let TimeoutNotificationsService = class TimeoutNotificationsService {
|
|
|
45
57
|
* idleModalDisplayTime and totalIdleTime need to be passed in, in milliseconds.
|
|
46
58
|
*
|
|
47
59
|
* @see README.md for more information on TimeoutNotificationService.
|
|
60
|
+
* @param {?} config
|
|
61
|
+
* @return {?}
|
|
48
62
|
*/
|
|
49
63
|
initialise(config) {
|
|
64
|
+
/** @type {?} */
|
|
50
65
|
const DOCUMENT_INTERRUPTS = 'mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll';
|
|
66
|
+
/** @type {?} */
|
|
51
67
|
const MINUTES = ' minutes';
|
|
68
|
+
/** @type {?} */
|
|
52
69
|
const SECONDS = ' seconds';
|
|
70
|
+
/** @type {?} */
|
|
53
71
|
const SIGNOUT_EVENT = 'sign-out';
|
|
72
|
+
/** @type {?} */
|
|
54
73
|
const COUNTDOWN_EVENT = 'countdown';
|
|
74
|
+
/** @type {?} */
|
|
55
75
|
const KEEP_ALIVE_EVENT = 'keep-alive';
|
|
56
76
|
const { idleServiceName, idleModalDisplayTime, totalIdleTime } = config;
|
|
57
77
|
this.idle.setIdleName(idleServiceName);
|
|
78
|
+
/** @type {?} */
|
|
58
79
|
const idleModalDisplayTimeInSeconds = this.millisecondsToSeconds(idleModalDisplayTime);
|
|
80
|
+
/** @type {?} */
|
|
59
81
|
const totalIdleTimeInSeconds = this.millisecondsToSeconds(totalIdleTime);
|
|
60
82
|
this.idle.setTimeout(idleModalDisplayTimeInSeconds);
|
|
83
|
+
/** @type {?} */
|
|
61
84
|
const interrupt = new DocumentInterruptSource(DOCUMENT_INTERRUPTS);
|
|
62
85
|
this.idle.setInterrupts([interrupt]);
|
|
63
|
-
this.idle.onTimeout.subscribe((
|
|
86
|
+
this.idle.onTimeout.subscribe((/**
|
|
87
|
+
* @return {?}
|
|
88
|
+
*/
|
|
89
|
+
() => {
|
|
64
90
|
this.eventEmitter.next({ eventType: SIGNOUT_EVENT });
|
|
65
|
-
});
|
|
66
|
-
this.idle.onTimeoutWarning.pipe(map(
|
|
91
|
+
}));
|
|
92
|
+
this.idle.onTimeoutWarning.pipe(map((/**
|
|
93
|
+
* @param {?} sec
|
|
94
|
+
* @return {?}
|
|
95
|
+
*/
|
|
96
|
+
sec => (sec > 60) ? Math.ceil(sec / 60) + MINUTES : sec + SECONDS)), distinctUntilChanged()).subscribe((/**
|
|
97
|
+
* @param {?} countdown
|
|
98
|
+
* @return {?}
|
|
99
|
+
*/
|
|
100
|
+
(countdown) => {
|
|
67
101
|
this.eventEmitter.next({ eventType: COUNTDOWN_EVENT, readableCountdown: countdown });
|
|
68
|
-
});
|
|
69
|
-
this.keepalive.onPing.subscribe((
|
|
102
|
+
}));
|
|
103
|
+
this.keepalive.onPing.subscribe((/**
|
|
104
|
+
* @return {?}
|
|
105
|
+
*/
|
|
106
|
+
() => {
|
|
70
107
|
this.eventEmitter.next({ eventType: KEEP_ALIVE_EVENT });
|
|
71
|
-
});
|
|
108
|
+
}));
|
|
109
|
+
/** @type {?} */
|
|
72
110
|
const idleInSeconds = Math.floor(totalIdleTimeInSeconds) - idleModalDisplayTimeInSeconds;
|
|
73
111
|
this.idle.setIdle(idleInSeconds);
|
|
74
112
|
this.idle.watch();
|
|
75
113
|
}
|
|
76
114
|
/**
|
|
77
115
|
* Expose the notification events, so that a 3rd party service can listen to the notifications.
|
|
116
|
+
* @return {?}
|
|
78
117
|
*/
|
|
79
118
|
notificationOnChange() {
|
|
80
119
|
return this.eventEmitter.asObservable();
|
|
81
120
|
}
|
|
82
|
-
}
|
|
121
|
+
}
|
|
122
|
+
TimeoutNotificationsService.decorators = [
|
|
123
|
+
{ type: Injectable, args: [{
|
|
124
|
+
providedIn: 'root'
|
|
125
|
+
},] }
|
|
126
|
+
];
|
|
127
|
+
/** @nocollapse */
|
|
83
128
|
TimeoutNotificationsService.ctorParameters = () => [
|
|
84
129
|
{ type: Idle },
|
|
85
130
|
{ type: Keepalive }
|
|
86
131
|
];
|
|
87
|
-
TimeoutNotificationsService
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
132
|
+
/** @nocollapse */ TimeoutNotificationsService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function TimeoutNotificationsService_Factory() { return new TimeoutNotificationsService(i0.ɵɵinject(i1.Idle), i0.ɵɵinject(i2.Keepalive)); }, token: TimeoutNotificationsService, providedIn: "root" });
|
|
133
|
+
if (false) {
|
|
134
|
+
/**
|
|
135
|
+
* @type {?}
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
138
|
+
TimeoutNotificationsService.prototype.eventEmitter;
|
|
139
|
+
/**
|
|
140
|
+
* Convert milliseconds to seconds.
|
|
141
|
+
*
|
|
142
|
+
* \@param milliseconds - 1000
|
|
143
|
+
* \@return seconds - 1
|
|
144
|
+
* @type {?}
|
|
145
|
+
*/
|
|
146
|
+
TimeoutNotificationsService.prototype.millisecondsToSeconds;
|
|
147
|
+
/**
|
|
148
|
+
* @type {?}
|
|
149
|
+
* @private
|
|
150
|
+
*/
|
|
151
|
+
TimeoutNotificationsService.prototype.idle;
|
|
152
|
+
/**
|
|
153
|
+
* @type {?}
|
|
154
|
+
* @private
|
|
155
|
+
*/
|
|
156
|
+
TimeoutNotificationsService.prototype.keepalive;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZW91dC1ub3RpZmljYXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3RpbWVvdXQtbm90aWZpY2F0aW9ucy90aW1lb3V0LW5vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLHVCQUF1QixFQUFFLElBQUksR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQnhCLE1BQU0sT0FBTywyQkFBMkI7Ozs7O0lBSXRDLFlBQ21CLElBQVUsRUFDVixTQUFvQjtRQURwQixTQUFJLEdBQUosSUFBSSxDQUFNO1FBQ1YsY0FBUyxHQUFULFNBQVMsQ0FBVzs7Ozs7OztRQVdoQywwQkFBcUI7Ozs7UUFBRyxDQUFDLFlBQW9CLEVBQVUsRUFBRSxDQUFDLFlBQVksR0FBRyxJQUFJLEVBQUM7UUFUbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQXNCTSxVQUFVLENBQUMsTUFBaUM7O2NBRTNDLG1CQUFtQixHQUFHLHlFQUF5RTs7Y0FFL0YsT0FBTyxHQUFHLFVBQVU7O2NBQ3BCLE9BQU8sR0FBRyxVQUFVOztjQUVwQixhQUFhLEdBQUcsVUFBVTs7Y0FDMUIsZUFBZSxHQUFHLFdBQVc7O2NBQzdCLGdCQUFnQixHQUFHLFlBQVk7Y0FFL0IsRUFBQyxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFDLEdBQUcsTUFBTTtRQUVyRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQzs7Y0FFakMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDOztjQUNoRixzQkFBc0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDO1FBRXhFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLDZCQUE2QixDQUFDLENBQUM7O2NBRTlDLFNBQVMsR0FBRyxJQUFJLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDLEVBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUM3QixHQUFHOzs7O1FBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFDLEVBQ3RFLG9CQUFvQixFQUFFLENBQ3ZCLENBQUMsU0FBUzs7OztRQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDckYsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsRUFBQyxDQUFDOztjQUVHLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsNkJBQTZCO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Ozs7SUFLTSxvQkFBb0I7UUFFekIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7OztZQW5GRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUF6QmdDLElBQUk7WUFDN0IsU0FBUzs7Ozs7Ozs7SUEyQmYsbURBQTBGOzs7Ozs7OztJQWUxRiw0REFBcUY7Ozs7O0lBWm5GLDJDQUEyQjs7Ozs7SUFDM0IsZ0RBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEb2N1bWVudEludGVycnVwdFNvdXJjZSwgSWRsZSwgfSBmcm9tICdAbmctaWRsZS9jb3JlJztcbmltcG9ydCB7S2VlcGFsaXZlfSBmcm9tICdAbmctaWRsZS9rZWVwYWxpdmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUaW1lb3V0Tm90aWZpY2F0aW9uQ29uZmlnfSBmcm9tICcuLi8uLi9tb2RlbHMvdGltZW91dC1ub3RpZmljYXRpb24ubW9kZWwnO1xuXG4vKipcbiAqIFRpbWVvdXROb3RpZmljYXRpb25zU2VydmljZVxuICpcbiAqIFRoZSBUaW1lb3V0IE5vdGlmaWNhdGlvbiBTZXJ2aWNlIGFsbG93cyB5b3VyIGFwcGxpY2F0aW9uIHRvIHJlY2VpdmUgbm90aWZpY2F0aW9uc1xuICogd2hlbiBhIFVzZXIgaXMgYXBwcm9hY2hpbmcgdGhlIHRoZSB0b3RhbCB0aW1lIHRoYXQgYSBVc2VyIGhhcyBiZWVuIGlkbGUgZm9yLlxuICpcbiAqIFRoaXMgY2FuIGJlIHNldCBieSB5b3VyIGFwcGxpY2F0aW9uIHVzaW5nIHRoZSBUaW1lb3V0IE5vdGlmaWNhdGlvbiBDb25maWcgb2JqZWN0LlxuICpcbiAqIFlvdXIgYXBwbGljYXRpb24gd2lsbCB0aGVuIGhhdmUgdG8gbGlzdGVuIHRvIGV2ZW50cyBjb21pbmcgZnJvbSB0aGUgVGltZW91dCBOb3RpZmljYXRpb24gU2VydmljZSxcbiAqIGFuZCBoYW5kbGUgdGhlc2UgZXZlbnRzIHdpdGhpbiB5b3VyIGFwcGxpY2F0aW9uLlxuICpcbiAqIEBzZWUgUkVBRE1FLm1kIGZvciBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFuZCBjb2RlLCBvbiBob3cgdG8gaW1wbGVtZW50IHRoZSBUaW1lb3V0IE5vdGlmaWNhdGlvblxuICogU2VydmljZSB3aXRoaW4geW91ciBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGltZW91dE5vdGlmaWNhdGlvbnNTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50RW1pdHRlcjogU3ViamVjdDx7ZXZlbnRUeXBlOiBzdHJpbmcsIHJlYWRhYmxlQ291bnRkb3duPzogc3RyaW5nOyB9PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlkbGU6IElkbGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrZWVwYWxpdmU6IEtlZXBhbGl2ZSxcbiAgKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIgPSBuZXcgU3ViamVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgbWlsbGlzZWNvbmRzIHRvIHNlY29uZHMuXG4gICAqXG4gICAqIEBwYXJhbSBtaWxsaXNlY29uZHMgLSAxMDAwXG4gICAqIEByZXR1cm4gc2Vjb25kcyAtIDFcbiAgICovXG4gIHB1YmxpYyBtaWxsaXNlY29uZHNUb1NlY29uZHMgPSAobWlsbGlzZWNvbmRzOiBudW1iZXIpOiBudW1iZXIgPT4gbWlsbGlzZWNvbmRzIC8gMTAwMDtcblxuICAvKipcbiAgICogSW5pdGlhbGlzZVxuICAgKlxuICAgKiBJbml0aWFsaXNlIHRoZSBUaW1lb3V0IE5vdGlmaWNhdGlvbiBFdmVudHMuXG4gICAqXG4gICAqIEkgbWFkZSB0aGUgZGVjaXNpb24gbm90IHRvIG1ha2UgJyBtaW51dGVzJyBhbmQgJyBzZWNvbmRzJyBjb25maWd1cmFibGUgdmlhIGlucHV0IHBhcmFtZXRlcnMgLVxuICAgKiBBcyBJIG1hZGUgYW4gYXNzdW1wdGlvbiB0aGF0IGFueSBSZWZvcm0gdGVhbSB3b3VsZCBub3QgbmVlZCB0byBjaGFuZ2UgdGhlc2UgdG8gJ3NlY3MsIG1pbnMnIG9yICdzLCBtJy5cbiAgICpcbiAgICogaWRsZU1vZGFsRGlzcGxheVRpbWUgYW5kIHRvdGFsSWRsZVRpbWUgbmVlZCB0byBiZSBwYXNzZWQgaW4sIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQHNlZSBSRUFETUUubWQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gVGltZW91dE5vdGlmaWNhdGlvblNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgaW5pdGlhbGlzZShjb25maWc6IFRpbWVvdXROb3RpZmljYXRpb25Db25maWcpOiB2b2lkIHtcblxuICAgIGNvbnN0IERPQ1VNRU5UX0lOVEVSUlVQVFMgPSAnbW91c2Vkb3duIGtleWRvd24gRE9NTW91c2VTY3JvbGwgbW91c2V3aGVlbCB0b3VjaHN0YXJ0IHRvdWNobW92ZSBzY3JvbGwnO1xuXG4gICAgY29uc3QgTUlOVVRFUyA9ICcgbWludXRlcyc7XG4gICAgY29uc3QgU0VDT05EUyA9ICcgc2Vjb25kcyc7XG5cbiAgICBjb25zdCBTSUdOT1VUX0VWRU5UID0gJ3NpZ24tb3V0JztcbiAgICBjb25zdCBDT1VOVERPV05fRVZFTlQgPSAnY291bnRkb3duJztcbiAgICBjb25zdCBLRUVQX0FMSVZFX0VWRU5UID0gJ2tlZXAtYWxpdmUnO1xuXG4gICAgY29uc3Qge2lkbGVTZXJ2aWNlTmFtZSwgaWRsZU1vZGFsRGlzcGxheVRpbWUsIHRvdGFsSWRsZVRpbWV9ID0gY29uZmlnO1xuXG4gICAgdGhpcy5pZGxlLnNldElkbGVOYW1lKGlkbGVTZXJ2aWNlTmFtZSk7XG5cbiAgICBjb25zdCBpZGxlTW9kYWxEaXNwbGF5VGltZUluU2Vjb25kcyA9IHRoaXMubWlsbGlzZWNvbmRzVG9TZWNvbmRzKGlkbGVNb2RhbERpc3BsYXlUaW1lKTtcbiAgICBjb25zdCB0b3RhbElkbGVUaW1lSW5TZWNvbmRzID0gdGhpcy5taWxsaXNlY29uZHNUb1NlY29uZHModG90YWxJZGxlVGltZSk7XG5cbiAgICB0aGlzLmlkbGUuc2V0VGltZW91dChpZGxlTW9kYWxEaXNwbGF5VGltZUluU2Vjb25kcyk7XG5cbiAgICBjb25zdCBpbnRlcnJ1cHQgPSBuZXcgRG9jdW1lbnRJbnRlcnJ1cHRTb3VyY2UoRE9DVU1FTlRfSU5URVJSVVBUUyk7XG4gICAgdGhpcy5pZGxlLnNldEludGVycnVwdHMoW2ludGVycnVwdF0pO1xuXG4gICAgdGhpcy5pZGxlLm9uVGltZW91dC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5ldmVudEVtaXR0ZXIubmV4dCh7ZXZlbnRUeXBlOiBTSUdOT1VUX0VWRU5UfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmlkbGUub25UaW1lb3V0V2FybmluZy5waXBlKFxuICAgICAgbWFwKHNlYyA9PiAoc2VjID4gNjApID8gTWF0aC5jZWlsKHNlYyAvIDYwKSArIE1JTlVURVMgOiBzZWMgKyBTRUNPTkRTKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApLnN1YnNjcmliZSgoY291bnRkb3duKSA9PiB7XG4gICAgICB0aGlzLmV2ZW50RW1pdHRlci5uZXh0KHtldmVudFR5cGU6IENPVU5URE9XTl9FVkVOVCwgcmVhZGFibGVDb3VudGRvd246IGNvdW50ZG93bn0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5rZWVwYWxpdmUub25QaW5nLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmV2ZW50RW1pdHRlci5uZXh0KHtldmVudFR5cGU6IEtFRVBfQUxJVkVfRVZFTlR9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGlkbGVJblNlY29uZHMgPSBNYXRoLmZsb29yKHRvdGFsSWRsZVRpbWVJblNlY29uZHMpIC0gaWRsZU1vZGFsRGlzcGxheVRpbWVJblNlY29uZHM7XG4gICAgdGhpcy5pZGxlLnNldElkbGUoaWRsZUluU2Vjb25kcyk7XG4gICAgdGhpcy5pZGxlLndhdGNoKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3NlIHRoZSBub3RpZmljYXRpb24gZXZlbnRzLCBzbyB0aGF0IGEgM3JkIHBhcnR5IHNlcnZpY2UgY2FuIGxpc3RlbiB0byB0aGUgbm90aWZpY2F0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBub3RpZmljYXRpb25PbkNoYW5nZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRFbWl0dGVyLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=
|