@tuki-io/tuki-widgets 0.0.197 → 0.0.198
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +1 -1
- package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +1 -1
- package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +3 -3
- package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +2 -2
- package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +17 -17
- package/esm2020/lib/widgets.component.mjs +9 -9
- package/esm2020/lib/widgets.module.mjs +1 -1
- package/esm2020/lib/widgets.service.mjs +1 -1
- package/esm2020/public-api.mjs +1 -1
- package/esm2020/user-creation/src/app.constants.mjs +2 -16
- package/esm2020/user-creation/src/classes/site.mjs +1 -1
- package/esm2020/user-creation/src/shared/material.module.mjs +7 -35
- package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +19 -43
- package/esm2020/user-creation/src/shared/services/utils.mjs +1 -1
- package/esm2020/user-creation/src/shared/shared.module.mjs +4 -27
- package/esm2020/user-creation/src/user-creation.module.mjs +7 -40
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +20 -512
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.mjs +3 -3
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +34 -80
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +19 -83
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +124 -594
- package/esm2020/user-device-manage/public-api.mjs +1 -1
- package/esm2020/user-device-manage/src/app.constants.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/line-association.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/line-directory.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/line.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/notification.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/recording-options.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/site-defaults.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +1 -1
- package/esm2020/user-device-manage/src/classes/types.mjs +1 -1
- package/esm2020/user-device-manage/src/common-functions.mjs +1 -1
- package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +3 -3
- package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +3 -3
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +3 -3
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +3 -3
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +1 -1
- package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +3 -3
- package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +2 -2
- package/esm2020/user-device-manage/src/environments/environment.mjs +1 -1
- package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +1 -1
- package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
- package/esm2020/user-device-manage/src/material.module.mjs +1 -1
- package/esm2020/user-device-manage/src/notifications/notification.component.mjs +3 -3
- package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +1 -1
- package/esm2020/user-device-manage/src/services/api.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/device.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/dns.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/line.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/notification.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/site-settings.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/user.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/utils.service.mjs +1 -1
- package/esm2020/user-device-manage/src/services/validation.service.mjs +1 -1
- package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +1 -1
- package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +3 -3
- package/esm2020/user-manage/public-api.mjs +1 -1
- package/esm2020/user-manage/src/app.constants.mjs +1 -1
- package/esm2020/user-manage/src/classes/device.mjs +1 -1
- package/esm2020/user-manage/src/classes/line-association-interface.mjs +1 -1
- package/esm2020/user-manage/src/classes/line-association.mjs +1 -1
- package/esm2020/user-manage/src/classes/line-call-info-display.mjs +1 -1
- package/esm2020/user-manage/src/classes/line-directory.mjs +1 -1
- package/esm2020/user-manage/src/classes/line.mjs +1 -1
- package/esm2020/user-manage/src/classes/notification.mjs +1 -1
- package/esm2020/user-manage/src/classes/pagination.mjs +1 -1
- package/esm2020/user-manage/src/classes/recording-options.mjs +1 -1
- package/esm2020/user-manage/src/classes/simplified-user.mjs +1 -1
- package/esm2020/user-manage/src/classes/table-data.mjs +1 -1
- package/esm2020/user-manage/src/classes/translation-pattern.mjs +1 -1
- package/esm2020/user-manage/src/classes/user-list.mjs +1 -1
- package/esm2020/user-manage/src/common-functions.mjs +1 -1
- package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
- package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +3 -3
- package/esm2020/user-manage/src/environments/environment.mjs +1 -1
- package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +1 -1
- package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
- package/esm2020/user-manage/src/material.module.mjs +1 -1
- package/esm2020/user-manage/src/notifications/notification.component.mjs +3 -3
- package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +1 -1
- package/esm2020/user-manage/src/services/api.service.mjs +1 -1
- package/esm2020/user-manage/src/services/dns.service.mjs +1 -1
- package/esm2020/user-manage/src/services/line.service.mjs +1 -1
- package/esm2020/user-manage/src/services/notification.service.mjs +1 -1
- package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +1 -1
- package/esm2020/user-manage/src/services/site-settings.service.mjs +1 -1
- package/esm2020/user-manage/src/services/sorting-utils.service.mjs +1 -1
- package/esm2020/user-manage/src/services/user.service.mjs +1 -1
- package/esm2020/user-manage/src/services/utils.service.mjs +1 -1
- package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +3 -3
- package/esm2020/user-manage/src/user-info/user-info.component.mjs +3 -3
- package/esm2020/user-manage/src/user-manage-widget.component.mjs +2 -2
- package/esm2020/user-manage/src/user-manage.module.mjs +1 -1
- package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +3 -3
- package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +3 -3
- package/esm2020/users-list/public-api.mjs +1 -1
- package/esm2020/users-list/src/app.constants.mjs +1 -1
- package/esm2020/users-list/src/classes/app-location.mjs +1 -1
- package/esm2020/users-list/src/classes/device.mjs +1 -1
- package/esm2020/users-list/src/classes/line.mjs +1 -1
- package/esm2020/users-list/src/classes/move-user.mjs +1 -1
- package/esm2020/users-list/src/classes/notification.mjs +1 -1
- package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
- package/esm2020/users-list/src/classes/table-data.mjs +1 -1
- package/esm2020/users-list/src/classes/user-list.mjs +1 -1
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +3 -3
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +3 -3
- package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +3 -3
- package/esm2020/users-list/src/services/api-webex.service.mjs +1 -1
- package/esm2020/users-list/src/services/api.service.mjs +1 -1
- package/esm2020/users-list/src/services/dns.service.mjs +1 -1
- package/esm2020/users-list/src/services/events-communication.service.mjs +1 -1
- package/esm2020/users-list/src/services/notification.service.mjs +1 -1
- package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +1 -1
- package/esm2020/users-list/src/services/site-settings.service.mjs +1 -1
- package/esm2020/users-list/src/services/user.service.mjs +1 -1
- package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +3 -3
- package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +3 -3
- package/esm2020/users-list/src/utils/common-functions.mjs +1 -1
- package/esm2020/users-list/src/utils/utils.service.mjs +1 -1
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +2 -2
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +20 -20
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +325 -1913
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +18 -18
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +18 -18
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +10 -10
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets.mjs +8 -8
- package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +2 -2
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +20 -20
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +313 -1868
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +18 -18
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +18 -18
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +10 -10
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets.mjs +8 -8
- package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -1
- package/package.json +1 -1
- package/user-creation/src/app.constants.d.ts +0 -10
- package/user-creation/src/shared/material.module.d.ts +1 -5
- package/user-creation/src/shared/services/user-creation-api.service.d.ts +2 -8
- package/user-creation/src/shared/shared.module.d.ts +1 -3
- package/user-creation/src/user-creation.module.d.ts +10 -17
- package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +7 -83
- package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +4 -11
- package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +0 -18
- package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.d.ts +56 -71
- package/esm2020/user-creation/src/classes/notification.mjs +0 -32
- package/esm2020/user-creation/src/environments/environment.mjs +0 -11
- package/esm2020/user-creation/src/interfaces/user-creation-wizard.interfaces.mjs +0 -19
- package/esm2020/user-creation/src/shared/components/notification/notification.component.mjs +0 -38
- package/esm2020/user-creation/src/shared/pipes/truncate.pipe.mjs +0 -30
- package/esm2020/user-creation/src/shared/services/notification.service.mjs +0 -62
- package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +0 -14
- package/esm2020/user-creation/src/utils/build-savable-end-user.mjs +0 -147
- package/esm2020/user-creation/src/utils/device-name-validation.mjs +0 -23
- package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +0 -26
- package/user-creation/src/classes/notification.d.ts +0 -18
- package/user-creation/src/environments/environment.d.ts +0 -9
- package/user-creation/src/interfaces/user-creation-wizard.interfaces.d.ts +0 -502
- package/user-creation/src/shared/components/notification/notification.component.d.ts +0 -19
- package/user-creation/src/shared/pipes/truncate.pipe.d.ts +0 -7
- package/user-creation/src/shared/services/notification.service.d.ts +0 -18
- package/user-creation/src/utils/app-loader/app-loader.d.ts +0 -6
- package/user-creation/src/utils/build-savable-end-user.d.ts +0 -23
- package/user-creation/src/utils/device-name-validation.d.ts +0 -6
- package/user-creation/src/utils/parse-device-name-rule.d.ts +0 -8
|
@@ -11,9 +11,9 @@ export class UserOverviewStepComponent {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
UserOverviewStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserOverviewStepComponent, deps: [{ token: i1.UserCreationWizardService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
UserOverviewStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserOverviewStepComponent, selector: "tk-user-overview-step", ngImport: i0, template: "<section class=\"details-step-content\">\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">User details</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"USER_DETAILS_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of USER_DETAILS_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let user of userCreationWizardService.overviewUsers\">\r\n <span>{{ user.userId }}</span>\r\n <span>{{ user.firstName }}</span>\r\n <span>{{ user.lastName }}</span>\r\n <span>{{ user.email }}</span>\r\n <span>{{ user.userTemplate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Lines</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"LINES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of LINES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let line of userCreationWizardService.overviewLines\">\r\n <span>{{ line.number }}</span>\r\n <span>{{ line.did }}</span>\r\n <span>{{ line.routePartitionName }}</span>\r\n <span>{{ line.css }}</span>\r\n <span>{{ line.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Devices</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"DEVICES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of DEVICES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let device of userCreationWizardService.overviewDevices\">\r\n <span>{{ device.name }}</span>\r\n <span>{{ device.deviceType }}</span>\r\n <span>{{ device.lines }}</span>\r\n <span>{{ device.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <
|
|
14
|
+
UserOverviewStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserOverviewStepComponent, selector: "tk-user-overview-step", ngImport: i0, template: "<section class=\"details-step-content\">\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">User details</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"USER_DETAILS_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of USER_DETAILS_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let user of userCreationWizardService.overviewUsers\">\r\n <span>{{ user.userId }}</span>\r\n <span>{{ user.firstName }}</span>\r\n <span>{{ user.lastName }}</span>\r\n <span>{{ user.email }}</span>\r\n <span>{{ user.userTemplate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Lines</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"LINES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of LINES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let line of userCreationWizardService.overviewLines\">\r\n <span>{{ line.number }}</span>\r\n <span>{{ line.did }}</span>\r\n <span>{{ line.routePartitionName }}</span>\r\n <span>{{ line.css }}</span>\r\n <span>{{ line.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Devices</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"DEVICES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of DEVICES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let device of userCreationWizardService.overviewDevices\">\r\n <span>{{ device.name }}</span>\r\n <span>{{ device.deviceType }}</span>\r\n <span>{{ device.lines }}</span>\r\n <span>{{ device.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Single Number Reach</h3>\r\n <div class=\"details-step-section__content\"></div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Features</h3>\r\n <div class=\"details-step-section__content\">\r\n <span style=\"margin-right: 1rem;\">Voicemail</span> 557046\r\n </div>\r\n </section>\r\n </div>\r\n\r\n</section>", styles: [".details-step-content{display:flex;flex-direction:column;gap:24px}.details-step-divider{border-top:1px solid #d9d9d9}.details-step-sections{display:flex;flex-direction:column}.details-step-section{display:flex;flex-direction:column;gap:16px}.details-step-section+.details-step-section{border-top:1px solid #d9d9d9}.details-step-section__title{margin:0;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:100%;letter-spacing:0;color:#333}.preview-list{display:flex;flex-direction:column;gap:4px}.preview-list__header,.preview-list__row{display:grid;grid-template-columns:repeat(var(--preview-cols, 1),minmax(0,1fr));column-gap:24px}.preview-list__header>span,.preview-list__row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--Gray-700, #737480);font-family:Inter,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.preview-list__row>span{min-width:0;color:var(--Gray-700, #333);font-family:Inter,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:150%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserOverviewStepComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
|
-
args: [{ selector: 'tk-user-overview-step', template: "<section class=\"details-step-content\">\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">User details</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"USER_DETAILS_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of USER_DETAILS_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let user of userCreationWizardService.overviewUsers\">\r\n <span>{{ user.userId }}</span>\r\n <span>{{ user.firstName }}</span>\r\n <span>{{ user.lastName }}</span>\r\n <span>{{ user.email }}</span>\r\n <span>{{ user.userTemplate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Lines</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"LINES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of LINES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let line of userCreationWizardService.overviewLines\">\r\n <span>{{ line.number }}</span>\r\n <span>{{ line.did }}</span>\r\n <span>{{ line.routePartitionName }}</span>\r\n <span>{{ line.css }}</span>\r\n <span>{{ line.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Devices</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"DEVICES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of DEVICES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let device of userCreationWizardService.overviewDevices\">\r\n <span>{{ device.name }}</span>\r\n <span>{{ device.deviceType }}</span>\r\n <span>{{ device.lines }}</span>\r\n <span>{{ device.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <
|
|
17
|
+
args: [{ selector: 'tk-user-overview-step', template: "<section class=\"details-step-content\">\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">User details</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"USER_DETAILS_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of USER_DETAILS_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let user of userCreationWizardService.overviewUsers\">\r\n <span>{{ user.userId }}</span>\r\n <span>{{ user.firstName }}</span>\r\n <span>{{ user.lastName }}</span>\r\n <span>{{ user.email }}</span>\r\n <span>{{ user.userTemplate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Lines</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"LINES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of LINES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let line of userCreationWizardService.overviewLines\">\r\n <span>{{ line.number }}</span>\r\n <span>{{ line.did }}</span>\r\n <span>{{ line.routePartitionName }}</span>\r\n <span>{{ line.css }}</span>\r\n <span>{{ line.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Devices</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"DEVICES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of DEVICES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let device of userCreationWizardService.overviewDevices\">\r\n <span>{{ device.name }}</span>\r\n <span>{{ device.deviceType }}</span>\r\n <span>{{ device.lines }}</span>\r\n <span>{{ device.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Single Number Reach</h3>\r\n <div class=\"details-step-section__content\"></div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Features</h3>\r\n <div class=\"details-step-section__content\">\r\n <span style=\"margin-right: 1rem;\">Voicemail</span> 557046\r\n </div>\r\n </section>\r\n </div>\r\n\r\n</section>", styles: [".details-step-content{display:flex;flex-direction:column;gap:24px}.details-step-divider{border-top:1px solid #d9d9d9}.details-step-sections{display:flex;flex-direction:column}.details-step-section{display:flex;flex-direction:column;gap:16px}.details-step-section+.details-step-section{border-top:1px solid #d9d9d9}.details-step-section__title{margin:0;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:100%;letter-spacing:0;color:#333}.preview-list{display:flex;flex-direction:column;gap:4px}.preview-list__header,.preview-list__row{display:grid;grid-template-columns:repeat(var(--preview-cols, 1),minmax(0,1fr));column-gap:24px}.preview-list__header>span,.preview-list__row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--Gray-700, #737480);font-family:Inter,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.preview-list__row>span{min-width:0;color:var(--Gray-700, #333);font-family:Inter,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:150%}\n"] }]
|
|
18
18
|
}], ctorParameters: function () { return [{ type: i1.UserCreationWizardService }]; } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1vdmVydmlldy1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy93aWRnZXRzL3VzZXItY3JlYXRpb24td2l6YXJkL2NvbXBvbmVudHMvdXNlci1vdmVydmlldy1zdGVwL3VzZXItb3ZlcnZpZXctc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvd2lkZ2V0cy91c2VyLWNyZWF0aW9uLXdpemFyZC9jb21wb25lbnRzL3VzZXItb3ZlcnZpZXctc3RlcC91c2VyLW92ZXJ2aWV3LXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVExQyxNQUFNLE9BQU8seUJBQXlCO0lBS2xDLFlBQ1cseUJBQW9EO1FBQXBELDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFMdEQsc0JBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN0RixlQUFVLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3RSxpQkFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFJckUsQ0FBQzs7dUhBUEsseUJBQXlCOzJHQUF6Qix5QkFBeUIsNkRDUnRDLG81R0FvRlU7NEZENUVHLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3VzZXItY3JlYXRpb24td2l6YXJkLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0ay11c2VyLW92ZXJ2aWV3LXN0ZXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItb3ZlcnZpZXctc3RlcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91c2VyLW92ZXJ2aWV3LXN0ZXAuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlck92ZXJ2aWV3U3RlcENvbXBvbmVudCB7XHJcbiAgICByZWFkb25seSBVU0VSX0RFVEFJTFNfQ09MUyA9IFsnVXNlciBJRCcsICdGaXJzdCBuYW1lJywgJ0xhc3QgbmFtZScsICdFbWFpbCcsICdVc2VyIHRlbXBsYXRlcyddO1xyXG4gICAgcmVhZG9ubHkgTElORVNfQ09MUyA9IFsnTnVtYmVyJywgJ0RJRCcsICdSb3V0ZSBwYXJ0aXRpb24gbmFtZScsICdDU1MnLCAnRGVzY3JpcHRpb24nXTtcclxuICAgIHJlYWRvbmx5IERFVklDRVNfQ09MUyA9IFsnTmFtZScsICdEZXZpY2UgdHlwZScsICdMaW5lcycsICdEZXNjcmlwdGlvbiddO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyB1c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlOiBVc2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlXHJcbiAgICApIHt9XHJcbn0iLCI8c2VjdGlvbiBjbGFzcz1cImRldGFpbHMtc3RlcC1jb250ZW50XCI+XHJcbiAgPGRpdiBjbGFzcz1cImRldGFpbHMtc3RlcC1zZWN0aW9uc1wiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJkZXRhaWxzLXN0ZXAtc2VjdGlvblwiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJkZXRhaWxzLXN0ZXAtc2VjdGlvbl9fdGl0bGVcIj5Vc2VyIGRldGFpbHM8L2gzPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1zdGVwLXNlY3Rpb25fX2NvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1saXN0XCIgW3N0eWxlLi0tcHJldmlldy1jb2xzXT1cIlVTRVJfREVUQUlMU19DT0xTLmxlbmd0aFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctbGlzdF9faGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBjb2wgb2YgVVNFUl9ERVRBSUxTX0NPTFNcIj57eyBjb2wgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWxpc3RfX3Jvd1wiICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uub3ZlcnZpZXdVc2Vyc1wiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyB1c2VyLnVzZXJJZCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgdXNlci5maXJzdE5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHVzZXIubGFzdE5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHVzZXIuZW1haWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHVzZXIudXNlclRlbXBsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJkZXRhaWxzLXN0ZXAtZGl2aWRlclwiPjwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJkZXRhaWxzLXN0ZXAtc2VjdGlvbnNcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiZGV0YWlscy1zdGVwLXNlY3Rpb25cIj5cclxuICAgICAgPGgzIGNsYXNzPVwiZGV0YWlscy1zdGVwLXNlY3Rpb25fX3RpdGxlXCI+TGluZXM8L2gzPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1zdGVwLXNlY3Rpb25fX2NvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1saXN0XCIgW3N0eWxlLi0tcHJldmlldy1jb2xzXT1cIkxJTkVTX0NPTFMubGVuZ3RoXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1saXN0X19oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGNvbCBvZiBMSU5FU19DT0xTXCI+e3sgY29sIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1saXN0X19yb3dcIiAqbmdGb3I9XCJsZXQgbGluZSBvZiB1c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLm92ZXJ2aWV3TGluZXNcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgbGluZS5udW1iZXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGxpbmUuZGlkIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBsaW5lLnJvdXRlUGFydGl0aW9uTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgbGluZS5jc3MgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGxpbmUuZGVzY3JpcHRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImRldGFpbHMtc3RlcC1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImRldGFpbHMtc3RlcC1zZWN0aW9uc1wiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJkZXRhaWxzLXN0ZXAtc2VjdGlvblwiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJkZXRhaWxzLXN0ZXAtc2VjdGlvbl9fdGl0bGVcIj5EZXZpY2VzPC9oMz5cclxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtc3RlcC1zZWN0aW9uX19jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctbGlzdFwiIFtzdHlsZS4tLXByZXZpZXctY29sc109XCJERVZJQ0VTX0NPTFMubGVuZ3RoXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1saXN0X19oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGNvbCBvZiBERVZJQ0VTX0NPTFNcIj57eyBjb2wgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWxpc3RfX3Jvd1wiICpuZ0Zvcj1cImxldCBkZXZpY2Ugb2YgdXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5vdmVydmlld0RldmljZXNcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgZGV2aWNlLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGRldmljZS5kZXZpY2VUeXBlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBkZXZpY2UubGluZXMgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGRldmljZS5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRldGFpbHMtc3RlcC1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImRldGFpbHMtc3RlcC1zZWN0aW9uc1wiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJkZXRhaWxzLXN0ZXAtc2VjdGlvblwiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJkZXRhaWxzLXN0ZXAtc2VjdGlvbl9fdGl0bGVcIj5TaW5nbGUgTnVtYmVyIFJlYWNoPC9oMz5cclxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtc3RlcC1zZWN0aW9uX19jb250ZW50XCI+PC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJkZXRhaWxzLXN0ZXAtZGl2aWRlclwiPjwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJkZXRhaWxzLXN0ZXAtc2VjdGlvbnNcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiZGV0YWlscy1zdGVwLXNlY3Rpb25cIj5cclxuICAgICAgPGgzIGNsYXNzPVwiZGV0YWlscy1zdGVwLXNlY3Rpb25fX3RpdGxlXCI+RmVhdHVyZXM8L2gzPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1zdGVwLXNlY3Rpb25fX2NvbnRlbnRcIj5cclxuICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMXJlbTtcIj5Wb2ljZW1haWw8L3NwYW4+IDU1NzA0NlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICA8L2Rpdj5cclxuXHJcbjwvc2VjdGlvbj4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
2
|
import { USER_CREATION_TYPES } from '../../../../app.constants';
|
|
3
3
|
import { FormControl } from "@angular/forms";
|
|
4
|
-
import {
|
|
4
|
+
import { filter, of, startWith, Subject, switchMap, takeUntil, tap } from "rxjs";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../../user-creation-wizard.service";
|
|
7
7
|
import * as i2 from "../../../../shared/services/user-creation-api.service";
|
|
@@ -11,16 +11,11 @@ import * as i5 from "@angular/material/tooltip";
|
|
|
11
11
|
import * as i6 from "@angular/material/form-field";
|
|
12
12
|
import * as i7 from "@angular/material/select";
|
|
13
13
|
import * as i8 from "@angular/material/core";
|
|
14
|
-
import * as i9 from "../../../../utils/app-loader/app-loader";
|
|
15
14
|
export class UserTemplateStepComponent {
|
|
16
|
-
get isLoading() {
|
|
17
|
-
return this.loadingSites || this.loadingSiteData;
|
|
18
|
-
}
|
|
19
15
|
constructor(userCreationWizardService, userCreationService, fb) {
|
|
20
16
|
this.userCreationWizardService = userCreationWizardService;
|
|
21
17
|
this.userCreationService = userCreationService;
|
|
22
18
|
this.fb = fb;
|
|
23
|
-
this.validityChange = new EventEmitter();
|
|
24
19
|
this.formGroup = this.fb.group({
|
|
25
20
|
userType: [USER_CREATION_TYPES.CUCM],
|
|
26
21
|
siteId: [null],
|
|
@@ -28,8 +23,8 @@ export class UserTemplateStepComponent {
|
|
|
28
23
|
});
|
|
29
24
|
this.userCreationType = USER_CREATION_TYPES.CUCM;
|
|
30
25
|
this.USER_CREATION_TYPES = USER_CREATION_TYPES;
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
this.defaultTemplateName = 'User 8851 Office';
|
|
27
|
+
this.fallbackTemplateId = '-1';
|
|
33
28
|
this.destroy$ = new Subject();
|
|
34
29
|
this.sitesList = [];
|
|
35
30
|
this.sitesList$ = this.userCreationService.sitesList$.pipe(takeUntil(this.destroy$), tap((res) => this.sitesList = res));
|
|
@@ -38,19 +33,15 @@ export class UserTemplateStepComponent {
|
|
|
38
33
|
const templateControl = this.formGroup.get('userTemplateId');
|
|
39
34
|
const currentTemplateId = templateControl?.value;
|
|
40
35
|
const selectedSiteId = this.formGroup.get('siteId')?.value;
|
|
41
|
-
|
|
42
|
-
// template => template.name === this.defaultTemplateName
|
|
43
|
-
// );
|
|
36
|
+
const defaultTemplate = this.templates.find(template => template.name === this.defaultTemplateName);
|
|
44
37
|
const hasSelectedSite = selectedSiteId !== null && selectedSiteId !== undefined;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
if (hasSelectedSite && defaultTemplate && String(currentTemplateId || '') !== String(defaultTemplate.id)) {
|
|
39
|
+
templateControl?.setValue(String(defaultTemplate.id));
|
|
40
|
+
}
|
|
48
41
|
}), takeUntil(this.destroy$));
|
|
49
42
|
this.isTemplateSelectable = false;
|
|
50
43
|
this.templates = [];
|
|
51
|
-
this.
|
|
52
|
-
this.loadingSiteData = false;
|
|
53
|
-
this.templateToggleFormControl = new FormControl(false);
|
|
44
|
+
this.templateToggleFormControl = new FormControl(true);
|
|
54
45
|
}
|
|
55
46
|
ngOnInit() {
|
|
56
47
|
this.formGroup.get('userType').valueChanges
|
|
@@ -64,24 +55,10 @@ export class UserTemplateStepComponent {
|
|
|
64
55
|
.pipe(
|
|
65
56
|
// filter((value) => value !== null && value !== undefined),
|
|
66
57
|
tap((value) => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
return this.userCreationWizardService.setSelectedSite(value);
|
|
73
|
-
}), takeUntil(this.destroy$), switchMap((value) => {
|
|
74
|
-
if (value === null || value === undefined || value === '') {
|
|
75
|
-
this.loadingSiteData = false;
|
|
76
|
-
return of(null);
|
|
77
|
-
}
|
|
78
|
-
this.loadingSiteData = true;
|
|
79
|
-
return forkJoin([
|
|
80
|
-
this.userCreationService.fetchAllUserTemplates(Number(value)),
|
|
81
|
-
this.userCreationWizardService.getSiteAllData(Number(value)),
|
|
82
|
-
]).pipe(finalize(() => {
|
|
83
|
-
this.loadingSiteData = false;
|
|
84
|
-
}));
|
|
58
|
+
this.formGroup.get('userTemplateId')?.setValue(this.fallbackTemplateId);
|
|
59
|
+
// return this.userCreationWizardService.setSelectedTemplate(value);
|
|
60
|
+
}), startWith(this.formGroup.get('siteId')?.value), takeUntil(this.destroy$), switchMap((value) => {
|
|
61
|
+
return this.userCreationService.fetchAllUserTemplates(Number(value));
|
|
85
62
|
}))
|
|
86
63
|
.subscribe();
|
|
87
64
|
// .subscribe((value) => {
|
|
@@ -89,39 +66,35 @@ export class UserTemplateStepComponent {
|
|
|
89
66
|
// })
|
|
90
67
|
this.formGroup.get('userTemplateId').valueChanges
|
|
91
68
|
.pipe(filter((value) => value !== null && value !== undefined && String(value).trim().length > 0), takeUntil(this.destroy$), switchMap((value) => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
69
|
+
if (String(value) === this.fallbackTemplateId) {
|
|
70
|
+
this.userCreationWizardService.setSelectedTemplate(this.defaultTemplateName);
|
|
71
|
+
return of(null);
|
|
72
|
+
}
|
|
96
73
|
return this.userCreationService.getUserTemplateToken(String(value), String(String(this.customerId)))
|
|
97
74
|
.pipe(tap((payload) => {
|
|
98
75
|
const selectedTemplate = this.templates.find(template => String(template.id) === String(value));
|
|
99
|
-
this.userCreationWizardService.setSelectedTemplate(selectedTemplate);
|
|
76
|
+
this.userCreationWizardService.setSelectedTemplate(selectedTemplate?.name || null);
|
|
100
77
|
this.userCreationWizardService.applyTemplateTokenPayload(payload);
|
|
101
78
|
}));
|
|
102
79
|
}))
|
|
103
80
|
.subscribe();
|
|
104
|
-
this.templateToggleFormControl.valueChanges
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
});
|
|
81
|
+
// this.templateToggleFormControl.valueChanges
|
|
82
|
+
// .pipe(startWith(true), takeUntil(this.destroy$), distinctUntilChanged())
|
|
83
|
+
// .subscribe((value) => {
|
|
84
|
+
// if(value === true) {
|
|
85
|
+
// const siteId = this.formGroup.get('siteId')?.value || 7095;
|
|
86
|
+
// this.userCreationService.fetchAllUserTemplates(siteId)
|
|
87
|
+
// .subscribe();
|
|
88
|
+
// } else {
|
|
89
|
+
// this.formGroup.get('userTemplateId')?.reset();
|
|
90
|
+
// }
|
|
91
|
+
// });
|
|
116
92
|
this.getData();
|
|
117
|
-
this.formGroup.statusChanges
|
|
118
|
-
.pipe(startWith(this.formGroup.status), takeUntil(this.destroy$))
|
|
119
|
-
.subscribe(() => this.validityChange.emit(this.isStepValid()));
|
|
120
93
|
}
|
|
121
94
|
reseFieldstForm() {
|
|
122
95
|
this.formGroup.get('siteId')?.reset();
|
|
123
96
|
this.formGroup.get('userTemplateId')?.reset();
|
|
124
|
-
this.userCreationWizardService.setSelectedTemplate();
|
|
97
|
+
this.userCreationWizardService.setSelectedTemplate(null);
|
|
125
98
|
this.userCreationWizardService.resetTemplateDrivenData();
|
|
126
99
|
}
|
|
127
100
|
getData() {
|
|
@@ -131,10 +104,7 @@ export class UserTemplateStepComponent {
|
|
|
131
104
|
.subscribe();
|
|
132
105
|
}
|
|
133
106
|
getSites(isOnlyWithLocations) {
|
|
134
|
-
this.
|
|
135
|
-
return this.userCreationService.getAllCustomerSites(String(this.customerId), isOnlyWithLocations).pipe(finalize(() => {
|
|
136
|
-
this.loadingSites = false;
|
|
137
|
-
}));
|
|
107
|
+
return this.userCreationService.getAllCustomerSites(String(this.customerId), isOnlyWithLocations);
|
|
138
108
|
}
|
|
139
109
|
isCUCM(site) {
|
|
140
110
|
return site?.cucm?.id === 2542;
|
|
@@ -144,33 +114,17 @@ export class UserTemplateStepComponent {
|
|
|
144
114
|
const foundedSite = this.sitesList.find((site) => site.id === siteId);
|
|
145
115
|
return siteId && foundedSite ? foundedSite.name : '';
|
|
146
116
|
}
|
|
147
|
-
getSelectedTemplateName() {
|
|
148
|
-
const templateId = this.formGroup.get('userTemplateId')?.value;
|
|
149
|
-
const foundedTemplate = this.templates.find((template) => String(template.id) === String(templateId));
|
|
150
|
-
return templateId && foundedTemplate ? foundedTemplate.name : '';
|
|
151
|
-
}
|
|
152
|
-
isStepValid() {
|
|
153
|
-
const siteId = this.formGroup.get('siteId')?.value;
|
|
154
|
-
const templateId = this.formGroup.get('userTemplateId')?.value;
|
|
155
|
-
return siteId !== null && siteId !== undefined && String(templateId || '').trim().length > 0;
|
|
156
|
-
}
|
|
157
|
-
markStepTouched() {
|
|
158
|
-
this.formGroup.get('siteId')?.markAsTouched();
|
|
159
|
-
this.formGroup.get('userTemplateId')?.markAsTouched();
|
|
160
|
-
}
|
|
161
117
|
ngOnDestroy() {
|
|
162
118
|
this.destroy$.next();
|
|
163
119
|
this.destroy$.complete();
|
|
164
120
|
}
|
|
165
121
|
}
|
|
166
122
|
UserTemplateStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, deps: [{ token: i1.UserCreationWizardService }, { token: i2.UserCreationApiService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
-
UserTemplateStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserTemplateStepComponent, selector: "tk-user-template-step", inputs: { customerId: "customerId" },
|
|
123
|
+
UserTemplateStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserTemplateStepComponent, selector: "tk-user-template-step", inputs: { customerId: "customerId" }, ngImport: i0, template: "<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span *ngIf=\"site.name === 'Berlin' else notBerlinSite\" class=\"type\">{{ 'Multi Tenant' }}</span>\r\n <ng-template #notBerlinSite>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Dedicated Instance' }}</span>\r\n </ng-template>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label>\r\n <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-select-trigger>\r\n <span matTooltip=\"'A new user will be created based on the selected template, including a Cisco 8851 physical device with a single line configured, without SNR (Single Number Reach) and without voicemail.'\">\r\n {{ defaultTemplateName }}\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option [value]=\"fallbackTemplateId\">\r\n {{ defaultTemplateName }}\r\n </mat-option>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i7.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
168
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, decorators: [{
|
|
169
125
|
type: Component,
|
|
170
|
-
args: [{ selector: 'tk-user-template-step', template: "<section class=\"template-step-content\">\r\n <
|
|
126
|
+
args: [{ selector: 'tk-user-template-step', template: "<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span *ngIf=\"site.name === 'Berlin' else notBerlinSite\" class=\"type\">{{ 'Multi Tenant' }}</span>\r\n <ng-template #notBerlinSite>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Dedicated Instance' }}</span>\r\n </ng-template>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label>\r\n <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-select-trigger>\r\n <span matTooltip=\"'A new user will be created based on the selected template, including a Cisco 8851 physical device with a single line configured, without SNR (Single Number Reach) and without voicemail.'\">\r\n {{ defaultTemplateName }}\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option [value]=\"fallbackTemplateId\">\r\n {{ defaultTemplateName }}\r\n </mat-option>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"] }]
|
|
171
127
|
}], ctorParameters: function () { return [{ type: i1.UserCreationWizardService }, { type: i2.UserCreationApiService }, { type: i3.FormBuilder }]; }, propDecorators: { customerId: [{
|
|
172
128
|
type: Input
|
|
173
|
-
}], validityChange: [{
|
|
174
|
-
type: Output
|
|
175
129
|
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy93aWRnZXRzL3VzZXItY3JlYXRpb24td2l6YXJkL2NvbXBvbmVudHMvdXNlci10ZW1wbGF0ZS1zdGVwL3VzZXItdGVtcGxhdGUtc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvd2lkZ2V0cy91c2VyLWNyZWF0aW9uLXdpemFyZC9jb21wb25lbnRzL3VzZXItdGVtcGxhdGUtc3RlcC91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVUzSCxNQUFNLE9BQU8seUJBQXlCO0lBK0NsQyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNyRCxDQUFDO0lBSUQsWUFDVyx5QkFBb0QsRUFDMUMsbUJBQTJDLEVBQzNDLEVBQWU7UUFGekIsOEJBQXlCLEdBQXpCLHlCQUF5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LDI4R0F5RUE7NEZEM0RhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSx1QkFBdUI7K0tBS3hCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVXNlckNyZWF0aW9uV2l6YXJkU2VydmljZSB9IGZyb20gXCIuLi8uLi91c2VyLWNyZWF0aW9uLXdpemFyZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFVTRVJfQ1JFQVRJT05fVFlQRVMgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZpbmFsaXplLCBmb3JrSm9pbiwgb2YsIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFVzZXJDcmVhdGlvbkFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL3VzZXItY3JlYXRpb24tYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2l0ZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9jbGFzc2VzL3NpdGVcIjtcclxuaW1wb3J0IHsgVXNlclRlbXBsYXRlSW50ZXJmYWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2ludGVyZmFjZXMvdXNlci1jcmVhdGlvbi13aXphcmQuaW50ZXJmYWNlc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RrLXVzZXItdGVtcGxhdGUtc3RlcCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VzZXItdGVtcGxhdGUtc3RlcC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyVGVtcGxhdGVTdGVwQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGN1c3RvbWVySWQhOiBudW1iZXI7XHJcbiAgICBAT3V0cHV0KCkgdmFsaWRpdHlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgcHVibGljIGZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgIHVzZXJUeXBlOiBbVVNFUl9DUkVBVElPTl9UWVBFUy5DVUNNXSxcclxuICAgICAgICBzaXRlSWQ6IFtudWxsXSxcclxuICAgICAgICB1c2VyVGVtcGxhdGVJZDogWycnXSxcclxuICAgIH0pO1xyXG5cclxuICAgIHB1YmxpYyB1c2VyQ3JlYXRpb25UeXBlID0gVVNFUl9DUkVBVElPTl9UWVBFUy5DVUNNO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBVU0VSX0NSRUFUSU9OX1RZUEVTID0gVVNFUl9DUkVBVElPTl9UWVBFUztcclxuICAgIC8vIHJlYWRvbmx5IGRlZmF1bHRUZW1wbGF0ZU5hbWUgPSAnVXNlciA4ODUxIE9mZmljZSc7XHJcbiAgICAvLyByZWFkb25seSBmYWxsYmFja1RlbXBsYXRlSWQgPSAnLTEnO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIHByaXZhdGUgc2l0ZXNMaXN0OiBTaXRlW10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2l0ZXNMaXN0JCA9IHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5zaXRlc0xpc3QkLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIHRhcCgocmVzKSA9PiB0aGlzLnNpdGVzTGlzdCA9IHJlcylcclxuICAgICk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVzTGlzdCQgPSB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UudGVtcGxhdGVzTGlzdCQucGlwZShcclxuICAgICAgICB0YXAoKHRlbXBsYXRlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IHRlbXBsYXRlcyB8fCBbXTtcclxuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGVDb250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VGVtcGxhdGVJZCA9IHRlbXBsYXRlQ29udHJvbD8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkU2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWU7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGRlZmF1bHRUZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVzLmZpbmQoXHJcbiAgICAgICAgICAgIC8vICAgICB0ZW1wbGF0ZSA9PiB0ZW1wbGF0ZS5uYW1lID09PSB0aGlzLmRlZmF1bHRUZW1wbGF0ZU5hbWVcclxuICAgICAgICAgICAgLy8gKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGhhc1NlbGVjdGVkU2l0ZSA9IHNlbGVjdGVkU2l0ZUlkICE9PSBudWxsICYmIHNlbGVjdGVkU2l0ZUlkICE9PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIC8vIGlmIChoYXNTZWxlY3RlZFNpdGUgJiYgZGVmYXVsdFRlbXBsYXRlICYmIFN0cmluZyhjdXJyZW50VGVtcGxhdGVJZCB8fCAnJykgIT09IFN0cmluZyhkZWZhdWx0VGVtcGxhdGUuaWQpKSB7XHJcbiAgICAgICAgICAgIC8vICAgICB0ZW1wbGF0ZUNvbnRyb2w/LnNldFZhbHVlKFN0cmluZyhkZWZhdWx0VGVtcGxhdGUuaWQpKTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG4gICAgKTtcclxuXHJcbiAgICBpc1RlbXBsYXRlU2VsZWN0YWJsZSA9IGZhbHNlO1xyXG4gICAgdGVtcGxhdGVzOiBVc2VyVGVtcGxhdGVJbnRlcmZhY2VbXSA9IFtdO1xyXG4gICAgbG9hZGluZ1NpdGVzID0gZmFsc2U7XHJcbiAgICBsb2FkaW5nU2l0ZURhdGEgPSBmYWxzZTtcclxuXHJcbiAgICBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmdTaXRlcyB8fCB0aGlzLmxvYWRpbmdTaXRlRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVUb2dnbGVGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2U6IFVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQ3JlYXRpb25TZXJ2aWNlOiBVc2VyQ3JlYXRpb25BcGlTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVHlwZScpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbmx5V2l0aExvY2F0aW9ucyA9IHZhbHVlID09PSBVU0VSX0NSRUFUSU9OX1RZUEVTLk1UID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVzZUZpZWxkc3RGb3JtKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCdzaXRlSWQnKSEudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5zZXRWYWx1ZSh0aGlzLmZhbGxiYWNrVGVtcGxhdGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRTaXRlID0gdGhpcy5zaXRlc0xpc3QuZmluZChzaXRlID0+IFN0cmluZyhzaXRlLmlkKSA9PT0gU3RyaW5nKHZhbHVlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkU2l0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0Q3VycmVudFNpdGUoc2VsZWN0ZWRTaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5zZXRTZWxlY3RlZFNpdGUodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NpdGVEYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NpdGVEYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4oW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZmV0Y2hBbGxVc2VyVGVtcGxhdGVzKE51bWJlcih2YWx1ZSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UuZ2V0U2l0ZUFsbERhdGEoTnVtYmVyKHZhbHVlKSksXHJcbiAgICAgICAgICAgICAgICAgICAgXSkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NpdGVEYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAvLyAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2codmFsdWUpO1xyXG4gICAgICAgICAgICAvLyB9KVxyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIFN0cmluZyh2YWx1ZSkudHJpbSgpLmxlbmd0aCA+IDApLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIChTdHJpbmcodmFsdWUpID09PSB0aGlzLmZhbGxiYWNrVGVtcGxhdGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0U2VsZWN0ZWRUZW1wbGF0ZSh0aGlzLmRlZmF1bHRUZW1wbGF0ZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0VXNlclRlbXBsYXRlVG9rZW4oU3RyaW5nKHZhbHVlKSwgU3RyaW5nKFN0cmluZyh0aGlzLmN1c3RvbWVySWQpKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKHBheWxvYWQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZCh0ZW1wbGF0ZSA9PiBTdHJpbmcodGVtcGxhdGUuaWQpID09PSBTdHJpbmcodmFsdWUpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0U2VsZWN0ZWRUZW1wbGF0ZShzZWxlY3RlZFRlbXBsYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UuYXBwbHlUZW1wbGF0ZVRva2VuUGF5bG9hZChwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgodHJ1ZSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWUgfHwgNzA5NTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZmV0Y2hBbGxVc2VyVGVtcGxhdGVzKHNpdGVJZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgodGhpcy5mb3JtR3JvdXAuc3RhdHVzKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudmFsaWRpdHlDaGFuZ2UuZW1pdCh0aGlzLmlzU3RlcFZhbGlkKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXNlRmllbGRzdEZvcm0oKSB7XHJcbiAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy5yZXNldCgpO1xyXG4gICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5yZXNldCgpO1xyXG4gICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUoKTtcclxuICAgICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5yZXNldFRlbXBsYXRlRHJpdmVuRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RGF0YSgpIHtcclxuICAgICAgICBjb25zdCBpc09ubHlXaXRoTG9jYXRpb25zID0gdGhpcy5mb3JtR3JvdXAhLmdldCgndXNlclR5cGUnKT8udmFsdWUgPT09IFVTRVJfQ1JFQVRJT05fVFlQRVMuTVQgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5jaGVja0NvbnRyb2xIdWJJbnRlZ3JhdGlvbihTdHJpbmcodGhpcy5jdXN0b21lcklkKSlcclxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuZ2V0U2l0ZXMoaXNPbmx5V2l0aExvY2F0aW9ucykpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nU2l0ZXMgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0QWxsQ3VzdG9tZXJTaXRlcyhTdHJpbmcodGhpcy5jdXN0b21lcklkKSwgaXNPbmx5V2l0aExvY2F0aW9ucykucGlwZShcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2l0ZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0NVQ00oc2l0ZTogU2l0ZSkge1xyXG4gICAgICAgIHJldHVybiBzaXRlPy5jdWNtPy5pZCA9PT0gMjU0MjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U2VsZWN0ZWRTaXRlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHNpdGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IGZvdW5kZWRTaXRlID0gdGhpcy5zaXRlc0xpc3QuZmluZCgoc2l0ZTogYW55KSA9PiBzaXRlLmlkID09PSBzaXRlSWQpO1xyXG4gICAgICAgIHJldHVybiBzaXRlSWQgJiYgZm91bmRlZFNpdGUgPyBmb3VuZGVkU2l0ZS5uYW1lIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNlbGVjdGVkVGVtcGxhdGVOYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdGVtcGxhdGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgndXNlclRlbXBsYXRlSWQnKT8udmFsdWU7XHJcbiAgICAgICAgY29uc3QgZm91bmRlZFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZCgodGVtcGxhdGU6IGFueSkgPT4gU3RyaW5nKHRlbXBsYXRlLmlkKSA9PT0gU3RyaW5nKHRlbXBsYXRlSWQpKTtcclxuICAgICAgICByZXR1cm4gdGVtcGxhdGVJZCAmJiBmb3VuZGVkVGVtcGxhdGUgPyBmb3VuZGVkVGVtcGxhdGUubmFtZSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU3RlcFZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHNpdGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnZhbHVlO1xyXG4gICAgICAgIHJldHVybiBzaXRlSWQgIT09IG51bGwgJiYgc2l0ZUlkICE9PSB1bmRlZmluZWQgJiYgU3RyaW5nKHRlbXBsYXRlSWQgfHwgJycpLnRyaW0oKS5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIG1hcmtTdGVwVG91Y2hlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG59IiwiPHNlY3Rpb24gY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWNvbnRlbnRcIj5cclxuICA8YXBwLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvYXBwLWxvYWRlcj5cclxuICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWZpZWxkIHRlbXBsYXRlLXN0ZXAtZmllbGQtLXVzZXItdHlwZVwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWxhYmVsXCI+VXNlciB0eXBlPC9sYWJlbD5cclxuICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcz1cInVzZXItdHlwZS1tYXQtcmFkaW8tZ3JvdXBcIiBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyVHlwZVwiPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpb1wiIGlkPVwidXNlckNyZWF0aW9uQ3VjbVwiIFt2YWx1ZV09XCJVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ01cIj5cclxuICAgICAgICAgIFVDTS9ESVxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInVzZXItdHlwZS1tYXQtcmFkaW9cIiBpZD1cInVzZXJDcmVhdGlvbk1UXCIgW3ZhbHVlXT1cIlVTRVJfQ1JFQVRJT05fVFlQRVMuTVRcIj5cclxuICAgICAgICAgIE1UXHJcbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGVtcGxhdGUtc3RlcC1maWVsZFwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWxhYmVsXCI+U2VsZWN0IHNpdGU8L2xhYmVsPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2l0ZSBuYW1lXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNpdGVJZFwiPlxyXG5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgICAgICAge3sgZ2V0U2VsZWN0ZWRTaXRlTmFtZSgpIH19XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuXHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc2l0ZSBvZiBzaXRlc0xpc3QkIHwgYXN5bmNcIiBbdmFsdWVdPVwic2l0ZS5pZFwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1yb3dcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIj57eyBzaXRlLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaXRlLm5hbWUgPT09ICdCZXJsaW4nIGVsc2Ugbm90QmVybGluU2l0ZVwiIGNsYXNzPVwidHlwZVwiPnt7ICdNdWx0aSBUZW5hbnQnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90QmVybGluU2l0ZT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHlwZVwiPnt7IGlzQ1VDTShzaXRlKSA/ICdVQ00nIDogJ0RlZGljYXRlZCBJbnN0YW5jZScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1Hcm91cC5nZXQoJ3VzZXJUeXBlJyk/LnZhbHVlID09PSBVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ01cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtZmllbGRcIj5cclxuICAgICAgICA8IS0tIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5Xb3VsZCB5b3UgbGlrZSB0byB1c2UgYSB0ZW1wbGF0ZSBmb3IgdGhlIHVzZXIgY3JlYXRpb24/PC9sYWJlbD4gLS0+XHJcbiAgICAgICAgPCEtLSA8bWF0LXJhZGlvLWdyb3VwIFtmb3JtQ29udHJvbF09XCJ0ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sXCI+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbY29sb3JdPVwiJ3ByaW1hcnknXCIgW3ZhbHVlXT1cInRydWVcIj5cclxuICAgICAgICAgICAge3sgJ1llcycgfX1cclxuICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFtjb2xvcl09XCIncHJpbWFyeSdcIiBbdmFsdWVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAge3sgJ05vJyB9fVxyXG4gICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPiAtLT5cclxuXHJcbiAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGVUb2dnbGVGb3JtQ29udHJvbC52YWx1ZSA9PT0gdHJ1ZVwiPiAtLT5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5TZWxlY3QgdXNlciB0ZW1wbGF0ZTwvbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUZW1wbGF0ZXNcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZXJUZW1wbGF0ZUlkXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIG1hdFRvb2x0aXA9XCInQSBuZXcgdXNlciB3aWxsIGJlIGNyZWF0ZWQgYmFzZWQgb24gdGhlIHNlbGVjdGVkIHRlbXBsYXRlLCBpbmNsdWRpbmcgYSBDaXNjbyA4ODUxIHBoeXNpY2FsIGRldmljZSB3aXRoIGEgc2luZ2xlIGxpbmUgY29uZmlndXJlZCwgd2l0aG91dCBTTlIgKFNpbmdsZSBOdW1iZXIgUmVhY2gpIGFuZCB3aXRob3V0IHZvaWNlbWFpbC4nXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGdldFNlbGVjdGVkVGVtcGxhdGVOYW1lKCkgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdGVtcGxhdGUgb2YgdGVtcGxhdGVzTGlzdCQgfCBhc3luY1wiIFt2YWx1ZV09XCJ0ZW1wbGF0ZS5pZFwiPlxyXG4gICAgICAgICAgICAgICAge3sgdGVtcGxhdGUubmFtZSB9fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8IS0tIDwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy93aWRnZXRzL3VzZXItY3JlYXRpb24td2l6YXJkL2NvbXBvbmVudHMvdXNlci10ZW1wbGF0ZS1zdGVwL3VzZXItdGVtcGxhdGUtc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvd2lkZ2V0cy91c2VyLWNyZWF0aW9uLXdpemFyZC9jb21wb25lbnRzL3VzZXItdGVtcGxhdGUtc3RlcC91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTakYsTUFBTSxPQUFPLHlCQUF5QjtJQThDbEMsWUFDVyx5QkFBb0QsRUFDMUMsbUJBQTJDLEVBQzNDLEVBQWU7UUFGekIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLE9BQUUsR0FBRixFQUFFLENBQWE7UUE5QzdCLGNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM3QixRQUFRLEVBQUUs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LFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7O3VIQXJKUSx5QkFBeUI7MkdBQXpCLHlCQUF5QixtR0NidEMsa2hIQTJFQTs0RkQ5RGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHVCQUF1QjsrS0FLeEIsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3VzZXItY3JlYXRpb24td2l6YXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVVNFUl9DUkVBVElPTl9UWVBFUyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCBvZiwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXNlckNyZWF0aW9uQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvdXNlci1jcmVhdGlvbi1hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaXRlLCBVc2VyVGVtcGxhdGVJbnRlcmZhY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY2xhc3Nlcy9zaXRlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGstdXNlci10ZW1wbGF0ZS1zdGVwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJUZW1wbGF0ZVN0ZXBDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgY3VzdG9tZXJJZCE6IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgdXNlclR5cGU6IFtVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ01dLFxyXG4gICAgICAgIHNpdGVJZDogW251bGxdLFxyXG4gICAgICAgIHVzZXJUZW1wbGF0ZUlkOiBbJyddLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHVzZXJDcmVhdGlvblR5cGUgPSBVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ007XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IFVTRVJfQ1JFQVRJT05fVFlQRVMgPSBVU0VSX0NSRUFUSU9OX1RZUEVTO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdFRlbXBsYXRlTmFtZSA9ICdVc2VyIDg4NTEgT2ZmaWNlJztcclxuICAgIHJlYWRvbmx5IGZhbGxiYWNrVGVtcGxhdGVJZCA9ICctMSc7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBzaXRlc0xpc3Q6IFNpdGVbXSA9IFtdO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBzaXRlc0xpc3QkID0gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLnNpdGVzTGlzdCQucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgdGFwKChyZXMpID0+IHRoaXMuc2l0ZXNMaXN0ID0gcmVzKVxyXG4gICAgKTtcclxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZXNMaXN0JCA9IHRoaXMudXNlckNyZWF0aW9uU2VydmljZS50ZW1wbGF0ZXNMaXN0JC5waXBlKFxyXG4gICAgICAgIHRhcCgodGVtcGxhdGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzID0gdGVtcGxhdGVzIHx8IFtdO1xyXG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZUlkID0gdGVtcGxhdGVDb250cm9sPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRTaXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZChcclxuICAgICAgICAgICAgICAgIHRlbXBsYXRlID0+IHRlbXBsYXRlLm5hbWUgPT09IHRoaXMuZGVmYXVsdFRlbXBsYXRlTmFtZVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaGFzU2VsZWN0ZWRTaXRlID0gc2VsZWN0ZWRTaXRlSWQgIT09IG51bGwgJiYgc2VsZWN0ZWRTaXRlSWQgIT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgaWYgKGhhc1NlbGVjdGVkU2l0ZSAmJiBkZWZhdWx0VGVtcGxhdGUgJiYgU3RyaW5nKGN1cnJlbnRUZW1wbGF0ZUlkIHx8ICcnKSAhPT0gU3RyaW5nKGRlZmF1bHRUZW1wbGF0ZS5pZCkpIHtcclxuICAgICAgICAgICAgICAgIHRlbXBsYXRlQ29udHJvbD8uc2V0VmFsdWUoU3RyaW5nKGRlZmF1bHRUZW1wbGF0ZS5pZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICApO1xyXG5cclxuICAgIGlzVGVtcGxhdGVTZWxlY3RhYmxlID0gZmFsc2U7XHJcbiAgICB0ZW1wbGF0ZXM6IFVzZXJUZW1wbGF0ZUludGVyZmFjZVtdID0gW107XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodHJ1ZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2U6IFVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQ3JlYXRpb25TZXJ2aWNlOiBVc2VyQ3JlYXRpb25BcGlTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVHlwZScpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbmx5V2l0aExvY2F0aW9ucyA9IHZhbHVlID09PSBVU0VSX0NSRUFUSU9OX1RZUEVTLk1UID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVzZUZpZWxkc3RGb3JtKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCdzaXRlSWQnKSEudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5zZXRWYWx1ZSh0aGlzLmZhbGxiYWNrVGVtcGxhdGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5zZXRTZWxlY3RlZFRlbXBsYXRlKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLmZldGNoQWxsVXNlclRlbXBsYXRlcyhOdW1iZXIodmFsdWUpKVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAvLyBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0U2l0ZURhdGEodGhpcy5mb3JtR3JvdXAhLmdldCgnc2l0ZUlkJyk/LnZhbHVlIHx8IDcwOTUpKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgLy8gLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcclxuICAgICAgICAgICAgLy8gfSlcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAhLmdldCgndXNlclRlbXBsYXRlSWQnKSEudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiBTdHJpbmcodmFsdWUpLnRyaW0oKS5sZW5ndGggPiAwKSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoU3RyaW5nKHZhbHVlKSA9PT0gdGhpcy5mYWxsYmFja1RlbXBsYXRlSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUodGhpcy5kZWZhdWx0VGVtcGxhdGVOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLmdldFVzZXJUZW1wbGF0ZVRva2VuKFN0cmluZyh2YWx1ZSksIFN0cmluZyhTdHJpbmcodGhpcy5jdXN0b21lcklkKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChwYXlsb2FkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVzLmZpbmQodGVtcGxhdGUgPT4gU3RyaW5nKHRlbXBsYXRlLmlkKSA9PT0gU3RyaW5nKHZhbHVlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUoc2VsZWN0ZWRUZW1wbGF0ZT8ubmFtZSB8fCBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UuYXBwbHlUZW1wbGF0ZVRva2VuUGF5bG9hZChwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgLy8gdGhpcy50ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC8vICAgICAucGlwZShzdGFydFdpdGgodHJ1ZSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgICAvLyAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAvLyAgICAgICAgIGlmKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgY29uc3Qgc2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWUgfHwgNzA5NTtcclxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZmV0Y2hBbGxVc2VyVGVtcGxhdGVzKHNpdGVJZClcclxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnJlc2V0KCk7XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXNlRmllbGRzdEZvcm0oKSB7XHJcbiAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy5yZXNldCgpO1xyXG4gICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5yZXNldCgpO1xyXG4gICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUobnVsbCk7XHJcbiAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UucmVzZXRUZW1wbGF0ZURyaXZlbkRhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERhdGEoKSB7XHJcbiAgICAgICAgY29uc3QgaXNPbmx5V2l0aExvY2F0aW9ucyA9IHRoaXMuZm9ybUdyb3VwIS5nZXQoJ3VzZXJUeXBlJyk/LnZhbHVlID09PSBVU0VSX0NSRUFUSU9OX1RZUEVTLk1UID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuY2hlY2tDb250cm9sSHViSW50ZWdyYXRpb24oU3RyaW5nKHRoaXMuY3VzdG9tZXJJZCkpXHJcbiAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdldFNpdGVzKGlzT25seVdpdGhMb2NhdGlvbnMpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2l0ZXMoaXNPbmx5V2l0aExvY2F0aW9uczogYm9vbGVhbikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0QWxsQ3VzdG9tZXJTaXRlcyhTdHJpbmcodGhpcy5jdXN0b21lcklkKSwgaXNPbmx5V2l0aExvY2F0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ1VDTShzaXRlOiBTaXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIHNpdGU/LmN1Y20/LmlkID09PSAyNTQyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTZWxlY3RlZFNpdGVOYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWU7XHJcbiAgICAgICAgY29uc3QgZm91bmRlZFNpdGUgPSB0aGlzLnNpdGVzTGlzdC5maW5kKChzaXRlOiBhbnkpID0+IHNpdGUuaWQgPT09IHNpdGVJZCk7XHJcbiAgICAgICAgcmV0dXJuIHNpdGVJZCAmJiBmb3VuZGVkU2l0ZSA/IGZvdW5kZWRTaXRlLm5hbWUgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn0iLCI8c2VjdGlvbiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtY29udGVudFwiPlxyXG4gIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtZmllbGQgdGVtcGxhdGUtc3RlcC1maWVsZC0tdXNlci10eXBlXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5Vc2VyIHR5cGU8L2xhYmVsPlxyXG4gICAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpby1ncm91cFwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJUeXBlXCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJ1c2VyLXR5cGUtbWF0LXJhZGlvXCIgaWQ9XCJ1c2VyQ3JlYXRpb25DdWNtXCIgW3ZhbHVlXT1cIlVTRVJfQ1JFQVRJT05fVFlQRVMuQ1VDTVwiPlxyXG4gICAgICAgICAgVUNNL0RJXHJcbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpb1wiIGlkPVwidXNlckNyZWF0aW9uTVRcIiBbdmFsdWVdPVwiVVNFUl9DUkVBVElPTl9UWVBFUy5NVFwiPlxyXG4gICAgICAgICAgTVRcclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWZpZWxkXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5TZWxlY3Qgc2l0ZTwvbGFiZWw+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTaXRlIG5hbWVcIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2l0ZUlkXCI+XHJcblxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgICAgICAgICB7eyBnZXRTZWxlY3RlZFNpdGVOYW1lKCkgfX1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzaXRlIG9mIHNpdGVzTGlzdCQgfCBhc3luY1wiIFt2YWx1ZV09XCJzaXRlLmlkXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPnt7IHNpdGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNpdGUubmFtZSA9PT0gJ0JlcmxpbicgZWxzZSBub3RCZXJsaW5TaXRlXCIgY2xhc3M9XCJ0eXBlXCI+e3sgJ011bHRpIFRlbmFudCcgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RCZXJsaW5TaXRlPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eXBlXCI+e3sgaXNDVUNNKHNpdGUpID8gJ1VDTScgOiAnRGVkaWNhdGVkIEluc3RhbmNlJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUdyb3VwLmdldCgndXNlclR5cGUnKT8udmFsdWUgPT09IFVTRVJfQ1JFQVRJT05fVFlQRVMuQ1VDTVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGVtcGxhdGUtc3RlcC1maWVsZFwiPlxyXG4gICAgICAgIDwhLS0gPGxhYmVsIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1sYWJlbFwiPldvdWxkIHlvdSBsaWtlIHRvIHVzZSBhIHRlbXBsYXRlIGZvciB0aGUgdXNlciBjcmVhdGlvbj88L2xhYmVsPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2Zvcm1Db250cm9sXT1cInRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2xcIj5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFtjb2xvcl09XCIncHJpbWFyeSdcIiBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICB7eyAnWWVzJyB9fVxyXG4gICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFt2YWx1ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICB7eyAnTm8nIH19XHJcbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+IC0tPlxyXG5cclxuICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sLnZhbHVlID09PSB0cnVlXCI+IC0tPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1sYWJlbFwiPlNlbGVjdCB1c2VyIHRlbXBsYXRlPC9sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlclRlbXBsYXRlSWRcIj5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gbWF0VG9vbHRpcD1cIidBIG5ldyB1c2VyIHdpbGwgYmUgY3JlYXRlZCBiYXNlZCBvbiB0aGUgc2VsZWN0ZWQgdGVtcGxhdGUsIGluY2x1ZGluZyBhIENpc2NvIDg4NTEgcGh5c2ljYWwgZGV2aWNlIHdpdGggYSBzaW5nbGUgbGluZSBjb25maWd1cmVkLCB3aXRob3V0IFNOUiAoU2luZ2xlIE51bWJlciBSZWFjaCkgYW5kIHdpdGhvdXQgdm9pY2VtYWlsLidcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZGVmYXVsdFRlbXBsYXRlTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmYWxsYmFja1RlbXBsYXRlSWRcIj5cclxuICAgICAgICAgICAgICAgIHt7IGRlZmF1bHRUZW1wbGF0ZU5hbWUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRlbXBsYXRlIG9mIHRlbXBsYXRlc0xpc3QkIHwgYXN5bmNcIiBbdmFsdWVdPVwidGVtcGxhdGUuaWRcIj5cclxuICAgICAgICAgICAgICAgIHt7IHRlbXBsYXRlLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPCEtLSA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|