@hmcts/rpx-xui-common-lib 2.1.2-angular-upgrade-11 → 2.1.3-angular-upgrade-11
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 +2527 -7345
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -15
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
- package/esm2015/hmcts-rpx-xui-common-lib.js +3 -7
- package/esm2015/lib/components/accessibility/accessibility.component.js +3 -9
- package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +14 -112
- package/esm2015/lib/components/contact-details/contact-details.component.js +2 -12
- package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +4 -65
- package/esm2015/lib/components/due-date/due-date.component.js +2 -97
- package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +7 -21
- package/esm2015/lib/components/find-location/find-location.component.js +11 -131
- package/esm2015/lib/components/find-person/find-person.component.js +9 -150
- package/esm2015/lib/components/generic-filter/generic-filter-utils.js +11 -55
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +33 -288
- package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +3 -18
- package/esm2015/lib/components/index.js +2 -7
- package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +2 -22
- package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +2 -21
- package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +3 -12
- package/esm2015/lib/components/pagination/pagination.component.js +2 -24
- package/esm2015/lib/components/public_api.js +33 -33
- package/esm2015/lib/components/search-judicials/search-judicials.component.js +10 -133
- package/esm2015/lib/components/search-location/search-location.component.js +9 -189
- package/esm2015/lib/components/search-venue/search-venue.component.js +12 -135
- package/esm2015/lib/components/selected-case/selected-case.component.js +20 -176
- package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +3 -41
- package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +3 -52
- package/esm2015/lib/components/service-message/service-message.component.js +2 -20
- package/esm2015/lib/components/service-messages/service-messages.component.js +7 -65
- package/esm2015/lib/components/share-case/share-case.component.js +6 -87
- package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +4 -37
- package/esm2015/lib/components/tab/tab.component.js +2 -26
- package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +2 -17
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +2 -8
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +2 -8
- package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +2 -12
- package/esm2015/lib/components/user-details/user-details.component.js +2 -39
- package/esm2015/lib/components/user-list/user-list.component.js +2 -32
- package/esm2015/lib/components/user-select/user-select.component.js +5 -52
- package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +3 -56
- package/esm2015/lib/directives/index.js +2 -7
- package/esm2015/lib/directives/let/let.directive.js +1 -39
- package/esm2015/lib/directives/public-api.js +3 -8
- package/esm2015/lib/exui-common-lib.module.js +19 -9
- package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +2 -22
- package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +2 -13
- package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +4 -54
- package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +2 -14
- package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +2 -17
- package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +2 -24
- package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +2 -16
- package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +2 -22
- package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +2 -12
- package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +6 -24
- package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +2 -13
- package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -21
- package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +2 -32
- package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +2 -18
- package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +2 -14
- package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +2 -44
- package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +2 -16
- package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -36
- package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +2 -23
- package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +2 -22
- package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +3 -30
- package/esm2015/lib/gov-ui/components/index.js +2 -7
- package/esm2015/lib/gov-ui/components/public_api.js +22 -7
- package/esm2015/lib/gov-ui/directives/remove-host.directive.js +1 -22
- package/esm2015/lib/gov-ui/gov-ui.service.js +2 -8
- package/esm2015/lib/gov-ui/index.js +2 -7
- package/esm2015/lib/gov-ui/models/banner-data-model.js +2 -16
- package/esm2015/lib/gov-ui/models/checkboxes-model.js +2 -22
- package/esm2015/lib/gov-ui/models/error-messages-model.js +2 -16
- package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +2 -36
- package/esm2015/lib/gov-ui/models/index.js +2 -7
- package/esm2015/lib/gov-ui/models/isession-storage.interface.js +2 -24
- package/esm2015/lib/gov-ui/models/public_api.js +5 -10
- package/esm2015/lib/gov-ui/public_api.js +5 -9
- package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +4 -14
- package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
- package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
- package/esm2015/lib/gov-ui/validators/date.validator.js +3 -20
- package/esm2015/lib/gov-ui/validators/index.js +2 -7
- package/esm2015/lib/gov-ui/validators/public_api.js +4 -9
- package/esm2015/lib/gov-ui/validators/radio-group.validator.js +3 -15
- package/esm2015/lib/models/case-share.model.js +2 -26
- package/esm2015/lib/models/contact-details.model.js +7 -31
- package/esm2015/lib/models/due-date.model.js +7 -14
- package/esm2015/lib/models/feature-user.js +1 -16
- package/esm2015/lib/models/filter.model.js +1 -118
- package/esm2015/lib/models/idle-config.model.js +2 -20
- package/esm2015/lib/models/index.js +14 -20
- package/esm2015/lib/models/location.model.js +2 -129
- package/esm2015/lib/models/pagination.model.js +2 -18
- package/esm2015/lib/models/person.model.js +17 -92
- package/esm2015/lib/models/public_api.js +6 -11
- package/esm2015/lib/models/search-options.model.js +2 -22
- package/esm2015/lib/models/tcDocument.model.js +2 -18
- package/esm2015/lib/models/timeout-notification.model.js +2 -18
- package/esm2015/lib/models/user-details.model.js +2 -22
- package/esm2015/lib/models/user.model.js +2 -25
- package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +9 -84
- package/esm2015/lib/services/cookie/cookie.service.js +8 -71
- package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +4 -43
- package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +2 -28
- package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +12 -94
- package/esm2015/lib/services/filter/filter.service.js +2 -56
- package/esm2015/lib/services/find-person/find-person.service.js +15 -123
- package/esm2015/lib/services/google-analytics/google-analytics.service.js +8 -63
- package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +10 -64
- package/esm2015/lib/services/index.js +2 -7
- package/esm2015/lib/services/loading/loading.service.js +2 -41
- package/esm2015/lib/services/locations/location.service.js +14 -32
- package/esm2015/lib/services/manage-session/manage-session.services.js +10 -63
- package/esm2015/lib/services/public-api.js +17 -22
- package/esm2015/lib/services/role-guard/role.guard.js +12 -53
- package/esm2015/lib/services/role-guard/role.service.js +2 -21
- package/esm2015/lib/services/session-storage/session-storage.service.js +3 -17
- package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +9 -75
- package/esm2015/lib/window.js +1 -10
- package/esm2015/public-api.js +8 -13
- package/fesm2015/hmcts-rpx-xui-common-lib.js +943 -4959
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/hmcts-rpx-xui-common-lib.d.ts +1 -0
- package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
- package/lib/components/checkbox-list/checkbox-list.component.d.ts +6 -5
- package/lib/components/due-date/due-date.component.d.ts +4 -4
- package/lib/components/find-location/find-location.component.d.ts +6 -5
- package/lib/components/generic-filter/generic-filter.component.d.ts +4 -2
- package/lib/components/invite-user-form/invite-user-form.component.d.ts +1 -1
- package/lib/components/public_api.d.ts +5 -0
- package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
- package/lib/components/search-location/search-location.component.d.ts +6 -7
- package/lib/components/search-venue/search-venue.component.d.ts +1 -1
- 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 +3 -1
- 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-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
- package/lib/gov-ui/components/public_api.d.ts +20 -0
- package/lib/gov-ui/public_api.d.ts +1 -0
- package/lib/models/filter.model.d.ts +0 -2
- package/lib/models/index.d.ts +0 -1
- package/lib/models/location.model.d.ts +0 -11
- 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/locations/location.service.d.ts +2 -2
- package/lib/services/role-guard/role.service.d.ts +2 -1
- package/lib/window.d.ts +1 -1
- package/package.json +6 -19
- package/esm5/hmcts-rpx-xui-common-lib.js +0 -73
- package/esm5/lib/components/accessibility/accessibility.component.js +0 -22
- package/esm5/lib/components/checkbox-list/checkbox-list.component.js +0 -391
- package/esm5/lib/components/contact-details/contact-details.component.js +0 -29
- package/esm5/lib/components/cookie-banner/cookie-banner.component.js +0 -154
- package/esm5/lib/components/due-date/due-date.component.js +0 -254
- package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +0 -45
- package/esm5/lib/components/find-location/find-location.component.js +0 -293
- package/esm5/lib/components/find-person/find-person.component.js +0 -286
- package/esm5/lib/components/generic-filter/generic-filter-utils.js +0 -66
- package/esm5/lib/components/generic-filter/generic-filter.component.js +0 -839
- package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +0 -47
- package/esm5/lib/components/index.js +0 -7
- package/esm5/lib/components/invite-user-form/invite-user-form.component.js +0 -54
- package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +0 -46
- package/esm5/lib/components/loading-spinner/loading-spinner.component.js +0 -29
- package/esm5/lib/components/pagination/pagination.component.js +0 -58
- package/esm5/lib/components/public_api.js +0 -33
- package/esm5/lib/components/search-judicials/search-judicials.component.js +0 -291
- package/esm5/lib/components/search-location/search-location.component.js +0 -330
- package/esm5/lib/components/search-venue/search-venue.component.js +0 -290
- package/esm5/lib/components/selected-case/selected-case.component.js +0 -430
- package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +0 -84
- package/esm5/lib/components/selected-case-list/selected-case-list.component.js +0 -109
- package/esm5/lib/components/service-message/service-message.component.js +0 -46
- package/esm5/lib/components/service-messages/service-messages.component.js +0 -122
- package/esm5/lib/components/share-case/share-case.component.js +0 -223
- package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +0 -70
- package/esm5/lib/components/tab/tab.component.js +0 -51
- package/esm5/lib/components/tc-confirm/tc-confirm.component.js +0 -42
- package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +0 -22
- package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +0 -22
- package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +0 -29
- package/esm5/lib/components/user-details/user-details.component.js +0 -92
- package/esm5/lib/components/user-list/user-list.component.js +0 -76
- package/esm5/lib/components/user-select/user-select.component.js +0 -131
- package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +0 -104
- package/esm5/lib/directives/index.js +0 -7
- package/esm5/lib/directives/let/let.directive.js +0 -78
- package/esm5/lib/directives/public-api.js +0 -8
- package/esm5/lib/exui-common-lib.module.js +0 -162
- package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +0 -56
- package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +0 -36
- package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +0 -135
- package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +0 -37
- package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -49
- package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +0 -65
- package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +0 -40
- package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +0 -66
- package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +0 -34
- package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +0 -67
- package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +0 -36
- package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +0 -52
- package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +0 -77
- package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +0 -50
- package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +0 -38
- package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +0 -108
- package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +0 -40
- package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +0 -87
- package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +0 -51
- package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +0 -49
- package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +0 -46
- package/esm5/lib/gov-ui/components/index.js +0 -7
- package/esm5/lib/gov-ui/components/public_api.js +0 -7
- package/esm5/lib/gov-ui/directives/remove-host.directive.js +0 -52
- package/esm5/lib/gov-ui/gov-ui.service.js +0 -22
- package/esm5/lib/gov-ui/index.js +0 -7
- package/esm5/lib/gov-ui/models/banner-data-model.js +0 -16
- package/esm5/lib/gov-ui/models/checkboxes-model.js +0 -22
- package/esm5/lib/gov-ui/models/error-messages-model.js +0 -16
- package/esm5/lib/gov-ui/models/gov-ui-config-model.js +0 -36
- package/esm5/lib/gov-ui/models/index.js +0 -7
- package/esm5/lib/gov-ui/models/isession-storage.interface.js +0 -24
- package/esm5/lib/gov-ui/models/public_api.js +0 -13
- package/esm5/lib/gov-ui/public_api.js +0 -12
- package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +0 -57
- package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +0 -58
- package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +0 -38
- package/esm5/lib/gov-ui/validators/date.validator.js +0 -32
- package/esm5/lib/gov-ui/validators/index.js +0 -7
- package/esm5/lib/gov-ui/validators/public_api.js +0 -12
- package/esm5/lib/gov-ui/validators/radio-group.validator.js +0 -27
- package/esm5/lib/models/case-share.model.js +0 -26
- package/esm5/lib/models/contact-details.model.js +0 -31
- package/esm5/lib/models/due-date.model.js +0 -15
- package/esm5/lib/models/feature-user.js +0 -28
- package/esm5/lib/models/filter.model.js +0 -124
- package/esm5/lib/models/idle-config.model.js +0 -20
- package/esm5/lib/models/index.js +0 -20
- package/esm5/lib/models/location.model.js +0 -129
- package/esm5/lib/models/pagination.model.js +0 -18
- package/esm5/lib/models/person.model.js +0 -92
- package/esm5/lib/models/public_api.js +0 -11
- package/esm5/lib/models/search-options.model.js +0 -22
- package/esm5/lib/models/tcDocument.model.js +0 -18
- package/esm5/lib/models/timeout-notification.model.js +0 -18
- package/esm5/lib/models/user-details.model.js +0 -22
- package/esm5/lib/models/user.model.js +0 -25
- package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +0 -289
- package/esm5/lib/services/cookie/cookie.service.js +0 -136
- package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +0 -89
- package/esm5/lib/services/feature-toggle/feature-toggle.service.js +0 -90
- package/esm5/lib/services/feature-toggle/launch-darkly.service.js +0 -187
- package/esm5/lib/services/filter/filter.service.js +0 -153
- package/esm5/lib/services/find-person/find-person.service.js +0 -238
- package/esm5/lib/services/google-analytics/google-analytics.service.js +0 -128
- package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +0 -135
- package/esm5/lib/services/index.js +0 -7
- package/esm5/lib/services/loading/loading.service.js +0 -109
- package/esm5/lib/services/locations/location.service.js +0 -86
- package/esm5/lib/services/manage-session/manage-session.services.js +0 -111
- package/esm5/lib/services/public-api.js +0 -25
- package/esm5/lib/services/role-guard/role.guard.js +0 -81
- package/esm5/lib/services/role-guard/role.service.js +0 -45
- package/esm5/lib/services/session-storage/session-storage.service.js +0 -96
- package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +0 -190
- package/esm5/lib/window.js +0 -13
- package/esm5/public-api.js +0 -16
- package/fesm5/hmcts-rpx-xui-common-lib.js +0 -9423
- package/fesm5/hmcts-rpx-xui-common-lib.js.map +0 -1
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/components/checkbox-list/checkbox-list.component.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import * as tslib_1 from "tslib";
|
|
7
|
-
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
8
|
-
/**
|
|
9
|
-
* @template T
|
|
10
|
-
*/
|
|
11
|
-
var CheckboxListComponent = /** @class */ (function () {
|
|
12
|
-
function CheckboxListComponent() {
|
|
13
|
-
/**
|
|
14
|
-
* The options to show checkboxes for. Note that the type
|
|
15
|
-
* within the array corresponds to the one for the component.
|
|
16
|
-
*/
|
|
17
|
-
this.options = [];
|
|
18
|
-
/**
|
|
19
|
-
* Whenever the selection changes, this event fires. What is dispatched
|
|
20
|
-
* is the current selection, also retrievable from .selection.
|
|
21
|
-
*/
|
|
22
|
-
this.selectionChange = new EventEmitter();
|
|
23
|
-
}
|
|
24
|
-
Object.defineProperty(CheckboxListComponent.prototype, "selection", {
|
|
25
|
-
/**
|
|
26
|
-
* The currently selected values.
|
|
27
|
-
* Note: This array is immutable, which means pushing and popping will
|
|
28
|
-
* have no effect on which checkboxes are selected.
|
|
29
|
-
*/
|
|
30
|
-
get: /**
|
|
31
|
-
* The currently selected values.
|
|
32
|
-
* Note: This array is immutable, which means pushing and popping will
|
|
33
|
-
* have no effect on which checkboxes are selected.
|
|
34
|
-
* @return {?}
|
|
35
|
-
*/
|
|
36
|
-
function () {
|
|
37
|
-
return this.pSelection ? tslib_1.__spread(this.pSelection) : [];
|
|
38
|
-
},
|
|
39
|
-
set: /**
|
|
40
|
-
* @param {?} value
|
|
41
|
-
* @return {?}
|
|
42
|
-
*/
|
|
43
|
-
function (value) {
|
|
44
|
-
this.pSelection = this.getSelection(value);
|
|
45
|
-
},
|
|
46
|
-
enumerable: true,
|
|
47
|
-
configurable: true
|
|
48
|
-
});
|
|
49
|
-
Object.defineProperty(CheckboxListComponent.prototype, "allSelected", {
|
|
50
|
-
/**
|
|
51
|
-
* Indicates whether or not all of the items are selected.
|
|
52
|
-
*/
|
|
53
|
-
get: /**
|
|
54
|
-
* Indicates whether or not all of the items are selected.
|
|
55
|
-
* @return {?}
|
|
56
|
-
*/
|
|
57
|
-
function () {
|
|
58
|
-
return this.selection.length === this.options.length;
|
|
59
|
-
},
|
|
60
|
-
enumerable: true,
|
|
61
|
-
configurable: true
|
|
62
|
-
});
|
|
63
|
-
// Catch any changes to any of the Input() properties.
|
|
64
|
-
// Catch any changes to any of the Input() properties.
|
|
65
|
-
/**
|
|
66
|
-
* @return {?}
|
|
67
|
-
*/
|
|
68
|
-
CheckboxListComponent.prototype.ngOnChanges =
|
|
69
|
-
// Catch any changes to any of the Input() properties.
|
|
70
|
-
/**
|
|
71
|
-
* @return {?}
|
|
72
|
-
*/
|
|
73
|
-
function () {
|
|
74
|
-
// Set up the pre-selected values.
|
|
75
|
-
this.setupPreselection();
|
|
76
|
-
// Now check the current selection to make sure it's valid.
|
|
77
|
-
this.checkSelection();
|
|
78
|
-
};
|
|
79
|
-
Object.defineProperty(CheckboxListComponent.prototype, "hasOptions", {
|
|
80
|
-
/**
|
|
81
|
-
* Indicates whether or not there are any options to render.
|
|
82
|
-
*/
|
|
83
|
-
get: /**
|
|
84
|
-
* Indicates whether or not there are any options to render.
|
|
85
|
-
* @return {?}
|
|
86
|
-
*/
|
|
87
|
-
function () {
|
|
88
|
-
return this.options && this.options.length > 0;
|
|
89
|
-
},
|
|
90
|
-
enumerable: true,
|
|
91
|
-
configurable: true
|
|
92
|
-
});
|
|
93
|
-
Object.defineProperty(CheckboxListComponent.prototype, "isFunctional", {
|
|
94
|
-
get: /**
|
|
95
|
-
* @return {?}
|
|
96
|
-
*/
|
|
97
|
-
function () {
|
|
98
|
-
return this.labelFunction && this.hasOptions;
|
|
99
|
-
},
|
|
100
|
-
enumerable: true,
|
|
101
|
-
configurable: true
|
|
102
|
-
});
|
|
103
|
-
/**
|
|
104
|
-
* Indicates whether or not an item is part of the current selection.
|
|
105
|
-
* @param item The item in question.
|
|
106
|
-
*/
|
|
107
|
-
/**
|
|
108
|
-
* Indicates whether or not an item is part of the current selection.
|
|
109
|
-
* @param {?} item The item in question.
|
|
110
|
-
* @return {?}
|
|
111
|
-
*/
|
|
112
|
-
CheckboxListComponent.prototype.isSelected = /**
|
|
113
|
-
* Indicates whether or not an item is part of the current selection.
|
|
114
|
-
* @param {?} item The item in question.
|
|
115
|
-
* @return {?}
|
|
116
|
-
*/
|
|
117
|
-
function (item) {
|
|
118
|
-
return this.selection.includes(item);
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* If an item is already selected, it will be removed from the selection.
|
|
122
|
-
* Otherwise, it will be added to the selection..
|
|
123
|
-
*/
|
|
124
|
-
/**
|
|
125
|
-
* If an item is already selected, it will be removed from the selection.
|
|
126
|
-
* Otherwise, it will be added to the selection..
|
|
127
|
-
* @param {?} item
|
|
128
|
-
* @return {?}
|
|
129
|
-
*/
|
|
130
|
-
CheckboxListComponent.prototype.toggleItemSelection = /**
|
|
131
|
-
* If an item is already selected, it will be removed from the selection.
|
|
132
|
-
* Otherwise, it will be added to the selection..
|
|
133
|
-
* @param {?} item
|
|
134
|
-
* @return {?}
|
|
135
|
-
*/
|
|
136
|
-
function (item) {
|
|
137
|
-
if (this.pSelection === undefined) {
|
|
138
|
-
// If we don't have any selection at all yet, make it just this item.
|
|
139
|
-
this.pSelection = [item];
|
|
140
|
-
}
|
|
141
|
-
else if (this.isSelected(item)) {
|
|
142
|
-
// If this item is already selected, remove it.
|
|
143
|
-
this.pSelection.splice(this.pSelection.indexOf(item), 1);
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
// If it's not selected, add it.
|
|
147
|
-
this.pSelection.push(item);
|
|
148
|
-
}
|
|
149
|
-
// Indicate that the user has now made an active selection.
|
|
150
|
-
this.pSelectionMade = true;
|
|
151
|
-
// Now emit an event so any containers know about the change to selection.
|
|
152
|
-
this.selectionChange.emit(this.selection);
|
|
153
|
-
};
|
|
154
|
-
/**
|
|
155
|
-
* If all of the items are selected, deselect them all.
|
|
156
|
-
* Otherwise, select them all.
|
|
157
|
-
*/
|
|
158
|
-
/**
|
|
159
|
-
* If all of the items are selected, deselect them all.
|
|
160
|
-
* Otherwise, select them all.
|
|
161
|
-
* @return {?}
|
|
162
|
-
*/
|
|
163
|
-
CheckboxListComponent.prototype.toggleSelectAll = /**
|
|
164
|
-
* If all of the items are selected, deselect them all.
|
|
165
|
-
* Otherwise, select them all.
|
|
166
|
-
* @return {?}
|
|
167
|
-
*/
|
|
168
|
-
function () {
|
|
169
|
-
// Do we already have them all selected?
|
|
170
|
-
if (this.allSelected) {
|
|
171
|
-
// If so, clear out the selection.
|
|
172
|
-
this.pSelection = [];
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
// If not, select all of them.
|
|
176
|
-
this.pSelection = tslib_1.__spread(this.options);
|
|
177
|
-
}
|
|
178
|
-
// Indicate that the user has now made an active selection.
|
|
179
|
-
this.pSelectionMade = true;
|
|
180
|
-
// Now emit an event so any containers know about the change to selection.
|
|
181
|
-
this.selectionChange.emit(this.pSelection);
|
|
182
|
-
};
|
|
183
|
-
/**
|
|
184
|
-
* Use the labelFunction to determine whether the options include the item.
|
|
185
|
-
* This is to handle partial objects being set in the pre-selection where
|
|
186
|
-
* they may not be available by the same mechanism as the options.
|
|
187
|
-
*
|
|
188
|
-
* @param items The array of items in which to look for the item.
|
|
189
|
-
* @param item The item to check in the options.
|
|
190
|
-
*/
|
|
191
|
-
/**
|
|
192
|
-
* Use the labelFunction to determine whether the options include the item.
|
|
193
|
-
* This is to handle partial objects being set in the pre-selection where
|
|
194
|
-
* they may not be available by the same mechanism as the options.
|
|
195
|
-
*
|
|
196
|
-
* @param {?} items The array of items in which to look for the item.
|
|
197
|
-
* @param {?} item The item to check in the options.
|
|
198
|
-
* @return {?}
|
|
199
|
-
*/
|
|
200
|
-
CheckboxListComponent.prototype.containsItem = /**
|
|
201
|
-
* Use the labelFunction to determine whether the options include the item.
|
|
202
|
-
* This is to handle partial objects being set in the pre-selection where
|
|
203
|
-
* they may not be available by the same mechanism as the options.
|
|
204
|
-
*
|
|
205
|
-
* @param {?} items The array of items in which to look for the item.
|
|
206
|
-
* @param {?} item The item to check in the options.
|
|
207
|
-
* @return {?}
|
|
208
|
-
*/
|
|
209
|
-
function (items, item) {
|
|
210
|
-
var _this = this;
|
|
211
|
-
if (this.isFunctional) {
|
|
212
|
-
/** @type {?} */
|
|
213
|
-
var itemLabel_1 = this.labelFunction(item);
|
|
214
|
-
return items.some((/**
|
|
215
|
-
* @param {?} opt
|
|
216
|
-
* @return {?}
|
|
217
|
-
*/
|
|
218
|
-
function (opt) {
|
|
219
|
-
return _this.labelFunction(opt) === itemLabel_1;
|
|
220
|
-
}));
|
|
221
|
-
}
|
|
222
|
-
return false;
|
|
223
|
-
};
|
|
224
|
-
Object.defineProperty(CheckboxListComponent.prototype, "hasPreselection", {
|
|
225
|
-
// Simple utility function to indicate whether there is an active preselection.
|
|
226
|
-
get:
|
|
227
|
-
// Simple utility function to indicate whether there is an active preselection.
|
|
228
|
-
/**
|
|
229
|
-
* @private
|
|
230
|
-
* @return {?}
|
|
231
|
-
*/
|
|
232
|
-
function () {
|
|
233
|
-
return this.preselection && this.preselection.length > 0;
|
|
234
|
-
},
|
|
235
|
-
enumerable: true,
|
|
236
|
-
configurable: true
|
|
237
|
-
});
|
|
238
|
-
// Set up the initially selected values.
|
|
239
|
-
// NOTE: If the preselection changes and the user has NOT made an active selection,
|
|
240
|
-
// the current selection will also be changed. As soon as the user has made an
|
|
241
|
-
// active selection, however, the preselection is no longer relevant.
|
|
242
|
-
// Set up the initially selected values.
|
|
243
|
-
// NOTE: If the preselection changes and the user has NOT made an active selection,
|
|
244
|
-
// the current selection will also be changed. As soon as the user has made an
|
|
245
|
-
// active selection, however, the preselection is no longer relevant.
|
|
246
|
-
/**
|
|
247
|
-
* @private
|
|
248
|
-
* @return {?}
|
|
249
|
-
*/
|
|
250
|
-
CheckboxListComponent.prototype.setupPreselection =
|
|
251
|
-
// Set up the initially selected values.
|
|
252
|
-
// NOTE: If the preselection changes and the user has NOT made an active selection,
|
|
253
|
-
// the current selection will also be changed. As soon as the user has made an
|
|
254
|
-
// active selection, however, the preselection is no longer relevant.
|
|
255
|
-
/**
|
|
256
|
-
* @private
|
|
257
|
-
* @return {?}
|
|
258
|
-
*/
|
|
259
|
-
function () {
|
|
260
|
-
var _this = this;
|
|
261
|
-
if (this.isFunctional && !this.pSelectionMade && this.hasPreselection) {
|
|
262
|
-
/** @type {?} */
|
|
263
|
-
var changed = true;
|
|
264
|
-
if (this.pSelection) {
|
|
265
|
-
// If there is no difference between the arrays, this is not a change.
|
|
266
|
-
changed = this.pSelection.filter((/**
|
|
267
|
-
* @param {?} item
|
|
268
|
-
* @return {?}
|
|
269
|
-
*/
|
|
270
|
-
function (item) {
|
|
271
|
-
return !_this.containsItem(_this.preselection, item);
|
|
272
|
-
})).length > 0;
|
|
273
|
-
}
|
|
274
|
-
// If this is a change, update the selection and then emit an
|
|
275
|
-
// event so any containers know about the change to selection.
|
|
276
|
-
if (changed) {
|
|
277
|
-
this.pSelection = this.getSelection(this.preselection);
|
|
278
|
-
this.selectionChange.emit(this.selection);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
/**
|
|
283
|
-
* @private
|
|
284
|
-
* @param {?} items
|
|
285
|
-
* @return {?}
|
|
286
|
-
*/
|
|
287
|
-
CheckboxListComponent.prototype.getSelection = /**
|
|
288
|
-
* @private
|
|
289
|
-
* @param {?} items
|
|
290
|
-
* @return {?}
|
|
291
|
-
*/
|
|
292
|
-
function (items) {
|
|
293
|
-
var _this = this;
|
|
294
|
-
return tslib_1.__spread(this.options.filter((/**
|
|
295
|
-
* @param {?} opt
|
|
296
|
-
* @return {?}
|
|
297
|
-
*/
|
|
298
|
-
function (opt) {
|
|
299
|
-
return _this.containsItem(items, opt);
|
|
300
|
-
})));
|
|
301
|
-
};
|
|
302
|
-
// The options have changed. Let's make sure the selection
|
|
303
|
-
// doesn't contain anything that's not currently an option.
|
|
304
|
-
// The options have changed. Let's make sure the selection
|
|
305
|
-
// doesn't contain anything that's not currently an option.
|
|
306
|
-
/**
|
|
307
|
-
* @private
|
|
308
|
-
* @return {?}
|
|
309
|
-
*/
|
|
310
|
-
CheckboxListComponent.prototype.checkSelection =
|
|
311
|
-
// The options have changed. Let's make sure the selection
|
|
312
|
-
// doesn't contain anything that's not currently an option.
|
|
313
|
-
/**
|
|
314
|
-
* @private
|
|
315
|
-
* @return {?}
|
|
316
|
-
*/
|
|
317
|
-
function () {
|
|
318
|
-
var _this = this;
|
|
319
|
-
if (this.isFunctional) {
|
|
320
|
-
// Check which of the currently selected items are actually options.
|
|
321
|
-
/** @type {?} */
|
|
322
|
-
var allowedSelection = this.selection.filter((/**
|
|
323
|
-
* @param {?} item
|
|
324
|
-
* @return {?}
|
|
325
|
-
*/
|
|
326
|
-
function (item) {
|
|
327
|
-
return _this.containsItem(_this.options, item);
|
|
328
|
-
}));
|
|
329
|
-
// If any have dropped out, change the selection.
|
|
330
|
-
if (allowedSelection.length !== this.selection.length) {
|
|
331
|
-
this.pSelection = tslib_1.__spread(allowedSelection);
|
|
332
|
-
// And emit an event so any containers know about the change to selection.
|
|
333
|
-
this.selectionChange.emit(this.selection);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
};
|
|
337
|
-
CheckboxListComponent.decorators = [
|
|
338
|
-
{ type: Component, args: [{
|
|
339
|
-
selector: 'xuilib-checkbox-list',
|
|
340
|
-
template: "<div class=\"xui-checkbox-list govuk-checkboxes govuk-checkboxes--small\" *ngIf=\"isFunctional\">\n <div class=\"select-all govuk-checkboxes__item\">\n <input type=\"checkbox\" id=\"select_all\" class=\"govuk-checkboxes__input\" [checked]=\"allSelected\"\n (change)=\"toggleSelectAll()\" />\n <label for=\"select_all\" class=\"govuk-label govuk-checkboxes__label\">Select all / Deselect all</label>\n </div>\n <div class=\"checkbox-items\">\n <div *ngFor=\"let item of options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" [id]=\"'select_' + i\" class=\"govuk-checkboxes__input\" [checked]=\"isSelected(item)\"\n (change)=\"toggleItemSelection(item)\" />\n <label [for]=\"'select_' + i\" class=\"govuk-label govuk-checkboxes__label\">{{labelFunction(item)}}</label>\n </div>\n </div>\n</div>\n",
|
|
341
|
-
encapsulation: ViewEncapsulation.None,
|
|
342
|
-
styles: [".xui-checkbox-list .select-all{margin-bottom:10px}.xui-checkbox-list .checkbox-items{display:flex;flex-direction:column;flex-wrap:wrap;height:100%;max-height:100%;align-items:flex-start;align-content:flex-start;width:100%;max-width:100%;overflow-x:scroll}"]
|
|
343
|
-
}] }
|
|
344
|
-
];
|
|
345
|
-
CheckboxListComponent.propDecorators = {
|
|
346
|
-
options: [{ type: Input }],
|
|
347
|
-
preselection: [{ type: Input }],
|
|
348
|
-
labelFunction: [{ type: Input }],
|
|
349
|
-
selectionChange: [{ type: Output }],
|
|
350
|
-
selection: [{ type: Input }]
|
|
351
|
-
};
|
|
352
|
-
return CheckboxListComponent;
|
|
353
|
-
}());
|
|
354
|
-
export { CheckboxListComponent };
|
|
355
|
-
if (false) {
|
|
356
|
-
/**
|
|
357
|
-
* The options to show checkboxes for. Note that the type
|
|
358
|
-
* within the array corresponds to the one for the component.
|
|
359
|
-
* @type {?}
|
|
360
|
-
*/
|
|
361
|
-
CheckboxListComponent.prototype.options;
|
|
362
|
-
/**
|
|
363
|
-
* The initially-selected values to use. When the component renders,
|
|
364
|
-
* the checkboxes that correspond to these values will be checked.
|
|
365
|
-
* @type {?}
|
|
366
|
-
*/
|
|
367
|
-
CheckboxListComponent.prototype.preselection;
|
|
368
|
-
/**
|
|
369
|
-
* This function is invoked for each item to display the appropriate
|
|
370
|
-
* label beside the checkbox.
|
|
371
|
-
* @type {?}
|
|
372
|
-
*/
|
|
373
|
-
CheckboxListComponent.prototype.labelFunction;
|
|
374
|
-
/**
|
|
375
|
-
* Whenever the selection changes, this event fires. What is dispatched
|
|
376
|
-
* is the current selection, also retrievable from .selection.
|
|
377
|
-
* @type {?}
|
|
378
|
-
*/
|
|
379
|
-
CheckboxListComponent.prototype.selectionChange;
|
|
380
|
-
/**
|
|
381
|
-
* @type {?}
|
|
382
|
-
* @private
|
|
383
|
-
*/
|
|
384
|
-
CheckboxListComponent.prototype.pSelection;
|
|
385
|
-
/**
|
|
386
|
-
* @type {?}
|
|
387
|
-
* @private
|
|
388
|
-
*/
|
|
389
|
-
CheckboxListComponent.prototype.pSelectionMade;
|
|
390
|
-
}
|
|
391
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hlY2tib3gtbGlzdC9jaGVja2JveC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRXJHO0lBQUE7Ozs7O1FBWWtCLFlBQU8sR0FBUSxFQUFFLENBQUM7Ozs7O1FBa0JqQixvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBdUtoRixDQUFDO0lBaEtDLHNCQUNXLDRDQUFTO1FBTnBCOzs7O1dBSUc7Ozs7Ozs7UUFDSDtZQUVFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGtCQUFNLElBQUksQ0FBQyxVQUFVLEVBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxDQUFDOzs7OztRQUNELFVBQXFCLEtBQVU7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLENBQUM7OztPQUhBO0lBVUQsc0JBQVcsOENBQVc7UUFIdEI7O1dBRUc7Ozs7O1FBQ0g7WUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3ZELENBQUM7OztPQUFBO0lBRUQsc0RBQXNEOzs7OztJQUMvQywyQ0FBVzs7Ozs7SUFBbEI7UUFDRSxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBS0Qsc0JBQVcsNkNBQVU7UUFIckI7O1dB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QUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsVUFBVSxvQkFBUSxnQkFBZ0IsQ0FBRSxDQUFDO2dCQUUxQywwRUFBMEU7Z0JBQzFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMzQztTQUNGO0lBQ0gsQ0FBQzs7Z0JBcE1GLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxxM0JBQTJDO29CQUUzQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7aUJBQ3RDOzs7MEJBT0UsS0FBSzsrQkFNTCxLQUFLO2dDQU1MLEtBQUs7a0NBTUwsTUFBTTs0QkFPTixLQUFLOztJQWdLUiw0QkFBQztDQUFBLEFBck1ELElBcU1DO1NBL0xZLHFCQUFxQjs7Ozs7OztJQU1oQyx3Q0FBa0M7Ozs7OztJQU1sQyw2Q0FBa0M7Ozs7OztJQU1sQyw4Q0FBbUQ7Ozs7OztJQU1uRCxnREFBOEU7Ozs7O0lBYzlFLDJDQUF3Qjs7Ozs7SUFDeEIsK0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLWNoZWNrYm94LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJ2NoZWNrYm94LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY2hlY2tib3gtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94TGlzdENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25zIHRvIHNob3cgY2hlY2tib3hlcyBmb3IuIE5vdGUgdGhhdCB0aGUgdHlwZVxuICAgKiB3aXRoaW4gdGhlIGFycmF5IGNvcnJlc3BvbmRzIHRvIHRoZSBvbmUgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogVFtdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsbHktc2VsZWN0ZWQgdmFsdWVzIHRvIHVzZS4gV2hlbiB0aGUgY29tcG9uZW50IHJlbmRlcnMsXG4gICAqIHRoZSBjaGVja2JveGVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGVzZSB2YWx1ZXMgd2lsbCBiZSBjaGVja2VkLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHByZXNlbGVjdGlvbjogVFtdO1xuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludm9rZWQgZm9yIGVhY2ggaXRlbSB0byBkaXNwbGF5IHRoZSBhcHByb3ByaWF0ZVxuICAgKiBsYWJlbCBiZXNpZGUgdGhlIGNoZWNrYm94LlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGxhYmVsRnVuY3Rpb246IChpdGVtOiBUKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZW5ldmVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlcywgdGhpcyBldmVudCBmaXJlcy4gV2hhdCBpcyBkaXNwYXRjaGVkXG4gICAqIGlzIHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgYWxzbyByZXRyaWV2YWJsZSBmcm9tIC5zZWxlY3Rpb24uXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFRbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCB2YWx1ZXMuXG4gICAqIE5vdGU6IFRoaXMgYXJyYXkgaXMgaW1tdXRhYmxlLCB3aGljaCBtZWFucyBwdXNoaW5nIGFuZCBwb3BwaW5nIHdpbGxcbiAgICogaGF2ZSBubyBlZmZlY3Qgb24gd2hpY2ggY2hlY2tib3hlcyBhcmUgc2VsZWN0ZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHNlbGVjdGlvbigpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLnBTZWxlY3Rpb24gPyBbIC4uLnRoaXMucFNlbGVjdGlvbiBdIDogW107XG4gIH1cbiAgcHVibGljIHNldCBzZWxlY3Rpb24odmFsdWU6IFRbXSkge1xuICAgIHRoaXMucFNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIHBTZWxlY3Rpb246IFRbXTtcbiAgcHJpdmF0ZSBwU2VsZWN0aW9uTWFkZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFsbCBvZiB0aGUgaXRlbXMgYXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBhbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSB0aGlzLm9wdGlvbnMubGVuZ3RoO1xuICB9XG5cbiAgLy8gQ2F0Y2ggYW55IGNoYW5nZXMgdG8gYW55IG9mIHRoZSBJbnB1dCgpIHByb3BlcnRpZXMuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAvLyBTZXQgdXAgdGhlIHByZS1zZWxlY3RlZCB2YWx1ZXMuXG4gICAgdGhpcy5zZXR1cFByZXNlbGVjdGlvbigpO1xuICAgIC8vIE5vdyBjaGVjayB0aGUgY3VycmVudCBzZWxlY3Rpb24gdG8gbWFrZSBzdXJlIGl0J3MgdmFsaWQuXG4gICAgdGhpcy5jaGVja1NlbGVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUgYW55IG9wdGlvbnMgdG8gcmVuZGVyLlxuICAgKi9cbiAgcHVibGljIGdldCBoYXNPcHRpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRnVuY3Rpb25hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbEZ1bmN0aW9uICYmIHRoaXMuaGFzT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gaXRlbSBpcyBwYXJ0IG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbi5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gaW4gcXVlc3Rpb24uXG4gICAqL1xuICBwdWJsaWMgaXNTZWxlY3RlZChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLmluY2x1ZGVzKGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGFuIGl0ZW0gaXMgYWxyZWFkeSBzZWxlY3RlZCwgaXQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIHNlbGVjdGlvbi5cbiAgICogT3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBzZWxlY3Rpb24uLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZUl0ZW1TZWxlY3Rpb24oaXRlbTogVCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBTZWxlY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbnkgc2VsZWN0aW9uIGF0IGFsbCB5ZXQsIG1ha2UgaXQganVzdCB0aGlzIGl0ZW0uXG4gICAgICB0aGlzLnBTZWxlY3Rpb24gPSBbIGl0ZW0gXTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNTZWxlY3RlZChpdGVtKSkge1xuICAgICAgLy8gSWYgdGhpcyBpdGVtIGlzIGFscmVhZHkgc2VsZWN0ZWQsIHJlbW92ZSBpdC5cbiAgICAgIHRoaXMucFNlbGVjdGlvbi5zcGxpY2UodGhpcy5wU2VsZWN0aW9uLmluZGV4T2YoaXRlbSksIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBpdCdzIG5vdCBzZWxlY3RlZCwgYWRkIGl0LlxuICAgICAgdGhpcy5wU2VsZWN0aW9uLnB1c2goaXRlbSk7XG4gICAgfVxuXG4gICAgLy8gSW5kaWNhdGUgdGhhdCB0aGUgdXNlciBoYXMgbm93IG1hZGUgYW4gYWN0aXZlIHNlbGVjdGlvbi5cbiAgICB0aGlzLnBTZWxlY3Rpb25NYWRlID0gdHJ1ZTtcblxuICAgIC8vIE5vdyBlbWl0IGFuIGV2ZW50IHNvIGFueSBjb250YWluZXJzIGtub3cgYWJvdXQgdGhlIGNoYW5nZSB0byBzZWxlY3Rpb24uXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogSWYgYWxsIG9mIHRoZSBpdGVtcyBhcmUgc2VsZWN0ZWQsIGRlc2VsZWN0IHRoZW0gYWxsLlxuICAgKiBPdGhlcndpc2UsIHNlbGVjdCB0aGVtIGFsbC5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVTZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgLy8gRG8gd2UgYWxyZWFkeSBoYXZlIHRoZW0gYWxsIHNlbGVjdGVkP1xuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkKSB7XG4gICAgICAvLyBJZiBzbywgY2xlYXIgb3V0IHRoZSBzZWxlY3Rpb24uXG4gICAgICB0aGlzLnBTZWxlY3Rpb24gPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm90LCBzZWxlY3QgYWxsIG9mIHRoZW0uXG4gICAgICB0aGlzLnBTZWxlY3Rpb24gPSBbIC4uLnRoaXMub3B0aW9ucyBdO1xuICAgIH1cblxuICAgIC8vIEluZGljYXRlIHRoYXQgdGhlIHVzZXIgaGFzIG5vdyBtYWRlIGFuIGFjdGl2ZSBzZWxlY3Rpb24uXG4gICAgdGhpcy5wU2VsZWN0aW9uTWFkZSA9IHRydWU7XG5cbiAgICAvLyBOb3cgZW1pdCBhbiBldmVudCBzbyBhbnkgY29udGFpbmVycyBrbm93IGFib3V0IHRoZSBjaGFuZ2UgdG8gc2VsZWN0aW9uLlxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5wU2VsZWN0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhlIGxhYmVsRnVuY3Rpb24gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIG9wdGlvbnMgaW5jbHVkZSB0aGUgaXRlbS5cbiAgICogVGhpcyBpcyB0byBoYW5kbGUgcGFydGlhbCBvYmplY3RzIGJlaW5nIHNldCBpbiB0aGUgcHJlLXNlbGVjdGlvbiB3aGVyZVxuICAgKiB0aGV5IG1heSBub3QgYmUgYXZhaWxhYmxlIGJ5IHRoZSBzYW1lIG1lY2hhbmlzbSBhcyB0aGUgb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW1zIFRoZSBhcnJheSBvZiBpdGVtcyBpbiB3aGljaCB0byBsb29rIGZvciB0aGUgaXRlbS5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gY2hlY2sgaW4gdGhlIG9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgY29udGFpbnNJdGVtKGl0ZW1zOiBUW10sIGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0Z1bmN0aW9uYWwpIHtcbiAgICAgIGNvbnN0IGl0ZW1MYWJlbDogc3RyaW5nID0gdGhpcy5sYWJlbEZ1bmN0aW9uKGl0ZW0pO1xuICAgICAgcmV0dXJuIGl0ZW1zLnNvbWUob3B0ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFiZWxGdW5jdGlvbihvcHQpID09PSBpdGVtTGFiZWw7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gU2ltcGxlIHV0aWxpdHkgZnVuY3Rpb24gdG8gaW5kaWNhdGUgd2hldGhlciB0aGVyZSBpcyBhbiBhY3RpdmUgcHJlc2VsZWN0aW9uLlxuICBwcml2YXRlIGdldCBoYXNQcmVzZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJlc2VsZWN0aW9uICYmIHRoaXMucHJlc2VsZWN0aW9uLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvLyBTZXQgdXAgdGhlIGluaXRpYWxseSBzZWxlY3RlZCB2YWx1ZXMuXG4gIC8vIE5PVEU6IElmIHRoZSBwcmVzZWxlY3Rpb24gY2hhbmdlcyBhbmQgdGhlIHVzZXIgaGFzIE5PVCBtYWRlIGFuIGFjdGl2ZSBzZWxlY3Rpb24sXG4gIC8vIHRoZSBjdXJyZW50IHNlbGVjdGlvbiB3aWxsIGFsc28gYmUgY2hhbmdlZC4gQXMgc29vbiBhcyB0aGUgdXNlciBoYXMgbWFkZSBhblxuICAvLyBhY3RpdmUgc2VsZWN0aW9uLCBob3dldmVyLCB0aGUgcHJlc2VsZWN0aW9uIGlzIG5vIGxvbmdlciByZWxldmFudC5cbiAgcHJpdmF0ZSBzZXR1cFByZXNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Z1bmN0aW9uYWwgJiYgIXRoaXMucFNlbGVjdGlvbk1hZGUgJiYgdGhpcy5oYXNQcmVzZWxlY3Rpb24pIHtcbiAgICAgIGxldCBjaGFuZ2VkID0gdHJ1ZTsgLy8gQXNzdW1lIHRoaXMgaXMgYSBjaGFuZ2UuXG4gICAgICBpZiAodGhpcy5wU2VsZWN0aW9uKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYXJyYXlzLCB0aGlzIGlzIG5vdCBhIGNoYW5nZS5cbiAgICAgICAgY2hhbmdlZCA9IHRoaXMucFNlbGVjdGlvbi5maWx0ZXIoKGl0ZW06IFQpID0+IHtcbiAgICAgICAgICByZXR1cm4gIXRoaXMuY29udGFpbnNJdGVtKHRoaXMucHJlc2VsZWN0aW9uLCBpdGVtKTtcbiAgICAgICAgfSkubGVuZ3RoID4gMDtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhpcyBpcyBhIGNoYW5nZSwgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYW5kIHRoZW4gZW1pdCBhblxuICAgICAgLy8gZXZlbnQgc28gYW55IGNvbnRhaW5lcnMga25vdyBhYm91dCB0aGUgY2hhbmdlIHRvIHNlbGVjdGlvbi5cbiAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMucFNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKHRoaXMucHJlc2VsZWN0aW9uKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3Rpb24oaXRlbXM6IFRbXSk6IFRbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMub3B0aW9ucy5maWx0ZXIob3B0ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbnNJdGVtKGl0ZW1zLCBvcHQpO1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgLy8gVGhlIG9wdGlvbnMgaGF2ZSBjaGFuZ2VkLiBMZXQncyBtYWtlIHN1cmUgdGhlIHNlbGVjdGlvblxuICAvLyBkb2Vzbid0IGNvbnRhaW4gYW55dGhpbmcgdGhhdCdzIG5vdCBjdXJyZW50bHkgYW4gb3B0aW9uLlxuICBwcml2YXRlIGNoZWNrU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRnVuY3Rpb25hbCkge1xuICAgICAgLy8gQ2hlY2sgd2hpY2ggb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtcyBhcmUgYWN0dWFsbHkgb3B0aW9ucy5cbiAgICAgIGNvbnN0IGFsbG93ZWRTZWxlY3Rpb246IFRbXSA9IHRoaXMuc2VsZWN0aW9uLmZpbHRlcigoaXRlbTogVCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluc0l0ZW0odGhpcy5vcHRpb25zLCBpdGVtKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJZiBhbnkgaGF2ZSBkcm9wcGVkIG91dCwgY2hhbmdlIHRoZSBzZWxlY3Rpb24uXG4gICAgICBpZiAoYWxsb3dlZFNlbGVjdGlvbi5sZW5ndGggIT09IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnBTZWxlY3Rpb24gPSBbIC4uLmFsbG93ZWRTZWxlY3Rpb24gXTtcblxuICAgICAgICAvLyBBbmQgZW1pdCBhbiBldmVudCBzbyBhbnkgY29udGFpbmVycyBrbm93IGFib3V0IHRoZSBjaGFuZ2UgdG8gc2VsZWN0aW9uLlxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/components/contact-details/contact-details.component.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Component, Input } from '@angular/core';
|
|
7
|
-
var ContactDetailsComponent = /** @class */ (function () {
|
|
8
|
-
function ContactDetailsComponent() {
|
|
9
|
-
}
|
|
10
|
-
ContactDetailsComponent.decorators = [
|
|
11
|
-
{ type: Component, args: [{
|
|
12
|
-
selector: 'xuilib-contact-details',
|
|
13
|
-
template: "<div class=\"contact-details\" *ngIf=\"data\">\n <h3 class=\"govuk-heading-m\" *ngIf=\"data.title\">{{ data.title }}</h3>\n <p *ngIf=\"data.badgeText\"><span [className]=\"'hmcts-badge ' + data.badgeColour\">{{ data.badgeText }}</span></p>\n <div class=\"email\" *ngIf=\"data.email\"><span class=\"govuk-!-font-weight-bold\">Email: </span> <a href=\"mailto:{{ data.email }}\">{{ data.email }}</a></div>\n <div class=\"phone\" *ngIf=\"data.phone\"><span class=\"govuk-!-font-weight-bold\">Phone: </span>{{ data.phone }}</div>\n <div class=\"opening-times\" *ngIf=\"data.openingTimes\"><span class=\"govuk-!-font-weight-bold\">Opening times: </span>{{ data.openingTimes}}</div>\n</div>\n\n",
|
|
14
|
-
styles: [".contact-details{margin-top:30px}.contact-details h3,.contact-details p{margin-bottom:10px}"]
|
|
15
|
-
}] }
|
|
16
|
-
];
|
|
17
|
-
/** @nocollapse */
|
|
18
|
-
ContactDetailsComponent.ctorParameters = function () { return []; };
|
|
19
|
-
ContactDetailsComponent.propDecorators = {
|
|
20
|
-
data: [{ type: Input }]
|
|
21
|
-
};
|
|
22
|
-
return ContactDetailsComponent;
|
|
23
|
-
}());
|
|
24
|
-
export { ContactDetailsComponent };
|
|
25
|
-
if (false) {
|
|
26
|
-
/** @type {?} */
|
|
27
|
-
ContactDetailsComponent.prototype.data;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pEO0lBU0k7SUFDQSxDQUFDOztnQkFWSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsZ3NCQUErQzs7aUJBRWxEOzs7Ozt1QkFHSSxLQUFLOztJQUlWLDhCQUFDO0NBQUEsQUFYRCxJQVdDO1NBTlksdUJBQXVCOzs7SUFFaEMsdUNBQThDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGFjdERldGFpbHNEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3h1aWxpYi1jb250YWN0LWRldGFpbHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydjb250YWN0LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb250YWN0RGV0YWlsc0NvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YTogQ29udGFjdERldGFpbHNEYXRhTW9kZWw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/components/cookie-banner/cookie-banner.component.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
|
|
7
|
-
import { CookieService } from '../../services/cookie/cookie.service';
|
|
8
|
-
import { windowToken } from '../../window';
|
|
9
|
-
var CookieBannerComponent = /** @class */ (function () {
|
|
10
|
-
function CookieBannerComponent(cookieService, window) {
|
|
11
|
-
this.cookieService = cookieService;
|
|
12
|
-
this.rejectionNotifier = new EventEmitter();
|
|
13
|
-
this.acceptanceNotifier = new EventEmitter();
|
|
14
|
-
this.isCookieBannerVisible = false;
|
|
15
|
-
this.window = (/** @type {?} */ (window));
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* @return {?}
|
|
19
|
-
*/
|
|
20
|
-
CookieBannerComponent.prototype.ngOnInit = /**
|
|
21
|
-
* @return {?}
|
|
22
|
-
*/
|
|
23
|
-
function () {
|
|
24
|
-
this.setState();
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* @return {?}
|
|
28
|
-
*/
|
|
29
|
-
CookieBannerComponent.prototype.acceptCookie = /**
|
|
30
|
-
* @return {?}
|
|
31
|
-
*/
|
|
32
|
-
function () {
|
|
33
|
-
this.cookieService.setCookie(this.identifier, 'true', this.getExpiryDate());
|
|
34
|
-
this.setState(true);
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* @return {?}
|
|
38
|
-
*/
|
|
39
|
-
CookieBannerComponent.prototype.rejectCookie = /**
|
|
40
|
-
* @return {?}
|
|
41
|
-
*/
|
|
42
|
-
function () {
|
|
43
|
-
this.cookieService.setCookie(this.identifier, 'false', this.getExpiryDate());
|
|
44
|
-
this.setState(true);
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* @param {?=} reload
|
|
48
|
-
* @return {?}
|
|
49
|
-
*/
|
|
50
|
-
CookieBannerComponent.prototype.setState = /**
|
|
51
|
-
* @param {?=} reload
|
|
52
|
-
* @return {?}
|
|
53
|
-
*/
|
|
54
|
-
function (reload) {
|
|
55
|
-
if (reload === void 0) { reload = false; }
|
|
56
|
-
this.isCookieBannerVisible = !this.cookieService.checkCookie(this.identifier);
|
|
57
|
-
if (this.areCookiesAccepted()) {
|
|
58
|
-
this.notifyAcceptance();
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this.notifyRejection();
|
|
62
|
-
}
|
|
63
|
-
if (reload) { // reload if any of the buttons are pressed
|
|
64
|
-
this.window.location.reload();
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* @return {?}
|
|
69
|
-
*/
|
|
70
|
-
CookieBannerComponent.prototype.areCookiesAccepted = /**
|
|
71
|
-
* @return {?}
|
|
72
|
-
*/
|
|
73
|
-
function () {
|
|
74
|
-
return this.cookieService.checkCookie(this.identifier) && this.cookieService.getCookie(this.identifier) === 'true';
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* @return {?}
|
|
78
|
-
*/
|
|
79
|
-
CookieBannerComponent.prototype.notifyRejection = /**
|
|
80
|
-
* @return {?}
|
|
81
|
-
*/
|
|
82
|
-
function () {
|
|
83
|
-
this.rejectionNotifier.emit();
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* @return {?}
|
|
87
|
-
*/
|
|
88
|
-
CookieBannerComponent.prototype.notifyAcceptance = /**
|
|
89
|
-
* @return {?}
|
|
90
|
-
*/
|
|
91
|
-
function () {
|
|
92
|
-
this.acceptanceNotifier.emit();
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* @private
|
|
96
|
-
* @return {?}
|
|
97
|
-
*/
|
|
98
|
-
CookieBannerComponent.prototype.getExpiryDate = /**
|
|
99
|
-
* @private
|
|
100
|
-
* @return {?}
|
|
101
|
-
*/
|
|
102
|
-
function () {
|
|
103
|
-
/** @type {?} */
|
|
104
|
-
var now = new Date();
|
|
105
|
-
/** @type {?} */
|
|
106
|
-
var time = now.getTime();
|
|
107
|
-
/** @type {?} */
|
|
108
|
-
var expireTime = time + 31536000000;
|
|
109
|
-
now.setTime(expireTime);
|
|
110
|
-
return now.toUTCString();
|
|
111
|
-
};
|
|
112
|
-
CookieBannerComponent.decorators = [
|
|
113
|
-
{ type: Component, args: [{
|
|
114
|
-
selector: 'xuilib-cookie-banner',
|
|
115
|
-
template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">Cookies on {{appName}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>We use some essential cookies to make this service work.</p>\n <p>We\u2019d also like to use analytics cookies so we can understand how you use the service and make improvements.</p>\n </div>\n </div>\n </div>\n\n <div class=\"govuk-button-group\">\n <button value=\"accept\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"acceptCookie()\">\n Accept analytics cookies\n </button>\n <button value=\"reject\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"rejectCookie()\">\n Reject analytics cookies\n </button>\n <a class=\"govuk-link\" routerLink=\"/cookies\">View cookies</a>\n </div>\n </div>\n</div>"
|
|
116
|
-
}] }
|
|
117
|
-
];
|
|
118
|
-
/** @nocollapse */
|
|
119
|
-
CookieBannerComponent.ctorParameters = function () { return [
|
|
120
|
-
{ type: CookieService },
|
|
121
|
-
{ type: undefined, decorators: [{ type: Inject, args: [windowToken,] }] }
|
|
122
|
-
]; };
|
|
123
|
-
CookieBannerComponent.propDecorators = {
|
|
124
|
-
identifier: [{ type: Input }],
|
|
125
|
-
appName: [{ type: Input }],
|
|
126
|
-
rejectionNotifier: [{ type: Output }],
|
|
127
|
-
acceptanceNotifier: [{ type: Output }]
|
|
128
|
-
};
|
|
129
|
-
return CookieBannerComponent;
|
|
130
|
-
}());
|
|
131
|
-
export { CookieBannerComponent };
|
|
132
|
-
if (false) {
|
|
133
|
-
/** @type {?} */
|
|
134
|
-
CookieBannerComponent.prototype.identifier;
|
|
135
|
-
/** @type {?} */
|
|
136
|
-
CookieBannerComponent.prototype.appName;
|
|
137
|
-
/** @type {?} */
|
|
138
|
-
CookieBannerComponent.prototype.rejectionNotifier;
|
|
139
|
-
/** @type {?} */
|
|
140
|
-
CookieBannerComponent.prototype.acceptanceNotifier;
|
|
141
|
-
/** @type {?} */
|
|
142
|
-
CookieBannerComponent.prototype.isCookieBannerVisible;
|
|
143
|
-
/**
|
|
144
|
-
* @type {?}
|
|
145
|
-
* @private
|
|
146
|
-
*/
|
|
147
|
-
CookieBannerComponent.prototype.window;
|
|
148
|
-
/**
|
|
149
|
-
* @type {?}
|
|
150
|
-
* @private
|
|
151
|
-
*/
|
|
152
|
-
CookieBannerComponent.prototype.cookieService;
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLWJhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29va2llLWJhbm5lci9jb29raWUtYmFubmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDO0lBY0UsK0JBQ21CLGFBQTRCLEVBQ3hCLE1BQVc7UUFEZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVA5QixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzVDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdkQsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBTzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQUEsTUFBTSxFQUFVLENBQUM7SUFDakMsQ0FBQzs7OztJQUVNLHdDQUFROzs7SUFBZjtRQUNFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDOzs7O0lBRU0sNENBQVk7OztJQUFuQjtRQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQzs7OztJQUVNLDRDQUFZOzs7SUFBbkI7UUFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRU0sd0NBQVE7Ozs7SUFBZixVQUFnQixNQUF1QjtRQUF2Qix1QkFBQSxFQUFBLGNBQXVCO1FBQ3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7UUFFRCxJQUFJLE1BQU0sRUFBRSxFQUFFLDJDQUEyQztZQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7Ozs7SUFFTSxrREFBa0I7OztJQUF6QjtRQUNFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLENBQUM7SUFDckgsQ0FBQzs7OztJQUVNLCtDQUFlOzs7SUFBdEI7UUFDRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7OztJQUVNLGdEQUFnQjs7O0lBQXZCO1FBQ0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7Ozs7O0lBRU8sNkNBQWE7Ozs7SUFBckI7O1lBQ1EsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFOztZQUNoQixJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRTs7WUFDcEIsVUFBVSxHQUFHLElBQUksR0FBRyxXQUFXO1FBQ3JDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0JBbkVGLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxxdENBQTZDO2lCQUNoRDs7OztnQkFOUSxhQUFhO2dEQW1CakIsTUFBTSxTQUFDLFdBQVc7Ozs2QkFWcEIsS0FBSzswQkFDTCxLQUFLO29DQUNMLE1BQU07cUNBQ04sTUFBTTs7SUE0RFQsNEJBQUM7Q0FBQSxBQXJFRCxJQXFFQztTQWhFWSxxQkFBcUI7OztJQUNoQywyQ0FBbUM7O0lBQ25DLHdDQUFnQzs7SUFDaEMsa0RBQTZEOztJQUM3RCxtREFBOEQ7O0lBRTlELHNEQUE4Qzs7Ozs7SUFDOUMsdUNBQWdDOzs7OztJQUc5Qiw4Q0FBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb29raWUvY29va2llLnNlcnZpY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3h1aWxpYi1jb29raWUtYmFubmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29va2llLWJhbm5lci5jb21wb25lbnQuaHRtbCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBDb29raWVCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgaWRlbnRpZmllcjogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgYXBwTmFtZTogc3RyaW5nO1xuICBAT3V0cHV0KCkgcHVibGljIHJlamVjdGlvbk5vdGlmaWVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgYWNjZXB0YW5jZU5vdGlmaWVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGlzQ29va2llQmFubmVyVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogV2luZG93O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogQ29va2llU2VydmljZSxcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSB3aW5kb3c6IGFueSxcbiAgKSB7XG4gICAgdGhpcy53aW5kb3cgPSB3aW5kb3cgYXMgV2luZG93O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHRDb29raWUoKTogdm9pZCB7XG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldENvb2tpZSh0aGlzLmlkZW50aWZpZXIsICd0cnVlJywgdGhpcy5nZXRFeHBpcnlEYXRlKCkpO1xuICAgIHRoaXMuc2V0U3RhdGUodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVqZWN0Q29va2llKCk6IHZvaWQge1xuICAgIHRoaXMuY29va2llU2VydmljZS5zZXRDb29raWUodGhpcy5pZGVudGlmaWVyLCAnZmFsc2UnLCB0aGlzLmdldEV4cGlyeURhdGUoKSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdGF0ZShyZWxvYWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuaXNDb29raWVCYW5uZXJWaXNpYmxlID0gIXRoaXMuY29va2llU2VydmljZS5jaGVja0Nvb2tpZSh0aGlzLmlkZW50aWZpZXIpO1xuXG4gICAgaWYgKHRoaXMuYXJlQ29va2llc0FjY2VwdGVkKCkpIHtcbiAgICAgIHRoaXMubm90aWZ5QWNjZXB0YW5jZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5vdGlmeVJlamVjdGlvbigpO1xuICAgIH1cblxuICAgIGlmIChyZWxvYWQpIHsgLy8gcmVsb2FkIGlmIGFueSBvZiB0aGUgYnV0dG9ucyBhcmUgcHJlc3NlZFxuICAgICAgdGhpcy53aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFyZUNvb2tpZXNBY2NlcHRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb29raWVTZXJ2aWNlLmNoZWNrQ29va2llKHRoaXMuaWRlbnRpZmllcikgJiYgdGhpcy5jb29raWVTZXJ2aWNlLmdldENvb2tpZSh0aGlzLmlkZW50aWZpZXIpID09PSAndHJ1ZSc7XG4gIH1cblxuICBwdWJsaWMgbm90aWZ5UmVqZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMucmVqZWN0aW9uTm90aWZpZXIuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG5vdGlmeUFjY2VwdGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5hY2NlcHRhbmNlTm90aWZpZXIuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHBpcnlEYXRlKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCB0aW1lID0gbm93LmdldFRpbWUoKTtcbiAgICBjb25zdCBleHBpcmVUaW1lID0gdGltZSArIDMxNTM2MDAwMDAwOyAgLy8gIGluIDM2NSBkYXlzID0gMzYwMCAqIDEwMDAgKiAyNCAqIDM2NVxuICAgIG5vdy5zZXRUaW1lKGV4cGlyZVRpbWUpO1xuICAgIHJldHVybiBub3cudG9VVENTdHJpbmcoKTtcbiAgfVxuXG59XG4iXX0=
|