@hmcts/rpx-xui-common-lib 1.7.0 → 1.8.0-angular-upgrade-9
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 +4078 -6583
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +15 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
- package/esm2015/hmcts-rpx-xui-common-lib.js +2 -7
- package/esm2015/lib/components/accessibility/accessibility.component.js +13 -17
- package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +45 -127
- package/esm2015/lib/components/contact-details/contact-details.component.js +16 -23
- package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +31 -78
- package/esm2015/lib/components/due-date/due-date.component.js +24 -110
- package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +29 -34
- package/esm2015/lib/components/find-location/find-location.component.js +61 -131
- package/esm2015/lib/components/find-person/find-person.component.js +93 -174
- package/esm2015/lib/components/generic-filter/generic-filter-utils.js +11 -55
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +54 -289
- package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +20 -29
- package/esm2015/lib/components/index.js +2 -7
- package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +23 -33
- package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +34 -35
- package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +16 -22
- package/esm2015/lib/components/pagination/pagination.component.js +28 -38
- package/esm2015/lib/components/public_api.js +33 -33
- package/esm2015/lib/components/search-judicials/search-judicials.component.js +70 -156
- package/esm2015/lib/components/search-location/search-location.component.js +76 -177
- package/esm2015/lib/components/search-venue/search-venue.component.js +62 -154
- package/esm2015/lib/components/selected-case/selected-case.component.js +54 -191
- package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +22 -53
- package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +38 -68
- package/esm2015/lib/components/service-message/service-message.component.js +23 -32
- package/esm2015/lib/components/service-messages/service-messages.component.js +29 -77
- package/esm2015/lib/components/share-case/share-case.component.js +45 -104
- package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +27 -50
- package/esm2015/lib/components/tab/tab.component.js +19 -37
- package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +20 -29
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +13 -17
- package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +13 -17
- package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +16 -23
- package/esm2015/lib/components/user-details/user-details.component.js +47 -57
- package/esm2015/lib/components/user-list/user-list.component.js +19 -28
- package/esm2015/lib/components/user-select/user-select.component.js +23 -64
- package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +21 -67
- package/esm2015/lib/directives/index.js +2 -7
- package/esm2015/lib/directives/let/let.directive.js +16 -49
- package/esm2015/lib/directives/public-api.js +3 -8
- package/esm2015/lib/exui-common-lib.module.js +31 -35
- package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +23 -34
- package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +18 -23
- package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +30 -68
- package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +19 -25
- package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +19 -28
- package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +23 -36
- package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +23 -28
- package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +24 -35
- package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +15 -22
- package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +23 -35
- package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +18 -23
- package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +27 -34
- package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +32 -47
- package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +22 -29
- package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +20 -26
- package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +26 -56
- package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +17 -27
- package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +40 -52
- package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +29 -36
- package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +18 -35
- package/esm2015/lib/gov-ui/components/index.js +2 -7
- package/esm2015/lib/gov-ui/components/public_api.js +21 -7
- package/esm2015/lib/gov-ui/directives/index.js +2 -0
- package/esm2015/lib/gov-ui/directives/public_api.js +2 -0
- package/esm2015/lib/gov-ui/directives/remove-host.directive.js +12 -30
- package/esm2015/lib/gov-ui/gov-ui.service.js +12 -16
- package/esm2015/lib/gov-ui/index.js +2 -7
- package/esm2015/lib/gov-ui/models/banner-data-model.js +1 -16
- package/esm2015/lib/gov-ui/models/checkboxes-model.js +1 -22
- package/esm2015/lib/gov-ui/models/error-messages-model.js +1 -16
- package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +1 -36
- package/esm2015/lib/gov-ui/models/index.js +1 -7
- package/esm2015/lib/gov-ui/models/isession-storage.interface.js +1 -24
- package/esm2015/lib/gov-ui/models/public_api.js +1 -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 +1 -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 -112
- package/esm2015/lib/models/idle-config.model.js +1 -20
- package/esm2015/lib/models/index.js +6 -18
- package/esm2015/lib/models/location.model.js +1 -108
- package/esm2015/lib/models/person.model.js +17 -92
- package/esm2015/lib/models/public_api.js +4 -11
- package/esm2015/lib/models/search-options.model.js +1 -22
- package/esm2015/lib/models/tcDocument.model.js +1 -18
- package/esm2015/lib/models/timeout-notification.model.js +1 -18
- package/esm2015/lib/models/user-details.model.js +1 -22
- package/esm2015/lib/models/user.model.js +1 -25
- package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +19 -92
- package/esm2015/lib/services/cookie/cookie.service.js +19 -78
- package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +16 -51
- package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +11 -35
- package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +21 -101
- package/esm2015/lib/services/filter/filter.service.js +11 -63
- package/esm2015/lib/services/find-person/find-person.service.js +25 -130
- package/esm2015/lib/services/google-analytics/google-analytics.service.js +21 -70
- package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +23 -71
- package/esm2015/lib/services/index.js +2 -7
- package/esm2015/lib/services/loading/loading.service.js +11 -48
- package/esm2015/lib/services/locations/location.service.js +22 -35
- package/esm2015/lib/services/manage-session/manage-session.services.js +21 -70
- package/esm2015/lib/services/public-api.js +13 -18
- package/esm2015/lib/services/role-guard/role.guard.js +24 -61
- package/esm2015/lib/services/role-guard/role.service.js +11 -28
- package/esm2015/lib/services/session-storage/session-storage.service.js +12 -24
- package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +20 -82
- package/esm2015/lib/window.js +1 -10
- package/esm2015/public-api.js +8 -13
- package/esm5/hmcts-rpx-xui-common-lib.js +2 -7
- package/esm5/lib/components/accessibility/accessibility.component.js +10 -15
- package/esm5/lib/components/checkbox-list/checkbox-list.component.js +57 -232
- package/esm5/lib/components/contact-details/contact-details.component.js +14 -22
- package/esm5/lib/components/cookie-banner/cookie-banner.component.js +36 -106
- package/esm5/lib/components/due-date/due-date.component.js +29 -142
- package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +27 -33
- package/esm5/lib/components/find-location/find-location.component.js +71 -167
- package/esm5/lib/components/find-person/find-person.component.js +97 -193
- package/esm5/lib/components/generic-filter/generic-filter-utils.js +13 -57
- package/esm5/lib/components/generic-filter/generic-filter.component.js +83 -408
- package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +19 -32
- package/esm5/lib/components/index.js +2 -7
- package/esm5/lib/components/invite-user-form/invite-user-form.component.js +23 -37
- package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +32 -34
- package/esm5/lib/components/loading-spinner/loading-spinner.component.js +14 -21
- package/esm5/lib/components/pagination/pagination.component.js +28 -45
- package/esm5/lib/components/public_api.js +33 -33
- package/esm5/lib/components/search-judicials/search-judicials.component.js +78 -198
- package/esm5/lib/components/search-location/search-location.component.js +84 -207
- package/esm5/lib/components/search-venue/search-venue.component.js +71 -199
- package/esm5/lib/components/selected-case/selected-case.component.js +72 -279
- package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +22 -61
- package/esm5/lib/components/selected-case-list/selected-case-list.component.js +39 -82
- package/esm5/lib/components/service-message/service-message.component.js +22 -36
- package/esm5/lib/components/service-messages/service-messages.component.js +30 -91
- package/esm5/lib/components/share-case/share-case.component.js +52 -138
- package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +25 -49
- package/esm5/lib/components/tab/tab.component.js +18 -41
- package/esm5/lib/components/tc-confirm/tc-confirm.component.js +19 -32
- package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +10 -15
- package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +10 -15
- package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +14 -22
- package/esm5/lib/components/user-details/user-details.component.js +48 -71
- package/esm5/lib/components/user-list/user-list.component.js +18 -32
- package/esm5/lib/components/user-select/user-select.component.js +27 -92
- package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +21 -70
- package/esm5/lib/directives/index.js +2 -7
- package/esm5/lib/directives/let/let.directive.js +15 -51
- package/esm5/lib/directives/public-api.js +3 -8
- package/esm5/lib/exui-common-lib.module.js +22 -28
- package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +22 -37
- package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +16 -22
- package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +32 -89
- package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +17 -24
- package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +18 -31
- package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +23 -43
- package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +21 -27
- package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +24 -45
- package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +13 -21
- package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +18 -44
- package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +16 -22
- package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +26 -37
- package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +31 -51
- package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +21 -32
- package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +18 -25
- package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +28 -71
- package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +16 -27
- package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +41 -60
- package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +28 -36
- package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +16 -34
- package/esm5/lib/gov-ui/components/index.js +2 -7
- package/esm5/lib/gov-ui/components/public_api.js +21 -7
- package/esm5/lib/gov-ui/directives/index.js +2 -0
- package/esm5/lib/gov-ui/directives/public_api.js +2 -0
- package/esm5/lib/gov-ui/directives/remove-host.directive.js +10 -29
- package/esm5/lib/gov-ui/gov-ui.service.js +9 -14
- package/esm5/lib/gov-ui/index.js +2 -7
- package/esm5/lib/gov-ui/models/banner-data-model.js +1 -16
- package/esm5/lib/gov-ui/models/checkboxes-model.js +1 -22
- package/esm5/lib/gov-ui/models/error-messages-model.js +1 -16
- package/esm5/lib/gov-ui/models/gov-ui-config-model.js +1 -36
- package/esm5/lib/gov-ui/models/index.js +1 -7
- package/esm5/lib/gov-ui/models/isession-storage.interface.js +1 -24
- package/esm5/lib/gov-ui/models/public_api.js +1 -10
- package/esm5/lib/gov-ui/public_api.js +5 -9
- package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +3 -34
- package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
- package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
- package/esm5/lib/gov-ui/validators/date.validator.js +3 -20
- package/esm5/lib/gov-ui/validators/index.js +2 -7
- package/esm5/lib/gov-ui/validators/public_api.js +4 -9
- package/esm5/lib/gov-ui/validators/radio-group.validator.js +3 -15
- package/esm5/lib/models/case-share.model.js +1 -26
- package/esm5/lib/models/contact-details.model.js +7 -31
- package/esm5/lib/models/due-date.model.js +7 -14
- package/esm5/lib/models/feature-user.js +1 -16
- package/esm5/lib/models/filter.model.js +1 -112
- package/esm5/lib/models/idle-config.model.js +1 -20
- package/esm5/lib/models/index.js +6 -18
- package/esm5/lib/models/location.model.js +1 -108
- package/esm5/lib/models/person.model.js +17 -92
- package/esm5/lib/models/public_api.js +4 -11
- package/esm5/lib/models/search-options.model.js +1 -22
- package/esm5/lib/models/tcDocument.model.js +1 -18
- package/esm5/lib/models/timeout-notification.model.js +1 -18
- package/esm5/lib/models/user-details.model.js +1 -22
- package/esm5/lib/models/user.model.js +1 -25
- package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +27 -132
- package/esm5/lib/services/cookie/cookie.service.js +21 -104
- package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +13 -61
- package/esm5/lib/services/feature-toggle/feature-toggle.service.js +12 -70
- package/esm5/lib/services/feature-toggle/launch-darkly.service.js +21 -142
- package/esm5/lib/services/filter/filter.service.js +15 -101
- package/esm5/lib/services/find-person/find-person.service.js +27 -152
- package/esm5/lib/services/google-analytics/google-analytics.service.js +21 -78
- package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +23 -79
- package/esm5/lib/services/index.js +2 -7
- package/esm5/lib/services/loading/loading.service.js +14 -69
- package/esm5/lib/services/locations/location.service.js +11 -50
- package/esm5/lib/services/manage-session/manage-session.services.js +20 -73
- package/esm5/lib/services/public-api.js +13 -18
- package/esm5/lib/services/role-guard/role.guard.js +22 -60
- package/esm5/lib/services/role-guard/role.service.js +10 -28
- package/esm5/lib/services/session-storage/session-storage.service.js +12 -61
- package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +19 -111
- package/esm5/lib/window.js +1 -10
- package/esm5/public-api.js +8 -13
- package/fesm2015/hmcts-rpx-xui-common-lib.js +3152 -4924
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/fesm5/hmcts-rpx-xui-common-lib.js +3458 -6178
- package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
- 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 +4 -2
- package/lib/components/generic-filter/generic-filter.component.d.ts +4 -2
- package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
- package/lib/components/invite-user-form/invite-user-form.component.d.ts +2 -2
- package/lib/components/public_api.d.ts +9 -4
- package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
- package/lib/components/search-location/search-location.component.d.ts +4 -2
- 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 +1 -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 +19 -0
- package/lib/gov-ui/directives/index.d.ts +1 -0
- package/lib/gov-ui/directives/public_api.d.ts +1 -0
- package/lib/gov-ui/public_api.d.ts +2 -1
- 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 +2 -1
- package/lib/window.d.ts +2 -2
- package/package.json +2 -6
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/components/search-venue/search-venue.component.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
6
2
|
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
7
|
-
import { AbstractControl, FormArray, FormBuilder, FormControl } from '@angular/forms';
|
|
3
|
+
import { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
8
4
|
import { Subject } from 'rxjs';
|
|
9
5
|
import { debounceTime, mergeMap } from 'rxjs/operators';
|
|
10
6
|
import { LocationService } from '../../services/locations/location.service';
|
|
@@ -27,22 +23,10 @@ var SearchVenueComponent = /** @class */ (function () {
|
|
|
27
23
|
});
|
|
28
24
|
this.selectedLocations = [];
|
|
29
25
|
}
|
|
30
|
-
|
|
31
|
-
* @return {?}
|
|
32
|
-
*/
|
|
33
|
-
SearchVenueComponent.prototype.ngAfterContentInit = /**
|
|
34
|
-
* @return {?}
|
|
35
|
-
*/
|
|
36
|
-
function () {
|
|
26
|
+
SearchVenueComponent.prototype.ngAfterContentInit = function () {
|
|
37
27
|
this.readyAfterContent = true;
|
|
38
28
|
};
|
|
39
|
-
|
|
40
|
-
* @return {?}
|
|
41
|
-
*/
|
|
42
|
-
SearchVenueComponent.prototype.ngOnInit = /**
|
|
43
|
-
* @return {?}
|
|
44
|
-
*/
|
|
45
|
-
function () {
|
|
29
|
+
SearchVenueComponent.prototype.ngOnInit = function () {
|
|
46
30
|
var _this = this;
|
|
47
31
|
this.displayedLocations = [];
|
|
48
32
|
if (this.control) {
|
|
@@ -50,94 +34,34 @@ var SearchVenueComponent = /** @class */ (function () {
|
|
|
50
34
|
this.findLocationFormGroup.controls.locationSelectedFormControl = this.control;
|
|
51
35
|
}
|
|
52
36
|
}
|
|
53
|
-
this.keyUpSubject$.pipe(debounceTime(500)).subscribe((
|
|
54
|
-
* @param {?} searchValue
|
|
55
|
-
* @return {?}
|
|
56
|
-
*/
|
|
57
|
-
function (searchValue) { return _this.search((/** @type {?} */ (searchValue))); }));
|
|
37
|
+
this.keyUpSubject$.pipe(debounceTime(500)).subscribe(function (searchValue) { return _this.search(searchValue); });
|
|
58
38
|
};
|
|
59
|
-
|
|
60
|
-
* @return {?}
|
|
61
|
-
*/
|
|
62
|
-
SearchVenueComponent.prototype.onKeyDown = /**
|
|
63
|
-
* @return {?}
|
|
64
|
-
*/
|
|
65
|
-
function () {
|
|
39
|
+
SearchVenueComponent.prototype.onKeyDown = function () {
|
|
66
40
|
this.locationChanged.emit();
|
|
67
41
|
};
|
|
68
|
-
|
|
69
|
-
* @param {?} event
|
|
70
|
-
* @return {?}
|
|
71
|
-
*/
|
|
72
|
-
SearchVenueComponent.prototype.onKeyUp = /**
|
|
73
|
-
* @param {?} event
|
|
74
|
-
* @return {?}
|
|
75
|
-
*/
|
|
76
|
-
function (event) {
|
|
42
|
+
SearchVenueComponent.prototype.onKeyUp = function (event) {
|
|
77
43
|
this.showAutocomplete = false;
|
|
78
44
|
this.keyUpSubject$.next(event.target.value);
|
|
79
45
|
};
|
|
80
|
-
|
|
81
|
-
* @return {?}
|
|
82
|
-
*/
|
|
83
|
-
SearchVenueComponent.prototype.onFocus = /**
|
|
84
|
-
* @return {?}
|
|
85
|
-
*/
|
|
86
|
-
function () {
|
|
46
|
+
SearchVenueComponent.prototype.onFocus = function () {
|
|
87
47
|
this.showAutocomplete = false;
|
|
88
48
|
};
|
|
89
49
|
Object.defineProperty(SearchVenueComponent.prototype, "displayedLocationsDuplicationFiltered", {
|
|
90
|
-
get:
|
|
91
|
-
* @return {?}
|
|
92
|
-
*/
|
|
93
|
-
function () {
|
|
50
|
+
get: function () {
|
|
94
51
|
var _this = this;
|
|
95
|
-
return this.displayedLocations.filter((
|
|
96
|
-
* @param {?} location
|
|
97
|
-
* @return {?}
|
|
98
|
-
*/
|
|
99
|
-
function (location) { return !_this.selectedLocations.map((/**
|
|
100
|
-
* @param {?} selectedLocation
|
|
101
|
-
* @return {?}
|
|
102
|
-
*/
|
|
103
|
-
function (selectedLocation) { return selectedLocation.epimms_id; })).includes(location.epimms_id) && location.court_name; }));
|
|
52
|
+
return this.displayedLocations.filter(function (location) { return !_this.selectedLocations.map(function (selectedLocation) { return selectedLocation.epimms_id; }).includes(location.epimms_id) && location.court_name; });
|
|
104
53
|
},
|
|
105
54
|
enumerable: true,
|
|
106
55
|
configurable: true
|
|
107
56
|
});
|
|
108
|
-
|
|
109
|
-
* @param {?} term
|
|
110
|
-
* @return {?}
|
|
111
|
-
*/
|
|
112
|
-
SearchVenueComponent.prototype.filter = /**
|
|
113
|
-
* @param {?} term
|
|
114
|
-
* @return {?}
|
|
115
|
-
*/
|
|
116
|
-
function (term) {
|
|
57
|
+
SearchVenueComponent.prototype.filter = function (term) {
|
|
117
58
|
var _this = this;
|
|
118
|
-
this.searchLocations(term).pipe(mergeMap((
|
|
119
|
-
|
|
120
|
-
* @return {?}
|
|
121
|
-
*/
|
|
122
|
-
function (apiData) {
|
|
123
|
-
/** @type {?} */
|
|
124
|
-
var apiFilter = apiData.filter((/**
|
|
125
|
-
* @param {?} apiLocation
|
|
126
|
-
* @return {?}
|
|
127
|
-
*/
|
|
128
|
-
function (apiLocation) { return !_this.selectedLocations.map((/**
|
|
129
|
-
* @param {?} selectedLocation
|
|
130
|
-
* @return {?}
|
|
131
|
-
*/
|
|
132
|
-
function (selectedLocation) { return selectedLocation.epimms_id; })).includes(apiLocation.epimms_id); }));
|
|
59
|
+
this.searchLocations(term).pipe(mergeMap(function (apiData) {
|
|
60
|
+
var apiFilter = apiData.filter(function (apiLocation) { return !_this.selectedLocations.map(function (selectedLocation) { return selectedLocation.epimms_id; }).includes(apiLocation.epimms_id); });
|
|
133
61
|
_this.displayedLocations = apiFilter;
|
|
134
62
|
_this.searchInProgress = false;
|
|
135
63
|
return apiFilter;
|
|
136
|
-
}))
|
|
137
|
-
* @param {?} location
|
|
138
|
-
* @return {?}
|
|
139
|
-
*/
|
|
140
|
-
function (location) {
|
|
64
|
+
})).subscribe(function (location) {
|
|
141
65
|
if (term === location.court_name) {
|
|
142
66
|
_this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(location);
|
|
143
67
|
_this.displayedLocations = [];
|
|
@@ -145,34 +69,18 @@ var SearchVenueComponent = /** @class */ (function () {
|
|
|
145
69
|
_this.showAutocomplete = false;
|
|
146
70
|
}
|
|
147
71
|
_this.searchInProgress = false;
|
|
148
|
-
})
|
|
72
|
+
});
|
|
149
73
|
};
|
|
150
|
-
|
|
151
|
-
* @param {?=} selection
|
|
152
|
-
* @return {?}
|
|
153
|
-
*/
|
|
154
|
-
SearchVenueComponent.prototype.onSelectionChange = /**
|
|
155
|
-
* @param {?=} selection
|
|
156
|
-
* @return {?}
|
|
157
|
-
*/
|
|
158
|
-
function (selection) {
|
|
74
|
+
SearchVenueComponent.prototype.onSelectionChange = function (selection) {
|
|
159
75
|
if (this.findLocationFormGroup.controls.findLocationFormControl instanceof FormArray) {
|
|
160
|
-
|
|
76
|
+
this.findLocationFormGroup.controls.locationSelectedFormControl.push(new FormControl(selection.epimms_id));
|
|
161
77
|
}
|
|
162
78
|
else {
|
|
163
79
|
this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(selection);
|
|
164
80
|
}
|
|
165
81
|
this.locationChanged.emit(selection);
|
|
166
82
|
};
|
|
167
|
-
|
|
168
|
-
* @param {?} currentValue
|
|
169
|
-
* @return {?}
|
|
170
|
-
*/
|
|
171
|
-
SearchVenueComponent.prototype.search = /**
|
|
172
|
-
* @param {?} currentValue
|
|
173
|
-
* @return {?}
|
|
174
|
-
*/
|
|
175
|
-
function (currentValue) {
|
|
83
|
+
SearchVenueComponent.prototype.search = function (currentValue) {
|
|
176
84
|
this.searchInProgress = true;
|
|
177
85
|
this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
|
|
178
86
|
if (!currentValue || !currentValue.length) {
|
|
@@ -186,105 +94,69 @@ var SearchVenueComponent = /** @class */ (function () {
|
|
|
186
94
|
this.searchInProgress = false;
|
|
187
95
|
}
|
|
188
96
|
};
|
|
189
|
-
|
|
190
|
-
* @param {?} selectedLocation
|
|
191
|
-
* @return {?}
|
|
192
|
-
*/
|
|
193
|
-
SearchVenueComponent.prototype.getDisplayName = /**
|
|
194
|
-
* @param {?} selectedLocation
|
|
195
|
-
* @return {?}
|
|
196
|
-
*/
|
|
197
|
-
function (selectedLocation) {
|
|
97
|
+
SearchVenueComponent.prototype.getDisplayName = function (selectedLocation) {
|
|
198
98
|
return selectedLocation.court_name;
|
|
199
99
|
};
|
|
200
|
-
|
|
201
|
-
* @param {?} term
|
|
202
|
-
* @return {?}
|
|
203
|
-
*/
|
|
204
|
-
SearchVenueComponent.prototype.searchLocations = /**
|
|
205
|
-
* @param {?} term
|
|
206
|
-
* @return {?}
|
|
207
|
-
*/
|
|
208
|
-
function (term) {
|
|
100
|
+
SearchVenueComponent.prototype.searchLocations = function (term) {
|
|
209
101
|
return this.locationService.searchLocations(this.serviceIds, this.locationType, term);
|
|
210
102
|
};
|
|
211
|
-
|
|
212
|
-
* @return {?}
|
|
213
|
-
*/
|
|
214
|
-
SearchVenueComponent.prototype.getControlCourtNameValue = /**
|
|
215
|
-
* @return {?}
|
|
216
|
-
*/
|
|
217
|
-
function () {
|
|
103
|
+
SearchVenueComponent.prototype.getControlCourtNameValue = function () {
|
|
218
104
|
return this.findLocationFormGroup && this.findLocationFormGroup.controls && this.findLocationFormGroup.controls.locationSelectedFormControl.value ?
|
|
219
|
-
|
|
105
|
+
this.findLocationFormGroup.controls.locationSelectedFormControl.value.court_name : '';
|
|
220
106
|
};
|
|
221
|
-
SearchVenueComponent.decorators = [
|
|
222
|
-
{ type: Component, args: [{
|
|
223
|
-
selector: 'xuilib-search-venue',
|
|
224
|
-
template: "<div class=\"auto-complete-container\">\n <div *ngIf=\"readyAfterContent\" class=\"autocomplete__wrapper\">\n <input\n [formControl]=\"findLocationFormGroup.controls.findLocationFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n (keydown)=\"onKeyDown()\"\n (keyup)=\"onKeyUp($event)\"\n (focus)=\"onFocus()\"\n class=\"autocomplete__input autocomplete__input--default search-box\"\n [attr.disabled]=\"!disabled ? null: disabled\"\n [value]=\"getControlCourtNameValue()\"\n #inputSelectedLocation>\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of displayedLocationsDuplicationFiltered\"\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(location) }}\n </mat-option>\n <mat-option *ngIf=\"!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">{{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n </div>\n</div>\n",
|
|
225
|
-
styles: [".autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%;background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:#fd0 solid 3px;outline-offset:0;box-shadow:inset 0 0 0 2px}.autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:550px;display:inline-block;margin-right:4px}"]
|
|
226
|
-
}] }
|
|
227
|
-
];
|
|
228
|
-
/** @nocollapse */
|
|
229
107
|
SearchVenueComponent.ctorParameters = function () { return [
|
|
230
108
|
{ type: LocationService },
|
|
231
109
|
{ type: FormBuilder }
|
|
232
110
|
]; };
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
111
|
+
__decorate([
|
|
112
|
+
Input(),
|
|
113
|
+
__metadata("design:type", AbstractControl)
|
|
114
|
+
], SearchVenueComponent.prototype, "control", void 0);
|
|
115
|
+
__decorate([
|
|
116
|
+
Input(),
|
|
117
|
+
__metadata("design:type", Boolean)
|
|
118
|
+
], SearchVenueComponent.prototype, "disabled", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
Input(),
|
|
121
|
+
__metadata("design:type", String)
|
|
122
|
+
], SearchVenueComponent.prototype, "locationType", void 0);
|
|
123
|
+
__decorate([
|
|
124
|
+
Input(),
|
|
125
|
+
__metadata("design:type", Array)
|
|
126
|
+
], SearchVenueComponent.prototype, "selectedLocations", void 0);
|
|
127
|
+
__decorate([
|
|
128
|
+
Input(),
|
|
129
|
+
__metadata("design:type", String)
|
|
130
|
+
], SearchVenueComponent.prototype, "serviceIds", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
Input(),
|
|
133
|
+
__metadata("design:type", Boolean)
|
|
134
|
+
], SearchVenueComponent.prototype, "submitted", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
ViewChild('inputSelectedLocation', { read: ElementRef }),
|
|
137
|
+
__metadata("design:type", ElementRef)
|
|
138
|
+
], SearchVenueComponent.prototype, "autoCompleteInputBox", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
Input(),
|
|
141
|
+
__metadata("design:type", Boolean)
|
|
142
|
+
], SearchVenueComponent.prototype, "showAutocomplete", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
Input(),
|
|
145
|
+
__metadata("design:type", Array)
|
|
146
|
+
], SearchVenueComponent.prototype, "displayedLocations", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
Output(),
|
|
149
|
+
__metadata("design:type", Object)
|
|
150
|
+
], SearchVenueComponent.prototype, "locationChanged", void 0);
|
|
151
|
+
SearchVenueComponent = __decorate([
|
|
152
|
+
Component({
|
|
153
|
+
selector: 'xuilib-search-venue',
|
|
154
|
+
template: "<div class=\"auto-complete-container\">\n <div *ngIf=\"readyAfterContent\" class=\"autocomplete__wrapper\">\n <input\n [formControl]=\"findLocationFormGroup.controls.findLocationFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n (keydown)=\"onKeyDown()\"\n (keyup)=\"onKeyUp($event)\"\n (focus)=\"onFocus()\"\n class=\"autocomplete__input autocomplete__input--default search-box\"\n [attr.disabled]=\"!disabled ? null: disabled\"\n [value]=\"getControlCourtNameValue()\"\n #inputSelectedLocation>\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of displayedLocationsDuplicationFiltered\"\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(location) }}\n </mat-option>\n <mat-option *ngIf=\"!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">{{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n </div>\n</div>\n",
|
|
155
|
+
styles: [".autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%;background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:#fd0 solid 3px;outline-offset:0;box-shadow:inset 0 0 0 2px}.autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:550px;display:inline-block;margin-right:4px}"]
|
|
156
|
+
}),
|
|
157
|
+
__metadata("design:paramtypes", [LocationService, FormBuilder])
|
|
158
|
+
], SearchVenueComponent);
|
|
245
159
|
return SearchVenueComponent;
|
|
246
160
|
}());
|
|
247
161
|
export { SearchVenueComponent };
|
|
248
|
-
if (false) {
|
|
249
|
-
/** @type {?} */
|
|
250
|
-
SearchVenueComponent.prototype.control;
|
|
251
|
-
/** @type {?} */
|
|
252
|
-
SearchVenueComponent.prototype.disabled;
|
|
253
|
-
/** @type {?} */
|
|
254
|
-
SearchVenueComponent.prototype.locationType;
|
|
255
|
-
/** @type {?} */
|
|
256
|
-
SearchVenueComponent.prototype.selectedLocations;
|
|
257
|
-
/** @type {?} */
|
|
258
|
-
SearchVenueComponent.prototype.serviceIds;
|
|
259
|
-
/** @type {?} */
|
|
260
|
-
SearchVenueComponent.prototype.submitted;
|
|
261
|
-
/** @type {?} */
|
|
262
|
-
SearchVenueComponent.prototype.autoCompleteInputBox;
|
|
263
|
-
/** @type {?} */
|
|
264
|
-
SearchVenueComponent.prototype.findLocationFormGroup;
|
|
265
|
-
/** @type {?} */
|
|
266
|
-
SearchVenueComponent.prototype.showAutocomplete;
|
|
267
|
-
/** @type {?} */
|
|
268
|
-
SearchVenueComponent.prototype.displayedLocations;
|
|
269
|
-
/** @type {?} */
|
|
270
|
-
SearchVenueComponent.prototype.locationChanged;
|
|
271
|
-
/** @type {?} */
|
|
272
|
-
SearchVenueComponent.prototype.selectedLocation;
|
|
273
|
-
/**
|
|
274
|
-
* @type {?}
|
|
275
|
-
* @private
|
|
276
|
-
*/
|
|
277
|
-
SearchVenueComponent.prototype.minSearchCharacters;
|
|
278
|
-
/** @type {?} */
|
|
279
|
-
SearchVenueComponent.prototype.keyUpSubject$;
|
|
280
|
-
/** @type {?} */
|
|
281
|
-
SearchVenueComponent.prototype.readyAfterContent;
|
|
282
|
-
/** @type {?} */
|
|
283
|
-
SearchVenueComponent.prototype.searchInProgress;
|
|
284
|
-
/**
|
|
285
|
-
* @type {?}
|
|
286
|
-
* @private
|
|
287
|
-
*/
|
|
288
|
-
SearchVenueComponent.prototype.locationService;
|
|
289
|
-
}
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXZlbnVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtdmVudWUvc2VhcmNoLXZlbnVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQy9GLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFMUU7SUF1QkUsOEJBQTZCLGVBQWdDLEVBQUUsRUFBZTtRQUFqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQjdDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBRzNCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRTVELHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFD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Q0wsS0FBSztrQ0FDTCxNQUFNOztJQXdHVCwyQkFBQztDQUFBLEFBeEhELElBd0hDO1NBbkhZLG9CQUFvQjs7O0lBQy9CLHVDQUF5Qzs7SUFDekMsd0NBQXlDOztJQUN6Qyw0Q0FBMEM7O0lBQzFDLGlEQUEyRDs7SUFDM0QsMENBQXdDOztJQUN4Qyx5Q0FBMkM7O0lBQzNDLG9EQUFrSDs7SUFDbEgscURBQXdDOztJQUN4QyxnREFBa0Q7O0lBQ2xELGtEQUE0RDs7SUFDNUQsK0NBQTZFOztJQUM3RSxnREFBK0M7Ozs7O0lBQy9DLG1EQUF5Qzs7SUFDekMsNkNBQXNEOztJQUN0RCxpREFBMEM7O0lBQzFDLGdEQUF5Qzs7Ozs7SUFFN0IsK0NBQWlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9jYXRpb25CeUVQSU1NU01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtMb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2F0aW9ucy9sb2NhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlYXJjaC12ZW51ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hWZW51ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZUlkczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRTZWxlY3RlZExvY2F0aW9uJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBwdWJsaWMgYXV0b0NvbXBsZXRlSW5wdXRCb3g6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHB1YmxpYyBmaW5kTG9jYXRpb25Gb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXllZExvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW107XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxMb2NhdGlvbkJ5RVBJTU1TTW9kZWw+KCk7XG4gIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDM7XG4gIHB1YmxpYyBrZXlVcFN1YmplY3QkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZHlBZnRlckNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaEluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uU2VydmljZTogTG9jYXRpb25TZXJ2aWNlLCBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cCA9IGZiLmdyb3VwKHtcbiAgICAgIGZpbmRMb2NhdGlvbkZvcm1Db250cm9sOiBbbnVsbF0sXG4gICAgICBsb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2w6IFtudWxsXVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWFkeUFmdGVyQ29udGVudCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sID0gdGhpcy5jb250cm9sO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtleVVwU3ViamVjdCQucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHNlYXJjaFZhbHVlID0+IHRoaXMuc2VhcmNoKHNlYXJjaFZhbHVlIGFzIHN0cmluZykpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLm5leHQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5ZWRMb2NhdGlvbnNEdXBsaWNhdGlvbkZpbHRlcmVkKCk6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMuZmlsdGVyKFxuICAgICAgbG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGxvY2F0aW9uLmVwaW1tc19pZCkgJiYgbG9jYXRpb24uY291cnRfbmFtZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoTG9jYXRpb25zKHRlcm0pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoYXBpRGF0YTogTG9jYXRpb25CeUVQSU1NU01vZGVsW10pID0+IHtcbiAgICAgICAgY29uc3QgYXBpRmlsdGVyID0gYXBpRGF0YS5maWx0ZXIoXG4gICAgICAgICAgYXBpTG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGFwaUxvY2F0aW9uLmVwaW1tc19pZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBhcGlGaWx0ZXI7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gYXBpRmlsdGVyO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZShsb2NhdGlvbiA9PiB7XG4gICAgICBpZiAodGVybSA9PT0gbG9jYXRpb24uY291cnRfbmFtZSkge1xuICAgICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUobG9jYXRpb24pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZExvY2F0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24/OiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMuZmluZExvY2F0aW9uRm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wgYXMgRm9ybUFycmF5KS5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3Rpb24uZXBpbW1zX2lkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKGN1cnJlbnRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSAhIWN1cnJlbnRWYWx1ZSAmJiAoY3VycmVudFZhbHVlLmxlbmd0aCA+PSB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpO1xuICAgIGlmICghY3VycmVudFZhbHVlIHx8ICFjdXJyZW50VmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QXV0b2NvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZpbHRlcihjdXJyZW50VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRMb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRMb2NhdGlvbi5jb3VydF9uYW1lO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaExvY2F0aW9ucyh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvY2F0aW9uQnlFUElNTVNNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlLnNlYXJjaExvY2F0aW9ucyh0aGlzLnNlcnZpY2VJZHMsIHRoaXMubG9jYXRpb25UeXBlLCB0ZXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250cm9sQ291cnROYW1lVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlID9cbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgYXMgTG9jYXRpb25CeUVQSU1NU01vZGVsKS5jb3VydF9uYW1lIDogJyc7XG4gIH1cbn1cbiJdfQ==
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXZlbnVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtdmVudWUvc2VhcmNoLXZlbnVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9GLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFPMUU7SUFrQkUsOEJBQTZCLGVBQWdDLEVBQUUsRUFBZTtRQUFqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQjdDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBRzNCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRTVELHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxLQUFLLENB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RDtRQUFULE1BQU0sRUFBRTs7aUVBQW9FO0lBWGxFLG9CQUFvQjtRQUxoQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLHN0Q0FBNEM7O1NBRTdDLENBQUM7eUNBbUI4QyxlQUFlLEVBQU0sV0FBVztPQWxCbkUsb0JBQW9CLENBbUhoQztJQUFELDJCQUFDO0NBQUEsQUFuSEQsSUFtSEM7U0FuSFksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9jYXRpb25CeUVQSU1NU01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtMb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2F0aW9ucy9sb2NhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlYXJjaC12ZW51ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hWZW51ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZUlkczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRTZWxlY3RlZExvY2F0aW9uJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBwdWJsaWMgYXV0b0NvbXBsZXRlSW5wdXRCb3g6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHB1YmxpYyBmaW5kTG9jYXRpb25Gb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXllZExvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW107XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxMb2NhdGlvbkJ5RVBJTU1TTW9kZWw+KCk7XG4gIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDM7XG4gIHB1YmxpYyBrZXlVcFN1YmplY3QkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZHlBZnRlckNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaEluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uU2VydmljZTogTG9jYXRpb25TZXJ2aWNlLCBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cCA9IGZiLmdyb3VwKHtcbiAgICAgIGZpbmRMb2NhdGlvbkZvcm1Db250cm9sOiBbbnVsbF0sXG4gICAgICBsb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2w6IFtudWxsXVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWFkeUFmdGVyQ29udGVudCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sID0gdGhpcy5jb250cm9sO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtleVVwU3ViamVjdCQucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHNlYXJjaFZhbHVlID0+IHRoaXMuc2VhcmNoKHNlYXJjaFZhbHVlIGFzIHN0cmluZykpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLm5leHQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5ZWRMb2NhdGlvbnNEdXBsaWNhdGlvbkZpbHRlcmVkKCk6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMuZmlsdGVyKFxuICAgICAgbG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGxvY2F0aW9uLmVwaW1tc19pZCkgJiYgbG9jYXRpb24uY291cnRfbmFtZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoTG9jYXRpb25zKHRlcm0pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoYXBpRGF0YTogTG9jYXRpb25CeUVQSU1NU01vZGVsW10pID0+IHtcbiAgICAgICAgY29uc3QgYXBpRmlsdGVyID0gYXBpRGF0YS5maWx0ZXIoXG4gICAgICAgICAgYXBpTG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGFwaUxvY2F0aW9uLmVwaW1tc19pZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBhcGlGaWx0ZXI7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gYXBpRmlsdGVyO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZShsb2NhdGlvbiA9PiB7XG4gICAgICBpZiAodGVybSA9PT0gbG9jYXRpb24uY291cnRfbmFtZSkge1xuICAgICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUobG9jYXRpb24pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZExvY2F0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24/OiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMuZmluZExvY2F0aW9uRm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wgYXMgRm9ybUFycmF5KS5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3Rpb24uZXBpbW1zX2lkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKGN1cnJlbnRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSAhIWN1cnJlbnRWYWx1ZSAmJiAoY3VycmVudFZhbHVlLmxlbmd0aCA+PSB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpO1xuICAgIGlmICghY3VycmVudFZhbHVlIHx8ICFjdXJyZW50VmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QXV0b2NvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZpbHRlcihjdXJyZW50VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRMb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRMb2NhdGlvbi5jb3VydF9uYW1lO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaExvY2F0aW9ucyh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvY2F0aW9uQnlFUElNTVNNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlLnNlYXJjaExvY2F0aW9ucyh0aGlzLnNlcnZpY2VJZHMsIHRoaXMubG9jYXRpb25UeXBlLCB0ZXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250cm9sQ291cnROYW1lVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlID9cbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgYXMgTG9jYXRpb25CeUVQSU1NU01vZGVsKS5jb3VydF9uYW1lIDogJyc7XG4gIH1cbn1cbiJdfQ==
|