@cqa-lib/cqa-ui 0.1.2 → 1.0.1
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 +42 -0
- package/esm2020/lib/assets/images/image-assets.constants.mjs +28 -0
- package/esm2020/lib/badge/badge.component.mjs +141 -0
- package/esm2020/lib/button/button.component.mjs +42 -67
- package/esm2020/lib/column-visibility/column-visibility.component.mjs +69 -0
- package/esm2020/lib/dashboards/chart-card/chart-card.component.mjs +22 -0
- package/esm2020/lib/dashboards/coverage-module-card/coverage-module-card.component.mjs +105 -0
- package/esm2020/lib/dashboards/dashboard-header/dashboard-header.component.mjs +82 -0
- package/esm2020/lib/dashboards/failed-test-cases-card/failed-test-cases-card.component.mjs +59 -0
- package/esm2020/lib/dashboards/heat-error-map-cell/heat-error-map-cell.component.mjs +45 -0
- package/esm2020/lib/dashboards/insight-card/insight-card.component.mjs +201 -0
- package/esm2020/lib/dashboards/metrics-card/metrics-block.component.mjs +41 -0
- package/esm2020/lib/dashboards/metrics-card/metrics-card-item.interface.mjs +2 -0
- package/esm2020/lib/dashboards/metrics-card/metrics-card.component.mjs +62 -0
- package/esm2020/lib/dashboards/progress-text-card/progress-text-card.component.mjs +46 -0
- package/esm2020/lib/dashboards/test-distribution-card/test-distribution-card.component.mjs +35 -0
- package/esm2020/lib/dialog/dialog.component.mjs +4 -4
- package/esm2020/lib/dropdown-button/dropdown-button.component.mjs +189 -0
- package/esm2020/lib/dynamic-select/dynamic-select-field.component.mjs +160 -0
- package/esm2020/lib/empty-state/empty-state.component.mjs +37 -0
- package/esm2020/lib/filters/dynamic-filter/dynamic-filter.component.mjs +239 -0
- package/esm2020/lib/full-table-loader/full-table-loader.component.mjs +16 -0
- package/esm2020/lib/inline-sort/inline-sort.component.mjs +58 -0
- package/esm2020/lib/other-button/other-button.component.mjs +76 -0
- package/esm2020/lib/pagination/pagination.component.mjs +102 -0
- 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 +27 -0
- package/esm2020/lib/table/dynamic-table/dynamic-cell.directive.mjs +35 -0
- package/esm2020/lib/table/dynamic-table/dynamic-table.component.mjs +258 -0
- package/esm2020/lib/table-action-toolbar/table-action-toolbar.component.mjs +52 -0
- package/esm2020/lib/table-data-loader/table-data-loader.component.mjs +19 -0
- package/esm2020/lib/templates/table-template.component.mjs +365 -0
- package/esm2020/lib/ui-kit.module.mjs +196 -17
- package/esm2020/lib/utils/metadata-colors.util.mjs +100 -0
- package/esm2020/lib/utils/tw-overlay-container.mjs +22 -0
- package/esm2020/public-api.mjs +29 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +2899 -133
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +2867 -133
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/action-menu/action-menu.component.d.ts +17 -0
- package/lib/assets/images/image-assets.constants.d.ts +20 -0
- package/lib/badge/badge.component.d.ts +25 -0
- package/lib/button/button.component.d.ts +6 -5
- package/lib/column-visibility/column-visibility.component.d.ts +33 -0
- package/lib/dashboards/chart-card/chart-card.component.d.ts +8 -0
- package/lib/dashboards/coverage-module-card/coverage-module-card.component.d.ts +44 -0
- package/lib/dashboards/dashboard-header/dashboard-header.component.d.ts +30 -0
- package/lib/dashboards/failed-test-cases-card/failed-test-cases-card.component.d.ts +28 -0
- package/lib/dashboards/heat-error-map-cell/heat-error-map-cell.component.d.ts +14 -0
- package/lib/dashboards/insight-card/insight-card.component.d.ts +73 -0
- package/lib/dashboards/metrics-card/metrics-block.component.d.ts +12 -0
- package/lib/dashboards/metrics-card/metrics-card-item.interface.d.ts +12 -0
- package/lib/dashboards/metrics-card/metrics-card.component.d.ts +17 -0
- package/lib/dashboards/progress-text-card/progress-text-card.component.d.ts +13 -0
- package/lib/dashboards/test-distribution-card/test-distribution-card.component.d.ts +29 -0
- package/lib/dropdown-button/dropdown-button.component.d.ts +32 -0
- package/lib/dynamic-select/dynamic-select-field.component.d.ts +43 -0
- package/lib/empty-state/empty-state.component.d.ts +20 -0
- package/lib/filters/dynamic-filter/dynamic-filter.component.d.ts +56 -0
- package/lib/full-table-loader/full-table-loader.component.d.ts +6 -0
- package/lib/inline-sort/inline-sort.component.d.ts +12 -0
- package/lib/other-button/other-button.component.d.ts +37 -0
- package/lib/pagination/pagination.component.d.ts +37 -0
- package/lib/selected-filters/selected-filters.component.d.ts +17 -0
- package/lib/table/dynamic-table/dynamic-cell.directive.d.ts +16 -0
- package/lib/table/dynamic-table/dynamic-table.component.d.ts +72 -0
- package/lib/table-action-toolbar/table-action-toolbar.component.d.ts +34 -0
- package/lib/table-data-loader/table-data-loader.component.d.ts +7 -0
- package/lib/templates/table-template.component.d.ts +90 -0
- package/lib/ui-kit.module.d.ts +43 -6
- package/lib/utils/metadata-colors.util.d.ts +50 -0
- package/lib/utils/tw-overlay-container.d.ts +12 -0
- package/package.json +1 -1
- package/public-api.d.ts +28 -0
- package/src/assets/fonts/SFUIText-Bold/SF-UI-Text-Bold.eot +0 -0
- package/src/assets/fonts/SFUIText-Bold/SF-UI-Text-Bold.otf +0 -0
- package/src/assets/fonts/SFUIText-Bold/SF-UI-Text-Bold.svg +14730 -0
- package/src/assets/fonts/SFUIText-Bold/SF-UI-Text-Bold.ttf +0 -0
- package/src/assets/fonts/SFUIText-Bold/SF-UI-Text-Bold.woff +0 -0
- package/src/assets/fonts/SFUIText-Bold/SF-UI-Text-Bold.woff2 +0 -0
- package/src/assets/fonts/SFUIText-Light/SF-UI-Text-Light.eot +0 -0
- package/src/assets/fonts/SFUIText-Light/SF-UI-Text-Light.otf +0 -0
- package/src/assets/fonts/SFUIText-Light/SF-UI-Text-Light.svg +21333 -0
- package/src/assets/fonts/SFUIText-Light/SF-UI-Text-Light.ttf +0 -0
- package/src/assets/fonts/SFUIText-Light/SF-UI-Text-Light.woff +0 -0
- package/src/assets/fonts/SFUIText-Light/SF-UI-Text-Light.woff2 +0 -0
- package/src/assets/fonts/SFUIText-Medium/SF-UI-Text-Medium.eot +0 -0
- package/src/assets/fonts/SFUIText-Medium/SF-UI-Text-Medium.otf +0 -0
- package/src/assets/fonts/SFUIText-Medium/SF-UI-Text-Medium.svg +14584 -0
- package/src/assets/fonts/SFUIText-Medium/SF-UI-Text-Medium.ttf +0 -0
- package/src/assets/fonts/SFUIText-Medium/SF-UI-Text-Medium.woff +0 -0
- package/src/assets/fonts/SFUIText-Medium/SF-UI-Text-Medium.woff2 +0 -0
- package/src/assets/fonts/SFUIText-Regular/SF-UI-Text-Regular.eot +0 -0
- package/src/assets/fonts/SFUIText-Regular/SF-UI-Text-Regular.otf +0 -0
- package/src/assets/fonts/SFUIText-Regular/SF-UI-Text-Regular.svg +17870 -0
- package/src/assets/fonts/SFUIText-Regular/SF-UI-Text-Regular.ttf +0 -0
- package/src/assets/fonts/SFUIText-Regular/SF-UI-Text-Regular.woff +0 -0
- package/src/assets/fonts/SFUIText-Regular/SF-UI-Text-Regular.woff2 +0 -0
- package/src/assets/fonts/SFUIText-Semibold/SF-UI-Text-Semibold.eot +0 -0
- package/src/assets/fonts/SFUIText-Semibold/SF-UI-Text-Semibold.otf +0 -0
- package/src/assets/fonts/SFUIText-Semibold/SF-UI-Text-Semibold.svg +14732 -0
- package/src/assets/fonts/SFUIText-Semibold/SF-UI-Text-Semibold.ttf +0 -0
- package/src/assets/fonts/SFUIText-Semibold/SF-UI-Text-Semibold.woff +0 -0
- package/src/assets/fonts/SFUIText-Semibold/SF-UI-Text-Semibold.woff2 +0 -0
- package/src/lib/assets/images/.gitkeep +0 -0
- package/src/lib/assets/images/DashboardIcon.png +0 -0
- package/src/lib/assets/images/FilesIcon.png +0 -0
- package/src/lib/assets/images/README.md +66 -0
- package/src/lib/assets/images/ReportsIcon.png +0 -0
- package/src/lib/assets/images/SearchIcon.png +0 -0
- package/src/lib/assets/images/StepsIcon.png +0 -0
- package/src/lib/assets/images/TestCaseIcon.png +0 -0
- package/src/lib/assets/images/analytics-chart-icon.svg +11 -0
- package/src/lib/assets/images/checklist-add-icon.svg +10 -0
- package/src/lib/assets/images/document-gear-icon.svg +9 -0
- package/src/lib/assets/images/empty-state-default-icon.svg +8 -0
- package/src/lib/assets/images/image-assets.constants.ts +38 -0
- package/src/lib/assets/images/search-debug-icon.svg +8 -0
- package/src/lib/assets/images/test-case-icon.svg +9 -0
- package/src/lib/assets/images/upload-folder-icon.svg +7 -0
- package/src/lib/utils/metadata-colors.constants.js +33 -0
- package/storybook-static/assets/images/README.md +66 -0
- package/styles.css +1 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/button";
|
|
4
|
+
import * as i2 from "@angular/material/icon";
|
|
5
|
+
import * as i3 from "@angular/material/menu";
|
|
6
|
+
export class ActionMenuButtonComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.view = new EventEmitter();
|
|
9
|
+
this.edit = new EventEmitter();
|
|
10
|
+
this.delete = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
navigateToTestCase(id) {
|
|
13
|
+
if (id === undefined || id === null)
|
|
14
|
+
return;
|
|
15
|
+
this.view.emit(id);
|
|
16
|
+
}
|
|
17
|
+
editTestCase(row) {
|
|
18
|
+
if (!row)
|
|
19
|
+
return;
|
|
20
|
+
this.edit.emit(row);
|
|
21
|
+
}
|
|
22
|
+
deleteTestCase(row) {
|
|
23
|
+
if (!row)
|
|
24
|
+
return;
|
|
25
|
+
this.delete.emit(row);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
ActionMenuButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ActionMenuButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
ActionMenuButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ActionMenuButtonComponent, selector: "cqa-action-menu-button", inputs: { row: "row" }, outputs: { view: "view", edit: "edit", delete: "delete" }, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <button class=\"action-menu-btn\" [matMenuTriggerFor]=\"actionMenu\" (click)=\"$event.stopPropagation()\" mat-icon-button\n type=\"button\" aria-label=\"More actions\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n\n <mat-menu #actionMenu=\"matMenu\" class=\"action-menu\" xPosition=\"after\" yPosition=\"below\" hasBackdrop=\"true\">\n <button mat-menu-item (click)=\"navigateToTestCase(row?.id)\">\n <mat-icon>visibility</mat-icon>\n <span>View</span>\n </button>\n <button mat-menu-item (click)=\"editTestCase(row)\">\n <mat-icon>edit_square</mat-icon>\n <span>Edit</span>\n </button>\n <button mat-menu-item (click)=\"deleteTestCase(row)\" class=\"delete-menu-item\">\n <mat-icon>delete</mat-icon>\n <span>Delete</span>\n </button>\n </mat-menu>\n</div>", components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ActionMenuButtonComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'cqa-action-menu-button', template: "<div id=\"cqa-ui-root\">\n <button class=\"action-menu-btn\" [matMenuTriggerFor]=\"actionMenu\" (click)=\"$event.stopPropagation()\" mat-icon-button\n type=\"button\" aria-label=\"More actions\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n\n <mat-menu #actionMenu=\"matMenu\" class=\"action-menu\" xPosition=\"after\" yPosition=\"below\" hasBackdrop=\"true\">\n <button mat-menu-item (click)=\"navigateToTestCase(row?.id)\">\n <mat-icon>visibility</mat-icon>\n <span>View</span>\n </button>\n <button mat-menu-item (click)=\"editTestCase(row)\">\n <mat-icon>edit_square</mat-icon>\n <span>Edit</span>\n </button>\n <button mat-menu-item (click)=\"deleteTestCase(row)\" class=\"delete-menu-item\">\n <mat-icon>delete</mat-icon>\n <span>Delete</span>\n </button>\n </mat-menu>\n</div>", styles: [] }]
|
|
33
|
+
}], propDecorators: { row: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], view: [{
|
|
36
|
+
type: Output
|
|
37
|
+
}], edit: [{
|
|
38
|
+
type: Output
|
|
39
|
+
}], delete: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBWXZFLE1BQU0sT0FBTyx5QkFBeUI7SUFMdEM7UUFRWSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDM0MsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ3pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztLQWdCdEQ7SUFkQyxrQkFBa0IsQ0FBQyxFQUFvQjtRQUNyQyxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksRUFBRSxLQUFLLElBQUk7WUFBRSxPQUFPO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBbUI7UUFDOUIsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBbUI7UUFDaEMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7O3NIQXBCVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixpSkNadEMsODBCQW9CTTsyRkRSTyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQUt6QixHQUFHO3NCQUFYLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbk1lbnVSb3cge1xuICBpZDogbnVtYmVyIHwgc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1hY3Rpb24tbWVudS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbk1lbnVCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSByb3c/OiBBY3Rpb25NZW51Um93O1xuXG4gIEBPdXRwdXQoKSB2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBlZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25NZW51Um93PigpO1xuICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25NZW51Um93PigpO1xuXG4gIG5hdmlnYXRlVG9UZXN0Q2FzZShpZD86IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSBudWxsKSByZXR1cm47XG4gICAgdGhpcy52aWV3LmVtaXQoaWQpO1xuICB9XG5cbiAgZWRpdFRlc3RDYXNlKHJvdz86IEFjdGlvbk1lbnVSb3cpOiB2b2lkIHtcbiAgICBpZiAoIXJvdykgcmV0dXJuO1xuICAgIHRoaXMuZWRpdC5lbWl0KHJvdyk7XG4gIH1cblxuICBkZWxldGVUZXN0Q2FzZShyb3c/OiBBY3Rpb25NZW51Um93KTogdm9pZCB7XG4gICAgaWYgKCFyb3cpIHJldHVybjtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KHJvdyk7XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGlkPVwiY3FhLXVpLXJvb3RcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1tZW51LWJ0blwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25NZW51XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIG1hdC1pY29uLWJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiTW9yZSBhY3Rpb25zXCI+XG4gICAgPG1hdC1pY29uPm1vcmVfaG9yaXo8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8bWF0LW1lbnUgI2FjdGlvbk1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJhY3Rpb24tbWVudVwiIHhQb3NpdGlvbj1cImFmdGVyXCIgeVBvc2l0aW9uPVwiYmVsb3dcIiBoYXNCYWNrZHJvcD1cInRydWVcIj5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm5hdmlnYXRlVG9UZXN0Q2FzZShyb3c/LmlkKVwiPlxuICAgICAgPG1hdC1pY29uPnZpc2liaWxpdHk8L21hdC1pY29uPlxuICAgICAgPHNwYW4+Vmlldzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImVkaXRUZXN0Q2FzZShyb3cpXCI+XG4gICAgICA8bWF0LWljb24+ZWRpdF9zcXVhcmU8L21hdC1pY29uPlxuICAgICAgPHNwYW4+RWRpdDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRlbGV0ZVRlc3RDYXNlKHJvdylcIiBjbGFzcz1cImRlbGV0ZS1tZW51LWl0ZW1cIj5cbiAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPHNwYW4+RGVsZXRlPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1tZW51PlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Image assets constants for the UI library
|
|
3
|
+
*
|
|
4
|
+
* Place your image files in src/lib/assets/images/ and reference them here
|
|
5
|
+
*
|
|
6
|
+
* Usage in components:
|
|
7
|
+
* import { EMPTY_STATE_IMAGES } from '../assets/images/image-assets.constants';
|
|
8
|
+
* imageUrl: EMPTY_STATE_IMAGES.TEST_CASE
|
|
9
|
+
*/
|
|
10
|
+
export const EMPTY_STATE_IMAGES = {
|
|
11
|
+
// Test Case icon (document with gear)
|
|
12
|
+
TEST_CASE: 'assets/images/TestCaseIcon.png',
|
|
13
|
+
// Search/Debug icon (magnifying glass with question mark)
|
|
14
|
+
SEARCH_DEBUG: 'assets/images/SearchIcon.png',
|
|
15
|
+
// Upload/Folder icon (folder with upload arrow and plus)
|
|
16
|
+
UPLOAD_FOLDER: 'assets/images/FilesIcon.png',
|
|
17
|
+
// Dashboard overview
|
|
18
|
+
DASHBOARD: 'assets/images/DashboardIcon.png',
|
|
19
|
+
// Checklist/Add icon (clipboard with plus)
|
|
20
|
+
CHECKLIST_ADD: 'assets/images/StepsIcon.png',
|
|
21
|
+
// Document/Gear icon (document with gear overlay)
|
|
22
|
+
DOCUMENT_GEAR: 'assets/images/document-gear-icon.svg',
|
|
23
|
+
// Analytics/Chart icon (bar chart)
|
|
24
|
+
ANALYTICS_CHART: 'assets/images/ReportsIcon.png',
|
|
25
|
+
// Default empty state icon
|
|
26
|
+
DEFAULT: 'assets/images/SearchIcon.png',
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYXNzZXRzLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYXNzZXRzL2ltYWdlcy9pbWFnZS1hc3NldHMuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsc0NBQXNDO0lBQ3RDLFNBQVMsRUFBRSxnQ0FBZ0M7SUFFM0MsMERBQTBEO0lBQzFELFlBQVksRUFBRSw4QkFBOEI7SUFFNUMseURBQXlEO0lBQ3pELGFBQWEsRUFBRSw2QkFBNkI7SUFFNUMscUJBQXFCO0lBQ3JCLFNBQVMsRUFBRSxpQ0FBaUM7SUFFNUMsMkNBQTJDO0lBQzNDLGFBQWEsRUFBRSw2QkFBNkI7SUFFNUMsa0RBQWtEO0lBQ2xELGFBQWEsRUFBRSxzQ0FBc0M7SUFFckQsbUNBQW1DO0lBQ25DLGVBQWUsRUFBRSwrQkFBK0I7SUFFaEQsMkJBQTJCO0lBQzNCLE9BQU8sRUFBRSw4QkFBOEI7Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW1hZ2UgYXNzZXRzIGNvbnN0YW50cyBmb3IgdGhlIFVJIGxpYnJhcnlcbiAqIFxuICogUGxhY2UgeW91ciBpbWFnZSBmaWxlcyBpbiBzcmMvbGliL2Fzc2V0cy9pbWFnZXMvIGFuZCByZWZlcmVuY2UgdGhlbSBoZXJlXG4gKiBcbiAqIFVzYWdlIGluIGNvbXBvbmVudHM6XG4gKiBpbXBvcnQgeyBFTVBUWV9TVEFURV9JTUFHRVMgfSBmcm9tICcuLi9hc3NldHMvaW1hZ2VzL2ltYWdlLWFzc2V0cy5jb25zdGFudHMnO1xuICogaW1hZ2VVcmw6IEVNUFRZX1NUQVRFX0lNQUdFUy5URVNUX0NBU0VcbiAqL1xuXG5leHBvcnQgY29uc3QgRU1QVFlfU1RBVEVfSU1BR0VTID0ge1xuICAvLyBUZXN0IENhc2UgaWNvbiAoZG9jdW1lbnQgd2l0aCBnZWFyKVxuICBURVNUX0NBU0U6ICdhc3NldHMvaW1hZ2VzL1Rlc3RDYXNlSWNvbi5wbmcnLFxuICBcbiAgLy8gU2VhcmNoL0RlYnVnIGljb24gKG1hZ25pZnlpbmcgZ2xhc3Mgd2l0aCBxdWVzdGlvbiBtYXJrKVxuICBTRUFSQ0hfREVCVUc6ICdhc3NldHMvaW1hZ2VzL1NlYXJjaEljb24ucG5nJyxcbiAgXG4gIC8vIFVwbG9hZC9Gb2xkZXIgaWNvbiAoZm9sZGVyIHdpdGggdXBsb2FkIGFycm93IGFuZCBwbHVzKVxuICBVUExPQURfRk9MREVSOiAnYXNzZXRzL2ltYWdlcy9GaWxlc0ljb24ucG5nJyxcblxuICAvLyBEYXNoYm9hcmQgb3ZlcnZpZXdcbiAgREFTSEJPQVJEOiAnYXNzZXRzL2ltYWdlcy9EYXNoYm9hcmRJY29uLnBuZycsXG4gIFxuICAvLyBDaGVja2xpc3QvQWRkIGljb24gKGNsaXBib2FyZCB3aXRoIHBsdXMpXG4gIENIRUNLTElTVF9BREQ6ICdhc3NldHMvaW1hZ2VzL1N0ZXBzSWNvbi5wbmcnLFxuICBcbiAgLy8gRG9jdW1lbnQvR2VhciBpY29uIChkb2N1bWVudCB3aXRoIGdlYXIgb3ZlcmxheSlcbiAgRE9DVU1FTlRfR0VBUjogJ2Fzc2V0cy9pbWFnZXMvZG9jdW1lbnQtZ2Vhci1pY29uLnN2ZycsXG4gIFxuICAvLyBBbmFseXRpY3MvQ2hhcnQgaWNvbiAoYmFyIGNoYXJ0KVxuICBBTkFMWVRJQ1NfQ0hBUlQ6ICdhc3NldHMvaW1hZ2VzL1JlcG9ydHNJY29uLnBuZycsXG4gIFxuICAvLyBEZWZhdWx0IGVtcHR5IHN0YXRlIGljb25cbiAgREVGQVVMVDogJ2Fzc2V0cy9pbWFnZXMvU2VhcmNoSWNvbi5wbmcnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgRW1wdHlTdGF0ZUltYWdlS2V5ID0ga2V5b2YgdHlwZW9mIEVNUFRZX1NUQVRFX0lNQUdFUztcblxuIl19
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/icon";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class BadgeComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.label = '';
|
|
8
|
+
this.variant = 'default';
|
|
9
|
+
}
|
|
10
|
+
get badgeClasses() {
|
|
11
|
+
const baseClasses = [
|
|
12
|
+
'cqa-inline-flex',
|
|
13
|
+
'cqa-items-center',
|
|
14
|
+
'cqa-justify-center',
|
|
15
|
+
'cqa-rounded-[6px]',
|
|
16
|
+
'cqa-font-normal',
|
|
17
|
+
'cqa-leading-[17px]'
|
|
18
|
+
];
|
|
19
|
+
// Only apply variant-specific Tailwind classes if custom colors are not provided
|
|
20
|
+
if (!this.backgroundColor && !this.textColor) {
|
|
21
|
+
switch (this.variant) {
|
|
22
|
+
case 'error':
|
|
23
|
+
return [...baseClasses, 'cqa-bg-[#FCD9D9]', 'cqa-text-[#9F2A2A]'].join(' ');
|
|
24
|
+
case 'warning':
|
|
25
|
+
return [...baseClasses, 'cqa-bg-[#FFF9E9]', 'cqa-text-[#7E6012]'].join(' ');
|
|
26
|
+
case 'info':
|
|
27
|
+
return [...baseClasses, 'cqa-bg-blue-100', 'cqa-text-blue-800'].join(' ');
|
|
28
|
+
case 'success':
|
|
29
|
+
return [...baseClasses, 'cqa-bg-green-100', 'cqa-text-green-800'].join(' ');
|
|
30
|
+
case 'outline':
|
|
31
|
+
return [...baseClasses, 'cqa-bg-transparent', 'cqa-text-gray-800'].join(' ');
|
|
32
|
+
default:
|
|
33
|
+
return [...baseClasses, 'cqa-bg-gray-100', 'cqa-text-gray-800'].join(' ');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// If custom colors are provided, only return base classes
|
|
37
|
+
return baseClasses.join(' ');
|
|
38
|
+
}
|
|
39
|
+
get badgeStyles() {
|
|
40
|
+
const styles = {};
|
|
41
|
+
if (this.backgroundColor) {
|
|
42
|
+
styles['background-color'] = this.backgroundColor;
|
|
43
|
+
}
|
|
44
|
+
else if (this.variant === 'outline') {
|
|
45
|
+
styles['background-color'] = 'transparent';
|
|
46
|
+
}
|
|
47
|
+
if (this.textColor) {
|
|
48
|
+
styles['color'] = this.textColor;
|
|
49
|
+
}
|
|
50
|
+
return styles;
|
|
51
|
+
}
|
|
52
|
+
get iconContainerClasses() {
|
|
53
|
+
const baseClasses = [
|
|
54
|
+
'cqa-inline-flex',
|
|
55
|
+
'cqa-items-center',
|
|
56
|
+
'cqa-justify-center',
|
|
57
|
+
'cqa-flex-shrink-0',
|
|
58
|
+
'cqa-mr-1.5'
|
|
59
|
+
];
|
|
60
|
+
// No circular background for any variant - just return base classes
|
|
61
|
+
return baseClasses.join(' ');
|
|
62
|
+
}
|
|
63
|
+
get iconContainerStyles() {
|
|
64
|
+
const styles = {
|
|
65
|
+
'display': 'inline-flex',
|
|
66
|
+
'align-items': 'center',
|
|
67
|
+
'justify-content': 'center'
|
|
68
|
+
};
|
|
69
|
+
// No circular background - only apply custom icon background color if explicitly provided
|
|
70
|
+
if (this.iconBackgroundColor) {
|
|
71
|
+
styles['background-color'] = this.iconBackgroundColor;
|
|
72
|
+
// If custom background is provided, add circle dimensions
|
|
73
|
+
styles['width'] = '16px';
|
|
74
|
+
styles['height'] = '16px';
|
|
75
|
+
styles['min-width'] = '16px';
|
|
76
|
+
styles['min-height'] = '16px';
|
|
77
|
+
styles['border-radius'] = '50%';
|
|
78
|
+
}
|
|
79
|
+
return styles;
|
|
80
|
+
}
|
|
81
|
+
get iconClasses() {
|
|
82
|
+
const baseClasses = [];
|
|
83
|
+
// Only apply white text class if custom icon color is not provided
|
|
84
|
+
if (!this.iconColor) {
|
|
85
|
+
return [...baseClasses, 'cqa-text-white'].join(' ');
|
|
86
|
+
}
|
|
87
|
+
return baseClasses.join(' ');
|
|
88
|
+
}
|
|
89
|
+
get iconStyles() {
|
|
90
|
+
const styles = {
|
|
91
|
+
'font-size': '14px',
|
|
92
|
+
'width': '14px',
|
|
93
|
+
'height': '14px',
|
|
94
|
+
'line-height': '14px'
|
|
95
|
+
};
|
|
96
|
+
if (this.iconColor) {
|
|
97
|
+
styles['color'] = this.iconColor;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Use variant-specific text color for icon (no white background anymore)
|
|
101
|
+
switch (this.variant) {
|
|
102
|
+
case 'error':
|
|
103
|
+
styles['color'] = '#991B1B'; // red-800
|
|
104
|
+
break;
|
|
105
|
+
case 'warning':
|
|
106
|
+
styles['color'] = '#854D0E'; // yellow-800
|
|
107
|
+
break;
|
|
108
|
+
case 'info':
|
|
109
|
+
styles['color'] = '#1E40AF'; // blue-800
|
|
110
|
+
break;
|
|
111
|
+
case 'success':
|
|
112
|
+
styles['color'] = '#166534'; // green-800
|
|
113
|
+
break;
|
|
114
|
+
default:
|
|
115
|
+
styles['color'] = this.textColor || '#374151'; // gray-700 default
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return styles;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
BadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
+
BadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: BadgeComponent, selector: "cqa-badge", inputs: { label: "label", icon: "icon", variant: "variant", backgroundColor: "backgroundColor", textColor: "textColor", iconBackgroundColor: "iconBackgroundColor", iconColor: "iconColor" }, ngImport: i0, template: "<div id=\"cqa-ui-root\" style=\"display: inline-block;\">\n <span \n [ngClass]=\"badgeClasses\" \n [ngStyle]=\"badgeStyles\"\n class=\"cqa-font-inter cqa-font-normal cqa-text-sm cqa-leading-[17px] cqa-py-[4px] cqa-px-3\">\n <span \n *ngIf=\"icon\" \n [ngClass]=\"iconContainerClasses\"\n [ngStyle]=\"iconContainerStyles\">\n <mat-icon \n [ngClass]=\"iconClasses\"\n [ngStyle]=\"iconStyles\">{{ icon }}</mat-icon>\n </span>\n {{ label }}\n </span>\n</div>\n\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], 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"] }] });
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
124
|
+
type: Component,
|
|
125
|
+
args: [{ selector: 'cqa-badge', template: "<div id=\"cqa-ui-root\" style=\"display: inline-block;\">\n <span \n [ngClass]=\"badgeClasses\" \n [ngStyle]=\"badgeStyles\"\n class=\"cqa-font-inter cqa-font-normal cqa-text-sm cqa-leading-[17px] cqa-py-[4px] cqa-px-3\">\n <span \n *ngIf=\"icon\" \n [ngClass]=\"iconContainerClasses\"\n [ngStyle]=\"iconContainerStyles\">\n <mat-icon \n [ngClass]=\"iconClasses\"\n [ngStyle]=\"iconStyles\">{{ icon }}</mat-icon>\n </span>\n {{ label }}\n </span>\n</div>\n\n", styles: [] }]
|
|
126
|
+
}], propDecorators: { label: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], icon: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], variant: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], backgroundColor: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], textColor: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], iconBackgroundColor: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], iconColor: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}] } });
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9iYWRnZS9iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2JhZGdlL2JhZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBU2pELE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBTVcsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixZQUFPLEdBQWlCLFNBQVMsQ0FBQztLQW1JNUM7SUE3SEMsSUFBSSxZQUFZO1FBQ2QsTUFBTSxXQUFXLEdBQUc7WUFDbEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixvQkFBb0I7U0FDckIsQ0FBQztRQUVGLGlGQUFpRjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDNUMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNwQixLQUFLLE9BQU87b0JBQ1YsT0FBTyxDQUFDLEdBQUcsV0FBVyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RSxLQUFLLFNBQVM7b0JBQ1osT0FBTyxDQUFDLEdBQUcsV0FBVyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RSxLQUFLLE1BQU07b0JBQ1QsT0FBTyxDQUFDLEdBQUcsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1RSxLQUFLLFNBQVM7b0JBQ1osT0FBTyxDQUFD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WUFDekUsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNwQixLQUFLLE9BQU87b0JBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLFVBQVU7b0JBQ3ZDLE1BQU07Z0JBQ1IsS0FBSyxTQUFTO29CQUNaLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxhQUFhO29CQUMxQyxNQUFNO2dCQUNSLEtBQUssTUFBTTtvQkFDVCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsV0FBVztvQkFDeEMsTUFBTTtnQkFDUixLQUFLLFNBQVM7b0JBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLFlBQVk7b0JBQ3pDLE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUMsbUJBQW1CO2FBQ3JFO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzsyR0FySVUsY0FBYzsrRkFBZCxjQUFjLCtPQ1QzQixrZ0JBaUJBOzJGRFJhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVzs4QkFLWixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEJhZGdlVmFyaWFudCA9ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnaW5mbycgfCAnc3VjY2VzcycgfCAnZGVmYXVsdCcgfCAnb3V0bGluZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1iYWRnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGljb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6IEJhZGdlVmFyaWFudCA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25CYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25Db2xvcj86IHN0cmluZztcblxuICBnZXQgYmFkZ2VDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSBbXG4gICAgICAnY3FhLWlubGluZS1mbGV4JyxcbiAgICAgICdjcWEtaXRlbXMtY2VudGVyJyxcbiAgICAgICdjcWEtanVzdGlmeS1jZW50ZXInLFxuICAgICAgJ2NxYS1yb3VuZGVkLVs2cHhdJyxcbiAgICAgICdjcWEtZm9udC1ub3JtYWwnLFxuICAgICAgJ2NxYS1sZWFkaW5nLVsxN3B4XSdcbiAgICBdO1xuICAgIFxuICAgIC8vIE9ubHkgYXBwbHkgdmFyaWFudC1zcGVjaWZpYyBUYWlsd2luZCBjbGFzc2VzIGlmIGN1c3RvbSBjb2xvcnMgYXJlIG5vdCBwcm92aWRlZFxuICAgIGlmICghdGhpcy5iYWNrZ3JvdW5kQ29sb3IgJiYgIXRoaXMudGV4dENvbG9yKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMudmFyaWFudCkge1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgcmV0dXJuIFsuLi5iYXNlQ2xhc3NlcywgJ2NxYS1iZy1bI0ZDRDlEOV0nLCAnY3FhLXRleHQtWyM5RjJBMkFdJ10uam9pbignICcpO1xuICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICByZXR1cm4gWy4uLmJhc2VDbGFzc2VzLCAnY3FhLWJnLVsjRkZGOUU5XScsICdjcWEtdGV4dC1bIzdFNjAxMl0nXS5qb2luKCcgJyk7XG4gICAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICAgIHJldHVybiBbLi4uYmFzZUNsYXNzZXMsICdjcWEtYmctYmx1ZS0xMDAnLCAnY3FhLXRleHQtYmx1ZS04MDAnXS5qb2luKCcgJyk7XG4gICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgIHJldHVybiBbLi4uYmFzZUNsYXNzZXMsICdjcWEtYmctZ3JlZW4tMTAwJywgJ2NxYS10ZXh0LWdyZWVuLTgwMCddLmpvaW4oJyAnKTtcbiAgICAgICAgY2FzZSAnb3V0bGluZSc6XG4gICAgICAgICAgcmV0dXJuIFsuLi5iYXNlQ2xhc3NlcywgJ2NxYS1iZy10cmFuc3BhcmVudCcsICdjcWEtdGV4dC1ncmF5LTgwMCddLmpvaW4oJyAnKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gWy4uLmJhc2VDbGFzc2VzLCAnY3FhLWJnLWdyYXktMTAwJywgJ2NxYS10ZXh0LWdyYXktODAwJ10uam9pbignICcpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBJZiBjdXN0b20gY29sb3JzIGFyZSBwcm92aWRlZCwgb25seSByZXR1cm4gYmFzZSBjbGFzc2VzXG4gICAgcmV0dXJuIGJhc2VDbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBiYWRnZVN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCBzdHlsZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBcbiAgICBpZiAodGhpcy5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIHN0eWxlc1snYmFja2dyb3VuZC1jb2xvciddID0gdGhpcy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lJykge1xuICAgICAgc3R5bGVzWydiYWNrZ3JvdW5kLWNvbG9yJ10gPSAndHJhbnNwYXJlbnQnO1xuICAgIH1cbiAgICBcbiAgICBpZiAodGhpcy50ZXh0Q29sb3IpIHtcbiAgICAgIHN0eWxlc1snY29sb3InXSA9IHRoaXMudGV4dENvbG9yO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gc3R5bGVzO1xuICB9XG5cbiAgZ2V0IGljb25Db250YWluZXJDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSBbXG4gICAgICAnY3FhLWlubGluZS1mbGV4JyxcbiAgICAgICdjcWEtaXRlbXMtY2VudGVyJyxcbiAgICAgICdjcWEtanVzdGlmeS1jZW50ZXInLFxuICAgICAgJ2NxYS1mbGV4LXNocmluay0wJyxcbiAgICAgICdjcWEtbXItMS41J1xuICAgIF07XG4gICAgXG4gICAgLy8gTm8gY2lyY3VsYXIgYmFja2dyb3VuZCBmb3IgYW55IHZhcmlhbnQgLSBqdXN0IHJldHVybiBiYXNlIGNsYXNzZXNcbiAgICByZXR1cm4gYmFzZUNsYXNzZXMuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IGljb25Db250YWluZXJTdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qgc3R5bGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgJ2Rpc3BsYXknOiAnaW5saW5lLWZsZXgnLFxuICAgICAgJ2FsaWduLWl0ZW1zJzogJ2NlbnRlcicsXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogJ2NlbnRlcidcbiAgICB9O1xuICAgIFxuICAgIC8vIE5vIGNpcmN1bGFyIGJhY2tncm91bmQgLSBvbmx5IGFwcGx5IGN1c3RvbSBpY29uIGJhY2tncm91bmQgY29sb3IgaWYgZXhwbGljaXRseSBwcm92aWRlZFxuICAgIGlmICh0aGlzLmljb25CYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIHN0eWxlc1snYmFja2dyb3VuZC1jb2xvciddID0gdGhpcy5pY29uQmFja2dyb3VuZENvbG9yO1xuICAgICAgLy8gSWYgY3VzdG9tIGJhY2tncm91bmQgaXMgcHJvdmlkZWQsIGFkZCBjaXJjbGUgZGltZW5zaW9uc1xuICAgICAgc3R5bGVzWyd3aWR0aCddID0gJzE2cHgnO1xuICAgICAgc3R5bGVzWydoZWlnaHQnXSA9ICcxNnB4JztcbiAgICAgIHN0eWxlc1snbWluLXdpZHRoJ10gPSAnMTZweCc7XG4gICAgICBzdHlsZXNbJ21pbi1oZWlnaHQnXSA9ICcxNnB4JztcbiAgICAgIHN0eWxlc1snYm9yZGVyLXJhZGl1cyddID0gJzUwJSc7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cblxuICBnZXQgaWNvbkNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICBcbiAgICAvLyBPbmx5IGFwcGx5IHdoaXRlIHRleHQgY2xhc3MgaWYgY3VzdG9tIGljb24gY29sb3IgaXMgbm90IHByb3ZpZGVkXG4gICAgaWYgKCF0aGlzLmljb25Db2xvcikge1xuICAgICAgcmV0dXJuIFsuLi5iYXNlQ2xhc3NlcywgJ2NxYS10ZXh0LXdoaXRlJ10uam9pbignICcpO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gYmFzZUNsYXNzZXMuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IGljb25TdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qgc3R5bGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgJ2ZvbnQtc2l6ZSc6ICcxNHB4JyxcbiAgICAgICd3aWR0aCc6ICcxNHB4JyxcbiAgICAgICdoZWlnaHQnOiAnMTRweCcsXG4gICAgICAnbGluZS1oZWlnaHQnOiAnMTRweCdcbiAgICB9O1xuICAgIFxuICAgIGlmICh0aGlzLmljb25Db2xvcikge1xuICAgICAgc3R5bGVzWydjb2xvciddID0gdGhpcy5pY29uQ29sb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVzZSB2YXJpYW50LXNwZWNpZmljIHRleHQgY29sb3IgZm9yIGljb24gKG5vIHdoaXRlIGJhY2tncm91bmQgYW55bW9yZSlcbiAgICAgIHN3aXRjaCAodGhpcy52YXJpYW50KSB7XG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICBzdHlsZXNbJ2NvbG9yJ10gPSAnIzk5MUIxQic7IC8vIHJlZC04MDBcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgc3R5bGVzWydjb2xvciddID0gJyM4NTREMEUnOyAvLyB5ZWxsb3ctODAwXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICAgIHN0eWxlc1snY29sb3InXSA9ICcjMUU0MEFGJzsgLy8gYmx1ZS04MDBcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgc3R5bGVzWydjb2xvciddID0gJyMxNjY1MzQnOyAvLyBncmVlbi04MDBcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBzdHlsZXNbJ2NvbG9yJ10gPSB0aGlzLnRleHRDb2xvciB8fCAnIzM3NDE1MSc7IC8vIGdyYXktNzAwIGRlZmF1bHRcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHN0eWxlcztcbiAgfVxufVxuXG4iLCI8ZGl2IGlkPVwiY3FhLXVpLXJvb3RcIiBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9jaztcIj5cbiAgPHNwYW4gXG4gICAgW25nQ2xhc3NdPVwiYmFkZ2VDbGFzc2VzXCIgXG4gICAgW25nU3R5bGVdPVwiYmFkZ2VTdHlsZXNcIlxuICAgIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLWZvbnQtbm9ybWFsIGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxN3B4XSBjcWEtcHktWzRweF0gY3FhLXB4LTNcIj5cbiAgICA8c3BhbiBcbiAgICAgICpuZ0lmPVwiaWNvblwiIFxuICAgICAgW25nQ2xhc3NdPVwiaWNvbkNvbnRhaW5lckNsYXNzZXNcIlxuICAgICAgW25nU3R5bGVdPVwiaWNvbkNvbnRhaW5lclN0eWxlc1wiPlxuICAgICAgPG1hdC1pY29uIFxuICAgICAgICBbbmdDbGFzc109XCJpY29uQ2xhc3Nlc1wiXG4gICAgICAgIFtuZ1N0eWxlXT1cImljb25TdHlsZXNcIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAge3sgbGFiZWwgfX1cbiAgPC9zcGFuPlxuPC9kaXY+XG5cbiJdfQ==
|
|
@@ -7,6 +7,7 @@ export class ButtonComponent {
|
|
|
7
7
|
this.variant = 'filled';
|
|
8
8
|
this.disabled = false;
|
|
9
9
|
this.iconPosition = 'start';
|
|
10
|
+
this.fullWidth = false;
|
|
10
11
|
this.type = 'button';
|
|
11
12
|
this.clicked = new EventEmitter();
|
|
12
13
|
// Internal state tracking
|
|
@@ -19,74 +20,26 @@ export class ButtonComponent {
|
|
|
19
20
|
}
|
|
20
21
|
get buttonClasses() {
|
|
21
22
|
const baseClasses = [
|
|
22
|
-
'cqa-flex',
|
|
23
|
-
'cqa-flex-col',
|
|
24
|
-
'cqa-justify-center',
|
|
23
|
+
'cqa-inline-flex',
|
|
25
24
|
'cqa-items-center',
|
|
26
|
-
'cqa-p-0',
|
|
27
|
-
'cqa-gap-2',
|
|
28
|
-
'cqa-rounded-lg',
|
|
29
|
-
'cqa-cursor-pointer',
|
|
30
|
-
'cqa-font-inter',
|
|
31
|
-
'cqa-font-semibold',
|
|
32
|
-
'cqa-text-sm',
|
|
33
|
-
'cqa-leading-[14px]',
|
|
34
|
-
'cqa-transition-all',
|
|
35
|
-
'cqa-duration-200',
|
|
36
|
-
'cqa-outline-none'
|
|
37
|
-
];
|
|
38
|
-
if (this.disabled) {
|
|
39
|
-
baseClasses.push('cqa-cursor-not-allowed');
|
|
40
|
-
}
|
|
41
|
-
// Add variant and state specific classes
|
|
42
|
-
const variantClasses = this.getVariantClasses();
|
|
43
|
-
return [...baseClasses, ...variantClasses].join(' ');
|
|
44
|
-
}
|
|
45
|
-
get stateLayerClasses() {
|
|
46
|
-
const classes = [
|
|
47
|
-
'cqa-flex',
|
|
48
|
-
'cqa-flex-row',
|
|
49
25
|
'cqa-justify-center',
|
|
50
|
-
'cqa-items-center',
|
|
51
26
|
'cqa-gap-2',
|
|
52
|
-
'cqa-w-full',
|
|
53
|
-
'cqa-h-full',
|
|
54
27
|
'cqa-py-[10px]',
|
|
55
|
-
'cqa-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const classes = [
|
|
61
|
-
'cqa-flex',
|
|
62
|
-
'cqa-items-center',
|
|
63
|
-
'cqa-text-center',
|
|
64
|
-
'cqa-font-inter',
|
|
65
|
-
'cqa-font-semibold',
|
|
66
|
-
'cqa-text-sm',
|
|
67
|
-
'cqa-leading-[14px]',
|
|
68
|
-
'cqa-flex-none',
|
|
69
|
-
this.textClass,
|
|
28
|
+
'cqa-rounded-[8px]',
|
|
29
|
+
'cqa-text-[12.3px]',
|
|
30
|
+
'cqa-leading-[17.5px]',
|
|
31
|
+
'cqa-font-medium',
|
|
32
|
+
'cqa-border',
|
|
70
33
|
];
|
|
71
34
|
if (this.disabled) {
|
|
72
|
-
|
|
35
|
+
baseClasses.push('cqa-cursor-not-allowed');
|
|
73
36
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
get iconClasses() {
|
|
77
|
-
const classes = [
|
|
78
|
-
'cqa-flex',
|
|
79
|
-
'cqa-items-center',
|
|
80
|
-
'cqa-justify-center',
|
|
81
|
-
'cqa-w-[14px]',
|
|
82
|
-
'cqa-h-[14px]',
|
|
83
|
-
'cqa-shrink-0',
|
|
84
|
-
'cqa-flex-none'
|
|
85
|
-
];
|
|
86
|
-
if (this.disabled) {
|
|
87
|
-
classes.push('cqa-opacity-[0.38]');
|
|
37
|
+
if (this.fullWidth) {
|
|
38
|
+
baseClasses.push('cqa-w-full');
|
|
88
39
|
}
|
|
89
|
-
|
|
40
|
+
// Add variant and state specific classes
|
|
41
|
+
const variantClasses = this.getVariantClasses();
|
|
42
|
+
return [...baseClasses, ...variantClasses, ...(this.customClass ? [this.customClass] : [])].join(' ');
|
|
90
43
|
}
|
|
91
44
|
getVariantClasses() {
|
|
92
45
|
const classes = [];
|
|
@@ -95,9 +48,21 @@ export class ButtonComponent {
|
|
|
95
48
|
classes.push('cqa-bg-primary-muted');
|
|
96
49
|
}
|
|
97
50
|
else {
|
|
98
|
-
classes.push('cqa-bg-primary');
|
|
51
|
+
classes.push('cqa-bg-primary cqa-text-white');
|
|
52
|
+
if (this.isHovered) {
|
|
53
|
+
classes.push('cqa-bg-primary-hover');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (this.variant === 'grey-solid') {
|
|
58
|
+
// Neutral grey solid style
|
|
59
|
+
if (this.disabled) {
|
|
60
|
+
classes.push('cqa-bg-grey-400', 'cqa-border', 'cqa-border-primary-muted');
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
classes.push('cqa-bg-grey-400', 'cqa-border', 'cqa-border-primary-muted');
|
|
99
64
|
if (this.isHovered) {
|
|
100
|
-
classes.push('cqa-
|
|
65
|
+
classes.push('cqa-bg-grey-200');
|
|
101
66
|
}
|
|
102
67
|
}
|
|
103
68
|
}
|
|
@@ -119,10 +84,10 @@ export class ButtonComponent {
|
|
|
119
84
|
}
|
|
120
85
|
else if (this.variant === 'text') {
|
|
121
86
|
if (this.disabled) {
|
|
122
|
-
classes.push('cqa-bg-transparent');
|
|
87
|
+
classes.push('cqa-bg-transparent', 'cqa-border-none');
|
|
123
88
|
}
|
|
124
89
|
else {
|
|
125
|
-
classes.push('cqa-bg-transparent');
|
|
90
|
+
classes.push('cqa-bg-transparent', 'cqa-border-none');
|
|
126
91
|
if (this.isHovered || this.isFocused || this.isPressed) {
|
|
127
92
|
classes.push('cqa-bg-primary-surface');
|
|
128
93
|
}
|
|
@@ -172,6 +137,8 @@ export class ButtonComponent {
|
|
|
172
137
|
switch (this.variant) {
|
|
173
138
|
case 'filled':
|
|
174
139
|
return 'cqa-text-surface-default';
|
|
140
|
+
case 'grey-solid':
|
|
141
|
+
return 'cqa-text-black-100';
|
|
175
142
|
case 'outlined':
|
|
176
143
|
if (this.isFocused || this.isHovered || this.isPressed) {
|
|
177
144
|
return 'cqa-text-primary-hover';
|
|
@@ -219,10 +186,10 @@ export class ButtonComponent {
|
|
|
219
186
|
}
|
|
220
187
|
}
|
|
221
188
|
ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
-
ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ButtonComponent, selector: "cqa-button", inputs: { variant: "variant", disabled: "disabled", icon: "icon", iconPosition: "iconPosition", type: "type" }, outputs: { clicked: "clicked" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "mousedown": "onMouseDown()", "mouseup": "onMouseUp()", "focus": "onFocus()", "blur": "onBlur()" } }, ngImport: i0, template: "<div id=\"cqa-ui-root\"
|
|
189
|
+
ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ButtonComponent, selector: "cqa-button", inputs: { variant: "variant", disabled: "disabled", icon: "icon", iconPosition: "iconPosition", fullWidth: "fullWidth", iconColor: "iconColor", type: "type", text: "text", customClass: "customClass" }, outputs: { clicked: "clicked" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "mousedown": "onMouseDown()", "mouseup": "onMouseUp()", "focus": "onFocus()", "blur": "onBlur()" } }, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <button\n [ngClass]=\"\n text && icon && iconPosition === 'start' ? 'cqa-pr-[24px] cqa-pl-[16px]' :\n text && icon && iconPosition === 'end' ? 'cqa-pl-[24px] cqa-pr-[16px]' :\n text && !icon ? 'cqa-px-[24px]' : !text && icon ? 'cqa-px-[12px]' : 'cqa-px-[24px]'\"\n [type]=\"type\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [class]=\"buttonClasses\"\n (click)=\"onClick($event)\"\n >\n\n <mat-icon *ngIf=\"icon && iconPosition === 'start'\" class=\"!cqa-w-[18px] !cqa-h-[18px] !cqa-text-[18px]\" [style.color]=\"iconColor\">\n {{ icon }}\n </mat-icon>\n\n <!-- Dynamic text support -->\n <span *ngIf=\"text\">{{text}}</span>\n\n <ng-content *ngIf=\"!text\" ></ng-content>\n\n <mat-icon *ngIf=\"icon && iconPosition === 'end'\" class=\"!cqa-w-[18px] !cqa-h-[18px] !cqa-text-[18px]\" [style.color]=\"iconColor\">\n {{ icon }}\n </mat-icon>\n\n </button>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
223
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
224
191
|
type: Component,
|
|
225
|
-
args: [{ selector: 'cqa-button', template: "<div id=\"cqa-ui-root\"
|
|
192
|
+
args: [{ selector: 'cqa-button', template: "<div id=\"cqa-ui-root\">\n <button\n [ngClass]=\"\n text && icon && iconPosition === 'start' ? 'cqa-pr-[24px] cqa-pl-[16px]' :\n text && icon && iconPosition === 'end' ? 'cqa-pl-[24px] cqa-pr-[16px]' :\n text && !icon ? 'cqa-px-[24px]' : !text && icon ? 'cqa-px-[12px]' : 'cqa-px-[24px]'\"\n [type]=\"type\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [class]=\"buttonClasses\"\n (click)=\"onClick($event)\"\n >\n\n <mat-icon *ngIf=\"icon && iconPosition === 'start'\" class=\"!cqa-w-[18px] !cqa-h-[18px] !cqa-text-[18px]\" [style.color]=\"iconColor\">\n {{ icon }}\n </mat-icon>\n\n <!-- Dynamic text support -->\n <span *ngIf=\"text\">{{text}}</span>\n\n <ng-content *ngIf=\"!text\" ></ng-content>\n\n <mat-icon *ngIf=\"icon && iconPosition === 'end'\" class=\"!cqa-w-[18px] !cqa-h-[18px] !cqa-text-[18px]\" [style.color]=\"iconColor\">\n {{ icon }}\n </mat-icon>\n\n </button>\n</div>", styles: [] }]
|
|
226
193
|
}], propDecorators: { variant: [{
|
|
227
194
|
type: Input
|
|
228
195
|
}], disabled: [{
|
|
@@ -231,8 +198,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
231
198
|
type: Input
|
|
232
199
|
}], iconPosition: [{
|
|
233
200
|
type: Input
|
|
201
|
+
}], fullWidth: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}], iconColor: [{
|
|
204
|
+
type: Input
|
|
234
205
|
}], type: [{
|
|
235
206
|
type: Input
|
|
207
|
+
}], text: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], customClass: [{
|
|
210
|
+
type: Input
|
|
236
211
|
}], clicked: [{
|
|
237
212
|
type: Output
|
|
238
213
|
}], onMouseEnter: [{
|
|
@@ -254,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
254
229
|
type: HostListener,
|
|
255
230
|
args: ['blur']
|
|
256
231
|
}] } });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTckYsTUFBTSxPQUFPLGVBQWU7SUFMNUI7UUFPVyxZQUFPLEdBQWtCLFFBQVEsQ0FBQztRQUNsQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLGlCQUFZLEdBQW9CLE9BQU8sQ0FBQztRQUN4QyxTQUFJLEdBQWtDLFFBQVEsQ0FBQztRQUM5QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUVuRCwwQkFBMEI7UUFDMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGNBQVMsR0FBWSxLQUFLLENBQUM7S0EwTjVCO0lBeE5DLElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFVBQVU7WUFDVixjQUFjO1lBQ2Qsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixTQUFTO1lBQ1QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsa0JBQWtCO1NBQ25CLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsV0FBVyxDQUFDLElBQUksQ0FBQyx3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R0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBR0QsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFHRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBR0QsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs0R0FyT1UsZUFBZTtnR0FBZixlQUFlLDhYQ1Q1Qiw0NkJBMEJBOzJGRGpCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7OEJBTWIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBcUxQLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQVExQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFPMUIsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVc7Z0JBUXpCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTO2dCQU12QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFRckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEJ1dHRvblZhcmlhbnQgPSAnZmlsbGVkJyB8ICdvdXRsaW5lZCcgfCAndGV4dCcgfCAnZWxldmF0ZWQnIHwgJ3RvbmFsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgdmFyaWFudDogQnV0dG9uVmFyaWFudCA9ICdmaWxsZWQnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uUG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyA9ICdzdGFydCc7XG4gIEBJbnB1dCgpIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnID0gJ2J1dHRvbic7XG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8vIEludGVybmFsIHN0YXRlIHRyYWNraW5nXG4gIGlzSG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQcmVzc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGhhc0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pY29uO1xuICB9XG5cbiAgZ2V0IGJ1dHRvbkNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlQ2xhc3NlcyA9IFtcbiAgICAgICdjcWEtZmxleCcsXG4gICAgICAnY3FhLWZsZXgtY29sJyxcbiAgICAgICdjcWEtanVzdGlmeS1jZW50ZXInLFxuICAgICAgJ2NxYS1pdGVtcy1jZW50ZXInLFxuICAgICAgJ2NxYS1wLTAnLFxuICAgICAgJ2NxYS1nYXAtMicsXG4gICAgICAnY3FhLXJvdW5kZWQtbGcnLFxuICAgICAgJ2NxYS1jdXJzb3ItcG9pbnRlcicsXG4gICAgICAnY3FhLWZvbnQtaW50ZXInLFxuICAgICAgJ2NxYS1mb250LXNlbWlib2xkJyxcbiAgICAgICdjcWEtdGV4dC1zbScsXG4gICAgICAnY3FhLWxlYWRpbmctWzE0cHhdJyxcbiAgICAgICdjcWEtdHJhbnNpdGlvbi1hbGwnLFxuICAgICAgJ2NxYS1kdXJhdGlvbi0yMDAnLFxuICAgICAgJ2NxYS1vdXRsaW5lLW5vbmUnXG4gICAgXTtcblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBiYXNlQ2xhc3Nlcy5wdXNoKCdjcWEtY3Vyc29yLW5vdC1hbGxvd2VkJyk7XG4gICAgfVxuXG4gICAgLy8gQWRkIHZhcmlhbnQgYW5kIHN0YXRlIHNwZWNpZmljIGNsYXNzZXNcbiAgICBjb25zdCB2YXJpYW50Q2xhc3NlcyA9IHRoaXMuZ2V0VmFyaWFudENsYXNzZXMoKTtcbiAgICBcbiAgICByZXR1cm4gWy4uLmJhc2VDbGFzc2VzLCAuLi52YXJpYW50Q2xhc3Nlc10uam9pbignICcpO1xuICB9XG5cbiAgZ2V0IHN0YXRlTGF5ZXJDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xhc3NlcyA9IFtcbiAgICAgICdjcWEtZmxleCcsXG4gICAgICAnY3FhLWZsZXgtcm93JyxcbiAgICAgICdjcWEtanVzdGlmeS1jZW50ZXInLFxuICAgICAgJ2NxYS1pdGVtcy1jZW50ZXInLFxuICAgICAgJ2NxYS1nYXAtMicsXG4gICAgICAnY3FhLXctZnVsbCcsXG4gICAgICAnY3FhLWgtZnVsbCcsXG4gICAgICAnY3FhLXB5LVsxMHB4XScsXG4gICAgICAnY3FhLXB4LTYnLFxuICAgIF07XG5cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBnZXQgbGFiZWxDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xhc3NlcyA9IFtcbiAgICAgICdjcWEtZmxleCcsXG4gICAgICAnY3FhLWl0ZW1zLWNlbnRlcicsXG4gICAgICAnY3FhLXRleHQtY2VudGVyJyxcbiAgICAgICdjcWEtZm9udC1pbnRlcicsXG4gICAgICAnY3FhLWZvbnQtc2VtaWJvbGQnLFxuICAgICAgJ2NxYS10ZXh0LXNtJyxcbiAgICAgICdjcWEtbGVhZGluZy1bMTRweF0nLFxuICAgICAgJ2NxYS1mbGV4LW5vbmUnLFxuICAgICAgdGhpcy50ZXh0Q2xhc3MsXG4gICAgXTtcblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2NxYS1vcGFjaXR5LVswLjM4XScpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBpY29uQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbXG4gICAgICAnY3FhLWZsZXgnLFxuICAgICAgJ2NxYS1pdGVtcy1jZW50ZXInLFxuICAgICAgJ2NxYS1qdXN0aWZ5LWNlbnRlcicsXG4gICAgICAnY3FhLXctWzE0cHhdJyxcbiAgICAgICdjcWEtaC1bMTRweF0nLFxuICAgICAgJ2NxYS1zaHJpbmstMCcsXG4gICAgICAnY3FhLWZsZXgtbm9uZSdcbiAgICBdO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2NxYS1vcGFjaXR5LVswLjM4XScpO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBwcml2YXRlIGdldFZhcmlhbnRDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ2ZpbGxlZCcpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktbXV0ZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnknKTtcbiAgICAgICAgaWYgKHRoaXMuaXNIb3ZlcmVkKSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtc2hhZG93LVswcHhfMXB4XzJweF9yZ2JhKDAsMCwwLDAuMyksMHB4XzFweF8zcHhfMXB4X3JnYmEoMCwwLDAsMC4xNSldJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFudCA9PT0gJ291dGxpbmVkJykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctdHJhbnNwYXJlbnQnLCAnY3FhLWJvcmRlcicsICdjcWEtYm9yZGVyLXByaW1hcnktbXV0ZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZS1hbHQnLCAnY3FhLWJvcmRlcicsICdjcWEtYm9yZGVyLXByaW1hcnktaG92ZXInLCAnY3FhLXNoYWRvdy1bMHB4XzRweF80cHhfcmdiYSgwLDAsMCwwLjI1KV0nKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSG92ZXJlZCB8fCB0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZScsICdjcWEtYm9yZGVyJywgJ2NxYS1ib3JkZXItcHJpbWFyeScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXRyYW5zcGFyZW50JywgJ2NxYS1ib3JkZXInLCAnY3FhLWJvcmRlci1zbGF0ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhbnQgPT09ICd0ZXh0Jykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctdHJhbnNwYXJlbnQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXRyYW5zcGFyZW50Jyk7XG4gICAgICAgIGlmICh0aGlzLmlzSG92ZXJlZCB8fCB0aGlzLmlzRm9jdXNlZCB8fCB0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhbnQgPT09ICdlbGV2YXRlZCcpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktbXV0ZWQnLCAnY3FhLXNoYWRvdy1ub25lJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LXN1cmZhY2UtYWx0JywgJ2NxYS1zaGFkb3ctWzBweF80cHhfNHB4X3JnYmEoMCwwLDAsMC4yNSldJyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1ByZXNzZWQpIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LXN1cmZhY2UnLCAnY3FhLXNoYWRvdy1bMHB4XzFweF8ycHhfcmdiYSgwLDAsMCwwLjMpLDBweF8xcHhfM3B4XzFweF9yZ2JhKDAsMCwwLDAuMTUpXScpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNIb3ZlcmVkKSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlLWFsdCcsICdjcWEtc2hhZG93LVswcHhfMXB4XzJweF9yZ2JhKDAsMCwwLDAuMyksMHB4XzJweF82cHhfMnB4X3JnYmEoMCwwLDAsMC4xNSldJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlJywgJ2NxYS1zaGFkb3ctWzBweF8xcHhfMnB4X3JnYmEoMCwwLDAsMC4zKSwwcHhfMXB4XzNweF8xcHhfcmdiYSgwLDAsMCwwLjE1KV0nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAndG9uYWwnKSB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LW11dGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5pc0hvdmVyZWQpIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy10b25hbC1ob3ZlcicsICdjcWEtc2hhZG93LVswcHhfMXB4XzJweF9yZ2JhKDAsMCwwLDAuMyksMHB4XzFweF8zcHhfMXB4X3JnYmEoMCwwLDAsMC4xNSldJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlLWFsdCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cblxuICBnZXQgdGV4dENsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lZCcgfHwgdGhpcy52YXJpYW50ID09PSAndGV4dCcpIHtcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1pbmsnO1xuICAgICAgfVxuICAgICAgcmV0dXJuICdjcWEtdGV4dC1pbmstbXV0ZWQnO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy52YXJpYW50KSB7XG4gICAgICBjYXNlICdmaWxsZWQnOlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LXN1cmZhY2UtZGVmYXVsdCc7XG4gICAgICBjYXNlICdvdXRsaW5lZCc6XG4gICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCB8fCB0aGlzLmlzSG92ZXJlZCB8fCB0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIHJldHVybiAnY3FhLXRleHQtcHJpbWFyeS1ob3Zlcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1zbGF0ZSc7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgIGNhc2UgJ2VsZXZhdGVkJzpcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1wcmltYXJ5LWhvdmVyJztcbiAgICAgIGNhc2UgJ3RvbmFsJzpcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1pbmsnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzSG92ZXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nKVxuICBvbk1vdXNlRG93bigpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaXNQcmVzc2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJylcbiAgb25Nb3VzZVVwKCkge1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIG9uRm9jdXMoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgaWQ9XCJjcWEtdWktcm9vdFwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogYXV0bztcIj5cbiAgPGJ1dHRvblxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzZXNcIlxuICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuICA+XG4gICAgPHNwYW4gW2NsYXNzXT1cInN0YXRlTGF5ZXJDbGFzc2VzXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImljb24gJiYgaWNvblBvc2l0aW9uID09PSAnc3RhcnQnXCIgW2NsYXNzXT1cImljb25DbGFzc2VzXCIgW25nQ2xhc3NdPVwidGV4dENsYXNzXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsxOHB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLXctWzE4cHhdIGNxYS1oLVsxOHB4XVwiPlxuICAgICAgICAgIHt7IGljb24gfX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJsYWJlbENsYXNzZXNcIiBbbmdDbGFzc109XCJ0ZXh0Q2xhc3NcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJpY29uICYmIGljb25Qb3NpdGlvbiA9PT0gJ2VuZCdcIiBbY2xhc3NdPVwiaWNvbkNsYXNzZXNcIiBbbmdDbGFzc109XCJ0ZXh0Q2xhc3NcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdy1bMThweF0gY3FhLWgtWzE4cHhdXCI+XG4gICAgICAgICAge3sgaWNvbiB9fVxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuIl19
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTckYsTUFBTSxPQUFPLGVBQWU7SUFMNUI7UUFNVyxZQUFPLEdBQWtCLFFBQVEsQ0FBQztRQUNsQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRXRCLGlCQUFZLEdBQW9CLE9BQU8sQ0FBQztRQUN4QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRS9CLFNBQUksR0FBa0MsUUFBUSxDQUFDO1FBRzlDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRW5ELDBCQUEwQjtRQUMxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsY0FBUyxHQUFZLEtBQUssQ0FBQztLQWlMNUI7SUEvS0MsSUFBSSxPQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsTUFBTSxXQUFXLEdBQUc7WUFDbEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0QixpQkFBaUI7WUFDakIsWUFBWTtTQUNiLENBQUM7UUFFRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsV0FBVyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzVDO1FBRUcsSUFBSSxJ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QUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7NEdBL0xVLGVBQWU7Z0dBQWYsZUFBZSx3ZENUNUIsMDhCQTJCTTsyRkRsQk8sZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZOzhCQUtiLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDTyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0QsU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkE0SVAsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBUTFCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQU8xQixXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVztnQkFRekIsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVM7Z0JBTXZCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQVFyQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQnV0dG9uVmFyaWFudCA9ICdmaWxsZWQnIHwgJ291dGxpbmVkJyB8ICd0ZXh0JyB8ICdlbGV2YXRlZCcgfCAndG9uYWwnIHwgJ2dyZXktc29saWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmFyaWFudDogQnV0dG9uVmFyaWFudCA9ICdmaWxsZWQnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xuICAgICAgQElucHV0KCkgaWNvblBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuICAgICAgQElucHV0KCkgZnVsbFdpZHRoOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGljb25Db2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCcgPSAnYnV0dG9uJztcbiAgQElucHV0KCkgdGV4dD86IHN0cmluZztcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8vIEludGVybmFsIHN0YXRlIHRyYWNraW5nXG4gIGlzSG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQcmVzc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGhhc0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pY29uO1xuICB9XG5cbiAgZ2V0IGJ1dHRvbkNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlQ2xhc3NlcyA9IFtcbiAgICAgICdjcWEtaW5saW5lLWZsZXgnLFxuICAgICAgJ2NxYS1pdGVtcy1jZW50ZXInLFxuICAgICAgJ2NxYS1qdXN0aWZ5LWNlbnRlcicsXG4gICAgICAnY3FhLWdhcC0yJyxcbiAgICAgICdjcWEtcHktWzEwcHhdJyxcbiAgICAgICdjcWEtcm91bmRlZC1bOHB4XScsXG4gICAgICAnY3FhLXRleHQtWzEyLjNweF0nLFxuICAgICAgJ2NxYS1sZWFkaW5nLVsxNy41cHhdJyxcbiAgICAgICdjcWEtZm9udC1tZWRpdW0nLFxuICAgICAgJ2NxYS1ib3JkZXInLFxuICAgIF07XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGJhc2VDbGFzc2VzLnB1c2goJ2NxYS1jdXJzb3Itbm90LWFsbG93ZWQnKTtcbiAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZnVsbFdpZHRoKSB7XG4gICAgICAgICAgYmFzZUNsYXNzZXMucHVzaCgnY3FhLXctZnVsbCcpO1xuICAgICAgICB9XG5cbiAgICAvLyBBZGQgdmFyaWFudCBhbmQgc3RhdGUgc3BlY2lmaWMgY2xhc3Nlc1xuICAgIGNvbnN0IHZhcmlhbnRDbGFzc2VzID0gdGhpcy5nZXRWYXJpYW50Q2xhc3NlcygpO1xuICAgIFxuICAgIHJldHVybiBbLi4uYmFzZUNsYXNzZXMsIC4uLnZhcmlhbnRDbGFzc2VzLCAuLi4odGhpcy5jdXN0b21DbGFzcyA/IFt0aGlzLmN1c3RvbUNsYXNzXSA6IFtdKV0uam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXJpYW50Q2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdmaWxsZWQnKSB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LW11dGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5IGNxYS10ZXh0LXdoaXRlJyk7XG4gICAgICAgIGlmICh0aGlzLmlzSG92ZXJlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktaG92ZXInKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAnZ3JleS1zb2xpZCcpIHtcbiAgICAgIC8vIE5ldXRyYWwgZ3JleSBzb2xpZCBzdHlsZVxuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctZ3JleS00MDAnLCAnY3FhLWJvcmRlcicsICdjcWEtYm9yZGVyLXByaW1hcnktbXV0ZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLWdyZXktNDAwJywgJ2NxYS1ib3JkZXInLCAnY3FhLWJvcmRlci1wcmltYXJ5LW11dGVkJyk7XG4gICAgICAgIGlmICh0aGlzLmlzSG92ZXJlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLWdyZXktMjAwJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFudCA9PT0gJ291dGxpbmVkJykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctdHJhbnNwYXJlbnQnLCAnY3FhLWJvcmRlcicsICdjcWEtYm9yZGVyLXByaW1hcnktbXV0ZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZS1hbHQnLCAnY3FhLWJvcmRlcicsICdjcWEtYm9yZGVyLXByaW1hcnktaG92ZXInLCAnY3FhLXNoYWRvdy1bMHB4XzRweF80cHhfcmdiYSgwLDAsMCwwLjI1KV0nKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSG92ZXJlZCB8fCB0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZScsICdjcWEtYm9yZGVyJywgJ2NxYS1ib3JkZXItcHJpbWFyeScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXRyYW5zcGFyZW50JywgJ2NxYS1ib3JkZXInLCAnY3FhLWJvcmRlci1zbGF0ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhbnQgPT09ICd0ZXh0Jykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctdHJhbnNwYXJlbnQnLCAnY3FhLWJvcmRlci1ub25lJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy10cmFuc3BhcmVudCcsICdjcWEtYm9yZGVyLW5vbmUnKTtcbiAgICAgICAgaWYgKHRoaXMuaXNIb3ZlcmVkIHx8IHRoaXMuaXNGb2N1c2VkIHx8IHRoaXMuaXNQcmVzc2VkKSB7XG4gICAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1zdXJmYWNlJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFudCA9PT0gJ2VsZXZhdGVkJykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdjcWEtYmctcHJpbWFyeS1tdXRlZCcsICdjcWEtc2hhZG93LW5vbmUnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZS1hbHQnLCAnY3FhLXNoYWRvdy1bMHB4XzRweF80cHhfcmdiYSgwLDAsMCwwLjI1KV0nKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktc3VyZmFjZScsICdjcWEtc2hhZG93LVswcHhfMXB4XzJweF9yZ2JhKDAsMCwwLDAuMyksMHB4XzFweF8zcHhfMXB4X3JnYmEoMCwwLDAsMC4xNSldJyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0hvdmVyZWQpIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LXN1cmZhY2UtYWx0JywgJ2NxYS1zaGFkb3ctWzBweF8xcHhfMnB4X3JnYmEoMCwwLDAsMC4zKSwwcHhfMnB4XzZweF8ycHhfcmdiYSgwLDAsMCwwLjE1KV0nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LXN1cmZhY2UnLCAnY3FhLXNoYWRvdy1bMHB4XzFweF8ycHhfcmdiYSgwLDAsMCwwLjMpLDBweF8xcHhfM3B4XzFweF9yZ2JhKDAsMCwwLDAuMTUpXScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhbnQgPT09ICd0b25hbCcpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXByaW1hcnktbXV0ZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmlzSG92ZXJlZCkge1xuICAgICAgICAgIGNsYXNzZXMucHVzaCgnY3FhLWJnLXRvbmFsLWhvdmVyJywgJ2NxYS1zaGFkb3ctWzBweF8xcHhfMnB4X3JnYmEoMCwwLDAsMC4zKSwwcHhfMXB4XzNweF8xcHhfcmdiYSgwLDAsMCwwLjE1KV0nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjbGFzc2VzLnB1c2goJ2NxYS1iZy1wcmltYXJ5LXN1cmZhY2UtYWx0Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIGdldCB0ZXh0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ291dGxpbmVkJyB8fCB0aGlzLnZhcmlhbnQgPT09ICd0ZXh0Jykge1xuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LWluayc7XG4gICAgICB9XG4gICAgICByZXR1cm4gJ2NxYS10ZXh0LWluay1tdXRlZCc7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLnZhcmlhbnQpIHtcbiAgICAgIGNhc2UgJ2ZpbGxlZCc6XG4gICAgICAgIHJldHVybiAnY3FhLXRleHQtc3VyZmFjZS1kZWZhdWx0JztcbiAgICAgIGNhc2UgJ2dyZXktc29saWQnOlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LWJsYWNrLTEwMCc7XG4gICAgICBjYXNlICdvdXRsaW5lZCc6XG4gICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCB8fCB0aGlzLmlzSG92ZXJlZCB8fCB0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgIHJldHVybiAnY3FhLXRleHQtcHJpbWFyeS1ob3Zlcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1zbGF0ZSc7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgIGNhc2UgJ2VsZXZhdGVkJzpcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1wcmltYXJ5LWhvdmVyJztcbiAgICAgIGNhc2UgJ3RvbmFsJzpcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1pbmsnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzSG92ZXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nKVxuICBvbk1vdXNlRG93bigpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaXNQcmVzc2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJylcbiAgb25Nb3VzZVVwKCkge1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIG9uRm9jdXMoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNQcmVzc2VkID0gZmFsc2U7XG4gIH1cblxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgaWQ9XCJjcWEtdWktcm9vdFwiPlxuICA8YnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiXG4gICAgdGV4dCAmJiBpY29uICYmIGljb25Qb3NpdGlvbiA9PT0gJ3N0YXJ0JyA/ICdjcWEtcHItWzI0cHhdIGNxYS1wbC1bMTZweF0nIDpcbiAgICB0ZXh0ICYmIGljb24gJiYgaWNvblBvc2l0aW9uID09PSAnZW5kJyA/ICdjcWEtcGwtWzI0cHhdIGNxYS1wci1bMTZweF0nIDpcbiAgICB0ZXh0ICYmICFpY29uID8gJ2NxYS1weC1bMjRweF0nIDogIXRleHQgJiYgaWNvbiA/ICdjcWEtcHgtWzEycHhdJyA6ICdjcWEtcHgtWzI0cHhdJ1wiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3Nlc1wiXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4gID5cblxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb24gJiYgaWNvblBvc2l0aW9uID09PSAnc3RhcnQnXCIgY2xhc3M9XCIhY3FhLXctWzE4cHhdICFjcWEtaC1bMThweF0gIWNxYS10ZXh0LVsxOHB4XVwiIFtzdHlsZS5jb2xvcl09XCJpY29uQ29sb3JcIj5cbiAgICAgIHt7IGljb24gfX1cbiAgICA8L21hdC1pY29uPlxuXG4gICAgPCEtLSBEeW5hbWljIHRleHQgc3VwcG9ydCAtLT5cbiAgICA8c3BhbiAqbmdJZj1cInRleHRcIj57e3RleHR9fTwvc3Bhbj5cblxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiIXRleHRcIiA+PC9uZy1jb250ZW50PlxuXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvbiAmJiBpY29uUG9zaXRpb24gPT09ICdlbmQnXCIgY2xhc3M9XCIhY3FhLXctWzE4cHhdICFjcWEtaC1bMThweF0gIWNxYS10ZXh0LVsxOHB4XVwiIFtzdHlsZS5jb2xvcl09XCJpY29uQ29sb3JcIj5cbiAgICAgIHt7IGljb24gfX1cbiAgICA8L21hdC1pY29uPlxuXG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../button/button.component";
|
|
4
|
+
import * as i2 from "@angular/material/menu";
|
|
5
|
+
import * as i3 from "@angular/material/checkbox";
|
|
6
|
+
import * as i4 from "@angular/material/radio";
|
|
7
|
+
import * as i5 from "@angular/common";
|
|
8
|
+
import * as i6 from "@angular/forms";
|
|
9
|
+
export class ColumnVisibilityComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.isStepGroup = false;
|
|
12
|
+
// Dynamic columns (preferred). Each item defines the id used as key and the label to render.
|
|
13
|
+
this.columns = [];
|
|
14
|
+
// Start with an empty visibility map; keys will be added from 'columns'
|
|
15
|
+
this.columnVisibility = {};
|
|
16
|
+
this.selectedAutoRefreshInterval = 0; // 0 = Off
|
|
17
|
+
this.columnVisibilityChange = new EventEmitter();
|
|
18
|
+
this.autoRefreshChange = new EventEmitter();
|
|
19
|
+
}
|
|
20
|
+
ngOnChanges(changes) {
|
|
21
|
+
// When dynamic columns change, ensure we have keys in the visibility map
|
|
22
|
+
if (changes['columns'] && Array.isArray(this.columns) && this.columns.length) {
|
|
23
|
+
for (const col of this.columns) {
|
|
24
|
+
if (this.columnVisibility[col.id] === undefined) {
|
|
25
|
+
this.columnVisibility[col.id] = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
get areAllColumnsSelected() {
|
|
31
|
+
const keys = this.getTogglableKeys();
|
|
32
|
+
return keys.every(k => !!this.columnVisibility[k]);
|
|
33
|
+
}
|
|
34
|
+
toggleAllColumns(checked) {
|
|
35
|
+
const keys = this.getTogglableKeys();
|
|
36
|
+
for (const k of keys) {
|
|
37
|
+
this.columnVisibility[k] = checked;
|
|
38
|
+
}
|
|
39
|
+
this.saveColumnPreferences();
|
|
40
|
+
}
|
|
41
|
+
saveColumnPreferences() {
|
|
42
|
+
this.columnVisibilityChange.emit({ ...this.columnVisibility });
|
|
43
|
+
}
|
|
44
|
+
onAutoRefreshChange() {
|
|
45
|
+
this.autoRefreshChange.emit(this.selectedAutoRefreshInterval);
|
|
46
|
+
}
|
|
47
|
+
getTogglableKeys() {
|
|
48
|
+
return Array.isArray(this.columns) ? this.columns.map(c => c.id) : [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
ColumnVisibilityComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ColumnVisibilityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
ColumnVisibilityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ColumnVisibilityComponent, selector: "cqa-column-visibility", inputs: { isStepGroup: "isStepGroup", columns: "columns", columnVisibility: "columnVisibility", selectedAutoRefreshInterval: "selectedAutoRefreshInterval" }, outputs: { columnVisibilityChange: "columnVisibilityChange", autoRefreshChange: "autoRefreshChange" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <cqa-button variant=\"grey-solid\" icon=\"settings\" [matMenuTriggerFor]=\"settingsMenu\" aria-label=\"Settings\">\n </cqa-button>\n\n <mat-menu #settingsMenu=\"matMenu\" class=\"table-settings-menu\">\n <div class=\"settings-menu-content cqa-p-[17px]\" (click)=\"$event.stopPropagation()\">\n <div class=\"settings-section cqa-mb-3\">\n <h4 class=\"settings-title cqa-font-bold cqa-text-[14px] cqa-leading-[20px] cqa-mb-2\">Show Columns</h4>\n <div class=\"settings-options cqa-flex cqa-flex-col cqa-gap-2 cqa-text-[14px] cqa-leading-[20px]\">\n <mat-checkbox [checked]=\"areAllColumnsSelected\" (change)=\"toggleAllColumns($event.checked)\"\n class=\"select-all-checkbox\">\n {{ areAllColumnsSelected ? 'Unselect All' : 'Select All' }}\n </mat-checkbox>\n <!-- Dynamic column list -->\n <ng-container *ngIf=\"columns?.length\">\n <mat-checkbox *ngFor=\"let col of columns\" [(ngModel)]=\"columnVisibility[col.id]\"\n (change)=\"saveColumnPreferences()\">\n {{ col.label }}\n </mat-checkbox>\n </ng-container>\n </div>\n </div>\n\n <div class=\"settings-section\">\n <h4 class=\"settings-title cqa-font-bold cqa-text-[14px] cqa-leading-[20px] cqa-mb-2\">Auto refresh every</h4>\n <div class=\"refresh-options\">\n <mat-radio-group [(ngModel)]=\"selectedAutoRefreshInterval\" (change)=\"onAutoRefreshChange()\"\n class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-text-[14px] cqa-leading-[20px]\">\n <label><mat-radio-button [value]=\"10000\">10 Seconds</mat-radio-button></label>\n <label><mat-radio-button [value]=\"20000\">20 Seconds</mat-radio-button></label>\n <label><mat-radio-button [value]=\"30000\">30 Seconds</mat-radio-button></label>\n <label><mat-radio-button [value]=\"0\">Off</mat-radio-button></label>\n </mat-radio-group>\n </div>\n </div>\n </div>\n </mat-menu>", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass"], outputs: ["clicked"] }, { type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }], directives: [{ type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ColumnVisibilityComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'cqa-column-visibility', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\">\n <cqa-button variant=\"grey-solid\" icon=\"settings\" [matMenuTriggerFor]=\"settingsMenu\" aria-label=\"Settings\">\n </cqa-button>\n\n <mat-menu #settingsMenu=\"matMenu\" class=\"table-settings-menu\">\n <div class=\"settings-menu-content cqa-p-[17px]\" (click)=\"$event.stopPropagation()\">\n <div class=\"settings-section cqa-mb-3\">\n <h4 class=\"settings-title cqa-font-bold cqa-text-[14px] cqa-leading-[20px] cqa-mb-2\">Show Columns</h4>\n <div class=\"settings-options cqa-flex cqa-flex-col cqa-gap-2 cqa-text-[14px] cqa-leading-[20px]\">\n <mat-checkbox [checked]=\"areAllColumnsSelected\" (change)=\"toggleAllColumns($event.checked)\"\n class=\"select-all-checkbox\">\n {{ areAllColumnsSelected ? 'Unselect All' : 'Select All' }}\n </mat-checkbox>\n <!-- Dynamic column list -->\n <ng-container *ngIf=\"columns?.length\">\n <mat-checkbox *ngFor=\"let col of columns\" [(ngModel)]=\"columnVisibility[col.id]\"\n (change)=\"saveColumnPreferences()\">\n {{ col.label }}\n </mat-checkbox>\n </ng-container>\n </div>\n </div>\n\n <div class=\"settings-section\">\n <h4 class=\"settings-title cqa-font-bold cqa-text-[14px] cqa-leading-[20px] cqa-mb-2\">Auto refresh every</h4>\n <div class=\"refresh-options\">\n <mat-radio-group [(ngModel)]=\"selectedAutoRefreshInterval\" (change)=\"onAutoRefreshChange()\"\n class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-text-[14px] cqa-leading-[20px]\">\n <label><mat-radio-button [value]=\"10000\">10 Seconds</mat-radio-button></label>\n <label><mat-radio-button [value]=\"20000\">20 Seconds</mat-radio-button></label>\n <label><mat-radio-button [value]=\"30000\">30 Seconds</mat-radio-button></label>\n <label><mat-radio-button [value]=\"0\">Off</mat-radio-button></label>\n </mat-radio-group>\n </div>\n </div>\n </div>\n </mat-menu>", styles: [] }]
|
|
56
|
+
}], propDecorators: { isStepGroup: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], columns: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], columnVisibility: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], selectedAutoRefreshInterval: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], columnVisibilityChange: [{
|
|
65
|
+
type: Output
|
|
66
|
+
}], autoRefreshChange: [{
|
|
67
|
+
type: Output
|
|
68
|
+
}] } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZpc2liaWxpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb2x1bW4tdmlzaWJpbGl0eS9jb2x1bW4tdmlzaWJpbGl0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbHVtbi12aXNpYmlsaXR5L2NvbHVtbi12aXNpYmlsaXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQXNCMUgsTUFBTSxPQUFPLHlCQUF5QjtJQU50QztRQU9XLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQ3RDLDZGQUE2RjtRQUNwRixZQUFPLEdBQXlDLEVBQUUsQ0FBQztRQUM1RCx3RUFBd0U7UUFDL0QscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUM5QyxnQ0FBMkIsR0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBRWxELDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBQ3BFLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FxQzFEO0lBbkNDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyx5RUFBeUU7UUFDekUsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDNUUsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM5QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDdEM7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckMsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUNwQztRQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hFLENBQUM7O3NIQTdDVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix1VkN0QnRDLDhnRUFvQ2E7MkZEZEEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFFSSxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5WaXNpYmlsaXR5Q29uZmlnIHtcbiAgdHlwZT86IGJvb2xlYW47XG4gIHByaW9yaXR5PzogYm9vbGVhbjtcbiAgcmVzdWx0PzogYm9vbGVhbjtcbiAgc3RhdHVzPzogYm9vbGVhbjtcbiAgbGFiZWxzPzogYm9vbGVhbjtcbiAgY3JlYXRlZEJ5PzogYm9vbGVhbjtcbiAgY3JlYXRlZEF0PzogYm9vbGVhbjtcbiAgdXBkYXRlZEF0PzogYm9vbGVhbjtcbiAgbGFzdFJ1bj86IGJvb2xlYW47XG4gIC8vIEFsbG93IGFkZGl0aW9uYWwga2V5c1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1jb2x1bW4tdmlzaWJpbGl0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tdmlzaWJpbGl0eS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtblZpc2liaWxpdHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpc1N0ZXBHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyBEeW5hbWljIGNvbHVtbnMgKHByZWZlcnJlZCkuIEVhY2ggaXRlbSBkZWZpbmVzIHRoZSBpZCB1c2VkIGFzIGtleSBhbmQgdGhlIGxhYmVsIHRvIHJlbmRlci5cbiAgQElucHV0KCkgY29sdW1uczogQXJyYXk8eyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH0+ID0gW107XG4gIC8vIFN0YXJ0IHdpdGggYW4gZW1wdHkgdmlzaWJpbGl0eSBtYXA7IGtleXMgd2lsbCBiZSBhZGRlZCBmcm9tICdjb2x1bW5zJ1xuICBASW5wdXQoKSBjb2x1bW5WaXNpYmlsaXR5OiBDb2x1bW5WaXNpYmlsaXR5Q29uZmlnID0ge307XG4gIEBJbnB1dCgpIHNlbGVjdGVkQXV0b1JlZnJlc2hJbnRlcnZhbDogbnVtYmVyID0gMDsgLy8gMCA9IE9mZlxuXG4gIEBPdXRwdXQoKSBjb2x1bW5WaXNpYmlsaXR5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb2x1bW5WaXNpYmlsaXR5Q29uZmlnPigpO1xuICBAT3V0cHV0KCkgYXV0b1JlZnJlc2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gV2hlbiBkeW5hbWljIGNvbHVtbnMgY2hhbmdlLCBlbnN1cmUgd2UgaGF2ZSBrZXlzIGluIHRoZSB2aXNpYmlsaXR5IG1hcFxuICAgIGlmIChjaGFuZ2VzWydjb2x1bW5zJ10gJiYgQXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpICYmIHRoaXMuY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgIGZvciAoY29uc3QgY29sIG9mIHRoaXMuY29sdW1ucykge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW5WaXNpYmlsaXR5W2NvbC5pZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eVtjb2wuaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBhcmVBbGxDb2x1bW5zU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuZ2V0VG9nZ2xhYmxlS2V5cygpO1xuICAgIHJldHVybiBrZXlzLmV2ZXJ5KGsgPT4gISF0aGlzLmNvbHVtblZpc2liaWxpdHlba10pO1xuICB9XG5cbiAgdG9nZ2xlQWxsQ29sdW1ucyhjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuZ2V0VG9nZ2xhYmxlS2V5cygpO1xuICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSB7XG4gICAgICB0aGlzLmNvbHVtblZpc2liaWxpdHlba10gPSBjaGVja2VkO1xuICAgIH1cbiAgICB0aGlzLnNhdmVDb2x1bW5QcmVmZXJlbmNlcygpO1xuICB9XG5cbiAgc2F2ZUNvbHVtblByZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eUNoYW5nZS5lbWl0KHsgLi4udGhpcy5jb2x1bW5WaXNpYmlsaXR5IH0pO1xuICB9XG5cbiAgb25BdXRvUmVmcmVzaENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9SZWZyZXNoQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEF1dG9SZWZyZXNoSW50ZXJ2YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb2dnbGFibGVLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpID8gdGhpcy5jb2x1bW5zLm1hcChjID0+IGMuaWQpIDogW107XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGlkPVwiY3FhLXVpLXJvb3RcIj5cbiAgPGNxYS1idXR0b24gdmFyaWFudD1cImdyZXktc29saWRcIiBpY29uPVwic2V0dGluZ3NcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic2V0dGluZ3NNZW51XCIgYXJpYS1sYWJlbD1cIlNldHRpbmdzXCI+XG4gIDwvY3FhLWJ1dHRvbj5cblxuICA8bWF0LW1lbnUgI3NldHRpbmdzTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cInRhYmxlLXNldHRpbmdzLW1lbnVcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtbWVudS1jb250ZW50IGNxYS1wLVsxN3B4XVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uIGNxYS1tYi0zXCI+XG4gICAgICAgIDxoNCBjbGFzcz1cInNldHRpbmdzLXRpdGxlIGNxYS1mb250LWJvbGQgY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtbWItMlwiPlNob3cgQ29sdW1uczwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1vcHRpb25zIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsyMHB4XVwiPlxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggW2NoZWNrZWRdPVwiYXJlQWxsQ29sdW1uc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJ0b2dnbGVBbGxDb2x1bW5zKCRldmVudC5jaGVja2VkKVwiXG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1hbGwtY2hlY2tib3hcIj5cbiAgICAgICAgICAgIHt7IGFyZUFsbENvbHVtbnNTZWxlY3RlZCA/ICdVbnNlbGVjdCBBbGwnIDogJ1NlbGVjdCBBbGwnIH19XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgPCEtLSBEeW5hbWljIGNvbHVtbiBsaXN0IC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zPy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCIgWyhuZ01vZGVsKV09XCJjb2x1bW5WaXNpYmlsaXR5W2NvbC5pZF1cIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cInNhdmVDb2x1bW5QcmVmZXJlbmNlcygpXCI+XG4gICAgICAgICAgICAgIHt7IGNvbC5sYWJlbCB9fVxuICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgIDxoNCBjbGFzcz1cInNldHRpbmdzLXRpdGxlIGNxYS1mb250LWJvbGQgY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtbWItMlwiPkF1dG8gcmVmcmVzaCBldmVyeTwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWZyZXNoLW9wdGlvbnNcIj5cbiAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIFsobmdNb2RlbCldPVwic2VsZWN0ZWRBdXRvUmVmcmVzaEludGVydmFsXCIgKGNoYW5nZSk9XCJvbkF1dG9SZWZyZXNoQ2hhbmdlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMjBweF1cIj5cbiAgICAgICAgICAgIDxsYWJlbD48bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiMTAwMDBcIj4xMCBTZWNvbmRzPC9tYXQtcmFkaW8tYnV0dG9uPjwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWw+PG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cIjIwMDAwXCI+MjAgU2Vjb25kczwvbWF0LXJhZGlvLWJ1dHRvbj48L2xhYmVsPlxuICAgICAgICAgICAgPGxhYmVsPjxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCIzMDAwMFwiPjMwIFNlY29uZHM8L21hdC1yYWRpby1idXR0b24+PC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbD48bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiMFwiPk9mZjwvbWF0LXJhZGlvLWJ1dHRvbj48L2xhYmVsPlxuICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21hdC1tZW51PiJdfQ==
|