@tuki-io/tuki-widgets 0.0.219-dev.8 → 0.0.219
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/di2mt/api/api.endpoints.d.ts +3 -0
- package/esm2020/di2mt/api/api.endpoints.mjs +4 -1
- package/esm2020/locations/public-api.mjs +8 -0
- package/esm2020/locations/src/app.constants.mjs +6 -0
- package/esm2020/locations/src/locations.component.mjs +215 -0
- package/esm2020/locations/src/locations.module.mjs +39 -0
- package/esm2020/locations/src/material.module.mjs +48 -0
- package/esm2020/locations/src/services/api.service.mjs +67 -0
- package/esm2020/locations/src/services/locations.service.mjs +51 -0
- package/esm2020/locations/src/types/location.mjs +2 -0
- package/esm2020/locations/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/locations/tuki-io-tuki-widgets-locations.mjs +5 -0
- package/esm2020/meetings/public-api.mjs +8 -0
- package/esm2020/meetings/src/app.constants.mjs +9 -0
- package/esm2020/meetings/src/components/live-meetings/live-meeting/live-meeting.component.mjs +107 -0
- package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +98 -0
- package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +110 -0
- package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +65 -0
- package/esm2020/meetings/src/material.module.mjs +76 -0
- package/esm2020/meetings/src/meetings.component.mjs +65 -0
- package/esm2020/meetings/src/meetings.module.mjs +51 -0
- package/esm2020/meetings/src/services/api.service.mjs +67 -0
- package/esm2020/meetings/src/services/live-meetings.service.mjs +178 -0
- package/esm2020/meetings/src/services/meeting-spaces.service.mjs +102 -0
- package/esm2020/meetings/src/types/live-meeting.mjs +2 -0
- package/esm2020/meetings/src/types/meeting-space.mjs +2 -0
- package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/meetings/tuki-io-tuki-widgets-meetings.mjs +5 -0
- package/esm2020/shared/public-api.mjs +4 -0
- package/esm2020/shared/src/ui/material.module.mjs +188 -0
- package/esm2020/shared/src/ui/shared.module.mjs +36 -0
- package/esm2020/shared/src/ui/tk-page-section/tk-page-section.component.mjs +13 -0
- package/esm2020/shared/src/ui/tk-page-section-row/tk-page-section-row.component.mjs +13 -0
- package/esm2020/shared/src/ui/ui.module.mjs +37 -0
- package/esm2020/shared/tuki-io-tuki-widgets-shared.mjs +5 -0
- package/esm2020/user-creation/src/utils/device-default-prefix.mjs +19 -2
- package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +4 -0
- package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +6 -3
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +60 -13
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +2 -1
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +8 -6
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +13 -9
- package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
- package/esm2020/user-device-manage/src/user-device-manage.module.mjs +1 -4
- package/esm2020/user-manage/src/app.constants.mjs +7 -1
- package/esm2020/user-manage/src/classes/simplified-user.mjs +5 -3
- package/esm2020/user-manage/src/device-list/device-list.component.mjs +7 -4
- package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +6 -3
- package/esm2020/user-manage/src/material.module.mjs +14 -7
- package/esm2020/user-manage/src/services/dcp-api.service.mjs +79 -0
- package/esm2020/user-manage/src/services/user.service.mjs +65 -19
- package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +12 -7
- package/esm2020/user-manage/src/user-manage-widget.component.mjs +55 -20
- package/esm2020/user-manage/src/user-manage.module.mjs +10 -3
- package/esm2020/users-list/src/app.constants.mjs +2 -1
- package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
- package/esm2020/users-list/src/classes/user-list.mjs +2 -1
- package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +14 -3
- package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -3
- package/esm2020/users-list/src/users-list.component.mjs +98 -15
- package/esm2020/workspaces/public-api.mjs +8 -0
- package/esm2020/workspaces/src/app.constants.mjs +15 -0
- package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +32 -0
- package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +50 -0
- package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +56 -0
- package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +114 -0
- package/esm2020/workspaces/src/material.module.mjs +83 -0
- package/esm2020/workspaces/src/services/api-webex.service.mjs +14 -0
- package/esm2020/workspaces/src/services/api.service.mjs +67 -0
- package/esm2020/workspaces/src/services/workspace-detail.service.mjs +54 -0
- package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +59 -0
- package/esm2020/workspaces/src/services/workspaces.service.mjs +90 -0
- package/esm2020/workspaces/src/types/workspace.mjs +4 -0
- package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/workspaces/src/utils/device-icon.mjs +13 -0
- package/esm2020/workspaces/src/workspaces.component.mjs +295 -0
- package/esm2020/workspaces/src/workspaces.module.mjs +51 -0
- package/esm2020/workspaces/tuki-io-tuki-widgets-workspaces.mjs +5 -0
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +3 -0
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-locations.mjs +439 -0
- package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +894 -0
- package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-shared.mjs +280 -0
- package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +111 -32
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +243 -56
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +119 -20
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +958 -0
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +3 -0
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-locations.mjs +433 -0
- package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +902 -0
- package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-shared.mjs +280 -0
- package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +104 -28
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +239 -55
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +118 -20
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +958 -0
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
- package/locations/index.d.ts +5 -0
- package/locations/public-api.d.ts +2 -0
- package/locations/src/app.constants.d.ts +5 -0
- package/locations/src/locations.component.d.ts +68 -0
- package/locations/src/locations.module.d.ts +12 -0
- package/locations/src/material.module.d.ts +11 -0
- package/locations/src/services/api.service.d.ts +18 -0
- package/locations/src/services/locations.service.d.ts +15 -0
- package/locations/src/types/location.d.ts +17 -0
- package/locations/src/utils/app-loader/app-loader.d.ts +6 -0
- package/meetings/index.d.ts +5 -0
- package/meetings/public-api.d.ts +2 -0
- package/meetings/src/app.constants.d.ts +8 -0
- package/meetings/src/components/live-meetings/live-meeting/live-meeting.component.d.ts +34 -0
- package/meetings/src/components/live-meetings/live-meetings.component.d.ts +43 -0
- package/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.d.ts +39 -0
- package/meetings/src/components/meeting-spaces/meeting-spaces.component.d.ts +27 -0
- package/meetings/src/material.module.d.ts +15 -0
- package/meetings/src/meetings.component.d.ts +29 -0
- package/meetings/src/meetings.module.d.ts +16 -0
- package/meetings/src/services/api.service.d.ts +18 -0
- package/meetings/src/services/live-meetings.service.d.ts +9 -0
- package/meetings/src/services/meeting-spaces.service.d.ts +16 -0
- package/meetings/src/types/live-meeting.d.ts +71 -0
- package/meetings/src/types/meeting-space.d.ts +52 -0
- package/meetings/src/utils/app-loader/app-loader.d.ts +6 -0
- package/package.json +33 -1
- package/shared/index.d.ts +5 -0
- package/shared/public-api.d.ts +3 -0
- package/shared/src/ui/material.module.d.ts +28 -0
- package/shared/src/ui/shared.module.d.ts +10 -0
- package/{user-device-manage/src/shared/tk-page-section/page-section.component.d.ts → shared/src/ui/tk-page-section/tk-page-section.component.d.ts} +1 -1
- package/shared/src/ui/tk-page-section-row/tk-page-section-row.component.d.ts +6 -0
- package/shared/src/ui/ui.module.d.ts +11 -0
- package/user-creation/src/utils/device-default-prefix.d.ts +7 -2
- package/user-creation/src/utils/device-name-dynamic-tokens.d.ts +1 -0
- package/user-creation/src/utils/parse-device-name-rule.d.ts +1 -0
- package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +2 -0
- package/user-device-manage/src/classes/simplified-user.d.ts +1 -1
- package/user-device-manage/src/user-device-manage.module.d.ts +9 -10
- package/user-manage/src/app.constants.d.ts +6 -0
- package/user-manage/src/classes/simplified-user.d.ts +11 -1
- package/user-manage/src/device-list/device-list.component.d.ts +2 -0
- package/user-manage/src/material.module.d.ts +2 -1
- package/user-manage/src/services/dcp-api.service.d.ts +21 -0
- package/user-manage/src/services/user.service.d.ts +8 -1
- package/user-manage/src/user-calling/user-calling.component.d.ts +3 -2
- package/user-manage/src/user-manage-widget.component.d.ts +10 -2
- package/user-manage/src/user-manage.module.d.ts +2 -1
- package/users-list/src/app.constants.d.ts +1 -0
- package/users-list/src/classes/simlified-user.d.ts +1 -1
- package/users-list/src/classes/user-list.d.ts +4 -0
- package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +3 -1
- package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +2 -1
- package/users-list/src/users-list.component.d.ts +6 -1
- package/workspaces/index.d.ts +5 -0
- package/workspaces/public-api.d.ts +2 -0
- package/workspaces/src/app.constants.d.ts +14 -0
- package/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.d.ts +20 -0
- package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +23 -0
- package/workspaces/src/components/workspaces-filters/workspaces-filters.component.d.ts +20 -0
- package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +39 -0
- package/workspaces/src/material.module.d.ts +16 -0
- package/workspaces/src/services/api-webex.service.d.ts +6 -0
- package/workspaces/src/services/api.service.d.ts +18 -0
- package/workspaces/src/services/workspace-detail.service.d.ts +8 -0
- package/workspaces/src/services/workspaces-migration.service.d.ts +18 -0
- package/workspaces/src/services/workspaces.service.d.ts +11 -0
- package/workspaces/src/types/workspace.d.ts +161 -0
- package/workspaces/src/utils/app-loader/app-loader.d.ts +6 -0
- package/workspaces/src/utils/device-icon.d.ts +1 -0
- package/workspaces/src/workspaces.component.d.ts +71 -0
- package/workspaces/src/workspaces.module.d.ts +16 -0
- package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class PageSectionRowComponent {
|
|
4
|
+
}
|
|
5
|
+
PageSectionRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageSectionRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
PageSectionRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PageSectionRowComponent, selector: "tk-page-section-row", inputs: { label: "label" }, ngImport: i0, template: "<div class=\"page-section-row-wrapper\">\r\n <div class=\"page-section-row__label\">\r\n <span>{{ label }}</span>\r\n </div>\r\n <div class=\"page-section-row__field\">\r\n <ng-content />\r\n </div>\r\n</div>", styles: [".page-section-row-wrapper{display:flex;gap:1.5rem;font-size:.75rem;line-height:1.25;align-items:center}.page-section-row__label{font-weight:500!important;font-size:14px!important;flex-basis:12rem}.page-section-row__field{display:flex;flex:1}:host ::ng-deep .mat-form-field{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem;padding:0}:host ::ng-deep .mat-form-field .mat-form-field-wrapper{margin:0!important;padding-bottom:0!important}:host ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-outline-end{border:none!important}:host ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex:hover .mat-form-field-outline-start{border:none!important}:host ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex:hover .mat-form-field-outline-end{border:none!important}:host ::ng-deep .mat-form-field:hover{background-color:#00000012!important;border:.0625rem solid rgba(0,0,0,.5019607843)!important}:host ::ng-deep .mat-form-field.mat-focused .mat-form-field-outline-start{display:none}\n"] });
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageSectionRowComponent, decorators: [{
|
|
8
|
+
type: Component,
|
|
9
|
+
args: [{ selector: 'tk-page-section-row', template: "<div class=\"page-section-row-wrapper\">\r\n <div class=\"page-section-row__label\">\r\n <span>{{ label }}</span>\r\n </div>\r\n <div class=\"page-section-row__field\">\r\n <ng-content />\r\n </div>\r\n</div>", styles: [".page-section-row-wrapper{display:flex;gap:1.5rem;font-size:.75rem;line-height:1.25;align-items:center}.page-section-row__label{font-weight:500!important;font-size:14px!important;flex-basis:12rem}.page-section-row__field{display:flex;flex:1}:host ::ng-deep .mat-form-field{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem;padding:0}:host ::ng-deep .mat-form-field .mat-form-field-wrapper{margin:0!important;padding-bottom:0!important}:host ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-outline-end{border:none!important}:host ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex:hover .mat-form-field-outline-start{border:none!important}:host ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex:hover .mat-form-field-outline-end{border:none!important}:host ::ng-deep .mat-form-field:hover{background-color:#00000012!important;border:.0625rem solid rgba(0,0,0,.5019607843)!important}:host ::ng-deep .mat-form-field.mat-focused .mat-form-field-outline-start{display:none}\n"] }]
|
|
10
|
+
}], propDecorators: { label: [{
|
|
11
|
+
type: Input
|
|
12
|
+
}] } });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGstcGFnZS1zZWN0aW9uLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvc2hhcmVkL3NyYy91aS90ay1wYWdlLXNlY3Rpb24tcm93L3RrLXBhZ2Utc2VjdGlvbi1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3NoYXJlZC9zcmMvdWkvdGstcGFnZS1zZWN0aW9uLXJvdy90ay1wYWdlLXNlY3Rpb24tcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9qRCxNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3lHQUF2Qix1QkFBdUIsdUZDUHBDLDRPQU9NOzRGREFPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxxQkFBcUI7OEJBS3RCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RrLXBhZ2Utc2VjdGlvbi1yb3cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RrLXBhZ2Utc2VjdGlvbi1yb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGstcGFnZS1zZWN0aW9uLXJvdy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlU2VjdGlvblJvd0NvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcclxufSIsIjxkaXYgY2xhc3M9XCJwYWdlLXNlY3Rpb24tcm93LXdyYXBwZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWdlLXNlY3Rpb24tcm93X19sYWJlbFwiPlxyXG4gICAgICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFnZS1zZWN0aW9uLXJvd19fZmllbGRcIj5cclxuICAgICAgICA8bmctY29udGVudCAvPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { PageSectionComponent } from "./tk-page-section/tk-page-section.component";
|
|
3
|
+
import { PageSectionRowComponent } from "./tk-page-section-row/tk-page-section-row.component";
|
|
4
|
+
import { SharedModule } from "./shared.module";
|
|
5
|
+
import { CommonModule } from "@angular/common";
|
|
6
|
+
import { MaterialModule } from "./material.module";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class UIModule {
|
|
9
|
+
}
|
|
10
|
+
UIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
UIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UIModule, declarations: [PageSectionComponent,
|
|
12
|
+
PageSectionRowComponent], imports: [CommonModule,
|
|
13
|
+
SharedModule,
|
|
14
|
+
MaterialModule], exports: [PageSectionComponent,
|
|
15
|
+
PageSectionRowComponent] });
|
|
16
|
+
UIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UIModule, imports: [CommonModule,
|
|
17
|
+
SharedModule,
|
|
18
|
+
MaterialModule] });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UIModule, decorators: [{
|
|
20
|
+
type: NgModule,
|
|
21
|
+
args: [{
|
|
22
|
+
declarations: [
|
|
23
|
+
PageSectionComponent,
|
|
24
|
+
PageSectionRowComponent
|
|
25
|
+
],
|
|
26
|
+
imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
SharedModule,
|
|
29
|
+
MaterialModule
|
|
30
|
+
],
|
|
31
|
+
exports: [
|
|
32
|
+
PageSectionComponent,
|
|
33
|
+
PageSectionRowComponent
|
|
34
|
+
]
|
|
35
|
+
}]
|
|
36
|
+
}] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3NoYXJlZC9zcmMvdWkvdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBaUJuRCxNQUFNLE9BQU8sUUFBUTs7c0dBQVIsUUFBUTt1R0FBUixRQUFRLGlCQWJiLG9CQUFvQjtRQUNwQix1QkFBdUIsYUFHdkIsWUFBWTtRQUNaLFlBQVk7UUFDWixjQUFjLGFBR2Qsb0JBQW9CO1FBQ3BCLHVCQUF1Qjt1R0FHbEIsUUFBUSxZQVRiLFlBQVk7UUFDWixZQUFZO1FBQ1osY0FBYzs0RkFPVCxRQUFRO2tCQWZwQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixvQkFBb0I7d0JBQ3BCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixjQUFjO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsb0JBQW9CO3dCQUNwQix1QkFBdUI7cUJBQzFCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBQYWdlU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL3RrLXBhZ2Utc2VjdGlvbi90ay1wYWdlLXNlY3Rpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBhZ2VTZWN0aW9uUm93Q29tcG9uZW50IH0gZnJvbSBcIi4vdGstcGFnZS1zZWN0aW9uLXJvdy90ay1wYWdlLXNlY3Rpb24tcm93LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tIFwiLi9zaGFyZWQubW9kdWxlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tIFwiLi9tYXRlcmlhbC5tb2R1bGVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBQYWdlU2VjdGlvbkNvbXBvbmVudCxcclxuICAgICAgICBQYWdlU2VjdGlvblJvd0NvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgU2hhcmVkTW9kdWxlLFxyXG4gICAgICAgIE1hdGVyaWFsTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFBhZ2VTZWN0aW9uQ29tcG9uZW50LFxyXG4gICAgICAgIFBhZ2VTZWN0aW9uUm93Q29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVSU1vZHVsZSB7fSJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVraS1pby10dWtpLXdpZGdldHMtc2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3NoYXJlZC90dWtpLWlvLXR1a2ktd2lkZ2V0cy1zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,13 +1,30 @@
|
|
|
1
1
|
/** Matches device types like `Cisco 8851`. */
|
|
2
2
|
export const CISCO_DIGIT_DEVICE_TYPE_PATTERN = /^Cisco\s+\d+$/i;
|
|
3
3
|
export const DEFAULT_SEP_DEVICE_PREFIX = 'SEP';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Extracts a literal prefix from `deviceNameExplained` patterns such as
|
|
6
|
+
* `SEP[mac]`, `TCT[0-9A-Z._-]{1,12}`, or `[A-Z0-9]{1,15}` (no prefix).
|
|
7
|
+
*/
|
|
8
|
+
export function extractDevicePrefixFromNameExplained(deviceNameExplained) {
|
|
9
|
+
const explained = deviceNameExplained?.trim() ?? '';
|
|
10
|
+
if (!explained) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const match = explained.match(/^([A-Za-z]+)\[/);
|
|
14
|
+
return match?.[1] ?? null;
|
|
15
|
+
}
|
|
16
|
+
export function applyDefaultDevicePrefixIfMissing(device, defaults) {
|
|
5
17
|
if (device.prefix?.trim()) {
|
|
6
18
|
return;
|
|
7
19
|
}
|
|
20
|
+
const prefixFromDefaults = extractDevicePrefixFromNameExplained(defaults.deviceNameExplained);
|
|
21
|
+
if (prefixFromDefaults) {
|
|
22
|
+
device.prefix = prefixFromDefaults;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
8
25
|
const deviceType = device.deviceType?.trim() ?? '';
|
|
9
26
|
if (CISCO_DIGIT_DEVICE_TYPE_PATTERN.test(deviceType)) {
|
|
10
27
|
device.prefix = DEFAULT_SEP_DEVICE_PREFIX;
|
|
11
28
|
}
|
|
12
29
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWRlZmF1bHQtcHJlZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItY3JlYXRpb24vc3JjL3V0aWxzL2RldmljZS1kZWZhdWx0LXByZWZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSw4Q0FBOEM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsZ0JBQWdCLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBRS9DOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQ0FBb0MsQ0FBQyxtQkFBOEM7SUFDL0YsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3BELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDWixPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzlCLENBQUM7QUFFRCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsTUFBc0QsRUFBRSxRQUFpQztJQUN2SSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdkIsT0FBTztLQUNWO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxvQ0FBb0MsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM5RixJQUFJLGtCQUFrQixFQUFFO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLENBQUM7UUFDbkMsT0FBTztLQUNWO0lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbkQsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDbEQsTUFBTSxDQUFDLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQztLQUM3QztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXZpY2VEZWZhdWx0c0ludGVyZmFjZSwgRGV2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy91c2VyLWNyZWF0aW9uLXdpemFyZC5pbnRlcmZhY2VzJztcblxuLyoqIE1hdGNoZXMgZGV2aWNlIHR5cGVzIGxpa2UgYENpc2NvIDg4NTFgLiAqL1xuZXhwb3J0IGNvbnN0IENJU0NPX0RJR0lUX0RFVklDRV9UWVBFX1BBVFRFUk4gPSAvXkNpc2NvXFxzK1xcZCskL2k7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUF9ERVZJQ0VfUFJFRklYID0gJ1NFUCc7XG5cbi8qKlxuICogRXh0cmFjdHMgYSBsaXRlcmFsIHByZWZpeCBmcm9tIGBkZXZpY2VOYW1lRXhwbGFpbmVkYCBwYXR0ZXJucyBzdWNoIGFzXG4gKiBgU0VQW21hY11gLCBgVENUWzAtOUEtWi5fLV17MSwxMn1gLCBvciBgW0EtWjAtOV17MSwxNX1gIChubyBwcmVmaXgpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdERldmljZVByZWZpeEZyb21OYW1lRXhwbGFpbmVkKGRldmljZU5hbWVFeHBsYWluZWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBleHBsYWluZWQgPSBkZXZpY2VOYW1lRXhwbGFpbmVkPy50cmltKCkgPz8gJyc7XG4gICAgaWYgKCFleHBsYWluZWQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2ggPSBleHBsYWluZWQubWF0Y2goL14oW0EtWmEtel0rKVxcWy8pO1xuICAgIHJldHVybiBtYXRjaD8uWzFdID8/IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseURlZmF1bHREZXZpY2VQcmVmaXhJZk1pc3NpbmcoZGV2aWNlOiBQaWNrPERldmljZUludGVyZmFjZSwgJ3ByZWZpeCcgfCAnZGV2aWNlVHlwZSc+LCBkZWZhdWx0czogRGV2aWNlRGVmYXVsdHNJbnRlcmZhY2UpOiB2b2lkIHtcbiAgICBpZiAoZGV2aWNlLnByZWZpeD8udHJpbSgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVmaXhGcm9tRGVmYXVsdHMgPSBleHRyYWN0RGV2aWNlUHJlZml4RnJvbU5hbWVFeHBsYWluZWQoZGVmYXVsdHMuZGV2aWNlTmFtZUV4cGxhaW5lZCk7XG4gICAgaWYgKHByZWZpeEZyb21EZWZhdWx0cykge1xuICAgICAgICBkZXZpY2UucHJlZml4ID0gcHJlZml4RnJvbURlZmF1bHRzO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGV2aWNlVHlwZSA9IGRldmljZS5kZXZpY2VUeXBlPy50cmltKCkgPz8gJyc7XG4gICAgaWYgKENJU0NPX0RJR0lUX0RFVklDRV9UWVBFX1BBVFRFUk4udGVzdChkZXZpY2VUeXBlKSkge1xuICAgICAgICBkZXZpY2UucHJlZml4ID0gREVGQVVMVF9TRVBfREVWSUNFX1BSRUZJWDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function deviceNameHasDynamicTokens(name) {
|
|
2
|
+
return /\[DN\]|\[LN\]|\[FN\]/i.test(name ?? '');
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLW5hbWUtZHluYW1pYy10b2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvdXRpbHMvZGV2aWNlLW5hbWUtZHluYW1pYy10b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQStCO0lBQ3RFLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRldmljZU5hbWVIYXNEeW5hbWljVG9rZW5zKG5hbWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL1xcW0ROXFxdfFxcW0xOXFxdfFxcW0ZOXFxdL2kudGVzdChuYW1lID8/ICcnKTtcbn1cbiJdfQ==
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* to validate the name field value (without matPrefix).
|
|
4
4
|
*
|
|
5
5
|
* - `([sS][eE][pP]|BAT)[0-9a-fA-F]{12}` → `[0-9a-fA-F]{12}`
|
|
6
|
+
* - `TCT[0-9A-Z._-]{1,12}` → `[0-9A-Z._-]{1,12}`
|
|
6
7
|
* - `[a-zA-Z0-9]{1,15}` → `[a-zA-Z0-9]{1,15}` (unchanged)
|
|
7
8
|
*/
|
|
8
9
|
export function parseDeviceNameRegexBody(deviceNameRegex) {
|
|
@@ -12,15 +13,17 @@ export function parseDeviceNameRegexBody(deviceNameRegex) {
|
|
|
12
13
|
}
|
|
13
14
|
return stripLeadingPrefixGroup(fullRegex);
|
|
14
15
|
}
|
|
16
|
+
/** Character class with an optional trailing quantifier, e.g. `[0-9a-fA-F]{12}`. */
|
|
17
|
+
const CHAR_CLASS_WITH_QUANTIFIER = String.raw `\[[^\]]+\](?:\{[^}]+\})?`;
|
|
15
18
|
function stripLeadingPrefixGroup(regex) {
|
|
16
|
-
const parenMatch = regex.match(
|
|
19
|
+
const parenMatch = regex.match(new RegExp(`^(\\([^)]+\\))(${CHAR_CLASS_WITH_QUANTIFIER})$`));
|
|
17
20
|
if (parenMatch?.[2]?.trim()) {
|
|
18
21
|
return parenMatch[2];
|
|
19
22
|
}
|
|
20
|
-
const literalMatch = regex.match(
|
|
23
|
+
const literalMatch = regex.match(new RegExp(`^([A-Za-z]+)(${CHAR_CLASS_WITH_QUANTIFIER})$`));
|
|
21
24
|
if (literalMatch?.[2]?.trim()) {
|
|
22
25
|
return literalMatch[2];
|
|
23
26
|
}
|
|
24
27
|
return regex;
|
|
25
28
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtZGV2aWNlLW5hbWUtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy91dGlscy9wYXJzZS1kZXZpY2UtbmFtZS1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsZUFBMEM7SUFDL0UsTUFBTSxTQUFTLEdBQUcsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNoRCxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osT0FBTyxFQUFFLENBQUM7S0FDYjtJQUVELE9BQU8sdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELG9GQUFvRjtBQUNwRixNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUEsMEJBQTBCLENBQUM7QUFFeEUsU0FBUyx1QkFBdUIsQ0FBQyxLQUFhO0lBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsa0JBQWtCLDBCQUEwQixJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdGLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDekIsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7SUFFRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLGdCQUFnQiwwQkFBMEIsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RixJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQzNCLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFCO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RyaXBzIGEgbGVhZGluZyBkZXZpY2UtcHJlZml4IGdyb3VwIGZyb20gYGRldmljZU5hbWVSZWdleGAsIHJldHVybmluZyB0aGUgcGF0dGVyblxuICogdG8gdmFsaWRhdGUgdGhlIG5hbWUgZmllbGQgdmFsdWUgKHdpdGhvdXQgbWF0UHJlZml4KS5cbiAqXG4gKiAtIGAoW3NTXVtlRV1bcFBdfEJBVClbMC05YS1mQS1GXXsxMn1gIOKGkiBgWzAtOWEtZkEtRl17MTJ9YFxuICogLSBgVENUWzAtOUEtWi5fLV17MSwxMn1gIOKGkiBgWzAtOUEtWi5fLV17MSwxMn1gXG4gKiAtIGBbYS16QS1aMC05XXsxLDE1fWAg4oaSIGBbYS16QS1aMC05XXsxLDE1fWAgKHVuY2hhbmdlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGV2aWNlTmFtZVJlZ2V4Qm9keShkZXZpY2VOYW1lUmVnZXg6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZ1bGxSZWdleCA9IGRldmljZU5hbWVSZWdleD8udHJpbSgpID8/ICcnO1xuICAgIGlmICghZnVsbFJlZ2V4KSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaXBMZWFkaW5nUHJlZml4R3JvdXAoZnVsbFJlZ2V4KTtcbn1cblxuLyoqIENoYXJhY3RlciBjbGFzcyB3aXRoIGFuIG9wdGlvbmFsIHRyYWlsaW5nIHF1YW50aWZpZXIsIGUuZy4gYFswLTlhLWZBLUZdezEyfWAuICovXG5jb25zdCBDSEFSX0NMQVNTX1dJVEhfUVVBTlRJRklFUiA9IFN0cmluZy5yYXdgXFxbW15cXF1dK1xcXSg/Olxce1tefV0rXFx9KT9gO1xuXG5mdW5jdGlvbiBzdHJpcExlYWRpbmdQcmVmaXhHcm91cChyZWdleDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJlbk1hdGNoID0gcmVnZXgubWF0Y2gobmV3IFJlZ0V4cChgXihcXFxcKFteKV0rXFxcXCkpKCR7Q0hBUl9DTEFTU19XSVRIX1FVQU5USUZJRVJ9KSRgKSk7XG4gICAgaWYgKHBhcmVuTWF0Y2g/LlsyXT8udHJpbSgpKSB7XG4gICAgICAgIHJldHVybiBwYXJlbk1hdGNoWzJdO1xuICAgIH1cblxuICAgIGNvbnN0IGxpdGVyYWxNYXRjaCA9IHJlZ2V4Lm1hdGNoKG5ldyBSZWdFeHAoYF4oW0EtWmEtel0rKSgke0NIQVJfQ0xBU1NfV0lUSF9RVUFOVElGSUVSfSkkYCkpO1xuICAgIGlmIChsaXRlcmFsTWF0Y2g/LlsyXT8udHJpbSgpKSB7XG4gICAgICAgIHJldHVybiBsaXRlcmFsTWF0Y2hbMl07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZ2V4O1xufVxuIl19
|