@cqa-lib/cqa-ui 0.1.1 → 1.0.0

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.
Files changed (121) hide show
  1. package/esm2020/lib/action-menu/action-menu.component.mjs +42 -0
  2. package/esm2020/lib/assets/images/image-assets.constants.mjs +28 -0
  3. package/esm2020/lib/badge/badge.component.mjs +141 -0
  4. package/esm2020/lib/button/button.component.mjs +232 -0
  5. package/esm2020/lib/column-visibility/column-visibility.component.mjs +69 -0
  6. package/esm2020/lib/dashboards/chart-card/chart-card.component.mjs +22 -0
  7. package/esm2020/lib/dashboards/coverage-module-card/coverage-module-card.component.mjs +104 -0
  8. package/esm2020/lib/dashboards/dashboard-header/dashboard-header.component.mjs +82 -0
  9. package/esm2020/lib/dashboards/failed-test-cases-card/failed-test-cases-card.component.mjs +60 -0
  10. package/esm2020/lib/dashboards/heat-error-map-cell/heat-error-map-cell.component.mjs +45 -0
  11. package/esm2020/lib/dashboards/insight-card/insight-card.component.mjs +201 -0
  12. package/esm2020/lib/dashboards/metrics-card/metrics-block.component.mjs +41 -0
  13. package/esm2020/lib/dashboards/metrics-card/metrics-card-item.interface.mjs +2 -0
  14. package/esm2020/lib/dashboards/metrics-card/metrics-card.component.mjs +62 -0
  15. package/esm2020/lib/dashboards/progress-text-card/progress-text-card.component.mjs +46 -0
  16. package/esm2020/lib/dashboards/test-distribution-card/test-distribution-card.component.mjs +35 -0
  17. package/esm2020/lib/dialog/dialog.component.mjs +127 -0
  18. package/esm2020/lib/dropdown-button/dropdown-button.component.mjs +189 -0
  19. package/esm2020/lib/dynamic-select/dynamic-select-field.component.mjs +160 -0
  20. package/esm2020/lib/empty-state/empty-state.component.mjs +37 -0
  21. package/esm2020/lib/filters/dynamic-filter/dynamic-filter.component.mjs +239 -0
  22. package/esm2020/lib/full-table-loader/full-table-loader.component.mjs +16 -0
  23. package/esm2020/lib/inline-sort/inline-sort.component.mjs +58 -0
  24. package/esm2020/lib/other-button/other-button.component.mjs +76 -0
  25. package/esm2020/lib/pagination/pagination.component.mjs +102 -0
  26. package/{dist/cqa-ui/esm2020 → esm2020}/lib/search-bar/search-bar.component.mjs +3 -3
  27. package/{dist/cqa-ui/esm2020 → esm2020}/lib/segment-control/segment-control.component.mjs +3 -3
  28. package/esm2020/lib/selected-filters/selected-filters.component.mjs +27 -0
  29. package/esm2020/lib/table/dynamic-table/dynamic-cell.directive.mjs +35 -0
  30. package/esm2020/lib/table/dynamic-table/dynamic-table.component.mjs +258 -0
  31. package/esm2020/lib/table-action-toolbar/table-action-toolbar.component.mjs +52 -0
  32. package/esm2020/lib/table-data-loader/table-data-loader.component.mjs +19 -0
  33. package/esm2020/lib/templates/table-template.component.mjs +365 -0
  34. package/esm2020/lib/ui-kit.module.mjs +248 -0
  35. package/esm2020/lib/utils/metadata-colors.util.mjs +100 -0
  36. package/esm2020/lib/utils/tw-overlay-container.mjs +22 -0
  37. package/esm2020/public-api.mjs +38 -0
  38. package/fesm2015/cqa-lib-cqa-ui.mjs +3661 -0
  39. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -0
  40. package/fesm2020/cqa-lib-cqa-ui.mjs +3615 -0
  41. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -0
  42. package/lib/action-menu/action-menu.component.d.ts +17 -0
  43. package/lib/assets/images/image-assets.constants.d.ts +20 -0
  44. package/lib/badge/badge.component.d.ts +25 -0
  45. package/{dist/cqa-ui/lib → lib}/button/button.component.d.ts +6 -5
  46. package/lib/column-visibility/column-visibility.component.d.ts +33 -0
  47. package/lib/dashboards/chart-card/chart-card.component.d.ts +8 -0
  48. package/lib/dashboards/coverage-module-card/coverage-module-card.component.d.ts +44 -0
  49. package/lib/dashboards/dashboard-header/dashboard-header.component.d.ts +30 -0
  50. package/lib/dashboards/failed-test-cases-card/failed-test-cases-card.component.d.ts +28 -0
  51. package/lib/dashboards/heat-error-map-cell/heat-error-map-cell.component.d.ts +14 -0
  52. package/lib/dashboards/insight-card/insight-card.component.d.ts +73 -0
  53. package/lib/dashboards/metrics-card/metrics-block.component.d.ts +12 -0
  54. package/lib/dashboards/metrics-card/metrics-card-item.interface.d.ts +12 -0
  55. package/lib/dashboards/metrics-card/metrics-card.component.d.ts +17 -0
  56. package/lib/dashboards/progress-text-card/progress-text-card.component.d.ts +13 -0
  57. package/lib/dashboards/test-distribution-card/test-distribution-card.component.d.ts +29 -0
  58. package/lib/dropdown-button/dropdown-button.component.d.ts +32 -0
  59. package/lib/dynamic-select/dynamic-select-field.component.d.ts +43 -0
  60. package/lib/empty-state/empty-state.component.d.ts +20 -0
  61. package/lib/filters/dynamic-filter/dynamic-filter.component.d.ts +56 -0
  62. package/lib/full-table-loader/full-table-loader.component.d.ts +6 -0
  63. package/lib/inline-sort/inline-sort.component.d.ts +12 -0
  64. package/lib/other-button/other-button.component.d.ts +37 -0
  65. package/lib/pagination/pagination.component.d.ts +37 -0
  66. package/lib/selected-filters/selected-filters.component.d.ts +17 -0
  67. package/lib/table/dynamic-table/dynamic-cell.directive.d.ts +16 -0
  68. package/lib/table/dynamic-table/dynamic-table.component.d.ts +72 -0
  69. package/lib/table-action-toolbar/table-action-toolbar.component.d.ts +34 -0
  70. package/lib/table-data-loader/table-data-loader.component.d.ts +7 -0
  71. package/lib/templates/table-template.component.d.ts +90 -0
  72. package/lib/ui-kit.module.d.ts +52 -0
  73. package/lib/utils/metadata-colors.util.d.ts +50 -0
  74. package/lib/utils/tw-overlay-container.d.ts +12 -0
  75. package/package.json +23 -49
  76. package/public-api.d.ts +37 -0
  77. package/src/lib/assets/images/.gitkeep +0 -0
  78. package/src/lib/assets/images/DashboardIcon.png +0 -0
  79. package/src/lib/assets/images/FilesIcon.png +0 -0
  80. package/src/lib/assets/images/README.md +66 -0
  81. package/src/lib/assets/images/ReportsIcon.png +0 -0
  82. package/src/lib/assets/images/SearchIcon.png +0 -0
  83. package/src/lib/assets/images/StepsIcon.png +0 -0
  84. package/src/lib/assets/images/TestCaseIcon.png +0 -0
  85. package/src/lib/assets/images/analytics-chart-icon.svg +11 -0
  86. package/src/lib/assets/images/checklist-add-icon.svg +10 -0
  87. package/src/lib/assets/images/document-gear-icon.svg +9 -0
  88. package/src/lib/assets/images/empty-state-default-icon.svg +8 -0
  89. package/src/lib/assets/images/image-assets.constants.ts +38 -0
  90. package/src/lib/assets/images/search-debug-icon.svg +8 -0
  91. package/src/lib/assets/images/test-case-icon.svg +9 -0
  92. package/src/lib/assets/images/upload-folder-icon.svg +7 -0
  93. package/src/lib/utils/metadata-colors.constants.js +33 -0
  94. package/storybook-static/assets/images/README.md +66 -0
  95. package/styles.css +1 -0
  96. package/dist/cqa-ui/README.md +0 -226
  97. package/dist/cqa-ui/esm2020/lib/button/button.component.mjs +0 -257
  98. package/dist/cqa-ui/esm2020/lib/dialog/dialog.component.mjs +0 -127
  99. package/dist/cqa-ui/esm2020/lib/ui-kit.module.mjs +0 -69
  100. package/dist/cqa-ui/esm2020/public-api.mjs +0 -10
  101. package/dist/cqa-ui/fesm2015/cqa-lib-cqa-ui.mjs +0 -895
  102. package/dist/cqa-ui/fesm2015/cqa-lib-cqa-ui.mjs.map +0 -1
  103. package/dist/cqa-ui/fesm2020/cqa-lib-cqa-ui.mjs +0 -881
  104. package/dist/cqa-ui/fesm2020/cqa-lib-cqa-ui.mjs.map +0 -1
  105. package/dist/cqa-ui/lib/ui-kit.module.d.ts +0 -15
  106. package/dist/cqa-ui/package.json +0 -56
  107. package/dist/cqa-ui/public-api.d.ts +0 -9
  108. package/dist/cqa-ui/styles.css +0 -1
  109. /package/{dist/cqa-ui/cqa-lib-cqa-ui.d.ts → cqa-lib-cqa-ui.d.ts} +0 -0
  110. /package/{dist/cqa-ui/esm2020 → esm2020}/cqa-lib-cqa-ui.mjs +0 -0
  111. /package/{dist/cqa-ui/esm2020 → esm2020}/lib/dialog/dialog-ref.mjs +0 -0
  112. /package/{dist/cqa-ui/esm2020 → esm2020}/lib/dialog/dialog.models.mjs +0 -0
  113. /package/{dist/cqa-ui/esm2020 → esm2020}/lib/dialog/dialog.service.mjs +0 -0
  114. /package/{dist/cqa-ui/esm2020 → esm2020}/lib/dialog/dialog.tokens.mjs +0 -0
  115. /package/{dist/cqa-ui/lib → lib}/dialog/dialog-ref.d.ts +0 -0
  116. /package/{dist/cqa-ui/lib → lib}/dialog/dialog.component.d.ts +0 -0
  117. /package/{dist/cqa-ui/lib → lib}/dialog/dialog.models.d.ts +0 -0
  118. /package/{dist/cqa-ui/lib → lib}/dialog/dialog.service.d.ts +0 -0
  119. /package/{dist/cqa-ui/lib → lib}/dialog/dialog.tokens.d.ts +0 -0
  120. /package/{dist/cqa-ui/lib → lib}/search-bar/search-bar.component.d.ts +0 -0
  121. /package/{dist/cqa-ui/lib → lib}/segment-control/segment-control.component.d.ts +0 -0
@@ -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-red-100', 'cqa-text-red-800'].join(' ');
24
+ case 'warning':
25
+ return [...baseClasses, 'cqa-bg-yellow-100', 'cqa-text-yellow-800'].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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9iYWRnZS9iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2JhZGdlL2JhZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBU2pELE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBTVcsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixZQUFPLEdBQWlCLFNBQVMsQ0FBQztLQW1JNUM7SUE3SEMsSUFBSSxZQUFZO1FBQ2QsTUFBTSxXQUFXLEdBQUc7WUFDbEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixvQkFBb0I7U0FDckIsQ0FBQztRQUVGLGlGQUFpRjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDNUMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNwQixLQUFLLE9BQU87b0JBQ1YsT0FBTyxDQUFDLEdBQUcsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxRSxLQUFLLFNBQVM7b0JBQ1osT0FBTyxDQUFDLEdBQUcsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRixLQUFLLE1BQU07b0JBQ1QsT0FBTyxDQUFDLEdBQUcsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1RSxLQUFLLFNBQVM7b0JBQ1osT0FBTyxDQUFD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WUFDekUsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNwQixLQUFLLE9BQU87b0JBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLFVBQVU7b0JBQ3ZDLE1BQU07Z0JBQ1IsS0FBSyxTQUFTO29CQUNaLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxhQUFhO29CQUMxQyxNQUFNO2dCQUNSLEtBQUssTUFBTTtvQkFDVCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsV0FBVztvQkFDeEMsTUFBTTtnQkFDUixLQUFLLFNBQVM7b0JBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLFlBQVk7b0JBQ3pDLE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUMsbUJBQW1CO2FBQ3JFO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzsyR0FySVUsY0FBYzsrRkFBZCxjQUFjLCtPQ1QzQixrZ0JBaUJBOzJGRFJhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVzs4QkFLWixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEJhZGdlVmFyaWFudCA9ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnaW5mbycgfCAnc3VjY2VzcycgfCAnZGVmYXVsdCcgfCAnb3V0bGluZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1iYWRnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGljb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6IEJhZGdlVmFyaWFudCA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25CYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25Db2xvcj86IHN0cmluZztcblxuICBnZXQgYmFkZ2VDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXMgPSBbXG4gICAgICAnY3FhLWlubGluZS1mbGV4JyxcbiAgICAgICdjcWEtaXRlbXMtY2VudGVyJyxcbiAgICAgICdjcWEtanVzdGlmeS1jZW50ZXInLFxuICAgICAgJ2NxYS1yb3VuZGVkLVs2cHhdJyxcbiAgICAgICdjcWEtZm9udC1ub3JtYWwnLFxuICAgICAgJ2NxYS1sZWFkaW5nLVsxN3B4XSdcbiAgICBdO1xuICAgIFxuICAgIC8vIE9ubHkgYXBwbHkgdmFyaWFudC1zcGVjaWZpYyBUYWlsd2luZCBjbGFzc2VzIGlmIGN1c3RvbSBjb2xvcnMgYXJlIG5vdCBwcm92aWRlZFxuICAgIGlmICghdGhpcy5iYWNrZ3JvdW5kQ29sb3IgJiYgIXRoaXMudGV4dENvbG9yKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMudmFyaWFudCkge1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgcmV0dXJuIFsuLi5iYXNlQ2xhc3NlcywgJ2NxYS1iZy1yZWQtMTAwJywgJ2NxYS10ZXh0LXJlZC04MDAnXS5qb2luKCcgJyk7XG4gICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgIHJldHVybiBbLi4uYmFzZUNsYXNzZXMsICdjcWEtYmcteWVsbG93LTEwMCcsICdjcWEtdGV4dC15ZWxsb3ctODAwJ10uam9pbignICcpO1xuICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICByZXR1cm4gWy4uLmJhc2VDbGFzc2VzLCAnY3FhLWJnLWJsdWUtMTAwJywgJ2NxYS10ZXh0LWJsdWUtODAwJ10uam9pbignICcpO1xuICAgICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgICByZXR1cm4gWy4uLmJhc2VDbGFzc2VzLCAnY3FhLWJnLWdyZWVuLTEwMCcsICdjcWEtdGV4dC1ncmVlbi04MDAnXS5qb2luKCcgJyk7XG4gICAgICAgIGNhc2UgJ291dGxpbmUnOlxuICAgICAgICAgIHJldHVybiBbLi4uYmFzZUNsYXNzZXMsICdjcWEtYmctdHJhbnNwYXJlbnQnLCAnY3FhLXRleHQtZ3JheS04MDAnXS5qb2luKCcgJyk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIFsuLi5iYXNlQ2xhc3NlcywgJ2NxYS1iZy1ncmF5LTEwMCcsICdjcWEtdGV4dC1ncmF5LTgwMCddLmpvaW4oJyAnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gSWYgY3VzdG9tIGNvbG9ycyBhcmUgcHJvdmlkZWQsIG9ubHkgcmV0dXJuIGJhc2UgY2xhc3Nlc1xuICAgIHJldHVybiBiYXNlQ2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBnZXQgYmFkZ2VTdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qgc3R5bGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgXG4gICAgaWYgKHRoaXMuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBzdHlsZXNbJ2JhY2tncm91bmQtY29sb3InXSA9IHRoaXMuYmFja2dyb3VuZENvbG9yO1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAnb3V0bGluZScpIHtcbiAgICAgIHN0eWxlc1snYmFja2dyb3VuZC1jb2xvciddID0gJ3RyYW5zcGFyZW50JztcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMudGV4dENvbG9yKSB7XG4gICAgICBzdHlsZXNbJ2NvbG9yJ10gPSB0aGlzLnRleHRDb2xvcjtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHN0eWxlcztcbiAgfVxuXG4gIGdldCBpY29uQ29udGFpbmVyQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID0gW1xuICAgICAgJ2NxYS1pbmxpbmUtZmxleCcsXG4gICAgICAnY3FhLWl0ZW1zLWNlbnRlcicsXG4gICAgICAnY3FhLWp1c3RpZnktY2VudGVyJyxcbiAgICAgICdjcWEtZmxleC1zaHJpbmstMCcsXG4gICAgICAnY3FhLW1yLTEuNSdcbiAgICBdO1xuICAgIFxuICAgIC8vIE5vIGNpcmN1bGFyIGJhY2tncm91bmQgZm9yIGFueSB2YXJpYW50IC0ganVzdCByZXR1cm4gYmFzZSBjbGFzc2VzXG4gICAgcmV0dXJuIGJhc2VDbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBpY29uQ29udGFpbmVyU3R5bGVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0eWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICdkaXNwbGF5JzogJ2lubGluZS1mbGV4JyxcbiAgICAgICdhbGlnbi1pdGVtcyc6ICdjZW50ZXInLFxuICAgICAgJ2p1c3RpZnktY29udGVudCc6ICdjZW50ZXInXG4gICAgfTtcbiAgICBcbiAgICAvLyBObyBjaXJjdWxhciBiYWNrZ3JvdW5kIC0gb25seSBhcHBseSBjdXN0b20gaWNvbiBiYWNrZ3JvdW5kIGNvbG9yIGlmIGV4cGxpY2l0bHkgcHJvdmlkZWRcbiAgICBpZiAodGhpcy5pY29uQmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBzdHlsZXNbJ2JhY2tncm91bmQtY29sb3InXSA9IHRoaXMuaWNvbkJhY2tncm91bmRDb2xvcjtcbiAgICAgIC8vIElmIGN1c3RvbSBiYWNrZ3JvdW5kIGlzIHByb3ZpZGVkLCBhZGQgY2lyY2xlIGRpbWVuc2lvbnNcbiAgICAgIHN0eWxlc1snd2lkdGgnXSA9ICcxNnB4JztcbiAgICAgIHN0eWxlc1snaGVpZ2h0J10gPSAnMTZweCc7XG4gICAgICBzdHlsZXNbJ21pbi13aWR0aCddID0gJzE2cHgnO1xuICAgICAgc3R5bGVzWydtaW4taGVpZ2h0J10gPSAnMTZweCc7XG4gICAgICBzdHlsZXNbJ2JvcmRlci1yYWRpdXMnXSA9ICc1MCUnO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gc3R5bGVzO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUNsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gICAgXG4gICAgLy8gT25seSBhcHBseSB3aGl0ZSB0ZXh0IGNsYXNzIGlmIGN1c3RvbSBpY29uIGNvbG9yIGlzIG5vdCBwcm92aWRlZFxuICAgIGlmICghdGhpcy5pY29uQ29sb3IpIHtcbiAgICAgIHJldHVybiBbLi4uYmFzZUNsYXNzZXMsICdjcWEtdGV4dC13aGl0ZSddLmpvaW4oJyAnKTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGJhc2VDbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBpY29uU3R5bGVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0eWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICdmb250LXNpemUnOiAnMTRweCcsXG4gICAgICAnd2lkdGgnOiAnMTRweCcsXG4gICAgICAnaGVpZ2h0JzogJzE0cHgnLFxuICAgICAgJ2xpbmUtaGVpZ2h0JzogJzE0cHgnXG4gICAgfTtcbiAgICBcbiAgICBpZiAodGhpcy5pY29uQ29sb3IpIHtcbiAgICAgIHN0eWxlc1snY29sb3InXSA9IHRoaXMuaWNvbkNvbG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgdmFyaWFudC1zcGVjaWZpYyB0ZXh0IGNvbG9yIGZvciBpY29uIChubyB3aGl0ZSBiYWNrZ3JvdW5kIGFueW1vcmUpXG4gICAgICBzd2l0Y2ggKHRoaXMudmFyaWFudCkge1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgc3R5bGVzWydjb2xvciddID0gJyM5OTFCMUInOyAvLyByZWQtODAwXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgIHN0eWxlc1snY29sb3InXSA9ICcjODU0RDBFJzsgLy8geWVsbG93LTgwMFxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICBzdHlsZXNbJ2NvbG9yJ10gPSAnIzFFNDBBRic7IC8vIGJsdWUtODAwXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgIHN0eWxlc1snY29sb3InXSA9ICcjMTY2NTM0JzsgLy8gZ3JlZW4tODAwXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgc3R5bGVzWydjb2xvciddID0gdGhpcy50ZXh0Q29sb3IgfHwgJyMzNzQxNTEnOyAvLyBncmF5LTcwMCBkZWZhdWx0XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cbn1cblxuIiwiPGRpdiBpZD1cImNxYS11aS1yb290XCIgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCI+XG4gIDxzcGFuIFxuICAgIFtuZ0NsYXNzXT1cImJhZGdlQ2xhc3Nlc1wiIFxuICAgIFtuZ1N0eWxlXT1cImJhZGdlU3R5bGVzXCJcbiAgICBjbGFzcz1cImNxYS1mb250LWludGVyIGNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1zbSBjcWEtbGVhZGluZy1bMTdweF0gY3FhLXB5LVs0cHhdIGNxYS1weC0zXCI+XG4gICAgPHNwYW4gXG4gICAgICAqbmdJZj1cImljb25cIiBcbiAgICAgIFtuZ0NsYXNzXT1cImljb25Db250YWluZXJDbGFzc2VzXCJcbiAgICAgIFtuZ1N0eWxlXT1cImljb25Db250YWluZXJTdHlsZXNcIj5cbiAgICAgIDxtYXQtaWNvbiBcbiAgICAgICAgW25nQ2xhc3NdPVwiaWNvbkNsYXNzZXNcIlxuICAgICAgICBbbmdTdHlsZV09XCJpY29uU3R5bGVzXCI+e3sgaWNvbiB9fTwvbWF0LWljb24+XG4gICAgPC9zcGFuPlxuICAgIHt7IGxhYmVsIH19XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG4iXX0=
@@ -0,0 +1,232 @@
1
+ import { Component, Input, Output, EventEmitter, HostListener } 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 ButtonComponent {
6
+ constructor() {
7
+ this.variant = 'filled';
8
+ this.disabled = false;
9
+ this.iconPosition = 'start';
10
+ this.fullWidth = false;
11
+ this.type = 'button';
12
+ this.clicked = new EventEmitter();
13
+ // Internal state tracking
14
+ this.isHovered = false;
15
+ this.isFocused = false;
16
+ this.isPressed = false;
17
+ }
18
+ get hasIcon() {
19
+ return !!this.icon;
20
+ }
21
+ get buttonClasses() {
22
+ const baseClasses = [
23
+ 'cqa-inline-flex',
24
+ 'cqa-items-center',
25
+ 'cqa-justify-center',
26
+ 'cqa-gap-2',
27
+ 'cqa-py-[10px]',
28
+ 'cqa-rounded-[8px]',
29
+ 'cqa-text-[12.3px]',
30
+ 'cqa-leading-[17.5px]',
31
+ 'cqa-font-medium',
32
+ 'cqa-border',
33
+ ];
34
+ if (this.disabled) {
35
+ baseClasses.push('cqa-cursor-not-allowed');
36
+ }
37
+ if (this.fullWidth) {
38
+ baseClasses.push('cqa-w-full');
39
+ }
40
+ // Add variant and state specific classes
41
+ const variantClasses = this.getVariantClasses();
42
+ return [...baseClasses, ...variantClasses, ...(this.customClass ? [this.customClass] : [])].join(' ');
43
+ }
44
+ getVariantClasses() {
45
+ const classes = [];
46
+ if (this.variant === 'filled') {
47
+ if (this.disabled) {
48
+ classes.push('cqa-bg-primary-muted');
49
+ }
50
+ else {
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');
64
+ if (this.isHovered) {
65
+ classes.push('cqa-bg-grey-200');
66
+ }
67
+ }
68
+ }
69
+ else if (this.variant === 'outlined') {
70
+ if (this.disabled) {
71
+ classes.push('cqa-bg-transparent', 'cqa-border', 'cqa-border-primary-muted');
72
+ }
73
+ else {
74
+ if (this.isFocused) {
75
+ classes.push('cqa-bg-primary-surface-alt', 'cqa-border', 'cqa-border-primary-hover', 'cqa-shadow-[0px_4px_4px_rgba(0,0,0,0.25)]');
76
+ }
77
+ else if (this.isHovered || this.isPressed) {
78
+ classes.push('cqa-bg-primary-surface', 'cqa-border', 'cqa-border-primary');
79
+ }
80
+ else {
81
+ classes.push('cqa-bg-transparent', 'cqa-border', 'cqa-border-slate');
82
+ }
83
+ }
84
+ }
85
+ else if (this.variant === 'text') {
86
+ if (this.disabled) {
87
+ classes.push('cqa-bg-transparent', 'cqa-border-none');
88
+ }
89
+ else {
90
+ classes.push('cqa-bg-transparent', 'cqa-border-none');
91
+ if (this.isHovered || this.isFocused || this.isPressed) {
92
+ classes.push('cqa-bg-primary-surface');
93
+ }
94
+ }
95
+ }
96
+ else if (this.variant === 'elevated') {
97
+ if (this.disabled) {
98
+ classes.push('cqa-bg-primary-muted', 'cqa-shadow-none');
99
+ }
100
+ else {
101
+ if (this.isFocused) {
102
+ classes.push('cqa-bg-primary-surface-alt', 'cqa-shadow-[0px_4px_4px_rgba(0,0,0,0.25)]');
103
+ }
104
+ else if (this.isPressed) {
105
+ classes.push('cqa-bg-primary-surface', 'cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_1px_3px_1px_rgba(0,0,0,0.15)]');
106
+ }
107
+ else if (this.isHovered) {
108
+ classes.push('cqa-bg-primary-surface-alt', 'cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_2px_6px_2px_rgba(0,0,0,0.15)]');
109
+ }
110
+ else {
111
+ classes.push('cqa-bg-primary-surface', 'cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_1px_3px_1px_rgba(0,0,0,0.15)]');
112
+ }
113
+ }
114
+ }
115
+ else if (this.variant === 'tonal') {
116
+ if (this.disabled) {
117
+ classes.push('cqa-bg-primary-muted');
118
+ }
119
+ else {
120
+ if (this.isHovered) {
121
+ classes.push('cqa-bg-tonal-hover', 'cqa-shadow-[0px_1px_2px_rgba(0,0,0,0.3),0px_1px_3px_1px_rgba(0,0,0,0.15)]');
122
+ }
123
+ else {
124
+ classes.push('cqa-bg-primary-surface-alt');
125
+ }
126
+ }
127
+ }
128
+ return classes;
129
+ }
130
+ get textClass() {
131
+ if (this.disabled) {
132
+ if (this.variant === 'outlined' || this.variant === 'text') {
133
+ return 'cqa-text-ink';
134
+ }
135
+ return 'cqa-text-ink-muted';
136
+ }
137
+ switch (this.variant) {
138
+ case 'filled':
139
+ return 'cqa-text-surface-default';
140
+ case 'grey-solid':
141
+ return 'cqa-text-black-100';
142
+ case 'outlined':
143
+ if (this.isFocused || this.isHovered || this.isPressed) {
144
+ return 'cqa-text-primary-hover';
145
+ }
146
+ return 'cqa-text-slate';
147
+ case 'text':
148
+ case 'elevated':
149
+ return 'cqa-text-primary-hover';
150
+ case 'tonal':
151
+ return 'cqa-text-ink';
152
+ default:
153
+ return '';
154
+ }
155
+ }
156
+ onMouseEnter() {
157
+ if (!this.disabled) {
158
+ this.isHovered = true;
159
+ }
160
+ }
161
+ onMouseLeave() {
162
+ this.isHovered = false;
163
+ this.isPressed = false;
164
+ }
165
+ onMouseDown() {
166
+ if (!this.disabled) {
167
+ this.isPressed = true;
168
+ }
169
+ }
170
+ onMouseUp() {
171
+ this.isPressed = false;
172
+ }
173
+ onFocus() {
174
+ if (!this.disabled) {
175
+ this.isFocused = true;
176
+ }
177
+ }
178
+ onBlur() {
179
+ this.isFocused = false;
180
+ this.isPressed = false;
181
+ }
182
+ onClick(event) {
183
+ if (!this.disabled) {
184
+ this.clicked.emit(event);
185
+ }
186
+ }
187
+ }
188
+ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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"] }] });
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ButtonComponent, decorators: [{
191
+ type: Component,
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: [] }]
193
+ }], propDecorators: { variant: [{
194
+ type: Input
195
+ }], disabled: [{
196
+ type: Input
197
+ }], icon: [{
198
+ type: Input
199
+ }], iconPosition: [{
200
+ type: Input
201
+ }], fullWidth: [{
202
+ type: Input
203
+ }], iconColor: [{
204
+ type: Input
205
+ }], type: [{
206
+ type: Input
207
+ }], text: [{
208
+ type: Input
209
+ }], customClass: [{
210
+ type: Input
211
+ }], clicked: [{
212
+ type: Output
213
+ }], onMouseEnter: [{
214
+ type: HostListener,
215
+ args: ['mouseenter']
216
+ }], onMouseLeave: [{
217
+ type: HostListener,
218
+ args: ['mouseleave']
219
+ }], onMouseDown: [{
220
+ type: HostListener,
221
+ args: ['mousedown']
222
+ }], onMouseUp: [{
223
+ type: HostListener,
224
+ args: ['mouseup']
225
+ }], onFocus: [{
226
+ type: HostListener,
227
+ args: ['focus']
228
+ }], onBlur: [{
229
+ type: HostListener,
230
+ args: ['blur']
231
+ }] } });
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==