@cqa-lib/cqa-ui 1.0.47 → 1.0.50
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/esm2020/lib/action-menu/action-menu.component.mjs +3 -3
- package/esm2020/lib/button/button.component.mjs +3 -3
- package/esm2020/lib/column-visibility/column-visibility.component.mjs +3 -3
- package/esm2020/lib/dashboards/chart-card/chart-card.component.mjs +3 -3
- package/esm2020/lib/dashboards/coverage-module-card/coverage-module-card.component.mjs +3 -3
- package/esm2020/lib/dashboards/dashboard-header/dashboard-header.component.mjs +3 -3
- package/esm2020/lib/dashboards/failed-test-cases-card/failed-test-cases-card.component.mjs +3 -3
- package/esm2020/lib/dashboards/heat-error-map-cell/heat-error-map-cell.component.mjs +3 -3
- package/esm2020/lib/dashboards/insight-card/insight-card.component.mjs +3 -3
- package/esm2020/lib/dashboards/metrics-card/metrics-block.component.mjs +3 -3
- package/esm2020/lib/dashboards/metrics-card/metrics-card.component.mjs +3 -3
- package/esm2020/lib/dashboards/progress-text-card/progress-text-card.component.mjs +3 -3
- package/esm2020/lib/dashboards/test-distribution-card/test-distribution-card.component.mjs +3 -3
- package/esm2020/lib/dialog/dialog.component.mjs +3 -3
- package/esm2020/lib/dropdown-button/dropdown-button.component.mjs +3 -3
- package/esm2020/lib/dynamic-select/dynamic-select-field.component.mjs +1 -1
- package/esm2020/lib/empty-state/empty-state.component.mjs +3 -3
- package/esm2020/lib/filters/dynamic-filter/dynamic-filter.component.mjs +3 -3
- package/esm2020/lib/full-table-loader/full-table-loader.component.mjs +3 -3
- package/esm2020/lib/other-button/other-button.component.mjs +3 -3
- package/esm2020/lib/pagination/pagination.component.mjs +3 -3
- package/esm2020/lib/search-bar/search-bar.component.mjs +3 -3
- package/esm2020/lib/segment-control/segment-control.component.mjs +3 -3
- package/esm2020/lib/selected-filters/selected-filters.component.mjs +3 -3
- package/esm2020/lib/table/dynamic-table/dynamic-table.component.mjs +3 -3
- package/esm2020/lib/table-action-toolbar/table-action-toolbar.component.mjs +3 -3
- package/esm2020/lib/table-data-loader/table-data-loader.component.mjs +3 -3
- package/esm2020/lib/templates/table-template.component.mjs +3 -3
- package/esm2020/lib/utils/tw-overlay-container.mjs +3 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +56 -56
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +56 -56
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/utils/tw-overlay-container.d.ts +2 -2
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -81,10 +81,10 @@ export class TestDistributionCardComponent {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
TestDistributionCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDistributionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
-
TestDistributionCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDistributionCardComponent, selector: "cqa-test-distribution-card", inputs: { title: "title", segments: "segments", items: "items" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "number": i2.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
84
|
+
TestDistributionCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDistributionCardComponent, selector: "cqa-test-distribution-card", inputs: { title: "title", segments: "segments", items: "items" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "number": i2.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
85
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDistributionCardComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
|
-
args: [{ selector: 'cqa-test-distribution-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
87
|
+
args: [{ selector: 'cqa-test-distribution-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\">\n {{ s.label }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB]\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
88
88
|
}], propDecorators: { title: [{
|
|
89
89
|
type: Input
|
|
90
90
|
}], segments: [{
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
92
92
|
}], items: [{
|
|
93
93
|
type: Input
|
|
94
94
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvdGVzdC1kaXN0cmlidXRpb24tY2FyZC90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUE2QjFFLE1BQU0sT0FBTyw2QkFBNkI7SUFOMUM7UUFPVyxVQUFLLEdBQVcsbUJBQW1CLENBQUM7UUFDcEMsYUFBUSxHQUEwQixFQUFFLENBQUM7UUFDckMsVUFBSyxHQUF1QixFQUFFLENBQUM7S0FtRnpDO0lBakZDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUE0QjtRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN0QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0M7UUFFL0QsaURBQWlEO1FBQ2pELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLE9B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Q2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7OzBIQXJGVSw2QkFBNkI7OEdBQTdCLDZCQUE2QixvSUM3QjFDLDZ5SUE0RE07MkZEL0JPLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uU2VnbWVudCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKiBUYWlsd2luZC1saWtlIGNsYXNzIG9yIGhleCBiZyBjb2xvciAqL1xuICBjb2xvckNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvbkNoaWxkSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uSXRlbSB7XG4gIGljb24/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yQ2xhc3M/OiBzdHJpbmc7IC8vIHVzZWQgZm9yIGljb24vYWNjZW50IGlmIGRlc2lyZWRcbiAgY2hpbGRyZW4/OiBEaXN0cmlidXRpb25DaGlsZEl0ZW1bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXRlc3QtZGlzdHJpYnV0aW9uLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZXN0RGlzdHJpYnV0aW9uQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnVGVzdCBEaXN0cmlidXRpb24nO1xuICBASW5wdXQoKSBzZWdtZW50czogRGlzdHJpYnV0aW9uU2VnbWVudFtdID0gW107XG4gIEBJbnB1dCgpIGl0ZW1zOiBEaXN0cmlidXRpb25JdGVtW10gPSBbXTtcblxuICB0b3RhbFNlZ21lbnRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVNlZ21lbnRzLnJlZHVjZSgoc3VtLCBzKSA9PiBzdW0gKyAocy52YWx1ZSB8fCAwKSwgMCkgfHwgMTtcbiAgfVxuXG4gIHNlZ21lbnRXaWR0aChzZWdtZW50OiBEaXN0cmlidXRpb25TZWdtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWxTZWdtZW50cygpO1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy52aXNpYmxlU2VnbWVudHM7XG4gICAgY29uc3QgbWluV2lkdGhQY3QgPSA4OyAvLyBNaW5pbXVtIDglIHRvIGVuc3VyZSBsYWJlbCBpcyB2aXNpYmxlXG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIG5hdHVyYWwgcGVyY2VudGFnZXMgZm9yIGFsbCBzZWdtZW50c1xuICAgIGNvbnN0IG5hdHVyYWxXaWR0aHMgPSBzZWdtZW50cy5tYXAocyA9PiAoe1xuICAgICAgc2VnbWVudDogcyxcbiAgICAgIG5hdHVyYWxQY3Q6IChzLnZhbHVlIC8gdG90YWwpICogMTAwLFxuICAgICAgbmVlZHNNaW5pbXVtOiAocy52YWx1ZSAvIHRvdGFsKSAqIDEwMCA8IG1pbldpZHRoUGN0XG4gICAgfSkpO1xuICAgIFxuICAgIC8vIENvdW50IGhvdyBtYW55IHNlZ21lbnRzIG5lZWQgbWluaW11bSB3aWR0aFxuICAgIGNvbnN0IHNlZ21lbnRzTmVlZGluZ01pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+IHcubmVlZHNNaW5pbXVtKS5sZW5ndGg7XG4gICAgY29uc3QgdG90YWxNaW5pbXVtV2lkdGggPSBzZWdtZW50c05lZWRpbmdNaW5pbXVtICogbWluV2lkdGhQY3Q7XG4gICAgXG4gICAgLy8gRmluZCBjdXJyZW50IHNlZ21lbnRcbiAgICBjb25zdCBjdXJyZW50V2lkdGggPSBuYXR1cmFsV2lkdGhzLmZpbmQodyA9PiB3LnNlZ21lbnQgPT09IHNlZ21lbnQpO1xuICAgIGlmICghY3VycmVudFdpZHRoKSB7XG4gICAgICByZXR1cm4gJzAlJztcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgdGhpcyBzZWdtZW50IG5lZWRzIG1pbmltdW0sIGdpdmUgaXQgbWluaW11bSB3aWR0aFxuICAgIGlmIChjdXJyZW50V2lkdGgubmVlZHNNaW5pbXVtKSB7XG4gICAgICByZXR1cm4gbWluV2lkdGhQY3QgKyAnJSc7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBzZWdtZW50cyB0aGF0IGRvbid0IG5lZWQgbWluaW11bSwgZGlzdHJpYnV0ZSByZW1haW5pbmcgc3BhY2UgcHJvcG9ydGlvbmFsbHlcbiAgICAvLyBSZW1haW5pbmcgc3BhY2UgPSAxMDAlIC0gKHNlZ21lbnRzIG5lZWRpbmcgbWluaW11bSAqIG1pbldpZHRoUGN0KVxuICAgIGNvbnN0IHJlbWFpbmluZ1NwYWNlID0gMTAwIC0gdG90YWxNaW5pbXVtV2lkdGg7XG4gICAgY29uc3Qgc2VnbWVudHNBYm92ZU1pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+ICF3Lm5lZWRzTWluaW11bSk7XG4gICAgY29uc3QgdG90YWxOYXR1cmFsQWJvdmVNaW5pbXVtID0gc2VnbWVudHNBYm92ZU1pbmltdW0ucmVkdWNlKChzdW0sIHcpID0+IHN1bSArIHcubmF0dXJhbFBjdCwgMCk7XG4gICAgXG4gICAgLy8gSWYgdGhlcmUncyBubyBuYXR1cmFsIHNwYWNlIGFib3ZlIG1pbmltdW0sIGp1c3QgdXNlIG5hdHVyYWwgcGVyY2VudGFnZVxuICAgIGlmICh0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0gPT09IDApIHtcbiAgICAgIHJldHVybiBNYXRoLm1heChtaW5XaWR0aFBjdCwgY3VycmVudFdpZHRoLm5hdHVyYWxQY3QpICsgJyUnO1xuICAgIH1cbiAgICBcbiAgICAvLyBTY2FsZSB0aGUgbmF0dXJhbCBwZXJjZW50YWdlIHRvIGZpdCBpbiByZW1haW5pbmcgc3BhY2VcbiAgICBjb25zdCBzY2FsZWRQY3QgPSAoY3VycmVudFdpZHRoLm5hdHVyYWxQY3QgLyB0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0pICogcmVtYWluaW5nU3BhY2U7XG4gICAgXG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbldpZHRoUGN0LCBzY2FsZWRQY3QpICsgJyUnO1xuICB9XG5cbiAgc2VnbWVudENvbG9yKHNlZ21lbnQ6IERpc3RyaWJ1dGlvblNlZ21lbnQsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZWdtZW50LmNvbG9yQ2xhc3MgfHwgZmFsbGJhY2s7XG4gIH1cblxuICBnZXRDaGlsZEljb24obGFiZWw6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IGxhYmVsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIGlmIChub3JtYWxpemVkTGFiZWwgPT09ICdpb3MnIHx8IG5vcm1hbGl6ZWRMYWJlbCA9PT0gJ2FwcGxlJykge1xuICAgICAgcmV0dXJuICdhcHBsZSc7XG4gICAgfSBlbHNlIGlmIChub3JtYWxpemVkTGFiZWwgPT09ICdhbmRyb2lkJykge1xuICAgICAgcmV0dXJuICdhbmRyb2lkJztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRJdGVtSWNvbkNvbG9yKGl0ZW06IERpc3RyaWJ1dGlvbkl0ZW0pOiBzdHJpbmcge1xuICAgIC8vIFJldHVybiBjb2xvciBiYXNlZCBvbiBsYWJlbCBvciB1c2UgZGVmYXVsdFxuICAgIGNvbnN0IGxhYmVsID0gaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChsYWJlbCA9PT0gJ3dlYicpIHtcbiAgICAgIHJldHVybiAnIzRGNDZFNSc7XG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ21vYmlsZScpIHtcbiAgICAgIHJldHVybiAnIzkzMzNFQSc7XG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ2FwaScpIHtcbiAgICAgIHJldHVybiAnIzA1OTY2OSc7XG4gICAgfVxuICAgIHJldHVybiAnIzRGNDZFNSc7IC8vIGRlZmF1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgc2VnbWVudHMgdG8gb25seSBzaG93IHRob3NlIHdpdGggdmFsdWUgPiAwXG4gICAqL1xuICBnZXQgdmlzaWJsZVNlZ21lbnRzKCk6IERpc3RyaWJ1dGlvblNlZ21lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZmlsdGVyKHNlZ21lbnQgPT4gc2VnbWVudC52YWx1ZSA+IDApO1xuICB9XG59XG5cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCI+XG4gIDxkaXYgY2xhc3M9XCJjcWEtYmctd2hpdGUgY3FhLXJvdW5kZWQtWzhweF0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItYm9yZGVyLWRlZmF1bHQgY3FhLXB5LVsxNC41cHhdIGNxYS1weC1bMTdweF0gY3FhLXNoYWRvdy1jYXJkXCI+XG4gICAgPCEtLSBUaXRsZSAtLT5cbiAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMTZweF0gY3FhLWxlYWRpbmctNiBjcWEtdGV4dC1bIzExMTgyN10gY3FhLW1iLTJcIj57eyB0aXRsZSB9fTwvaDM+XG5cbiAgICA8IS0tIFN0YWNrZWQgc2VnbWVudHMgcGlsbCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtaC1bMjRweF0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtYmctWyNGM0Y0RjZdIGNxYS1vdmVyZmxvdy1oaWRkZW4gY3FhLWZsZXggY3FhLW1iLTJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgdmlzaWJsZVNlZ21lbnRzOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdGV4dC13aGl0ZSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgICAgICBzZWdtZW50Q29sb3IocywgaSA9PT0gMCA/ICdjcWEtYmctWyM0RjQ2RTVdJyA6IGkgPT09IHNlZ21lbnRzLmxlbmd0aCAtIDEgPyAnY3FhLWJnLVsjMDU5NjY5XScgOiAnY3FhLWJnLVsjOTMzM0VBXScpLFxuICAgICAgICAgICAgaSA9PT0gMCA/ICdjcWEtcm91bmRlZC1sLWZ1bGwnIDogJycsXG4gICAgICAgICAgICBsYXN0ID8gJ2NxYS1yb3VuZGVkLXItZnVsbCcgOiAnJ1xuICAgICAgICAgIF1cIiBbc3R5bGUud2lkdGhdPVwic2VnbWVudFdpZHRoKHMpXCI+XG4gICAgICAgICAge3sgcy5sYWJlbCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBJdGVtcyBsaXN0IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC1bNnB4XVwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXQgb2YgaXRlbXNcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLVs2cHhdXCI+XG4gICAgICAgIDwhLS0gUGFyZW50IHJvdyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS13LVs0cHhdIGNxYS1oLVsxMnB4XSBjcWEtcm91bmRlZC1mdWxsXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0SXRlbUljb25Db2xvcihpdClcIj48L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW1sLVs4cHhdIGNxYS1tci1bNnB4XVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpdC5pY29uXCIgY2xhc3M9XCJjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMTRweF1cIiBbc3R5bGUuY29sb3JdPVwiZ2V0SXRlbUljb25Db2xvcihpdClcIj5cbiAgICAgICAgICAgICAgICB7eyBpdC5pY29uIH19XG4gICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBpdC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLTQgY3FhLWZvbnQtYm9sZFwiPnt7IGl0LnZhbHVlIHwgbnVtYmVyIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQ2hpbGRyZW4gcm93cyAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIml0LmNoaWxkcmVuPy5sZW5ndGhcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY2ggb2YgaXQuY2hpbGRyZW5cIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWZsZXgtMSBjcWEtcm91bmRlZC1bNHB4XSBjcWEtYmctWyNGOUZBRkJdXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS10ZXh0LVsjNEI1NTYzXVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0Q2hpbGRJY29uKGNoLmxhYmVsKSBhcyBpY29uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaWNvblwiPlxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hDYXNlPVwiJ2FwcGxlJ1wiIGNsYXNzPVwiY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtbWwtMiBjcWEtbXItMVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xNi4zNjUgMS40M2MwIDEuMTgyLS40MzUgMi4wMTQtMS4wODYgMi44NDUtLjgyMy45OS0xLjk4MiAxLjcwNy0zLjA3OCAxLjYtLjEzLTEuMTE1LjQzMy0yLjE1NCAxLjA5LTIuODcuODI1LS45MjUgMi4xOTYtMS41OSAzLjA3LTEuNTc1LS4wMDMuMDAzLjAwMyAwIC4wMDMgMHptMy4yMTcgNi4wOTRjLS4wODYtLjA2Ny0yLjY4NC0xLjU5OC01LjQ2OC0uNTA3LTEuMzMyLjUzLTIuNDI5LjU0Mi0zLjc4OC4wMDYtMS45OTctLjgtMy42MzUuMTU2LTMuNzM1LjIwOC0uMDgzLjA0NC0xLjk0OCAxLjE0My0yLjQgMy42NjctLjQzIDIuMzc1LjYgNC45MiAxLjQgNi41Mi43MjMgMS40MjEgMS43MDQgMy4xMjYgMy4wNjcgMy4wNyAxLjM1LS4wNTMgMS43OC0uODgzIDMuMzIzLS44ODMgMS41NDIgMCAxLjkyLjg4MyAzLjM2Ljg1MyAxLjQ0LS4wMjYgMi4zNTItMS40NDMgMy4wNzMtMi44NTUuNjc0LTEuMzI0Ljk2My0yLjYwMy45ODMtMi42NjgtLjAyMS0uMDA5LTEuODgtLjcyLTEuOTAzLTIuODU0LS4wMjEtMS43ODYgMS40NjMtMi42NCAxLjUzNC0yLjY4MnpcIi8+XG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDxzdmcgKm5nU3dpdGNoQ2FzZT1cIidhbmRyb2lkJ1wiIGNsYXNzPVwiY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtbWwtMiBjcWEtbXItMVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xNy42IDkuNDhsMS40Mi0yLjQ2YS41LjUgMCAxMC0uODYtLjVsLTEuNDQgMi41MkExMSAxMSAwIDAwMTYgN2gtOGMtLjI0IDAtLjQ4LjAxLS43Mi4wNEw1Ljg0IDYuNWEuNS41IDAgMDAtLjg2LjVsMS40MiAyLjQ2QTcgNyAwIDAwNCAxNWguNWExLjUgMS41IDAgMDAxLjUtMS41VjEwaDF2OS41QTEuNSAxLjUgMCAwMDguNSAyMWgxYTEuNSAxLjUgMCAwMDEuNS0xLjVWMTdoMnYyLjVBMS41IDEuNSAwIDAwMTQuNSAyMWgxYTEuNSAxLjUgMCAwMDEuNS0xLjVWMTBoMXYzLjVBMS41IDEuNSAwIDAwMTkuNSAxNUgyMGE3IDcgMCAwMC0yLjQtNS41MnpNOSA1YS43NS43NSAwIDExLTEuNSAwQS43NS43NSAwIDAxOSA1em03LjUgMGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwelwiLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1wci0xXCIgW25nQ2xhc3NdPVwiZ2V0Q2hpbGRJY29uKGNoLmxhYmVsKSA/ICdjcWEtcGwtMCcgOiAnY3FhLXBsLTInXCI+e3sgY2gubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1ib2xkIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdXCI+e3sgY2gudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvdGVzdC1kaXN0cmlidXRpb24tY2FyZC90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUE4QjFFLE1BQU0sT0FBTyw2QkFBNkI7SUFQMUM7UUFRVyxVQUFLLEdBQVcsbUJBQW1CLENBQUM7UUFDcEMsYUFBUSxHQUEwQixFQUFFLENBQUM7UUFDckMsVUFBSyxHQUF1QixFQUFFLENBQUM7S0FtRnpDO0lBakZDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUE0QjtRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN0QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0M7UUFFL0QsaURBQWlEO1FBQ2pELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLE9B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Q2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7OzBIQXJGVSw2QkFBNkI7OEdBQTdCLDZCQUE2Qiw2S0M5QjFDLDZ5SUE0RE07MkZEOUJPLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzhCQUdyQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvblNlZ21lbnQge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICAvKiogVGFpbHdpbmQtbGlrZSBjbGFzcyBvciBoZXggYmcgY29sb3IgKi9cbiAgY29sb3JDbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXN0cmlidXRpb25DaGlsZEl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICBjb2xvckNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvbkl0ZW0ge1xuICBpY29uPzogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICBjb2xvckNsYXNzPzogc3RyaW5nOyAvLyB1c2VkIGZvciBpY29uL2FjY2VudCBpZiBkZXNpcmVkXG4gIGNoaWxkcmVuPzogRGlzdHJpYnV0aW9uQ2hpbGRJdGVtW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS10ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIFRlc3REaXN0cmlidXRpb25DYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdUZXN0IERpc3RyaWJ1dGlvbic7XG4gIEBJbnB1dCgpIHNlZ21lbnRzOiBEaXN0cmlidXRpb25TZWdtZW50W10gPSBbXTtcbiAgQElucHV0KCkgaXRlbXM6IERpc3RyaWJ1dGlvbkl0ZW1bXSA9IFtdO1xuXG4gIHRvdGFsU2VnbWVudHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlU2VnbWVudHMucmVkdWNlKChzdW0sIHMpID0+IHN1bSArIChzLnZhbHVlIHx8IDApLCAwKSB8fCAxO1xuICB9XG5cbiAgc2VnbWVudFdpZHRoKHNlZ21lbnQ6IERpc3RyaWJ1dGlvblNlZ21lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy50b3RhbFNlZ21lbnRzKCk7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnZpc2libGVTZWdtZW50cztcbiAgICBjb25zdCBtaW5XaWR0aFBjdCA9IDg7IC8vIE1pbmltdW0gOCUgdG8gZW5zdXJlIGxhYmVsIGlzIHZpc2libGVcbiAgICBcbiAgICAvLyBDYWxjdWxhdGUgbmF0dXJhbCBwZXJjZW50YWdlcyBmb3IgYWxsIHNlZ21lbnRzXG4gICAgY29uc3QgbmF0dXJhbFdpZHRocyA9IHNlZ21lbnRzLm1hcChzID0+ICh7XG4gICAgICBzZWdtZW50OiBzLFxuICAgICAgbmF0dXJhbFBjdDogKHMudmFsdWUgLyB0b3RhbCkgKiAxMDAsXG4gICAgICBuZWVkc01pbmltdW06IChzLnZhbHVlIC8gdG90YWwpICogMTAwIDwgbWluV2lkdGhQY3RcbiAgICB9KSk7XG4gICAgXG4gICAgLy8gQ291bnQgaG93IG1hbnkgc2VnbWVudHMgbmVlZCBtaW5pbXVtIHdpZHRoXG4gICAgY29uc3Qgc2VnbWVudHNOZWVkaW5nTWluaW11bSA9IG5hdHVyYWxXaWR0aHMuZmlsdGVyKHcgPT4gdy5uZWVkc01pbmltdW0pLmxlbmd0aDtcbiAgICBjb25zdCB0b3RhbE1pbmltdW1XaWR0aCA9IHNlZ21lbnRzTmVlZGluZ01pbmltdW0gKiBtaW5XaWR0aFBjdDtcbiAgICBcbiAgICAvLyBGaW5kIGN1cnJlbnQgc2VnbWVudFxuICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IG5hdHVyYWxXaWR0aHMuZmluZCh3ID0+IHcuc2VnbWVudCA9PT0gc2VnbWVudCk7XG4gICAgaWYgKCFjdXJyZW50V2lkdGgpIHtcbiAgICAgIHJldHVybiAnMCUnO1xuICAgIH1cbiAgICBcbiAgICAvLyBJZiB0aGlzIHNlZ21lbnQgbmVlZHMgbWluaW11bSwgZ2l2ZSBpdCBtaW5pbXVtIHdpZHRoXG4gICAgaWYgKGN1cnJlbnRXaWR0aC5uZWVkc01pbmltdW0pIHtcbiAgICAgIHJldHVybiBtaW5XaWR0aFBjdCArICclJztcbiAgICB9XG4gICAgXG4gICAgLy8gRm9yIHNlZ21lbnRzIHRoYXQgZG9uJ3QgbmVlZCBtaW5pbXVtLCBkaXN0cmlidXRlIHJlbWFpbmluZyBzcGFjZSBwcm9wb3J0aW9uYWxseVxuICAgIC8vIFJlbWFpbmluZyBzcGFjZSA9IDEwMCUgLSAoc2VnbWVudHMgbmVlZGluZyBtaW5pbXVtICogbWluV2lkdGhQY3QpXG4gICAgY29uc3QgcmVtYWluaW5nU3BhY2UgPSAxMDAgLSB0b3RhbE1pbmltdW1XaWR0aDtcbiAgICBjb25zdCBzZWdtZW50c0Fib3ZlTWluaW11bSA9IG5hdHVyYWxXaWR0aHMuZmlsdGVyKHcgPT4gIXcubmVlZHNNaW5pbXVtKTtcbiAgICBjb25zdCB0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0gPSBzZWdtZW50c0Fib3ZlTWluaW11bS5yZWR1Y2UoKHN1bSwgdykgPT4gc3VtICsgdy5uYXR1cmFsUGN0LCAwKTtcbiAgICBcbiAgICAvLyBJZiB0aGVyZSdzIG5vIG5hdHVyYWwgc3BhY2UgYWJvdmUgbWluaW11bSwganVzdCB1c2UgbmF0dXJhbCBwZXJjZW50YWdlXG4gICAgaWYgKHRvdGFsTmF0dXJhbEFib3ZlTWluaW11bSA9PT0gMCkge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KG1pbldpZHRoUGN0LCBjdXJyZW50V2lkdGgubmF0dXJhbFBjdCkgKyAnJSc7XG4gICAgfVxuICAgIFxuICAgIC8vIFNjYWxlIHRoZSBuYXR1cmFsIHBlcmNlbnRhZ2UgdG8gZml0IGluIHJlbWFpbmluZyBzcGFjZVxuICAgIGNvbnN0IHNjYWxlZFBjdCA9IChjdXJyZW50V2lkdGgubmF0dXJhbFBjdCAvIHRvdGFsTmF0dXJhbEFib3ZlTWluaW11bSkgKiByZW1haW5pbmdTcGFjZTtcbiAgICBcbiAgICByZXR1cm4gTWF0aC5tYXgobWluV2lkdGhQY3QsIHNjYWxlZFBjdCkgKyAnJSc7XG4gIH1cblxuICBzZWdtZW50Q29sb3Ioc2VnbWVudDogRGlzdHJpYnV0aW9uU2VnbWVudCwgZmFsbGJhY2s6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlZ21lbnQuY29sb3JDbGFzcyB8fCBmYWxsYmFjaztcbiAgfVxuXG4gIGdldENoaWxkSWNvbihsYWJlbDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gbGFiZWwudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgaWYgKG5vcm1hbGl6ZWRMYWJlbCA9PT0gJ2lvcycgfHwgbm9ybWFsaXplZExhYmVsID09PSAnYXBwbGUnKSB7XG4gICAgICByZXR1cm4gJ2FwcGxlJztcbiAgICB9IGVsc2UgaWYgKG5vcm1hbGl6ZWRMYWJlbCA9PT0gJ2FuZHJvaWQnKSB7XG4gICAgICByZXR1cm4gJ2FuZHJvaWQnO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldEl0ZW1JY29uQ29sb3IoaXRlbTogRGlzdHJpYnV0aW9uSXRlbSk6IHN0cmluZyB7XG4gICAgLy8gUmV0dXJuIGNvbG9yIGJhc2VkIG9uIGxhYmVsIG9yIHVzZSBkZWZhdWx0XG4gICAgY29uc3QgbGFiZWwgPSBpdGVtLmxhYmVsLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxhYmVsID09PSAnd2ViJykge1xuICAgICAgcmV0dXJuICcjNEY0NkU1JztcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09PSAnbW9iaWxlJykge1xuICAgICAgcmV0dXJuICcjOTMzM0VBJztcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09PSAnYXBpJykge1xuICAgICAgcmV0dXJuICcjMDU5NjY5JztcbiAgICB9XG4gICAgcmV0dXJuICcjNEY0NkU1JzsgLy8gZGVmYXVsdFxuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlciBzZWdtZW50cyB0byBvbmx5IHNob3cgdGhvc2Ugd2l0aCB2YWx1ZSA+IDBcbiAgICovXG4gIGdldCB2aXNpYmxlU2VnbWVudHMoKTogRGlzdHJpYnV0aW9uU2VnbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5zZWdtZW50cy5maWx0ZXIoc2VnbWVudCA9PiBzZWdtZW50LnZhbHVlID4gMCk7XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1bOHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1ib3JkZXItZGVmYXVsdCBjcWEtcHktWzE0LjVweF0gY3FhLXB4LVsxN3B4XSBjcWEtc2hhZG93LWNhcmRcIj5cbiAgICA8IS0tIFRpdGxlIC0tPlxuICAgIDxoMyBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy02IGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbWItMlwiPnt7IHRpdGxlIH19PC9oMz5cblxuICAgIDwhLS0gU3RhY2tlZCBzZWdtZW50cyBwaWxsIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1oLVsyNHB4XSBjcWEtcm91bmRlZC1mdWxsIGNxYS1iZy1bI0YzRjRGNl0gY3FhLW92ZXJmbG93LWhpZGRlbiBjcWEtZmxleCBjcWEtbWItMlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiB2aXNpYmxlU2VnbWVudHM7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjcWEtaC1mdWxsIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS10ZXh0LXdoaXRlIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF1cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgIHNlZ21lbnRDb2xvcihzLCBpID09PSAwID8gJ2NxYS1iZy1bIzRGNDZFNV0nIDogaSA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSA/ICdjcWEtYmctWyMwNTk2NjldJyA6ICdjcWEtYmctWyM5MzMzRUFdJyksXG4gICAgICAgICAgICBpID09PSAwID8gJ2NxYS1yb3VuZGVkLWwtZnVsbCcgOiAnJyxcbiAgICAgICAgICAgIGxhc3QgPyAnY3FhLXJvdW5kZWQtci1mdWxsJyA6ICcnXG4gICAgICAgICAgXVwiIFtzdHlsZS53aWR0aF09XCJzZWdtZW50V2lkdGgocylcIj5cbiAgICAgICAgICB7eyBzLmxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEl0ZW1zIGxpc3QgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLVs2cHhdXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdCBvZiBpdGVtc1wiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtWzZweF1cIj5cbiAgICAgICAgPCEtLSBQYXJlbnQgcm93IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXctWzRweF0gY3FhLWgtWzEycHhdIGNxYS1yb3VuZGVkLWZ1bGxcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRJdGVtSWNvbkNvbG9yKGl0KVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWwtWzhweF0gY3FhLW1yLVs2cHhdXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIml0Lmljb25cIiBjbGFzcz1cImNxYS13LVsxNHB4XSBjcWEtaC1bMTRweF0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxNHB4XVwiIFtzdHlsZS5jb2xvcl09XCJnZXRJdGVtSWNvbkNvbG9yKGl0KVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0Lmljb24gfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS10ZXh0LWRpYWxvZy1tdXRlZFwiPnt7IGl0LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctNCBjcWEtZm9udC1ib2xkXCI+e3sgaXQudmFsdWUgfCBudW1iZXIgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBDaGlsZHJlbiByb3dzIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXQuY2hpbGRyZW4/Lmxlbmd0aFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjaCBvZiBpdC5jaGlsZHJlblwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZmxleC0xIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS1iZy1bI0Y5RkFGQl1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyM0QjU1NjNdXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDaGlsZEljb24oY2gubGFiZWwpIGFzIGljb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpY29uXCI+XG4gICAgICAgICAgICAgICAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCInYXBwbGUnXCIgY2xhc3M9XCJjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS1tbC0yIGNxYS1tci0xXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE2LjM2NSAxLjQzYzAgMS4xODItLjQzNSAyLjAxNC0xLjA4NiAyLjg0NS0uODIzLjk5LTEuOTgyIDEuNzA3LTMuMDc4IDEuNi0uMTMtMS4xMTUuNDMzLTIuMTU0IDEuMDktMi44Ny44MjUtLjkyNSAyLjE5Ni0xLjU5IDMuMDctMS41NzUtLjAwMy4wMDMuMDAzIDAgLjAwMyAwem0zLjIxNyA2LjA5NGMtLjA4Ni0uMDY3LTIuNjg0LTEuNTk4LTUuNDY4LS41MDctMS4zMzIuNTMtMi40MjkuNTQyLTMuNzg4LjAwNi0xLjk5Ny0uOC0zLjYzNS4xNTYtMy43MzUuMjA4LS4wODMuMDQ0LTEuOTQ4IDEuMTQzLTIuNCAzLjY2Ny0uNDMgMi4zNzUuNiA0LjkyIDEuNCA2LjUyLjcyMyAxLjQyMSAxLjcwNCAzLjEyNiAzLjA2NyAzLjA3IDEuMzUtLjA1MyAxLjc4LS44ODMgMy4zMjMtLjg4MyAxLjU0MiAwIDEuOTIuODgzIDMuMzYuODUzIDEuNDQtLjAyNiAyLjM1Mi0xLjQ0MyAzLjA3My0yLjg1NS42NzQtMS4zMjQuOTYzLTIuNjAzLjk4My0yLjY2OC0uMDIxLS4wMDktMS44OC0uNzItMS45MDMtMi44NTQtLjAyMS0xLjc4NiAxLjQ2My0yLjY0IDEuNTM0LTIuNjgyelwiLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hDYXNlPVwiJ2FuZHJvaWQnXCIgY2xhc3M9XCJjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS1tbC0yIGNxYS1tci0xXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE3LjYgOS40OGwxLjQyLTIuNDZhLjUuNSAwIDEwLS44Ni0uNWwtMS40NCAyLjUyQTExIDExIDAgMDAxNiA3aC04Yy0uMjQgMC0uNDguMDEtLjcyLjA0TDUuODQgNi41YS41LjUgMCAwMC0uODYuNWwxLjQyIDIuNDZBNyA3IDAgMDA0IDE1aC41YTEuNSAxLjUgMCAwMDEuNS0xLjVWMTBoMXY5LjVBMS41IDEuNSAwIDAwOC41IDIxaDFhMS41IDEuNSAwIDAwMS41LTEuNVYxN2gydjIuNUExLjUgMS41IDAgMDAxNC41IDIxaDFhMS41IDEuNSAwIDAwMS41LTEuNVYxMGgxdjMuNUExLjUgMS41IDAgMDAxOS41IDE1SDIwYTcgNyAwIDAwLTIuNC01LjUyek05IDVhLjc1Ljc1IDAgMTEtMS41IDBBLjc1Ljc1IDAgMDE5IDV6bTcuNSAwYS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6XCIvPlxuICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXByLTFcIiBbbmdDbGFzc109XCJnZXRDaGlsZEljb24oY2gubGFiZWwpID8gJ2NxYS1wbC0wJyA6ICdjcWEtcGwtMidcIj57eyBjaC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1mb250LWJvbGQgY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj57eyBjaC52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -116,12 +116,12 @@ export class DialogComponent {
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
DialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
-
DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DialogComponent, selector: "cqa-dialog", viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-flex cqa-w-full cqa-justify-center cqa-px-4 sm:cqa-px-6\">\n <div [ngClass]=\"panelClassList\" [ngStyle]=\"panelStyles\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-5\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <h2 class=\"cqa-text-lg cqa-font-semibold cqa-text-dialog\">\n {{ config.title }}\n </h2>\n\n <p *ngIf=\"config.description\" class=\"cqa-text-sm cqa-leading-6 cqa-text-dialog-secondary\">\n {{ config.description }}\n </p>\n\n <div *ngIf=\"config.warning\"\n class=\"cqa-rounded-xl cqa-border cqa-border-red-200 cqa-bg-red-50 cqa-px-4 cqa-py-3 cqa-text-sm cqa-leading-5 cqa-text-red-700\">\n {{ config.warning }}\n </div>\n </div>\n\n <div class=\"cqa-text-sm cqa-text-dialog\" [class.hidden]=\"!contentAttached\">\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"cqa-mt-4 cqa-flex cqa-flex-wrap cqa-gap-3\" [ngClass]=\"buttonAlignmentClass\">\n <cqa-button *ngFor=\"let button of config.buttons\" type=\"button\" [variant]=\"buttonVariant(button)\"\n [ngClass]=\"buttonHostClasses(button)\" (clicked)=\"onButtonClick(button)\">\n {{ button.label }}\n </cqa-button>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass"], outputs: ["clicked"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
119
|
+
DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DialogComponent, selector: "cqa-dialog", host: { classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-flex cqa-w-full cqa-justify-center cqa-px-4 sm:cqa-px-6\">\n <div [ngClass]=\"panelClassList\" [ngStyle]=\"panelStyles\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-5\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <h2 class=\"cqa-text-lg cqa-font-semibold cqa-text-dialog\">\n {{ config.title }}\n </h2>\n\n <p *ngIf=\"config.description\" class=\"cqa-text-sm cqa-leading-6 cqa-text-dialog-secondary\">\n {{ config.description }}\n </p>\n\n <div *ngIf=\"config.warning\"\n class=\"cqa-rounded-xl cqa-border cqa-border-red-200 cqa-bg-red-50 cqa-px-4 cqa-py-3 cqa-text-sm cqa-leading-5 cqa-text-red-700\">\n {{ config.warning }}\n </div>\n </div>\n\n <div class=\"cqa-text-sm cqa-text-dialog\" [class.hidden]=\"!contentAttached\">\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"cqa-mt-4 cqa-flex cqa-flex-wrap cqa-gap-3\" [ngClass]=\"buttonAlignmentClass\">\n <cqa-button *ngFor=\"let button of config.buttons\" type=\"button\" [variant]=\"buttonVariant(button)\"\n [ngClass]=\"buttonHostClasses(button)\" (clicked)=\"onButtonClick(button)\">\n {{ button.label }}\n </cqa-button>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass"], outputs: ["clicked"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DialogComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
|
-
args: [{ selector: 'cqa-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-flex cqa-w-full cqa-justify-center cqa-px-4 sm:cqa-px-6\">\n <div [ngClass]=\"panelClassList\" [ngStyle]=\"panelStyles\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-5\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <h2 class=\"cqa-text-lg cqa-font-semibold cqa-text-dialog\">\n {{ config.title }}\n </h2>\n\n <p *ngIf=\"config.description\" class=\"cqa-text-sm cqa-leading-6 cqa-text-dialog-secondary\">\n {{ config.description }}\n </p>\n\n <div *ngIf=\"config.warning\"\n class=\"cqa-rounded-xl cqa-border cqa-border-red-200 cqa-bg-red-50 cqa-px-4 cqa-py-3 cqa-text-sm cqa-leading-5 cqa-text-red-700\">\n {{ config.warning }}\n </div>\n </div>\n\n <div class=\"cqa-text-sm cqa-text-dialog\" [class.hidden]=\"!contentAttached\">\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"cqa-mt-4 cqa-flex cqa-flex-wrap cqa-gap-3\" [ngClass]=\"buttonAlignmentClass\">\n <cqa-button *ngFor=\"let button of config.buttons\" type=\"button\" [variant]=\"buttonVariant(button)\"\n [ngClass]=\"buttonHostClasses(button)\" (clicked)=\"onButtonClick(button)\">\n {{ button.label }}\n </cqa-button>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
122
|
+
args: [{ selector: 'cqa-dialog', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-flex cqa-w-full cqa-justify-center cqa-px-4 sm:cqa-px-6\">\n <div [ngClass]=\"panelClassList\" [ngStyle]=\"panelStyles\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-5\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <h2 class=\"cqa-text-lg cqa-font-semibold cqa-text-dialog\">\n {{ config.title }}\n </h2>\n\n <p *ngIf=\"config.description\" class=\"cqa-text-sm cqa-leading-6 cqa-text-dialog-secondary\">\n {{ config.description }}\n </p>\n\n <div *ngIf=\"config.warning\"\n class=\"cqa-rounded-xl cqa-border cqa-border-red-200 cqa-bg-red-50 cqa-px-4 cqa-py-3 cqa-text-sm cqa-leading-5 cqa-text-red-700\">\n {{ config.warning }}\n </div>\n </div>\n\n <div class=\"cqa-text-sm cqa-text-dialog\" [class.hidden]=\"!contentAttached\">\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"cqa-mt-4 cqa-flex cqa-flex-wrap cqa-gap-3\" [ngClass]=\"buttonAlignmentClass\">\n <cqa-button *ngFor=\"let button of config.buttons\" type=\"button\" [variant]=\"buttonVariant(button)\"\n [ngClass]=\"buttonHostClasses(button)\" (clicked)=\"onButtonClick(button)\">\n {{ button.label }}\n </cqa-button>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
123
123
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { portalOutlet: [{
|
|
124
124
|
type: ViewChild,
|
|
125
125
|
args: [CdkPortalOutlet, { static: true }]
|
|
126
126
|
}] } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBR1QsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQW1CLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQVd2RixNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUE2QixnQkFBa0MsRUFBbUIsR0FBc0I7UUFBM0UscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFtQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUZ4RyxvQkFBZSxHQUFHLEtBQUssQ0FBQztJQUVtRixDQUFDO0lBRTVHLGNBQWMsQ0FBQyxRQUE4QixFQUFFLE9BQWlDO1FBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUVELE1BQU0sZUFBZSxHQUNuQixPQUFPO1lBQ1A7Z0JBQ0UsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTtnQkFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTthQUN4QixDQUFDO1FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBbUM7UUFDakQsSUFBSSxDQUFDLElBQUks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QUM7SUFDWixDQUFDO0lBRU8sbUJBQW1CLENBQUMsU0FBZ0M7UUFDMUQsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxNQUFNO2dCQUNULE9BQU8sbUJBQW1CLENBQUM7WUFDN0IsS0FBSyxRQUFRO2dCQUNYLE9BQU8sb0JBQW9CLENBQUM7WUFDOUIsS0FBSyxPQUFPLENBQUM7WUFDYjtnQkFDRSxPQUFPLGlCQUFpQixDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBd0I7UUFDNUMsT0FBTyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7NEdBeklVLGVBQWU7Z0dBQWYsZUFBZSxnR0FFZixlQUFlLDhEQ3RCNUIsbzRDQWdDTTsyRkRaTyxlQUFlO2tCQU4zQixTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTt1SUFJRCxZQUFZO3NCQUF6RCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka1BvcnRhbE91dGxldCwgQ29tcG9uZW50UG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgRGlhbG9nQnV0dG9uQWxpZ25tZW50LCBEaWFsb2dCdXR0b25Db25maWcsIERpYWxvZ0NvbmZpZywgRGlhbG9nQ29udGVudENvbmZpZyB9IGZyb20gJy4vZGlhbG9nLm1vZGVscyc7XG5pbXBvcnQgeyBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi9kaWFsb2ctcmVmJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50PFRSZXN1bHQgPSB1bmtub3duPiB7XG5cbiAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQsIHsgc3RhdGljOiB0cnVlIH0pIHBvcnRhbE91dGxldD86IENka1BvcnRhbE91dGxldDtcblxuICBjb25maWchOiBEaWFsb2dDb25maWc8RGlhbG9nQ29udGVudENvbmZpZywgVFJlc3VsdD47XG4gIGRpYWxvZ1JlZiE6IERpYWxvZ1JlZjxUUmVzdWx0PjtcblxuICBjb250ZW50QXR0YWNoZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBhdHRhY2hUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4sIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIGlmICghdGhpcy5wb3J0YWxPdXRsZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wbGF0ZUNvbnRleHQgPVxuICAgICAgY29udGV4dCA/P1xuICAgICAge1xuICAgICAgICAkaW1wbGljaXQ6IHRoaXMuY29uZmlnPy5kYXRhLFxuICAgICAgICBkYXRhOiB0aGlzLmNvbmZpZz8uZGF0YSxcbiAgICAgIH07XG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRlbXBsYXRlQ29udGV4dCk7XG4gICAgdGhpcy5wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwocG9ydGFsKTtcbiAgICB0aGlzLm1hcmtDb250ZW50QXR0YWNoZWQoKTtcbiAgfVxuXG4gIGF0dGFjaENvbXBvbmVudChjb21wb25lbnQ6IENvbXBvbmVudFBvcnRhbDx1bmtub3duPik6IENvbXBvbmVudFJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLnBvcnRhbE91dGxldCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwoY29tcG9uZW50KTtcbiAgICB0aGlzLm1hcmtDb250ZW50QXR0YWNoZWQoKTtcbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xuICB9XG5cbiAgYXN5bmMgb25CdXR0b25DbGljayhidXR0b246IERpYWxvZ0J1dHRvbkNvbmZpZzxUUmVzdWx0Pik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNsb3NlT25DbGljayA9IGJ1dHRvbi5jbG9zZU9uQ2xpY2sgPz8gdHJ1ZTtcbiAgICBsZXQgaGFuZGxlclJlc3VsdDogVFJlc3VsdCB8IGZhbHNlIHwgdm9pZCB8IFByb21pc2U8VFJlc3VsdCB8IGZhbHNlIHwgdm9pZD4gPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoYnV0dG9uLmhhbmRsZXIpIHtcbiAgICAgIGhhbmRsZXJSZXN1bHQgPSBidXR0b24uaGFuZGxlcih0aGlzLmRpYWxvZ1JlZik7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb2x2ZWQgPSBoYW5kbGVyUmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSA/IGF3YWl0IGhhbmRsZXJSZXN1bHQgOiBoYW5kbGVyUmVzdWx0O1xuXG4gICAgaWYgKCFjbG9zZU9uQ2xpY2sgfHwgcmVzb2x2ZWQgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzb2x2ZWQgYXMgVFJlc3VsdCB8IHVuZGVmaW5lZCk7XG4gIH1cblxuICBnZXQgYnV0dG9uQWxpZ25tZW50Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBhbGlnbm1lbnQgPSB0aGlzLmNvbmZpZz8uYnV0dG9uQWxpZ25tZW50ID8/ICdyaWdodCc7XG4gICAgcmV0dXJuIHRoaXMubWFwQWxpZ25tZW50VG9DbGFzcyhhbGlnbm1lbnQpO1xuICB9XG5cbiAgZ2V0IHBhbmVsQ2xhc3NMaXN0KCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBiYXNlQ2xhc3NlcyA9IFtcbiAgICAgICdjcWEtcmVsYXRpdmUnLFxuICAgICAgJ2NxYS13LWZ1bGwnLFxuICAgICAgJ2NxYS1iZy13aGl0ZScsXG4gICAgICAnY3FhLXJvdW5kZWQtMnhsJyxcbiAgICAgICdjcWEtc2hhZG93LW1kJyxcbiAgICAgICdjcWEtYm9yZGVyJyxcbiAgICAgICdjcWEtYm9yZGVyLWJvcmRlci1kZWZhdWx0JyxcbiAgICAgICdjcWEtcC02JyxcbiAgICAgICdjcWEtdGV4dC1sZWZ0JyxcbiAgICBdO1xuXG4gICAgY29uc3QgY3VzdG9tID0gdGhpcy5jb25maWc/LnBhbmVsQ2xhc3M7XG5cbiAgICBpZiAoIWN1c3RvbSkge1xuICAgICAgcmV0dXJuIGJhc2VDbGFzc2VzO1xuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGN1c3RvbSkgPyBbLi4uYmFzZUNsYXNzZXMsIC4uLmN1c3RvbV0gOiBbLi4uYmFzZUNsYXNzZXMsIGN1c3RvbV07XG4gIH1cblxuICBnZXQgcGFuZWxTdHlsZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiB0aGlzLmNvbmZpZz8ud2lkdGgsXG4gICAgICBtYXhXaWR0aDogdGhpcy5jb25maWc/Lm1heFdpZHRoID8/ICc0ODBweCcsXG4gICAgfTtcbiAgfVxuXG4gIGJ1dHRvblZhcmlhbnQoYnV0dG9uOiBEaWFsb2dCdXR0b25Db25maWc8VFJlc3VsdD4pOiBCdXR0b25WYXJpYW50IHtcbiAgICBjb25zdCByb2xlID0gdGhpcy5ub3JtYWxpemVSb2xlKGJ1dHRvbi5yb2xlKTtcblxuICAgIHN3aXRjaCAocm9sZSkge1xuICAgICAgY2FzZSAnc2Vjb25kYXJ5JzpcbiAgICAgICAgcmV0dXJuICdvdXRsaW5lZCc7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICAgIGNhc2UgJ3RvbmFsJzpcbiAgICAgICAgcmV0dXJuICd0b25hbCc7XG4gICAgICBjYXNlICdlbGV2YXRlZCc6XG4gICAgICAgIHJldHVybiAnZWxldmF0ZWQnO1xuICAgICAgY2FzZSAnZmlsbGVkJzpcbiAgICAgIGNhc2UgJ3ByaW1hcnknOlxuICAgICAgY2FzZSAnd2Fybic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2ZpbGxlZCc7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uSG9zdENsYXNzZXMoYnV0dG9uOiBEaWFsb2dCdXR0b25Db25maWc8VFJlc3VsdD4pOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgcm9sZSA9IHRoaXMubm9ybWFsaXplUm9sZShidXR0b24ucm9sZSk7XG5cbiAgICBpZiAocm9sZSA9PT0gJ3dhcm4nKSB7XG4gICAgICByZXR1cm4gWydjcWEtZGlhbG9nLWJ0bi13YXJuJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBBbGlnbm1lbnRUb0NsYXNzKGFsaWdubWVudDogRGlhbG9nQnV0dG9uQWxpZ25tZW50KTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGFsaWdubWVudCkge1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHJldHVybiAnY3FhLWp1c3RpZnktc3RhcnQnO1xuICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgcmV0dXJuICdjcWEtanVzdGlmeS1jZW50ZXInO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdjcWEtanVzdGlmeS1lbmQnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWFya0NvbnRlbnRBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnRBdHRhY2hlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVJvbGUocm9sZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHJvbGUgPz8gJ3NlY29uZGFyeScpLnRyaW0oKS5zcGxpdCgvXFxzKy8pWzBdO1xuICB9XG59XG5cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCI+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtdy1mdWxsIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcHgtNCBzbTpjcWEtcHgtNlwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwicGFuZWxDbGFzc0xpc3RcIiBbbmdTdHlsZV09XCJwYW5lbFN0eWxlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTNcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJjcWEtdGV4dC1sZyBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1kaWFsb2dcIj5cbiAgICAgICAgICAgIHt7IGNvbmZpZy50aXRsZSB9fVxuICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICA8cCAqbmdJZj1cImNvbmZpZy5kZXNjcmlwdGlvblwiIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWxlYWRpbmctNiBjcWEtdGV4dC1kaWFsb2ctc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICB7eyBjb25maWcuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLndhcm5pbmdcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtcm91bmRlZC14bCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItcmVkLTIwMCBjcWEtYmctcmVkLTUwIGNxYS1weC00IGNxYS1weS0zIGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLTUgY3FhLXRleHQtcmVkLTcwMFwiPlxuICAgICAgICAgICAge3sgY29uZmlnLndhcm5pbmcgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS10ZXh0LWRpYWxvZ1wiIFtjbGFzcy5oaWRkZW5dPVwiIWNvbnRlbnRBdHRhY2hlZFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tdC00IGNxYS1mbGV4IGNxYS1mbGV4LXdyYXAgY3FhLWdhcC0zXCIgW25nQ2xhc3NdPVwiYnV0dG9uQWxpZ25tZW50Q2xhc3NcIj5cbiAgICAgICAgICA8Y3FhLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGNvbmZpZy5idXR0b25zXCIgdHlwZT1cImJ1dHRvblwiIFt2YXJpYW50XT1cImJ1dHRvblZhcmlhbnQoYnV0dG9uKVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJidXR0b25Ib3N0Q2xhc3NlcyhidXR0b24pXCIgKGNsaWNrZWQpPVwib25CdXR0b25DbGljayhidXR0b24pXCI+XG4gICAgICAgICAgICB7eyBidXR0b24ubGFiZWwgfX1cbiAgICAgICAgICA8L2NxYS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBR1QsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQW1CLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQVl2RixNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUE2QixnQkFBa0MsRUFBbUIsR0FBc0I7UUFBM0UscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFtQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUZ4RyxvQkFBZSxHQUFHLEtBQUssQ0FBQztJQUVtRixDQUFDO0lBRTVHLGNBQWMsQ0FBQyxRQUE4QixFQUFFLE9BQWlDO1FBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUVELE1BQU0sZUFBZSxHQUNuQixPQUFPO1lBQ1A7Z0JBQ0UsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTtnQkFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTthQUN4QixDQUFDO1FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBbUM7UUFDakQsSUFBSSxDQUFDLElBQUks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QUM7SUFDWixDQUFDO0lBRU8sbUJBQW1CLENBQUMsU0FBZ0M7UUFDMUQsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxNQUFNO2dCQUNULE9BQU8sbUJBQW1CLENBQUM7WUFDN0IsS0FBSyxRQUFRO2dCQUNYLE9BQU8sb0JBQW9CLENBQUM7WUFDOUIsS0FBSyxPQUFPLENBQUM7WUFDYjtnQkFDRSxPQUFPLGlCQUFpQixDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBd0I7UUFDNUMsT0FBTyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7NEdBeklVLGVBQWU7Z0dBQWYsZUFBZSx5SUFFZixlQUFlLDhEQ3ZCNUIsbzRDQWdDTTsyRkRYTyxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxRQUN6QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7dUlBSWdCLFlBQVk7c0JBQXpELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0LCBDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBEaWFsb2dCdXR0b25BbGlnbm1lbnQsIERpYWxvZ0J1dHRvbkNvbmZpZywgRGlhbG9nQ29uZmlnLCBEaWFsb2dDb250ZW50Q29uZmlnIH0gZnJvbSAnLi9kaWFsb2cubW9kZWxzJztcbmltcG9ydCB7IEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH0sXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbXBvbmVudDxUUmVzdWx0ID0gdW5rbm93bj4ge1xuXG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb3J0YWxPdXRsZXQ/OiBDZGtQb3J0YWxPdXRsZXQ7XG5cbiAgY29uZmlnITogRGlhbG9nQ29uZmlnPERpYWxvZ0NvbnRlbnRDb25maWcsIFRSZXN1bHQ+O1xuICBkaWFsb2dSZWYhOiBEaWFsb2dSZWY8VFJlc3VsdD47XG5cbiAgY29udGVudEF0dGFjaGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgYXR0YWNoVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+LCBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucG9ydGFsT3V0bGV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGVtcGxhdGVDb250ZXh0ID1cbiAgICAgIGNvbnRleHQgPz9cbiAgICAgIHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmNvbmZpZz8uZGF0YSxcbiAgICAgICAgZGF0YTogdGhpcy5jb25maWc/LmRhdGEsXG4gICAgICB9O1xuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0ZW1wbGF0ZUNvbnRleHQpO1xuICAgIHRoaXMucG9ydGFsT3V0bGV0LmF0dGFjaFRlbXBsYXRlUG9ydGFsKHBvcnRhbCk7XG4gICAgdGhpcy5tYXJrQ29udGVudEF0dGFjaGVkKCk7XG4gIH1cblxuICBhdHRhY2hDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnRQb3J0YWw8dW5rbm93bj4pOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5wb3J0YWxPdXRsZXQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWxPdXRsZXQuYXR0YWNoQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudCk7XG4gICAgdGhpcy5tYXJrQ29udGVudEF0dGFjaGVkKCk7XG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIGFzeW5jIG9uQnV0dG9uQ2xpY2soYnV0dG9uOiBEaWFsb2dCdXR0b25Db25maWc8VFJlc3VsdD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjbG9zZU9uQ2xpY2sgPSBidXR0b24uY2xvc2VPbkNsaWNrID8/IHRydWU7XG4gICAgbGV0IGhhbmRsZXJSZXN1bHQ6IFRSZXN1bHQgfCBmYWxzZSB8IHZvaWQgfCBQcm9taXNlPFRSZXN1bHQgfCBmYWxzZSB8IHZvaWQ+ID0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGJ1dHRvbi5oYW5kbGVyKSB7XG4gICAgICBoYW5kbGVyUmVzdWx0ID0gYnV0dG9uLmhhbmRsZXIodGhpcy5kaWFsb2dSZWYpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc29sdmVkID0gaGFuZGxlclJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgPyBhd2FpdCBoYW5kbGVyUmVzdWx0IDogaGFuZGxlclJlc3VsdDtcblxuICAgIGlmICghY2xvc2VPbkNsaWNrIHx8IHJlc29sdmVkID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlc29sdmVkIGFzIFRSZXN1bHQgfCB1bmRlZmluZWQpO1xuICB9XG5cbiAgZ2V0IGJ1dHRvbkFsaWdubWVudENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYWxpZ25tZW50ID0gdGhpcy5jb25maWc/LmJ1dHRvbkFsaWdubWVudCA/PyAncmlnaHQnO1xuICAgIHJldHVybiB0aGlzLm1hcEFsaWdubWVudFRvQ2xhc3MoYWxpZ25tZW50KTtcbiAgfVxuXG4gIGdldCBwYW5lbENsYXNzTGlzdCgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSBbXG4gICAgICAnY3FhLXJlbGF0aXZlJyxcbiAgICAgICdjcWEtdy1mdWxsJyxcbiAgICAgICdjcWEtYmctd2hpdGUnLFxuICAgICAgJ2NxYS1yb3VuZGVkLTJ4bCcsXG4gICAgICAnY3FhLXNoYWRvdy1tZCcsXG4gICAgICAnY3FhLWJvcmRlcicsXG4gICAgICAnY3FhLWJvcmRlci1ib3JkZXItZGVmYXVsdCcsXG4gICAgICAnY3FhLXAtNicsXG4gICAgICAnY3FhLXRleHQtbGVmdCcsXG4gICAgXTtcblxuICAgIGNvbnN0IGN1c3RvbSA9IHRoaXMuY29uZmlnPy5wYW5lbENsYXNzO1xuXG4gICAgaWYgKCFjdXN0b20pIHtcbiAgICAgIHJldHVybiBiYXNlQ2xhc3NlcztcbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjdXN0b20pID8gWy4uLmJhc2VDbGFzc2VzLCAuLi5jdXN0b21dIDogWy4uLmJhc2VDbGFzc2VzLCBjdXN0b21dO1xuICB9XG5cbiAgZ2V0IHBhbmVsU3R5bGVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogdGhpcy5jb25maWc/LndpZHRoLFxuICAgICAgbWF4V2lkdGg6IHRoaXMuY29uZmlnPy5tYXhXaWR0aCA/PyAnNDgwcHgnLFxuICAgIH07XG4gIH1cblxuICBidXR0b25WYXJpYW50KGJ1dHRvbjogRGlhbG9nQnV0dG9uQ29uZmlnPFRSZXN1bHQ+KTogQnV0dG9uVmFyaWFudCB7XG4gICAgY29uc3Qgcm9sZSA9IHRoaXMubm9ybWFsaXplUm9sZShidXR0b24ucm9sZSk7XG5cbiAgICBzd2l0Y2ggKHJvbGUpIHtcbiAgICAgIGNhc2UgJ3NlY29uZGFyeSc6XG4gICAgICAgIHJldHVybiAnb3V0bGluZWQnO1xuICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgIHJldHVybiAndGV4dCc7XG4gICAgICBjYXNlICd0b25hbCc6XG4gICAgICAgIHJldHVybiAndG9uYWwnO1xuICAgICAgY2FzZSAnZWxldmF0ZWQnOlxuICAgICAgICByZXR1cm4gJ2VsZXZhdGVkJztcbiAgICAgIGNhc2UgJ2ZpbGxlZCc6XG4gICAgICBjYXNlICdwcmltYXJ5JzpcbiAgICAgIGNhc2UgJ3dhcm4nOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdmaWxsZWQnO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbkhvc3RDbGFzc2VzKGJ1dHRvbjogRGlhbG9nQnV0dG9uQ29uZmlnPFRSZXN1bHQ+KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJvbGUgPSB0aGlzLm5vcm1hbGl6ZVJvbGUoYnV0dG9uLnJvbGUpO1xuXG4gICAgaWYgKHJvbGUgPT09ICd3YXJuJykge1xuICAgICAgcmV0dXJuIFsnY3FhLWRpYWxvZy1idG4td2FybiddO1xuICAgIH1cblxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwQWxpZ25tZW50VG9DbGFzcyhhbGlnbm1lbnQ6IERpYWxvZ0J1dHRvbkFsaWdubWVudCk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChhbGlnbm1lbnQpIHtcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICByZXR1cm4gJ2NxYS1qdXN0aWZ5LXN0YXJ0JztcbiAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgIHJldHVybiAnY3FhLWp1c3RpZnktY2VudGVyJztcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnY3FhLWp1c3RpZnktZW5kJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1hcmtDb250ZW50QXR0YWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZW50QXR0YWNoZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVSb2xlKHJvbGU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChyb2xlID8/ICdzZWNvbmRhcnknKS50cmltKCkuc3BsaXQoL1xccysvKVswXTtcbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLXctZnVsbCBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXB4LTQgc206Y3FhLXB4LTZcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInBhbmVsQ2xhc3NMaXN0XCIgW25nU3R5bGVdPVwicGFuZWxTdHlsZXNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC01XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0zXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiY3FhLXRleHQtbGcgY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtZGlhbG9nXCI+XG4gICAgICAgICAgICB7eyBjb25maWcudGl0bGUgfX1cbiAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgPHAgKm5nSWY9XCJjb25maWcuZGVzY3JpcHRpb25cIiBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLTYgY3FhLXRleHQtZGlhbG9nLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAge3sgY29uZmlnLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZy53YXJuaW5nXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXJvdW5kZWQteGwgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXJlZC0yMDAgY3FhLWJnLXJlZC01MCBjcWEtcHgtNCBjcWEtcHktMyBjcWEtdGV4dC1zbSBjcWEtbGVhZGluZy01IGNxYS10ZXh0LXJlZC03MDBcIj5cbiAgICAgICAgICAgIHt7IGNvbmZpZy53YXJuaW5nIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtdGV4dC1kaWFsb2dcIiBbY2xhc3MuaGlkZGVuXT1cIiFjb250ZW50QXR0YWNoZWRcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtNCBjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1nYXAtM1wiIFtuZ0NsYXNzXT1cImJ1dHRvbkFsaWdubWVudENsYXNzXCI+XG4gICAgICAgICAgPGNxYS1idXR0b24gKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBjb25maWcuYnV0dG9uc1wiIHR5cGU9XCJidXR0b25cIiBbdmFyaWFudF09XCJidXR0b25WYXJpYW50KGJ1dHRvbilcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiYnV0dG9uSG9zdENsYXNzZXMoYnV0dG9uKVwiIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soYnV0dG9uKVwiPlxuICAgICAgICAgICAge3sgYnV0dG9uLmxhYmVsIH19XG4gICAgICAgICAgPC9jcWEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -156,10 +156,10 @@ export class DropdownButtonComponent {
|
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
DropdownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DropdownButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
159
|
-
DropdownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DropdownButtonComponent, selector: "cqa-dropdown-button", inputs: { label: "label", options: "options", selectedValue: "selectedValue", disabled: "disabled", placeholder: "placeholder" }, outputs: { selectionChange: "selectionChange", opened: "opened", closed: "closed" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownContainer", first: true, predicate: ["dropdownContainer"], descendants: true }, { propertyName: "buttonElement", first: true, predicate: ["buttonElement"], descendants: true }], ngImport: i0, template: "<div class=\"cqa-ui-root\" #dropdownContainer style=\"position: relative; display: inline-block; width: auto;\">\n <button\n #buttonElement\n type=\"button\"\n [class]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"toggleDropdown($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"true\"\n >\n <div [class]=\"labelClasses\">\n {{ displayLabel }}\n </div>\n <div [class]=\"arrowClasses\">\n <svg\n class=\"cqa-w-2 cqa-h-1 cqa-absolute cqa-left-[4px] cqa-top-[6px]\"\n viewBox=\"0 0 8 4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 0L4 4L8 0\"\n stroke=\"#0B0B0C\"\n stroke-width=\"1.33\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </button>\n\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"isOpen && options && options.length > 0\"\n class=\"cqa-absolute cqa-top-full cqa-left-0 cqa-mt-1 cqa-p-1.5 cqa-bg-white cqa-rounded-lg cqa-shadow-[0px_2px_4px_-2px_rgba(0,0,0,0.10)] cqa-shadow-md cqa-outline cqa-outline-1 cqa-outline-offset-[-1px] cqa-outline-gray-200 cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-z-[9999] cqa-w-auto cqa-max-w-[350px]\"\n >\n <div class=\"cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-0.5 cqa-w-full\">\n <div\n *ngFor=\"let option of options\"\n (click)=\"selectOption(option, $event)\"\n [class]=\"getOptionClasses(option)\"\n class=\"cqa-w-full cqa-whitespace-nowrap\"\n >\n <div class=\"cqa-w-6 cqa-h-4 cqa-pr-2 cqa-inline-flex cqa-flex-col cqa-justify-center cqa-items-center\">\n <mat-icon\n *ngIf=\"selectedValue === option.value\"\n class=\"cqa-w-4 cqa-h-4 cqa-text-primary cqa-text-base cqa-leading-4\"\n >check</mat-icon>\n </div>\n <div class=\"cqa-flex-1 cqa-inline-flex cqa-flex-col cqa-justify-start cqa-items-start\">\n <div class=\"cqa-justify-center cqa-text-gray-950 cqa-text-sm cqa-font-normal cqa-leading-5 cqa-font-geist\">\n {{ option.label }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
159
|
+
DropdownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DropdownButtonComponent, selector: "cqa-dropdown-button", inputs: { label: "label", options: "options", selectedValue: "selectedValue", disabled: "disabled", placeholder: "placeholder" }, outputs: { selectionChange: "selectionChange", opened: "opened", closed: "closed" }, host: { listeners: { "document:click": "onDocumentClick($event)" }, classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "dropdownContainer", first: true, predicate: ["dropdownContainer"], descendants: true }, { propertyName: "buttonElement", first: true, predicate: ["buttonElement"], descendants: true }], ngImport: i0, template: "<div class=\"cqa-ui-root\" #dropdownContainer style=\"position: relative; display: inline-block; width: auto;\">\n <button\n #buttonElement\n type=\"button\"\n [class]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"toggleDropdown($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"true\"\n >\n <div [class]=\"labelClasses\">\n {{ displayLabel }}\n </div>\n <div [class]=\"arrowClasses\">\n <svg\n class=\"cqa-w-2 cqa-h-1 cqa-absolute cqa-left-[4px] cqa-top-[6px]\"\n viewBox=\"0 0 8 4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 0L4 4L8 0\"\n stroke=\"#0B0B0C\"\n stroke-width=\"1.33\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </button>\n\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"isOpen && options && options.length > 0\"\n class=\"cqa-absolute cqa-top-full cqa-left-0 cqa-mt-1 cqa-p-1.5 cqa-bg-white cqa-rounded-lg cqa-shadow-[0px_2px_4px_-2px_rgba(0,0,0,0.10)] cqa-shadow-md cqa-outline cqa-outline-1 cqa-outline-offset-[-1px] cqa-outline-gray-200 cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-z-[9999] cqa-w-auto cqa-max-w-[350px]\"\n >\n <div class=\"cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-0.5 cqa-w-full\">\n <div\n *ngFor=\"let option of options\"\n (click)=\"selectOption(option, $event)\"\n [class]=\"getOptionClasses(option)\"\n class=\"cqa-w-full cqa-whitespace-nowrap\"\n >\n <div class=\"cqa-w-6 cqa-h-4 cqa-pr-2 cqa-inline-flex cqa-flex-col cqa-justify-center cqa-items-center\">\n <mat-icon\n *ngIf=\"selectedValue === option.value\"\n class=\"cqa-w-4 cqa-h-4 cqa-text-primary cqa-text-base cqa-leading-4\"\n >check</mat-icon>\n </div>\n <div class=\"cqa-flex-1 cqa-inline-flex cqa-flex-col cqa-justify-start cqa-items-start\">\n <div class=\"cqa-justify-center cqa-text-gray-950 cqa-text-sm cqa-font-normal cqa-leading-5 cqa-font-geist\">\n {{ option.label }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
160
160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DropdownButtonComponent, decorators: [{
|
|
161
161
|
type: Component,
|
|
162
|
-
args: [{ selector: 'cqa-dropdown-button', template: "<div class=\"cqa-ui-root\" #dropdownContainer style=\"position: relative; display: inline-block; width: auto;\">\n <button\n #buttonElement\n type=\"button\"\n [class]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"toggleDropdown($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"true\"\n >\n <div [class]=\"labelClasses\">\n {{ displayLabel }}\n </div>\n <div [class]=\"arrowClasses\">\n <svg\n class=\"cqa-w-2 cqa-h-1 cqa-absolute cqa-left-[4px] cqa-top-[6px]\"\n viewBox=\"0 0 8 4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 0L4 4L8 0\"\n stroke=\"#0B0B0C\"\n stroke-width=\"1.33\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </button>\n\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"isOpen && options && options.length > 0\"\n class=\"cqa-absolute cqa-top-full cqa-left-0 cqa-mt-1 cqa-p-1.5 cqa-bg-white cqa-rounded-lg cqa-shadow-[0px_2px_4px_-2px_rgba(0,0,0,0.10)] cqa-shadow-md cqa-outline cqa-outline-1 cqa-outline-offset-[-1px] cqa-outline-gray-200 cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-z-[9999] cqa-w-auto cqa-max-w-[350px]\"\n >\n <div class=\"cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-0.5 cqa-w-full\">\n <div\n *ngFor=\"let option of options\"\n (click)=\"selectOption(option, $event)\"\n [class]=\"getOptionClasses(option)\"\n class=\"cqa-w-full cqa-whitespace-nowrap\"\n >\n <div class=\"cqa-w-6 cqa-h-4 cqa-pr-2 cqa-inline-flex cqa-flex-col cqa-justify-center cqa-items-center\">\n <mat-icon\n *ngIf=\"selectedValue === option.value\"\n class=\"cqa-w-4 cqa-h-4 cqa-text-primary cqa-text-base cqa-leading-4\"\n >check</mat-icon>\n </div>\n <div class=\"cqa-flex-1 cqa-inline-flex cqa-flex-col cqa-justify-start cqa-items-start\">\n <div class=\"cqa-justify-center cqa-text-gray-950 cqa-text-sm cqa-font-normal cqa-leading-5 cqa-font-geist\">\n {{ option.label }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", styles: [] }]
|
|
162
|
+
args: [{ selector: 'cqa-dropdown-button', host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\" #dropdownContainer style=\"position: relative; display: inline-block; width: auto;\">\n <button\n #buttonElement\n type=\"button\"\n [class]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"toggleDropdown($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"true\"\n >\n <div [class]=\"labelClasses\">\n {{ displayLabel }}\n </div>\n <div [class]=\"arrowClasses\">\n <svg\n class=\"cqa-w-2 cqa-h-1 cqa-absolute cqa-left-[4px] cqa-top-[6px]\"\n viewBox=\"0 0 8 4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 0L4 4L8 0\"\n stroke=\"#0B0B0C\"\n stroke-width=\"1.33\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </button>\n\n <!-- Dropdown Menu -->\n <div\n *ngIf=\"isOpen && options && options.length > 0\"\n class=\"cqa-absolute cqa-top-full cqa-left-0 cqa-mt-1 cqa-p-1.5 cqa-bg-white cqa-rounded-lg cqa-shadow-[0px_2px_4px_-2px_rgba(0,0,0,0.10)] cqa-shadow-md cqa-outline cqa-outline-1 cqa-outline-offset-[-1px] cqa-outline-gray-200 cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-z-[9999] cqa-w-auto cqa-max-w-[350px]\"\n >\n <div class=\"cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-0.5 cqa-w-full\">\n <div\n *ngFor=\"let option of options\"\n (click)=\"selectOption(option, $event)\"\n [class]=\"getOptionClasses(option)\"\n class=\"cqa-w-full cqa-whitespace-nowrap\"\n >\n <div class=\"cqa-w-6 cqa-h-4 cqa-pr-2 cqa-inline-flex cqa-flex-col cqa-justify-center cqa-items-center\">\n <mat-icon\n *ngIf=\"selectedValue === option.value\"\n class=\"cqa-w-4 cqa-h-4 cqa-text-primary cqa-text-base cqa-leading-4\"\n >check</mat-icon>\n </div>\n <div class=\"cqa-flex-1 cqa-inline-flex cqa-flex-col cqa-justify-start cqa-items-start\">\n <div class=\"cqa-justify-center cqa-text-gray-950 cqa-text-sm cqa-font-normal cqa-leading-5 cqa-font-geist\">\n {{ option.label }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", styles: [] }]
|
|
163
163
|
}], propDecorators: { label: [{
|
|
164
164
|
type: Input
|
|
165
165
|
}], options: [{
|
|
@@ -186,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
186
186
|
type: HostListener,
|
|
187
187
|
args: ['document:click', ['$event']]
|
|
188
188
|
}] } });
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZHJvcGRvd24tYnV0dG9uL2Ryb3Bkb3duLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Ryb3Bkb3duLWJ1dHRvbi9kcm9wZG93bi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBYTVHLE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFNVyxVQUFLLEdBQVcsa0JBQWtCLENBQUM7UUFDbkMsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFFL0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUd6QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLNUMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUNoQixnQkFBVyxHQUFZLEtBQUssQ0FBQztLQW9LdEM7SUFsS0MsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRTtZQUNuRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xGLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NB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O2dCQUFFLE9BQU87WUFFekIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7WUFFM0MsbURBQW1EO1lBQ25ELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNELE9BQU87YUFDUjtZQUVELHFDQUFxQztZQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7O29IQWxMVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixpakJDYnBDLGd1RUEyREE7MkZEOUNhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUU0QyxpQkFBaUI7c0JBQW5FLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNGLGFBQWE7c0JBQTNELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFpSjdDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duT3B0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IGFueTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtZHJvcGRvd24tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25CdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ1NlbGVjdCBhbiBvcHRpb24nO1xuICBASW5wdXQoKSBvcHRpb25zOiBEcm9wZG93bk9wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU/OiBhbnk7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duQ29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRyb3Bkb3duQ29udGFpbmVyPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYnV0dG9uRWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBidXR0b25FbGVtZW50PzogRWxlbWVudFJlZjtcblxuICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBjbGlja0luc2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBkaXNwbGF5TGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3RlZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKG9wdCA9PiBvcHQudmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb24gPyBzZWxlY3RlZE9wdGlvbi5sYWJlbCA6IHRoaXMubGFiZWw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyIHx8IHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXQgYnV0dG9uQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID0gW1xuICAgICAgJ2NxYS1oLTknLFxuICAgICAgJ2NxYS1weC0zJyxcbiAgICAgICdjcWEtcHktMicsXG4gICAgICAnY3FhLWJnLWdyYXktMTAwJyxcbiAgICAgICdjcWEtcm91bmRlZC1bNXB4XScsXG4gICAgICAnY3FhLW91dGxpbmUnLFxuICAgICAgJ2NxYS1vdXRsaW5lLTEnLFxuICAgICAgJ2NxYS1vdXRsaW5lLW9mZnNldC1bLTFweF0nLFxuICAgICAgJ2NxYS1vdXRsaW5lLWdyYXktMjAwJyxcbiAgICAgICdjcWEtaW5saW5lLWZsZXgnLFxuICAgICAgJ2NxYS1qdXN0aWZ5LWNlbnRlcicsXG4gICAgICAnY3FhLWl0ZW1zLWNlbnRlcicsXG4gICAgICAnY3FhLWdhcC0xJyxcbiAgICAgICdjcWEtY3Vyc29yLXBvaW50ZXInLFxuICAgICAgJ2NxYS10cmFuc2l0aW9uLWNvbG9ycydcbiAgICBdO1xuXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGJhc2VDbGFzc2VzLnB1c2goJ2NxYS1vcGFjaXR5LTUwJywgJ2NxYS1jdXJzb3Itbm90LWFsbG93ZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZUNsYXNzZXMucHVzaCgnY3FhLWhvdmVyOmNxYS1iZy1ncmF5LTIwMCcpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgYmFzZUNsYXNzZXMucHVzaCgnY3FhLWJnLWdyYXktMjAwJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhc2VDbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBsYWJlbENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2NxYS10ZXh0LWNlbnRlcicsXG4gICAgICAnY3FhLWp1c3RpZnktY2VudGVyJyxcbiAgICAgICdjcWEtdGV4dC1ncmF5LTk1MCcsXG4gICAgICAnY3FhLXRleHQteHMnLFxuICAgICAgJ2NxYS1mb250LW1lZGl1bScsXG4gICAgICAnY3FhLWxlYWRpbmctNCdcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBhcnJvd0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlQ2xhc3NlcyA9IFtcbiAgICAgICdjcWEtdy00JyxcbiAgICAgICdjcWEtaC00JyxcbiAgICAgICdjcWEtcmVsYXRpdmUnLFxuICAgICAgJ2NxYS10cmFuc2l0aW9uLXRyYW5zZm9ybSdcbiAgICBdO1xuXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICBiYXNlQ2xhc3Nlcy5wdXNoKCdjcWEtcm90YXRlLTE4MCcpO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlQ2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICB0b2dnbGVEcm9wZG93bihldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIFxuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jbGlja0luc2lkZSA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICAgIFxuICAgIC8vIFJlc2V0IGNsaWNrSW5zaWRlIGZsYWcgYWZ0ZXIgYSBzaG9ydCBkZWxheVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jbGlja0luc2lkZSA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogRHJvcGRvd25PcHRpb24sIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHJldHVybjtcbiAgICBcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5jbGlja0luc2lkZSA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvbi52YWx1ZTtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQob3B0aW9uLnZhbHVlKTtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgXG4gICAgLy8gUmVzZXQgZmxhZyBhZnRlciBzZWxlY3Rpb25cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2xpY2tJbnNpZGUgPSBmYWxzZTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZ2V0QnV0dG9uV2lkdGgoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5idXR0b25FbGVtZW50Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgcmV0dXJuIHdpZHRoID4gMCA/IHdpZHRoIDogMTUwOyAvLyBGYWxsYmFjayB0byAxNTBweCBpZiB3aWR0aCBpcyAwXG4gICAgfVxuICAgIHJldHVybiAxNTA7IC8vIERlZmF1bHQgZmFsbGJhY2sgd2lkdGhcbiAgfVxuXG4gIGdldE9wdGlvbkNsYXNzZXMob3B0aW9uOiBEcm9wZG93bk9wdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSBbXG4gICAgICAnY3FhLXAtMS41JyxcbiAgICAgICdjcWEtcm91bmRlZC1tZCcsXG4gICAgICAnY3FhLWlubGluZS1mbGV4JyxcbiAgICAgICdjcWEtanVzdGlmeS1zdGFydCcsXG4gICAgICAnY3FhLWl0ZW1zLWNlbnRlcicsXG4gICAgICAnY3FhLWN1cnNvci1wb2ludGVyJyxcbiAgICAgICdjcWEtdHJhbnNpdGlvbi1jb2xvcnMnXG4gICAgXTtcblxuICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIGJhc2VDbGFzc2VzLnB1c2goJ2NxYS1vcGFjaXR5LTUwJywgJ2NxYS1jdXJzb3Itbm90LWFsbG93ZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZUNsYXNzZXMucHVzaCgnY3FhLWhvdmVyOmNxYS1iZy1ncmF5LTUwJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSA9PT0gb3B0aW9uLnZhbHVlKSB7XG4gICAgICBiYXNlQ2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhc2VDbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgLy8gSWdub3JlIGlmIGNsaWNrIHdhcyBpbnNpZGUgdGhlIGNvbXBvbmVudCAoYnV0dG9uIGNsaWNrKVxuICAgIGlmICh0aGlzLmNsaWNrSW5zaWRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFVzZSBhIGxvbmdlciBkZWxheSB0byBlbnN1cmUgZHJvcGRvd24gaGFzIHRpbWUgdG8gcmVuZGVyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNPcGVuKSByZXR1cm47XG4gICAgICBcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgaWYgY2xpY2sgaXMgaW5zaWRlIHRoZSBjb21wb25lbnQgY29udGFpbmVyXG4gICAgICBpZiAodGhpcy5kcm9wZG93bkNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENsb3NlIGRyb3Bkb3duIGlmIGNsaWNrIGlzIG91dHNpZGVcbiAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgfSwgMjAwKTtcbiAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIiAjZHJvcGRvd25Db250YWluZXIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IGF1dG87XCI+XG4gIDxidXR0b25cbiAgICAjYnV0dG9uRWxlbWVudFxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtjbGFzc109XCJidXR0b25DbGFzc2VzXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigkZXZlbnQpXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzT3BlblwiXG4gICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgW2NsYXNzXT1cImxhYmVsQ2xhc3Nlc1wiPlxuICAgICAge3sgZGlzcGxheUxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbY2xhc3NdPVwiYXJyb3dDbGFzc2VzXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiY3FhLXctMiBjcWEtaC0xIGNxYS1hYnNvbHV0ZSBjcWEtbGVmdC1bNHB4XSBjcWEtdG9wLVs2cHhdXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA4IDRcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMCAwTDQgNEw4IDBcIlxuICAgICAgICAgIHN0cm9rZT1cIiMwQjBCMENcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzNcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2J1dHRvbj5cblxuICA8IS0tIERyb3Bkb3duIE1lbnUgLS0+XG4gIDxkaXZcbiAgICAqbmdJZj1cImlzT3BlbiAmJiBvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLXRvcC1mdWxsIGNxYS1sZWZ0LTAgY3FhLW10LTEgY3FhLXAtMS41IGNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1sZyBjcWEtc2hhZG93LVswcHhfMnB4XzRweF8tMnB4X3JnYmEoMCwwLDAsMC4xMCldIGNxYS1zaGFkb3ctbWQgY3FhLW91dGxpbmUgY3FhLW91dGxpbmUtMSBjcWEtb3V0bGluZS1vZmZzZXQtWy0xcHhdIGNxYS1vdXRsaW5lLWdyYXktMjAwIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLXotWzk5OTldIGNxYS13LWF1dG8gY3FhLW1heC13LVszNTBweF1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0wLjUgY3FhLXctZnVsbFwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG9wdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgIFtjbGFzc109XCJnZXRPcHRpb25DbGFzc2VzKG9wdGlvbilcIlxuICAgICAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLXdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS13LTYgY3FhLWgtNCBjcWEtcHItMiBjcWEtaW5saW5lLWZsZXggY3FhLWZsZXgtY29sIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVmFsdWUgPT09IG9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS13LTQgY3FhLWgtNCBjcWEtdGV4dC1wcmltYXJ5IGNxYS10ZXh0LWJhc2UgY3FhLWxlYWRpbmctNFwiXG4gICAgICAgICAgPmNoZWNrPC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1pbmxpbmUtZmxleCBjcWEtZmxleC1jb2wgY3FhLWp1c3RpZnktc3RhcnQgY3FhLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdGV4dC1ncmF5LTk1MCBjcWEtdGV4dC1zbSBjcWEtZm9udC1ub3JtYWwgY3FhLWxlYWRpbmctNSBjcWEtZm9udC1nZWlzdFwiPlxuICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZHJvcGRvd24tYnV0dG9uL2Ryb3Bkb3duLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Ryb3Bkb3duLWJ1dHRvbi9kcm9wZG93bi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBYzVHLE1BQU0sT0FBTyx1QkFBdUI7SUFOcEM7UUFPVyxVQUFLLEdBQVcsa0JBQWtCLENBQUM7UUFDbkMsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFFL0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUd6QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLNUMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUNoQixnQkFBVyxHQUFZLEtBQUssQ0FBQztLQW9LdEM7SUFsS0MsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRTtZQUNuRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xGLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NB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O2dCQUFFLE9BQU87WUFFekIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7WUFFM0MsbURBQW1EO1lBQ25ELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNELE9BQU87YUFDUjtZQUVELHFDQUFxQztZQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7O29IQWxMVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnbEJDZHBDLGd1RUEyREE7MkZEN0NhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxxQkFBcUIsUUFHekIsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzhCQUdyQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFFNEMsaUJBQWlCO3NCQUFuRSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRixhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBaUo3QyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bk9wdGlvbiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWRyb3Bkb3duLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25CdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ1NlbGVjdCBhbiBvcHRpb24nO1xuICBASW5wdXQoKSBvcHRpb25zOiBEcm9wZG93bk9wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU/OiBhbnk7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duQ29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRyb3Bkb3duQ29udGFpbmVyPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYnV0dG9uRWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBidXR0b25FbGVtZW50PzogRWxlbWVudFJlZjtcblxuICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBjbGlja0luc2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBkaXNwbGF5TGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3RlZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKG9wdCA9PiBvcHQudmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb24gPyBzZWxlY3RlZE9wdGlvbi5sYWJlbCA6IHRoaXMubGFiZWw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyIHx8IHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXQgYnV0dG9uQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID0gW1xuICAgICAgJ2NxYS1oLTknLFxuICAgICAgJ2NxYS1weC0zJyxcbiAgICAgICdjcWEtcHktMicsXG4gICAgICAnY3FhLWJnLWdyYXktMTAwJyxcbiAgICAgICdjcWEtcm91bmRlZC1bNXB4XScsXG4gICAgICAnY3FhLW91dGxpbmUnLFxuICAgICAgJ2NxYS1vdXRsaW5lLTEnLFxuICAgICAgJ2NxYS1vdXRsaW5lLW9mZnNldC1bLTFweF0nLFxuICAgICAgJ2NxYS1vdXRsaW5lLWdyYXktMjAwJyxcbiAgICAgICdjcWEtaW5saW5lLWZsZXgnLFxuICAgICAgJ2NxYS1qdXN0aWZ5LWNlbnRlcicsXG4gICAgICAnY3FhLWl0ZW1zLWNlbnRlcicsXG4gICAgICAnY3FhLWdhcC0xJyxcbiAgICAgICdjcWEtY3Vyc29yLXBvaW50ZXInLFxuICAgICAgJ2NxYS10cmFuc2l0aW9uLWNvbG9ycydcbiAgICBdO1xuXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGJhc2VDbGFzc2VzLnB1c2goJ2NxYS1vcGFjaXR5LTUwJywgJ2NxYS1jdXJzb3Itbm90LWFsbG93ZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZUNsYXNzZXMucHVzaCgnY3FhLWhvdmVyOmNxYS1iZy1ncmF5LTIwMCcpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgYmFzZUNsYXNzZXMucHVzaCgnY3FhLWJnLWdyYXktMjAwJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhc2VDbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBsYWJlbENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2NxYS10ZXh0LWNlbnRlcicsXG4gICAgICAnY3FhLWp1c3RpZnktY2VudGVyJyxcbiAgICAgICdjcWEtdGV4dC1ncmF5LTk1MCcsXG4gICAgICAnY3FhLXRleHQteHMnLFxuICAgICAgJ2NxYS1mb250LW1lZGl1bScsXG4gICAgICAnY3FhLWxlYWRpbmctNCdcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBhcnJvd0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlQ2xhc3NlcyA9IFtcbiAgICAgICdjcWEtdy00JyxcbiAgICAgICdjcWEtaC00JyxcbiAgICAgICdjcWEtcmVsYXRpdmUnLFxuICAgICAgJ2NxYS10cmFuc2l0aW9uLXRyYW5zZm9ybSdcbiAgICBdO1xuXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICBiYXNlQ2xhc3Nlcy5wdXNoKCdjcWEtcm90YXRlLTE4MCcpO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlQ2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICB0b2dnbGVEcm9wZG93bihldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIFxuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jbGlja0luc2lkZSA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICAgIFxuICAgIC8vIFJlc2V0IGNsaWNrSW5zaWRlIGZsYWcgYWZ0ZXIgYSBzaG9ydCBkZWxheVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jbGlja0luc2lkZSA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogRHJvcGRvd25PcHRpb24sIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHJldHVybjtcbiAgICBcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5jbGlja0luc2lkZSA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvbi52YWx1ZTtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQob3B0aW9uLnZhbHVlKTtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgXG4gICAgLy8gUmVzZXQgZmxhZyBhZnRlciBzZWxlY3Rpb25cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2xpY2tJbnNpZGUgPSBmYWxzZTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZ2V0QnV0dG9uV2lkdGgoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5idXR0b25FbGVtZW50Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgcmV0dXJuIHdpZHRoID4gMCA/IHdpZHRoIDogMTUwOyAvLyBGYWxsYmFjayB0byAxNTBweCBpZiB3aWR0aCBpcyAwXG4gICAgfVxuICAgIHJldHVybiAxNTA7IC8vIERlZmF1bHQgZmFsbGJhY2sgd2lkdGhcbiAgfVxuXG4gIGdldE9wdGlvbkNsYXNzZXMob3B0aW9uOiBEcm9wZG93bk9wdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSBbXG4gICAgICAnY3FhLXAtMS41JyxcbiAgICAgICdjcWEtcm91bmRlZC1tZCcsXG4gICAgICAnY3FhLWlubGluZS1mbGV4JyxcbiAgICAgICdjcWEtanVzdGlmeS1zdGFydCcsXG4gICAgICAnY3FhLWl0ZW1zLWNlbnRlcicsXG4gICAgICAnY3FhLWN1cnNvci1wb2ludGVyJyxcbiAgICAgICdjcWEtdHJhbnNpdGlvbi1jb2xvcnMnXG4gICAgXTtcblxuICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIGJhc2VDbGFzc2VzLnB1c2goJ2NxYS1vcGFjaXR5LTUwJywgJ2NxYS1jdXJzb3Itbm90LWFsbG93ZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZUNsYXNzZXMucHVzaCgnY3FhLWhvdmVyOmNxYS1iZy1ncmF5LTUwJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSA9PT0gb3B0aW9uLnZhbHVlKSB7XG4gICAgICBiYXNlQ2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhc2VDbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgLy8gSWdub3JlIGlmIGNsaWNrIHdhcyBpbnNpZGUgdGhlIGNvbXBvbmVudCAoYnV0dG9uIGNsaWNrKVxuICAgIGlmICh0aGlzLmNsaWNrSW5zaWRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFVzZSBhIGxvbmdlciBkZWxheSB0byBlbnN1cmUgZHJvcGRvd24gaGFzIHRpbWUgdG8gcmVuZGVyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNPcGVuKSByZXR1cm47XG4gICAgICBcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgaWYgY2xpY2sgaXMgaW5zaWRlIHRoZSBjb21wb25lbnQgY29udGFpbmVyXG4gICAgICBpZiAodGhpcy5kcm9wZG93bkNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENsb3NlIGRyb3Bkb3duIGlmIGNsaWNrIGlzIG91dHNpZGVcbiAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgfSwgMjAwKTtcbiAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIiAjZHJvcGRvd25Db250YWluZXIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IGF1dG87XCI+XG4gIDxidXR0b25cbiAgICAjYnV0dG9uRWxlbWVudFxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtjbGFzc109XCJidXR0b25DbGFzc2VzXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigkZXZlbnQpXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzT3BlblwiXG4gICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgW2NsYXNzXT1cImxhYmVsQ2xhc3Nlc1wiPlxuICAgICAge3sgZGlzcGxheUxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbY2xhc3NdPVwiYXJyb3dDbGFzc2VzXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiY3FhLXctMiBjcWEtaC0xIGNxYS1hYnNvbHV0ZSBjcWEtbGVmdC1bNHB4XSBjcWEtdG9wLVs2cHhdXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA4IDRcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMCAwTDQgNEw4IDBcIlxuICAgICAgICAgIHN0cm9rZT1cIiMwQjBCMENcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzNcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2J1dHRvbj5cblxuICA8IS0tIERyb3Bkb3duIE1lbnUgLS0+XG4gIDxkaXZcbiAgICAqbmdJZj1cImlzT3BlbiAmJiBvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLXRvcC1mdWxsIGNxYS1sZWZ0LTAgY3FhLW10LTEgY3FhLXAtMS41IGNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1sZyBjcWEtc2hhZG93LVswcHhfMnB4XzRweF8tMnB4X3JnYmEoMCwwLDAsMC4xMCldIGNxYS1zaGFkb3ctbWQgY3FhLW91dGxpbmUgY3FhLW91dGxpbmUtMSBjcWEtb3V0bGluZS1vZmZzZXQtWy0xcHhdIGNxYS1vdXRsaW5lLWdyYXktMjAwIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLXotWzk5OTldIGNxYS13LWF1dG8gY3FhLW1heC13LVszNTBweF1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0wLjUgY3FhLXctZnVsbFwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG9wdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgIFtjbGFzc109XCJnZXRPcHRpb25DbGFzc2VzKG9wdGlvbilcIlxuICAgICAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLXdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS13LTYgY3FhLWgtNCBjcWEtcHItMiBjcWEtaW5saW5lLWZsZXggY3FhLWZsZXgtY29sIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkVmFsdWUgPT09IG9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS13LTQgY3FhLWgtNCBjcWEtdGV4dC1wcmltYXJ5IGNxYS10ZXh0LWJhc2UgY3FhLWxlYWRpbmctNFwiXG4gICAgICAgICAgPmNoZWNrPC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1pbmxpbmUtZmxleCBjcWEtZmxleC1jb2wgY3FhLWp1c3RpZnktc3RhcnQgY3FhLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdGV4dC1ncmF5LTk1MCBjcWEtdGV4dC1zbSBjcWEtZm9udC1ub3JtYWwgY3FhLWxlYWRpbmctNSBjcWEtZm9udC1nZWlzdFwiPlxuICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|
|
@@ -314,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
314
314
|
type: HostListener,
|
|
315
315
|
args: ['document:click', ['$event']]
|
|
316
316
|
}] } });
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWxlY3QtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBd0N2SyxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT1cscUJBQWdCLEdBQVcsZ0JBQWdCLENBQUM7UUFHM0Msb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBdUQsQ0FBQztRQUMxRixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLakQsZ0ZBQWdGO1FBQ2hGLG9CQUFlLEdBQTJCLEVBQUUsQ0FBQztLQWlSOUM7SUE5UUMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDeEQsTUFBTSxZQUFZ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QW1CO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNlbGVjdCwgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuLy8gTG9jYWwgb3B0aW9uIG1vZGVsIChwcmV2aW91c2x5IGltcG9ydGVkIGZyb20gcmVtb3ZlZCBjcWEtc2VsZWN0IGNvbXBvbmVudClcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uIHtcbiAgaWQ/OiBhbnk7XG4gIHZhbHVlPzogYW55O1xuICBuYW1lPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljU2VsZWN0RmllbGRDb25maWcge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gIC8qKiBDb250cm9scyBob3cgc2VsZWN0aW9uIGluZGljYXRvciBpcyBzaG93biBmb3IgbXVsdGktc2VsZWN0IG9wdGlvbnMuICovXG4gIG9wdGlvblN0eWxlPzogJ2NoZWNrbWFyaycgfCAnY2hlY2tib3gnO1xuICAvKiogU2hvdyBhICdTZWxlY3QgQWxsJyBvcHRpb24gYXQgdGhlIHRvcCAobXVsdGktc2VsZWN0IG9ubHkpLiAqL1xuICBzaG93U2VsZWN0QWxsPzogYm9vbGVhbjtcbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlICdTZWxlY3QgQWxsJyBvcHRpb24uIERlZmF1bHRzIHRvICdBbGwnLiAqL1xuICBzZWxlY3RBbGxMYWJlbD86IHN0cmluZztcbiAgLyoqIElmIHRydWUsIGNsb3NlIHRoZSBwYW5lbCB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZCAodXNlZnVsIGZvciBtdWx0aS1zZWxlY3QgaW4gaGVhZGVycykuICovXG4gIGNsb3NlT25TZWxlY3Q/OiBib29sZWFuO1xuICAvKiogUHJvdmlkZSBhIGRlZmF1bHQgc2VsZWN0ZWQgdmFsdWUgKG9yIGFycmF5IGZvciBtdWx0aS1zZWxlY3QpIGlmIHRoZSBjb250cm9sIGhhcyBubyB2YWx1ZSB5ZXQuICovXG4gIHNlbGVjdGVkVmFsdWU/OiBhbnkgfCBhbnlbXTtcbiAgLyoqIE9wdGlvbmFsIGNhbGxiYWNrIGludm9rZWQgd2hlbmV2ZXIgdGhlIHNlbGVjdGlvbiBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZT86ICh2YWx1ZTogYW55LCBldmVudD86IE1hdFNlbGVjdENoYW5nZSkgPT4gdm9pZDtcbiAgb3B0aW9uczogU2VsZWN0T3B0aW9uW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1keW5hbWljLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljU2VsZWN0RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHJlYWRvbmx5IFNFTEVDVF9BTExfVkFMVUU6IHN0cmluZyA9ICdfX3NlbGVjdF9hbGxfXyc7XG4gIEBJbnB1dCgpIGZvcm0hOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGNvbmZpZyE6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZztcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBrZXk6IHN0cmluZzsgdmFsdWU6IGFueTsgZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSB9PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0UmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdFJlZj86IE1hdFNlbGVjdDtcbiAgQFZpZXdDaGlsZCgnaG9zdCcsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KSBob3N0RWw/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvLyBNdXN0IGJlIHB1YmxpYyBmb3IgdGVtcGxhdGUgYWNjZXNzIGluIEFuZ3VsYXIncyBzdHJpY3QgdGVtcGxhdGUgY2hlY2tpbmcgbW9kZVxuICBzZWFyY2hUZXh0QnlLZXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgcHJpdmF0ZSBvdXRzaWRlQ2xlYW51cD86ICgpID0+IHZvaWQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZyB8fCAhdGhpcy5jb25maWcua2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NxYS1keW5hbWljLXNlbGVjdDogaW5wdXQgXCJjb25maWcua2V5XCIgaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuICAgIHRoaXMuYXBwbHlTZWxlY3RlZFZhbHVlSWZOZWVkZWQoKTtcbiAgfVxuXG4gIGdldCBkaXNwbGF5UGxhY2Vob2xkZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmNvbmZpZz8ua2V5O1xuICAgIGlmICgha2V5IHx8ICF0aGlzLmZvcm0pIHJldHVybiB0aGlzLmNvbmZpZz8ucGxhY2Vob2xkZXI7XG4gICAgY29uc3QgY29udHJvbFZhbHVlID0gdGhpcy5mb3JtLmdldChrZXkpPy52YWx1ZTtcbiAgICByZXR1cm4gdGhpcy5oYXNFeGlzdGluZ1ZhbHVlKGNvbnRyb2xWYWx1ZSkgPyB1bmRlZmluZWQgOiB0aGlzLmNvbmZpZz8ucGxhY2Vob2xkZXI7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCdjb25maWcnIGluIGNoYW5nZXMpIHtcbiAgICAgIC8vIFdoZW4gY29uZmlnIGNoYW5nZXMgKGluY2x1ZGluZyB0b2dnbGluZyBtdWx0aXBsZSksIGVuc3VyZSBjb250cm9sIHZhbHVlIHNoYXBlIG1hdGNoZXNcbiAgICAgIHRoaXMuc3luY0NvbnRyb2xWYWx1ZUZvck11bHRpcGxlTW9kZSgpO1xuICAgICAgdGhpcy5hcHBseVNlbGVjdGVkVmFsdWVJZk5lZWRlZCgpO1xuICAgIH1cbiAgICBpZiAoJ2Zvcm0nIGluIGNoYW5nZXMgJiYgIWNoYW5nZXNbJ2Zvcm0nXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5hcHBseVNlbGVjdGVkVmFsdWVJZk5lZWRlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBwYW5lbENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjdGMtc2VsZWN0LXBhbmVsICR7dGhpcy5pc011bHRpcGxlID8gJ211bHRpcGxlJyA6ICcnfWAudHJpbSgpO1xuICB9XG5cbiAgZ2V0IGlzTXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG9Cb29sZWFuKHRoaXMuY29uZmlnPy5tdWx0aXBsZSk7XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b0Jvb2xlYW4odGhpcy5jb25maWc/LmRpc2FibGVkKTtcbiAgfVxuICBcbiAgZ2V0IHVzZUNoZWNrYm94U3R5bGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNNdWx0aXBsZSAmJiAodGhpcy5jb25maWc/Lm9wdGlvblN0eWxlID09PSAnY2hlY2tib3gnKTtcbiAgfVxuICBcbiAgZ2V0IGFsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc011bHRpcGxlKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jb25maWc/LmtleTtcbiAgICBpZiAoIWtleSB8fCAhdGhpcy5mb3JtKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoa2V5KTtcbiAgICBpZiAoIWNvbnRyb2wpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBzZWxlY3RlZCA9IGNvbnRyb2wudmFsdWUgYXMgYW55W107XG4gICAgY29uc3QgYWxsSWRzID0gdGhpcy5nZXRBbGxPcHRpb25JZHMoKTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2VsZWN0ZWQpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCFhbGxJZHMubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGFsbElkcy5ldmVyeShpZCA9PiBzZWxlY3RlZC5pbmNsdWRlcyhpZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b0Jvb2xlYW4odmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgdiA9IHZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHYgPT09ICd0cnVlJyB8fCB2ID09PSAnMScpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKHYgPT09ICdmYWxzZScgfHwgdiA9PT0gJzAnIHx8IHYgPT09ICcnKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTsgLy8gYW55IG90aGVyIG5vbi1lbXB0eSBzdHJpbmcgdHJlYXRlZCBhcyB0cnV0aHlcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB2YWx1ZSAhPT0gMDtcbiAgICB9XG4gICAgcmV0dXJuICEhdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHN5bmNDb250cm9sVmFsdWVGb3JNdWx0aXBsZU1vZGUoKTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jb25maWc/LmtleTtcbiAgICBpZiAoIWtleSB8fCAhdGhpcy5mb3JtKSByZXR1cm47XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoa2V5KTtcbiAgICBpZiAoIWNvbnRyb2wpIHJldHVybjtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICh0aGlzLmlzTXVsdGlwbGUpIHtcbiAgICAgIGlmIChjdXJyZW50VmFsdWUgPT0gbnVsbCkgcmV0dXJuO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKSkgcmV0dXJuO1xuICAgICAgY29udHJvbC5zZXRWYWx1ZShbY3VycmVudFZhbHVlXSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKSkgcmV0dXJuO1xuICAgICAgY29udHJvbC5zZXRWYWx1ZShjdXJyZW50VmFsdWUubGVuZ3RoID8gY3VycmVudFZhbHVlWzBdIDogbnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3RlZFZhbHVlSWZOZWVkZWQoKTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jb25maWc/LmtleTtcbiAgICBpZiAoIWtleSB8fCAhdGhpcy5mb3JtKSByZXR1cm47XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoa2V5KTtcbiAgICBpZiAoIWNvbnRyb2wpIHJldHVybjtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gdGhpcy5jb25maWc/LnNlbGVjdGVkVmFsdWU7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAodGhpcy5oYXNFeGlzdGluZ1ZhbHVlKGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHNlbGVjdGVkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RlZFZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IChBcnJheS5pc0FycmF5KHNlbGVjdGVkVmFsdWUpID8gc2VsZWN0ZWRWYWx1ZSA6IFtzZWxlY3RlZFZhbHVlXSkuZmlsdGVyKFxuICAgICAgICAodmFsKSA9PiB2YWwgIT09IHVuZGVmaW5lZCxcbiAgICAgICk7XG4gICAgICBpZiAoIW5vcm1hbGl6ZWQubGVuZ3RoKSByZXR1cm47XG4gICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IEFycmF5LmlzQXJyYXkoc2VsZWN0ZWRWYWx1ZSlcbiAgICAgICAgPyAoc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPyBzZWxlY3RlZFZhbHVlWzBdIDogdW5kZWZpbmVkKVxuICAgICAgICA6IHNlbGVjdGVkVmFsdWU7XG4gICAgICBpZiAobm9ybWFsaXplZCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBjb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc0V4aXN0aW5nVmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnNvbWUoKHZhbCkgPT4gdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gJycpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHZhbHVlLnRyaW0oKS5sZW5ndGggPiAwO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlzT3B0aW9uU2VsZWN0ZWQob3B0OiBTZWxlY3RPcHRpb24pOiBib29sZWFuIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmNvbmZpZz8ua2V5O1xuICAgIGlmICgha2V5IHx8ICF0aGlzLmZvcm0pIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChrZXkpO1xuICAgIGlmICghY29udHJvbCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgY29uc3Qgb3B0aW9uSWQgPSBvcHQuaWQgPz8gb3B0LnZhbHVlO1xuICAgIGlmICh0aGlzLmlzTXVsdGlwbGUpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShjb250cm9sVmFsdWUpKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gY29udHJvbFZhbHVlLmluY2x1ZGVzKG9wdGlvbklkKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRyb2xWYWx1ZSA9PT0gb3B0aW9uSWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbE9wdGlvbklkcygpOiBhbnlbXSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnPy5vcHRpb25zIHx8IFtdO1xuICAgIHJldHVybiBvcHRpb25zLm1hcChvID0+IChvLmlkID8/IG8udmFsdWUpKS5maWx0ZXIodiA9PiB2ICE9PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgb25Ub2dnbGVTZWxlY3RBbGwoc2VsZWN0OiBNYXRTZWxlY3QpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmNvbmZpZz8ua2V5O1xuICAgIGlmICgha2V5IHx8ICF0aGlzLmZvcm0pIHJldHVybjtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChrZXkpO1xuICAgIGlmICghY29udHJvbCkgcmV0dXJuO1xuICAgIGNvbnN0IGFsbElkcyA9IHRoaXMuZ2V0QWxsT3B0aW9uSWRzKCk7XG4gICAgaWYgKCFhbGxJZHMubGVuZ3RoKSByZXR1cm47XG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQpIHtcbiAgICAgIGNvbnRyb2wuc2V0VmFsdWUoW10sIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250cm9sLnNldFZhbHVlKGFsbElkcywgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XG4gICAgfVxuICAgIC8vIEtlZXAgcGFuZWwgb3BlbiBmb3IgY29udGludWVkIHNlbGVjdGlvbnMgaW4gbXVsdGktc2VsZWN0XG4gICAgdHJ5IHsgc2VsZWN0Lm9wZW4oKTsgfSBjYXRjaCB7fVxuICB9XG5cbiAgb25TZWxlY3RPcGVuZWRDaGFuZ2Uob3BlbmVkOiBib29sZWFuLCBfc2VsZWN0OiBNYXRTZWxlY3QpOiB2b2lkIHtcbiAgICBpZiAob3BlbmVkKSB7XG4gICAgICAvLyBFbWl0IGNsaWNrIGV2ZW50IHdoZW4gc2VsZWN0IGlzIG9wZW5lZCAoY2xpY2tlZClcbiAgICAgIHRoaXMuc2VsZWN0Q2xpY2suZW1pdCgpO1xuICAgIH1cbiAgICBcbiAgICBpZiAoIW9wZW5lZCkge1xuICAgICAgLy8gUmVzZXQgc2VhcmNoIHRleHQgb24gY2xvc2Ugc28gdGhlIG5leHQgb3BlbiBzaG93cyBmdWxsIGxpc3RcbiAgICAgIGlmICh0aGlzLmNvbmZpZz8ua2V5KSB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dEJ5S2V5W3RoaXMuY29uZmlnLmtleV0gPSAnJztcbiAgICAgIH1cbiAgICAgIC8vIEVuc3VyZSBhbnkgcHJldmlvdXMgY3VzdG9tIGxpc3RlbmVycyBhcmUgY2xlYXJlZCAobGVnYWN5IGNvbXBhdGliaWxpdHkpXG4gICAgICBpZiAodGhpcy5vdXRzaWRlQ2xlYW51cCkge1xuICAgICAgICB0aGlzLm91dHNpZGVDbGVhbnVwKCk7XG4gICAgICAgIHRoaXMub3V0c2lkZUNsZWFudXAgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRm9jdXMgdGhlIHNlYXJjaCBib3ggaWYgZW5hYmxlZFxuICAgIGlmICh0aGlzLmNvbmZpZz8uc2VhcmNoYWJsZSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignLnRzLXNlbGVjdC1zZWFyY2gtaW5wdXQnKTtcbiAgICAgICAgaW5wdXQ/LmZvY3VzKCk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGV4dEJ5S2V5W2tleV0gPSB2YWx1ZSA/PyAnJztcbiAgfVxuXG4gIGZpbHRlcmVkT3B0aW9ucyhjOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWcpOiBTZWxlY3RPcHRpb25bXSB7XG4gICAgY29uc3QgdCA9ICh0aGlzLnNlYXJjaFRleHRCeUtleVtjLmtleV0gfHwgJycpLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIGlmICghdCkgcmV0dXJuIGMub3B0aW9ucyB8fCBbXTtcbiAgICByZXR1cm4gKGMub3B0aW9ucyB8fCBbXSkuZmlsdGVyKChvcHQpID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPSBTdHJpbmcob3B0Lm5hbWUgPz8gb3B0LmxhYmVsID8/IG9wdC52YWx1ZSA/PyAnJykudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiB0ZXh0LmluY2x1ZGVzKHQpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2xvc2Ugd2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQgaWYgcmVxdWVzdGVkLiBBbHdheXMgY2xvc2UgZm9yIHNpbmdsZS1zZWxlY3QuXG4gIG9uU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UsIHNlbGVjdDogTWF0U2VsZWN0KTogdm9pZCB7XG4gICAgLy8gSGFuZGxlIHNlbGVjdC1hbGwgc2VudGluZWwgaW4gbXVsdGktc2VsZWN0XG4gICAgaWYgKHRoaXMuaXNNdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KGV2ZW50LnZhbHVlKSAmJiBldmVudC52YWx1ZS5pbmNsdWRlcyh0aGlzLlNFTEVDVF9BTExfVkFMVUUpKSB7XG4gICAgICAvLyBSZW1vdmUgc2VudGluZWwgYW5kIHRvZ2dsZSBhbGxcbiAgICAgIGNvbnN0IGtleSA9IHRoaXMuY29uZmlnPy5rZXk7XG4gICAgICBpZiAoa2V5ICYmIHRoaXMuZm9ybSkge1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChrZXkpO1xuICAgICAgICAvLyBUb2dnbGUgYmFzZWQgb24gY3VycmVudCBzdGF0ZVxuICAgICAgICB0aGlzLm9uVG9nZ2xlU2VsZWN0QWxsKHNlbGVjdCk7XG4gICAgICAgIC8vIEVuc3VyZSBzZW50aW5lbCBpcyBub3QgcHJlc2VudFxuICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkID0gKGNvbnRyb2wudmFsdWUgYXMgYW55W10pLmZpbHRlcih2ID0+IHYgIT09IHRoaXMuU0VMRUNUX0FMTF9WQUxVRSk7XG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShmaWx0ZXJlZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBEbyBub3QgcHJvY2VlZCB3aXRoIG5vcm1hbCBjbG9zZSBsb2dpYyBmb3Igc2VsZWN0LWFsbFxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBMZXQgQW5ndWxhciBNYXRlcmlhbCBhdXRvLWNsb3NlIGZvciBzaW5nbGUtc2VsZWN0LlxuICAgIC8vIEZvciBtdWx0aS1zZWxlY3QsIGNsb3NlIG9ubHkgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQuXG4gICAgY29uc3Qgc2hvdWxkQ2xvc2UgPSB0aGlzLmlzTXVsdGlwbGUgPyAhIXRoaXMuY29uZmlnPy5jbG9zZU9uU2VsZWN0IDogZmFsc2U7XG4gICAgaWYgKHNob3VsZENsb3NlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBzZWxlY3QuY2xvc2UoKTtcbiAgICAgIH0gY2F0Y2gge31cbiAgICB9XG4gICAgLy8gSWYgc2VhcmNoYWJsZSwgY2xlYXIgdGhlIHNlYXJjaCBhZnRlciBzZWxlY3Rpb24gc28gcmVvcGVuaW5nIHdvcmtzIHByZWRpY3RhYmx5XG4gICAgaWYgKHRoaXMuY29uZmlnPy5zZWFyY2hhYmxlICYmIHRoaXMuY29uZmlnPy5rZXkpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJ5S2V5W3RoaXMuY29uZmlnLmtleV0gPSAnJztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnPy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5jb25maWcub25DaGFuZ2UoZXZlbnQudmFsdWUsIGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2NxYS1keW5hbWljLXNlbGVjdCBvbkNoYW5nZSBoYW5kbGVyIGVycm9yOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHtcbiAgICAgIGtleTogdGhpcy5jb25maWc/LmtleSxcbiAgICAgIHZhbHVlOiBldmVudC52YWx1ZSxcbiAgICAgIGV2ZW50LFxuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBoYW5kbGVEb2N1bWVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgLy8gQ2xvc2Ugd2hlbiBjbGlja2luZyBvdXRzaWRlIG9mIHRoZSB0cmlnZ2VyIGFuZCBvdXRzaWRlIG9mIHRoZSBvcGVuIHBhbmVsXG4gICAgaWYgKCF0aGlzLnNlbGVjdFJlZj8ucGFuZWxPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICAvLyBJZiBjbGljayBpcyBpbnNpZGUgdGhlIGNvbXBvbmVudCBob3N0LCBpZ25vcmVcbiAgICBpZiAodGhpcy5ob3N0RWw/Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5ob3N0RWwubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIElmIGNsaWNrIGlzIGluc2lkZSBhbnkgb3BlbiBtYXQtc2VsZWN0IHBhbmVsLCBpZ25vcmVcbiAgICBjb25zdCBwYW5lbEVscyA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1hdC1zZWxlY3QtcGFuZWwnKSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICBjb25zdCBjbGlja0luc2lkZVBhbmVsID0gcGFuZWxFbHMuc29tZSgoZWwpID0+IGVsLmNvbnRhaW5zKHRhcmdldCkpO1xuICAgIGlmIChjbGlja0luc2lkZVBhbmVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICB0aGlzLnNlbGVjdFJlZi5jbG9zZSgpO1xuICAgIH0gY2F0Y2gge31cbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgIDxsYWJlbCAqbmdJZj1cImNvbmZpZy5sYWJlbFwiXG4gICAgICBjbGFzcz1cImZvcm0tbGFiZWwgY3FhLXRleHQtWyMzNzQxNTFdIGNxYS10ZXh0LVsxNHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJsb2NrIGNxYS1sZWFkaW5nLVsxLjRdIGNxYS1tYi0yXCI+e3tcbiAgICAgIGNvbmZpZy5sYWJlbCB9fTwvbGFiZWw+XG4gICAgPG1hdC1mb3JtLWZpZWxkICNob3N0IGNsYXNzPVwibWF0LXNlbGVjdC1jdXN0b20gY3FhLXctZnVsbFwiIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICA8bWF0LXNlbGVjdCAjc2VsZWN0UmVmPVwibWF0U2VsZWN0XCIgW3BsYWNlaG9sZGVyXT1cImRpc3BsYXlQbGFjZWhvbGRlclwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxuICAgICAgICBkaXNhYmxlT3B0aW9uQ2VudGVyaW5nIFtwYW5lbENsYXNzXT1cInBhbmVsQ2xhc3NcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbmZpZy5rZXlcIlxuICAgICAgICAob3BlbmVkQ2hhbmdlKT1cIm9uU2VsZWN0T3BlbmVkQ2hhbmdlKCRldmVudCwgc2VsZWN0UmVmKVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LCBzZWxlY3RSZWYpXCI+XG5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJjb25maWcuc2VhcmNoYWJsZVwiIGNsYXNzPVwidHMtc2VsZWN0LXNlYXJjaFwiIGRpc2FibGVkPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRzLXNlbGVjdC1zZWFyY2gtaW5wdXRcIiB0eXBlPVwidGV4dFwiIFt2YWx1ZV09XCJzZWFyY2hUZXh0QnlLZXlbY29uZmlnLmtleV0gfHwgJydcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIChpbnB1dCk9XCJvblNlYXJjaChjb25maWcua2V5LCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiIC8+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgXG4gICAgICAgIDxtYXQtb3B0aW9uIFtuZ0NsYXNzXT1cInsnY2hlY2ttYXJrJzogY29uZmlnLm9wdGlvblN0eWxlID09PSAnY2hlY2ttYXJrJywnY2hlY2tib3gnOiBjb25maWcub3B0aW9uU3R5bGUgIT09ICdjaGVja21hcmsnLCdtYXQtc2VsZWN0ZWQnOiBhbGxTZWxlY3RlZH1cIiBbY2xhc3NdPVwiY29uZmlnLm9wdGlvblN0eWxlID09ICdjaGVja21hcmsnID8gJ2NoZWNrbWFyaycgOiAnY2hlY2tib3gnXCIgKm5nSWY9XCJpc011bHRpcGxlICYmIGNvbmZpZy5zaG93U2VsZWN0QWxsXCIgW3ZhbHVlXT1cIlNFTEVDVF9BTExfVkFMVUVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlQ2hlY2tib3hTdHlsZTsgZWxzZSBzZWxlY3RBbGxEZWZhdWx0VHBsXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdy00IGNxYS1oLTQgY3FhLXJvdW5kZWQtWzRweF0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLVsjRDFENURCXSBjcWEtbXItMiBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtYm9yZGVyLXNvbGlkXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJhbGxTZWxlY3RlZCA/IHsnYmFja2dyb3VuZC1jb2xvcic6JyM0RjQ2RTUnLCdib3JkZXItY29sb3InOicjNEY0NkU1J30gOiB7fVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJhbGxTZWxlY3RlZFwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgM0w0LjUgOC41TDIgNlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGNvbmZpZy5zZWxlY3RBbGxMYWJlbCB8fCAnQWxsJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdEFsbERlZmF1bHRUcGw+XG4gICAgICAgICAgICB7eyBjb25maWcuc2VsZWN0QWxsTGFiZWwgfHwgJ0FsbCcgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgICAgPG1hdC1vcHRpb24gW2NsYXNzXT1cImNvbmZpZy5vcHRpb25TdHlsZSA9PSAnY2hlY2ttYXJrJyA/ICdjaGVja21hcmsnIDogJ2NoZWNrYm94J1wiICpuZ0Zvcj1cImxldCBvcHQgb2YgZmlsdGVyZWRPcHRpb25zKGNvbmZpZylcIiBbdmFsdWVdPVwib3B0LmlkID8/IG9wdC52YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VDaGVja2JveFN0eWxlOyBlbHNlIGRlZmF1bHRPcHRpb25UcGxcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS13LTQgY3FhLWgtNCBjcWEtcm91bmRlZC1bNHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNEMUQ1REJdIGNxYS1tci0yIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1ib3JkZXItc29saWRcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImlzT3B0aW9uU2VsZWN0ZWQob3B0KSA/IHsnYmFja2dyb3VuZC1jb2xvcic6JyM0RjQ2RTUnLCdib3JkZXItY29sb3InOicjNEY0NkU1J30gOiB7fVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc09wdGlvblNlbGVjdGVkKG9wdClcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDNMNC41IDguNUwyIDZcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBvcHQubmFtZSA/PyBvcHQubGFiZWwgPz8gb3B0LnZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRwbD5cbiAgICAgICAgICAgIHt7IG9wdC5uYW1lID8/IG9wdC5sYWJlbCA/PyBvcHQudmFsdWUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNNCA2TDggMTBMMTIgNlwiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj4iXX0=
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWxlY3QtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBd0N2SyxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT1cscUJBQWdCLEdBQVcsZ0JBQWdCLENBQUM7UUFHM0Msb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBdUQsQ0FBQztRQUMxRixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLakQsZ0ZBQWdGO1FBQ2hGLG9CQUFlLEdBQTJCLEVBQUUsQ0FBQztLQWlSOUM7SUE5UUMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFO1lBQ3ZCLHdGQUF3RjtZQUN4RixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztTQUNuQztRQUNELElBQUksTUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDckQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxvQkFBb0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBYyxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFjO1FBQzlCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUc7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDM0MsSUFBSSxDQUFDLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDekQsT0FBTyxJQUFJLENBQUMsQ0FBQywrQ0FBK0M7U0FDN0Q7UUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixPQUFPLEtBQUssS0FBSyxDQUFDLENBQUM7U0FDcEI7UUFDRCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLCtCQUErQjtRQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUNyQixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLFlBQVksSUFBSSxJQUFJO2dCQUFFLE9BQU87WUFDakMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztnQkFBRSxPQUFPO1lBQ3hDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3hEO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7Z0JBQUUsT0FBTztZQUN6QyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDdEY7SUFDSCxDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQ3JCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkMsT0FBTztTQUNSO1FBQ0QsSUFBSSxhQUFhLEtBQUssU0FBUyxJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUU7WUFDekQsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUN4RixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FDM0IsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDcEQ7YUFBTTtZQUNMLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO2dCQUM3QyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUNsQixJQUFJLFVBQVUsS0FBSyxTQUFTO2dCQUFFLE9BQU87WUFDckMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ2pDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3pDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQWlCO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0IsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUMvQyxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQWlCO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQzNCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTCxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsMkRBQTJEO1FBQzNELElBQUk7WUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FBRTtRQUFDLE1BQU0sR0FBRTtJQUNqQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBZSxFQUFFLE9BQWtCO1FBQ3RELElBQUksTUFBTSxFQUFFO1lBQ1YsbURBQW1EO1lBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsOERBQThEO1lBQzlELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDNUM7WUFDRCwwRUFBMEU7WUFDMUUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO2FBQ2pDO1lBQ0QsT0FBTztTQUNSO1FBRUQsa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUU7WUFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFtQix5QkFBeUIsQ0FBQyxDQUFDO2dCQUNsRixLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDakIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZUFBZSxDQUFDLENBQTJCO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkUsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLGlCQUFpQixDQUFDLEtBQXNCLEVBQUUsTUFBaUI7UUFDekQsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNoRyxpQ0FBaUM7WUFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7WUFDN0IsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLGdDQUFnQztnQkFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQixpQ0FBaUM7Z0JBQ2pDLElBQUksT0FBTyxFQUFFO29CQUNYLE1BQU0sUUFBUSxHQUFJLE9BQU8sQ0FBQyxLQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNuRixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUNsRDthQUNGO1lBQ0Qsd0RBQXdEO1lBQ3hELE9BQU87U0FDUjtRQUNELHFEQUFxRDtRQUNyRCx3REFBd0Q7UUFDeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0UsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJO2dCQUNGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNoQjtZQUFDLE1BQU0sR0FBRTtTQUNYO1FBQ0QsaUZBQWlGO1FBQ2pGLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUM1QztRQUVELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDL0MsSUFBSTtnQkFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQzFDO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNwRTtTQUNGO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDeEIsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRztZQUNyQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxLQUFpQjtRQUNuQywyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFO1lBQzlCLE9BQU87U0FDUjtRQUNELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUE0QixDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUNwQixnREFBZ0Q7UUFDaEQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDNUUsT0FBTztTQUNSO1FBQ0QsdURBQXVEO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQWtCLENBQUM7UUFDN0YsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFDRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtRQUFDLE1BQU0sR0FBRTtJQUNaLENBQUM7O3dIQTNSVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixpYUFRSSxVQUFVLGtEQ2hEdEQsdzlIQTRETTsyRkRwQk8sMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNOzhCQUl0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFFb0MsU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNlLE1BQU07c0JBQTdELFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQStQdEQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNlbGVjdCwgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuLy8gTG9jYWwgb3B0aW9uIG1vZGVsIChwcmV2aW91c2x5IGltcG9ydGVkIGZyb20gcmVtb3ZlZCBjcWEtc2VsZWN0IGNvbXBvbmVudClcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uIHtcbiAgaWQ/OiBhbnk7XG4gIHZhbHVlPzogYW55O1xuICBuYW1lPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljU2VsZWN0RmllbGRDb25maWcge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gIC8qKiBDb250cm9scyBob3cgc2VsZWN0aW9uIGluZGljYXRvciBpcyBzaG93biBmb3IgbXVsdGktc2VsZWN0IG9wdGlvbnMuICovXG4gIG9wdGlvblN0eWxlPzogJ2NoZWNrbWFyaycgfCAnY2hlY2tib3gnO1xuICAvKiogU2hvdyBhICdTZWxlY3QgQWxsJyBvcHRpb24gYXQgdGhlIHRvcCAobXVsdGktc2VsZWN0IG9ubHkpLiAqL1xuICBzaG93U2VsZWN0QWxsPzogYm9vbGVhbjtcbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlICdTZWxlY3QgQWxsJyBvcHRpb24uIERlZmF1bHRzIHRvICdBbGwnLiAqL1xuICBzZWxlY3RBbGxMYWJlbD86IHN0cmluZztcbiAgLyoqIElmIHRydWUsIGNsb3NlIHRoZSBwYW5lbCB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZCAodXNlZnVsIGZvciBtdWx0aS1zZWxlY3QgaW4gaGVhZGVycykuICovXG4gIGNsb3NlT25TZWxlY3Q/OiBib29sZWFuO1xuICAvKiogUHJvdmlkZSBhIGRlZmF1bHQgc2VsZWN0ZWQgdmFsdWUgKG9yIGFycmF5IGZvciBtdWx0aS1zZWxlY3QpIGlmIHRoZSBjb250cm9sIGhhcyBubyB2YWx1ZSB5ZXQuICovXG4gIHNlbGVjdGVkVmFsdWU/OiBhbnkgfCBhbnlbXTtcbiAgLyoqIE9wdGlvbmFsIGNhbGxiYWNrIGludm9rZWQgd2hlbmV2ZXIgdGhlIHNlbGVjdGlvbiBjaGFuZ2VzLiAqL1xuICBvbkNoYW5nZT86ICh2YWx1ZTogYW55LCBldmVudD86IE1hdFNlbGVjdENoYW5nZSkgPT4gdm9pZDtcbiAgb3B0aW9uczogU2VsZWN0T3B0aW9uW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1keW5hbWljLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNTZWxlY3RGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcmVhZG9ubHkgU0VMRUNUX0FMTF9WQUxVRTogc3RyaW5nID0gJ19fc2VsZWN0X2FsbF9fJztcbiAgQElucHV0KCkgZm9ybSE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgY29uZmlnITogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleTogc3RyaW5nOyB2YWx1ZTogYW55OyBldmVudDogTWF0U2VsZWN0Q2hhbmdlIH0+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3RSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VsZWN0UmVmPzogTWF0U2VsZWN0O1xuICBAVmlld0NoaWxkKCdob3N0JywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIGhvc3RFbD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8vIE11c3QgYmUgcHVibGljIGZvciB0ZW1wbGF0ZSBhY2Nlc3MgaW4gQW5ndWxhcidzIHN0cmljdCB0ZW1wbGF0ZSBjaGVja2luZyBtb2RlXG4gIHNlYXJjaFRleHRCeUtleTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBwcml2YXRlIG91dHNpZGVDbGVhbnVwPzogKCkgPT4gdm9pZDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnIHx8ICF0aGlzLmNvbmZpZy5rZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY3FhLWR5bmFtaWMtc2VsZWN0OiBpbnB1dCBcImNvbmZpZy5rZXlcIiBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gICAgdGhpcy5hcHBseVNlbGVjdGVkVmFsdWVJZk5lZWRlZCgpO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlQbGFjZWhvbGRlcigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY29uZmlnPy5rZXk7XG4gICAgaWYgKCFrZXkgfHwgIXRoaXMuZm9ybSkgcmV0dXJuIHRoaXMuY29uZmlnPy5wbGFjZWhvbGRlcjtcbiAgICBjb25zdCBjb250cm9sVmFsdWUgPSB0aGlzLmZvcm0uZ2V0KGtleSk/LnZhbHVlO1xuICAgIHJldHVybiB0aGlzLmhhc0V4aXN0aW5nVmFsdWUoY29udHJvbFZhbHVlKSA/IHVuZGVmaW5lZCA6IHRoaXMuY29uZmlnPy5wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoJ2NvbmZpZycgaW4gY2hhbmdlcykge1xuICAgICAgLy8gV2hlbiBjb25maWcgY2hhbmdlcyAoaW5jbHVkaW5nIHRvZ2dsaW5nIG11bHRpcGxlKSwgZW5zdXJlIGNvbnRyb2wgdmFsdWUgc2hhcGUgbWF0Y2hlc1xuICAgICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlRm9yTXVsdGlwbGVNb2RlKCk7XG4gICAgICB0aGlzLmFwcGx5U2VsZWN0ZWRWYWx1ZUlmTmVlZGVkKCk7XG4gICAgfVxuICAgIGlmICgnZm9ybScgaW4gY2hhbmdlcyAmJiAhY2hhbmdlc1snZm9ybSddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmFwcGx5U2VsZWN0ZWRWYWx1ZUlmTmVlZGVkKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHBhbmVsQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGN0Yy1zZWxlY3QtcGFuZWwgJHt0aGlzLmlzTXVsdGlwbGUgPyAnbXVsdGlwbGUnIDogJyd9YC50cmltKCk7XG4gIH1cblxuICBnZXQgaXNNdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b0Jvb2xlYW4odGhpcy5jb25maWc/Lm11bHRpcGxlKTtcbiAgfVxuXG4gIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvQm9vbGVhbih0aGlzLmNvbmZpZz8uZGlzYWJsZWQpO1xuICB9XG4gIFxuICBnZXQgdXNlQ2hlY2tib3hTdHlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc011bHRpcGxlICYmICh0aGlzLmNvbmZpZz8ub3B0aW9uU3R5bGUgPT09ICdjaGVja2JveCcpO1xuICB9XG4gIFxuICBnZXQgYWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzTXVsdGlwbGUpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmNvbmZpZz8ua2V5O1xuICAgIGlmICgha2V5IHx8ICF0aGlzLmZvcm0pIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChrZXkpO1xuICAgIGlmICghY29udHJvbCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gY29udHJvbC52YWx1ZSBhcyBhbnlbXTtcbiAgICBjb25zdCBhbGxJZHMgPSB0aGlzLmdldEFsbE9wdGlvbklkcygpO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShzZWxlY3RlZCkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoIWFsbElkcy5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gYWxsSWRzLmV2ZXJ5KGlkID0+IHNlbGVjdGVkLmluY2x1ZGVzKGlkKSk7XG4gIH1cblxuICBwcml2YXRlIHRvQm9vbGVhbih2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCB2ID0gdmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodiA9PT0gJ3RydWUnIHx8IHYgPT09ICcxJykgcmV0dXJuIHRydWU7XG4gICAgICBpZiAodiA9PT0gJ2ZhbHNlJyB8fCB2ID09PSAnMCcgfHwgdiA9PT0gJycpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiB0cnVlOyAvLyBhbnkgb3RoZXIgbm9uLWVtcHR5IHN0cmluZyB0cmVhdGVkIGFzIHRydXRoeVxuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHZhbHVlICE9PSAwO1xuICAgIH1cbiAgICByZXR1cm4gISF2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0NvbnRyb2xWYWx1ZUZvck11bHRpcGxlTW9kZSgpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmNvbmZpZz8ua2V5O1xuICAgIGlmICgha2V5IHx8ICF0aGlzLmZvcm0pIHJldHVybjtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChrZXkpO1xuICAgIGlmICghY29udHJvbCkgcmV0dXJuO1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKHRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBudWxsKSByZXR1cm47XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSByZXR1cm47XG4gICAgICBjb250cm9sLnNldFZhbHVlKFtjdXJyZW50VmFsdWVdLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSByZXR1cm47XG4gICAgICBjb250cm9sLnNldFZhbHVlKGN1cnJlbnRWYWx1ZS5sZW5ndGggPyBjdXJyZW50VmFsdWVbMF0gOiBudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlbGVjdGVkVmFsdWVJZk5lZWRlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmNvbmZpZz8ua2V5O1xuICAgIGlmICgha2V5IHx8ICF0aGlzLmZvcm0pIHJldHVybjtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChrZXkpO1xuICAgIGlmICghY29udHJvbCkgcmV0dXJuO1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSB0aGlzLmNvbmZpZz8uc2VsZWN0ZWRWYWx1ZTtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICh0aGlzLmhhc0V4aXN0aW5nVmFsdWUoY3VycmVudFZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc2VsZWN0ZWRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHNlbGVjdGVkVmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlKSB7XG4gICAgICBjb25zdCBub3JtYWxpemVkID0gKEFycmF5LmlzQXJyYXkoc2VsZWN0ZWRWYWx1ZSkgPyBzZWxlY3RlZFZhbHVlIDogW3NlbGVjdGVkVmFsdWVdKS5maWx0ZXIoXG4gICAgICAgICh2YWwpID0+IHZhbCAhPT0gdW5kZWZpbmVkLFxuICAgICAgKTtcbiAgICAgIGlmICghbm9ybWFsaXplZC5sZW5ndGgpIHJldHVybjtcbiAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub3JtYWxpemVkID0gQXJyYXkuaXNBcnJheShzZWxlY3RlZFZhbHVlKVxuICAgICAgICA/IChzZWxlY3RlZFZhbHVlLmxlbmd0aCA/IHNlbGVjdGVkVmFsdWVbMF0gOiB1bmRlZmluZWQpXG4gICAgICAgIDogc2VsZWN0ZWRWYWx1ZTtcbiAgICAgIGlmIChub3JtYWxpemVkID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIGNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzRXhpc3RpbmdWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUuc29tZSgodmFsKSA9PiB2YWwgIT09IG51bGwgJiYgdmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSAnJyk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdmFsdWUudHJpbSgpLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaXNPcHRpb25TZWxlY3RlZChvcHQ6IFNlbGVjdE9wdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY29uZmlnPy5rZXk7XG4gICAgaWYgKCFrZXkgfHwgIXRoaXMuZm9ybSkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGtleSk7XG4gICAgaWYgKCFjb250cm9sKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY29udHJvbFZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICBjb25zdCBvcHRpb25JZCA9IG9wdC5pZCA/PyBvcHQudmFsdWU7XG4gICAgaWYgKHRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRyb2xWYWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiBjb250cm9sVmFsdWUuaW5jbHVkZXMob3B0aW9uSWQpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbFZhbHVlID09PSBvcHRpb25JZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsT3B0aW9uSWRzKCk6IGFueVtdIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWc/Lm9wdGlvbnMgfHwgW107XG4gICAgcmV0dXJuIG9wdGlvbnMubWFwKG8gPT4gKG8uaWQgPz8gby52YWx1ZSkpLmZpbHRlcih2ID0+IHYgIT09IHVuZGVmaW5lZCk7XG4gIH1cblxuICBvblRvZ2dsZVNlbGVjdEFsbChzZWxlY3Q6IE1hdFNlbGVjdCk6IHZvaWQge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY29uZmlnPy5rZXk7XG4gICAgaWYgKCFrZXkgfHwgIXRoaXMuZm9ybSkgcmV0dXJuO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGtleSk7XG4gICAgaWYgKCFjb250cm9sKSByZXR1cm47XG4gICAgY29uc3QgYWxsSWRzID0gdGhpcy5nZXRBbGxPcHRpb25JZHMoKTtcbiAgICBpZiAoIWFsbElkcy5sZW5ndGgpIHJldHVybjtcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZCkge1xuICAgICAgY29udHJvbC5zZXRWYWx1ZShbXSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRyb2wuc2V0VmFsdWUoYWxsSWRzLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICB9XG4gICAgLy8gS2VlcCBwYW5lbCBvcGVuIGZvciBjb250aW51ZWQgc2VsZWN0aW9ucyBpbiBtdWx0aS1zZWxlY3RcbiAgICB0cnkgeyBzZWxlY3Qub3BlbigpOyB9IGNhdGNoIHt9XG4gIH1cblxuICBvblNlbGVjdE9wZW5lZENoYW5nZShvcGVuZWQ6IGJvb2xlYW4sIF9zZWxlY3Q6IE1hdFNlbGVjdCk6IHZvaWQge1xuICAgIGlmIChvcGVuZWQpIHtcbiAgICAgIC8vIEVtaXQgY2xpY2sgZXZlbnQgd2hlbiBzZWxlY3QgaXMgb3BlbmVkIChjbGlja2VkKVxuICAgICAgdGhpcy5zZWxlY3RDbGljay5lbWl0KCk7XG4gICAgfVxuICAgIFxuICAgIGlmICghb3BlbmVkKSB7XG4gICAgICAvLyBSZXNldCBzZWFyY2ggdGV4dCBvbiBjbG9zZSBzbyB0aGUgbmV4dCBvcGVuIHNob3dzIGZ1bGwgbGlzdFxuICAgICAgaWYgKHRoaXMuY29uZmlnPy5rZXkpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hUZXh0QnlLZXlbdGhpcy5jb25maWcua2V5XSA9ICcnO1xuICAgICAgfVxuICAgICAgLy8gRW5zdXJlIGFueSBwcmV2aW91cyBjdXN0b20gbGlzdGVuZXJzIGFyZSBjbGVhcmVkIChsZWdhY3kgY29tcGF0aWJpbGl0eSlcbiAgICAgIGlmICh0aGlzLm91dHNpZGVDbGVhbnVwKSB7XG4gICAgICAgIHRoaXMub3V0c2lkZUNsZWFudXAoKTtcbiAgICAgICAgdGhpcy5vdXRzaWRlQ2xlYW51cCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBGb2N1cyB0aGUgc2VhcmNoIGJveCBpZiBlbmFibGVkXG4gICAgaWYgKHRoaXMuY29uZmlnPy5zZWFyY2hhYmxlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxJbnB1dEVsZW1lbnQ+KCcudHMtc2VsZWN0LXNlYXJjaC1pbnB1dCcpO1xuICAgICAgICBpbnB1dD8uZm9jdXMoKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXh0QnlLZXlba2V5XSA9IHZhbHVlID8/ICcnO1xuICB9XG5cbiAgZmlsdGVyZWRPcHRpb25zKGM6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyk6IFNlbGVjdE9wdGlvbltdIHtcbiAgICBjb25zdCB0ID0gKHRoaXMuc2VhcmNoVGV4dEJ5S2V5W2Mua2V5XSB8fCAnJykudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgaWYgKCF0KSByZXR1cm4gYy5vcHRpb25zIHx8IFtdO1xuICAgIHJldHVybiAoYy5vcHRpb25zIHx8IFtdKS5maWx0ZXIoKG9wdCkgPT4ge1xuICAgICAgY29uc3QgdGV4dCA9IFN0cmluZyhvcHQubmFtZSA/PyBvcHQubGFiZWwgPz8gb3B0LnZhbHVlID8/ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIHRleHQuaW5jbHVkZXModCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBDbG9zZSB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZCBpZiByZXF1ZXN0ZWQuIEFsd2F5cyBjbG9zZSBmb3Igc2luZ2xlLXNlbGVjdC5cbiAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSwgc2VsZWN0OiBNYXRTZWxlY3QpOiB2b2lkIHtcbiAgICAvLyBIYW5kbGUgc2VsZWN0LWFsbCBzZW50aW5lbCBpbiBtdWx0aS1zZWxlY3RcbiAgICBpZiAodGhpcy5pc011bHRpcGxlICYmIEFycmF5LmlzQXJyYXkoZXZlbnQudmFsdWUpICYmIGV2ZW50LnZhbHVlLmluY2x1ZGVzKHRoaXMuU0VMRUNUX0FMTF9WQUxVRSkpIHtcbiAgICAgIC8vIFJlbW92ZSBzZW50aW5lbCBhbmQgdG9nZ2xlIGFsbFxuICAgICAgY29uc3Qga2V5ID0gdGhpcy5jb25maWc/LmtleTtcbiAgICAgIGlmIChrZXkgJiYgdGhpcy5mb3JtKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGtleSk7XG4gICAgICAgIC8vIFRvZ2dsZSBiYXNlZCBvbiBjdXJyZW50IHN0YXRlXG4gICAgICAgIHRoaXMub25Ub2dnbGVTZWxlY3RBbGwoc2VsZWN0KTtcbiAgICAgICAgLy8gRW5zdXJlIHNlbnRpbmVsIGlzIG5vdCBwcmVzZW50XG4gICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyZWQgPSAoY29udHJvbC52YWx1ZSBhcyBhbnlbXSkuZmlsdGVyKHYgPT4gdiAhPT0gdGhpcy5TRUxFQ1RfQUxMX1ZBTFVFKTtcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKGZpbHRlcmVkLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIERvIG5vdCBwcm9jZWVkIHdpdGggbm9ybWFsIGNsb3NlIGxvZ2ljIGZvciBzZWxlY3QtYWxsXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIExldCBBbmd1bGFyIE1hdGVyaWFsIGF1dG8tY2xvc2UgZm9yIHNpbmdsZS1zZWxlY3QuXG4gICAgLy8gRm9yIG11bHRpLXNlbGVjdCwgY2xvc2Ugb25seSBpZiBleHBsaWNpdGx5IHJlcXVlc3RlZC5cbiAgICBjb25zdCBzaG91bGRDbG9zZSA9IHRoaXMuaXNNdWx0aXBsZSA/ICEhdGhpcy5jb25maWc/LmNsb3NlT25TZWxlY3QgOiBmYWxzZTtcbiAgICBpZiAoc2hvdWxkQ2xvc2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNlbGVjdC5jbG9zZSgpO1xuICAgICAgfSBjYXRjaCB7fVxuICAgIH1cbiAgICAvLyBJZiBzZWFyY2hhYmxlLCBjbGVhciB0aGUgc2VhcmNoIGFmdGVyIHNlbGVjdGlvbiBzbyByZW9wZW5pbmcgd29ya3MgcHJlZGljdGFibHlcbiAgICBpZiAodGhpcy5jb25maWc/LnNlYXJjaGFibGUgJiYgdGhpcy5jb25maWc/LmtleSkge1xuICAgICAgdGhpcy5zZWFyY2hUZXh0QnlLZXlbdGhpcy5jb25maWcua2V5XSA9ICcnO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWc/Lm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmNvbmZpZy5vbkNoYW5nZShldmVudC52YWx1ZSwgZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignY3FhLWR5bmFtaWMtc2VsZWN0IG9uQ2hhbmdlIGhhbmRsZXIgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoe1xuICAgICAga2V5OiB0aGlzLmNvbmZpZz8ua2V5LFxuICAgICAgdmFsdWU6IGV2ZW50LnZhbHVlLFxuICAgICAgZXZlbnQsXG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGhhbmRsZURvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBDbG9zZSB3aGVuIGNsaWNraW5nIG91dHNpZGUgb2YgdGhlIHRyaWdnZXIgYW5kIG91dHNpZGUgb2YgdGhlIG9wZW4gcGFuZWxcbiAgICBpZiAoIXRoaXMuc2VsZWN0UmVmPy5wYW5lbE9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIXRhcmdldCkgcmV0dXJuO1xuICAgIC8vIElmIGNsaWNrIGlzIGluc2lkZSB0aGUgY29tcG9uZW50IGhvc3QsIGlnbm9yZVxuICAgIGlmICh0aGlzLmhvc3RFbD8ubmF0aXZlRWxlbWVudCAmJiB0aGlzLmhvc3RFbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gSWYgY2xpY2sgaXMgaW5zaWRlIGFueSBvcGVuIG1hdC1zZWxlY3QgcGFuZWwsIGlnbm9yZVxuICAgIGNvbnN0IHBhbmVsRWxzID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubWF0LXNlbGVjdC1wYW5lbCcpKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgIGNvbnN0IGNsaWNrSW5zaWRlUGFuZWwgPSBwYW5lbEVscy5zb21lKChlbCkgPT4gZWwuY29udGFpbnModGFyZ2V0KSk7XG4gICAgaWYgKGNsaWNrSW5zaWRlUGFuZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc2VsZWN0UmVmLmNsb3NlKCk7XG4gICAgfSBjYXRjaCB7fVxuICB9XG59XG5cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCI+XG4gIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGxhYmVsICpuZ0lmPVwiY29uZmlnLmxhYmVsXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbCBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtWzE0cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtYmxvY2sgY3FhLWxlYWRpbmctWzEuNF0gY3FhLW1iLTJcIj57e1xuICAgICAgY29uZmlnLmxhYmVsIH19PC9sYWJlbD5cbiAgICA8bWF0LWZvcm0tZmllbGQgI2hvc3QgY2xhc3M9XCJtYXQtc2VsZWN0LWN1c3RvbSBjcWEtdy1mdWxsXCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgIDxtYXQtc2VsZWN0ICNzZWxlY3RSZWY9XCJtYXRTZWxlY3RcIiBbcGxhY2Vob2xkZXJdPVwiZGlzcGxheVBsYWNlaG9sZGVyXCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBbbXVsdGlwbGVdPVwiaXNNdWx0aXBsZVwiXG4gICAgICAgIGRpc2FibGVPcHRpb25DZW50ZXJpbmcgW3BhbmVsQ2xhc3NdPVwicGFuZWxDbGFzc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmtleVwiXG4gICAgICAgIChvcGVuZWRDaGFuZ2UpPVwib25TZWxlY3RPcGVuZWRDaGFuZ2UoJGV2ZW50LCBzZWxlY3RSZWYpXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQsIHNlbGVjdFJlZilcIj5cblxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImNvbmZpZy5zZWFyY2hhYmxlXCIgY2xhc3M9XCJ0cy1zZWxlY3Qtc2VhcmNoXCIgZGlzYWJsZWQ+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwidHMtc2VsZWN0LXNlYXJjaC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgW3ZhbHVlXT1cInNlYXJjaFRleHRCeUtleVtjb25maWcua2V5XSB8fCAnJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKGlucHV0KT1cIm9uU2VhcmNoKGNvbmZpZy5rZXksICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgLz5cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICBcbiAgICAgICAgPG1hdC1vcHRpb24gW25nQ2xhc3NdPVwieydjaGVja21hcmsnOiBjb25maWcub3B0aW9uU3R5bGUgPT09ICdjaGVja21hcmsnLCdjaGVja2JveCc6IGNvbmZpZy5vcHRpb25TdHlsZSAhPT0gJ2NoZWNrbWFyaycsJ21hdC1zZWxlY3RlZCc6IGFsbFNlbGVjdGVkfVwiIFtjbGFzc109XCJjb25maWcub3B0aW9uU3R5bGUgPT0gJ2NoZWNrbWFyaycgPyAnY2hlY2ttYXJrJyA6ICdjaGVja2JveCdcIiAqbmdJZj1cImlzTXVsdGlwbGUgJiYgY29uZmlnLnNob3dTZWxlY3RBbGxcIiBbdmFsdWVdPVwiU0VMRUNUX0FMTF9WQUxVRVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VDaGVja2JveFN0eWxlOyBlbHNlIHNlbGVjdEFsbERlZmF1bHRUcGxcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS13LTQgY3FhLWgtNCBjcWEtcm91bmRlZC1bNHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNEMUQ1REJdIGNxYS1tci0yIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1ib3JkZXItc29saWRcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImFsbFNlbGVjdGVkID8geydiYWNrZ3JvdW5kLWNvbG9yJzonIzRGNDZFNScsJ2JvcmRlci1jb2xvcic6JyM0RjQ2RTUnfSA6IHt9XCI+XG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImFsbFNlbGVjdGVkXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMCAzTDQuNSA4LjVMMiA2XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgY29uZmlnLnNlbGVjdEFsbExhYmVsIHx8ICdBbGwnIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0QWxsRGVmYXVsdFRwbD5cbiAgICAgICAgICAgIHt7IGNvbmZpZy5zZWxlY3RBbGxMYWJlbCB8fCAnQWxsJyB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICA8bWF0LW9wdGlvbiBbY2xhc3NdPVwiY29uZmlnLm9wdGlvblN0eWxlID09ICdjaGVja21hcmsnID8gJ2NoZWNrbWFyaycgOiAnY2hlY2tib3gnXCIgKm5nRm9yPVwibGV0IG9wdCBvZiBmaWx0ZXJlZE9wdGlvbnMoY29uZmlnKVwiIFt2YWx1ZV09XCJvcHQuaWQgPz8gb3B0LnZhbHVlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZUNoZWNrYm94U3R5bGU7IGVsc2UgZGVmYXVsdE9wdGlvblRwbFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXctNCBjcWEtaC00IGNxYS1yb3VuZGVkLVs0cHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0QxRDVEQl0gY3FhLW1yLTIgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWJvcmRlci1zb2xpZFwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiaXNPcHRpb25TZWxlY3RlZChvcHQpID8geydiYWNrZ3JvdW5kLWNvbG9yJzonIzRGNDZFNScsJ2JvcmRlci1jb2xvcic6JyM0RjQ2RTUnfSA6IHt9XCI+XG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImlzT3B0aW9uU2VsZWN0ZWQob3B0KVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgM0w0LjUgOC41TDIgNlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IG9wdC5uYW1lID8/IG9wdC5sYWJlbCA/PyBvcHQudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVHBsPlxuICAgICAgICAgICAge3sgb3B0Lm5hbWUgPz8gb3B0LmxhYmVsID8/IG9wdC52YWx1ZSB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgPGRpdj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk00IDZMOCAxMEwxMiA2XCIgc3Ryb2tlPVwiIzBBMEEwQVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
|