@quadrel-enterprise-ui/qdc-cards 19.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 (37) hide show
  1. package/README.md +25 -0
  2. package/esm2022/index.mjs +3 -0
  3. package/esm2022/lib/card/card.component.mjs +53 -0
  4. package/esm2022/lib/card/card.model.mjs +2 -0
  5. package/esm2022/lib/card/card.module.mjs +23 -0
  6. package/esm2022/lib/card/menu/card-menu.component.mjs +37 -0
  7. package/esm2022/lib/card/model/card-actions-config.interface.mjs +2 -0
  8. package/esm2022/lib/card-layout/card-layout.component.mjs +117 -0
  9. package/esm2022/lib/card-layout/card-layout.model.mjs +2 -0
  10. package/esm2022/lib/card-layout/card-layout.module.mjs +25 -0
  11. package/esm2022/lib/card-layout/card-status/card-status-height.directive.mjs +51 -0
  12. package/esm2022/lib/card-layout/card-status/card-status.component.mjs +112 -0
  13. package/esm2022/lib/card-layout/card-status/card-status.model.mjs +2 -0
  14. package/esm2022/lib/card-layout/card-status/pagination/pagination.model.mjs +2 -0
  15. package/esm2022/lib/shared/popover/cards-popover.module.mjs +19 -0
  16. package/esm2022/lib/shared/popover/cards-popover.service.mjs +23 -0
  17. package/esm2022/lib/shared/popover/popover/cards-popover.component.mjs +14 -0
  18. package/esm2022/lib/shared/popover/popover-on-click/cards-popover-on-click.directive.mjs +100 -0
  19. package/esm2022/quadrel-enterprise-ui-qdc-cards.mjs +5 -0
  20. package/index.d.ts +2 -0
  21. package/lib/card/card.component.d.ts +20 -0
  22. package/lib/card/card.model.d.ts +23 -0
  23. package/lib/card/card.module.d.ts +16 -0
  24. package/lib/card/menu/card-menu.component.d.ts +14 -0
  25. package/lib/card/model/card-actions-config.interface.d.ts +65 -0
  26. package/lib/card-layout/card-layout.component.d.ts +31 -0
  27. package/lib/card-layout/card-layout.model.d.ts +11 -0
  28. package/lib/card-layout/card-layout.module.d.ts +18 -0
  29. package/lib/card-layout/card-status/card-status-height.directive.d.ts +13 -0
  30. package/lib/card-layout/card-status/card-status.component.d.ts +25 -0
  31. package/lib/card-layout/card-status/card-status.model.d.ts +21 -0
  32. package/lib/card-layout/card-status/pagination/pagination.model.d.ts +26 -0
  33. package/lib/shared/popover/cards-popover.module.d.ts +9 -0
  34. package/lib/shared/popover/cards-popover.service.d.ts +10 -0
  35. package/lib/shared/popover/popover/cards-popover.component.d.ts +7 -0
  36. package/lib/shared/popover/popover-on-click/cards-popover-on-click.directive.d.ts +28 -0
  37. package/package.json +38 -0
package/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # qdc-card
2
+
3
+ This package contains the `qdc-card` library.
4
+
5
+ ---
6
+
7
+ ## Quick Start
8
+
9
+ 1. **Install dependencies**
10
+
11
+ ```sh
12
+ npm ci
13
+ ```
14
+
15
+ 2. **Showcase and develop with Storybook**
16
+
17
+ ```sh
18
+ npx nx storybook qdc-card
19
+ ```
20
+
21
+ 3. **Run unit tests**
22
+
23
+ ```sh
24
+ nx test qdc-card
25
+ ```
@@ -0,0 +1,3 @@
1
+ export * from './lib/card-layout/card-layout.module';
2
+ export * from './lib/card/card.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC1sYXlvdXQvY2FyZC1sYXlvdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvY2FyZC5tb2R1bGUnO1xuIl19
@@ -0,0 +1,53 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, TemplateRef, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@quadrel-enterprise-ui/framework";
4
+ import * as i2 from "./menu/card-menu.component";
5
+ import * as i3 from "@ngx-translate/core";
6
+ export class QdcCardComponent {
7
+ get isMobile() {
8
+ if (typeof window !== 'undefined') {
9
+ return window.matchMedia('(max-width: 599px)').matches;
10
+ }
11
+ return false;
12
+ }
13
+ constructor(cdr) {
14
+ this.cdr = cdr;
15
+ /** JSON configuration driving the visual appearance of the card. */
16
+ this.cardConfig = {};
17
+ /** Optional test-id for E2E / integration tests. */
18
+ this.testId = 'card';
19
+ this.hasHeader = false;
20
+ this.hasFooter = false;
21
+ }
22
+ ngAfterContentInit() {
23
+ this.evaluateVisibility();
24
+ }
25
+ ngOnChanges() {
26
+ this.evaluateVisibility();
27
+ }
28
+ evaluateVisibility() {
29
+ this.hasHeader = !!(this.cardConfig?.icon || this.cardConfig?.title || this.cardConfig?.subTitle);
30
+ this.cdr.markForCheck();
31
+ }
32
+ isTemplate(value) {
33
+ return value instanceof TemplateRef;
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: QdcCardComponent, isStandalone: false, selector: "qdc-card", inputs: { cardConfig: "cardConfig", testId: ["data-test-id", "testId"] }, host: { properties: { "attr.data-test-id": "testId", "class.mobile": "this.isMobile" }, classAttribute: "qdc-card" }, usesOnChanges: true, ngImport: i0, template: "<article class=\"qdc-card\" (click)=\"cardConfig?.onCardClick()\">\n @if (cardConfig) {\n <!-- Header -->\n @if (cardConfig.icon || cardConfig.title || cardConfig.subTitle || cardConfig.chip) {\n <header class=\"qdc-card__header\">\n <div class=\"qdc-card__header-left\">\n @if (cardConfig.icon) {\n <qd-icon class=\"qdc-card__icon\" [icon]=\"cardConfig.icon\"></qd-icon>\n }\n <div class=\"qdc-card__header-main\">\n @if (cardConfig.title) {\n <span class=\"qdc-card__title\">{{ cardConfig.title }}</span>\n } @if (cardConfig.subTitle) {\n <span class=\"qdc-card__subtitle\">{{ cardConfig.subTitle }}</span>\n }\n </div>\n </div>\n\n <div class=\"qdc-card__header-right\">\n @if (cardConfig.chip) {\n <qd-chip [state]=\"cardConfig.chip!.state\" data-test-id=\"test-chip\">\n {{ cardConfig.chip!.label.i18n | translate }}\n </qd-chip>\n } @if (cardConfig.menuActions) {\n <div class=\"qdc-card__header-actions\">\n <qdc-card-menu [actions]=\"cardConfig.menuActions\"></qdc-card-menu>\n </div>\n }\n </div>\n </header>\n }\n\n <!-- Body -->\n @if (cardConfig.bodyPairs) {\n <div class=\"qdc-card__body\">\n <div class=\"qdc-card__body-grid\">\n @for (item of cardConfig.bodyPairs; track item) {\n <div class=\"qdc-card__body-row\">\n <div class=\"qdc-card__body-label\">\n <span>{{ item.i18n | translate }}</span>\n </div>\n <div class=\"qdc-card__body-content\">\n @if (item.value) {\n <span class=\"qdc-card__body-value\">{{ item.value }}</span>\n } @if (item.status) {\n <qd-status-indicator [type]=\"item.status.type\" [level]=\"item.status.level\"></qd-status-indicator>\n } @if (item.icon) {\n <qd-icon [icon]=\"item.icon\"></qd-icon>\n } @if (item.chips) {\n <div class=\"qdc-card__body-chips\">\n @for (chip of item.chips; track chip) {\n <qd-chip [state]=\"chip.state\" class=\"qdc-card__body-chip\">\n {{ chip.label.i18n | translate }}\n </qd-chip>\n }\n </div>\n } @if (item.booleanValue !== undefined) {\n <qd-icon [icon]=\"item.booleanValue ? 'checkmark' : 'timesLarge'\"></qd-icon>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Footer -->\n @if (cardConfig.footer) {\n <footer class=\"qdc-card__footer\">\n @if (cardConfig.footer.icon || cardConfig.footer.text) {\n <div class=\"qdc-card__footer-start\">\n <qd-icon class=\"qdc-card__footer-icon\" [icon]=\"cardConfig.footer.icon\"></qd-icon>\n <span class=\"qdc-card__footer-text\">{{ cardConfig.footer.text | translate }}</span>\n </div>\n } @if (cardConfig.footer.action) {\n <div class=\"qdc-card__footer-end\">\n <button\n qdButton\n qdButtonGhost\n [disabled]=\"cardConfig.footer.action?.isDisabled\"\n (click)=\"cardConfig.footer.action?.handler()\"\n [icon]=\"cardConfig.footer.action?.icon\"\n data-test-id=\"test-footer-button\"\n >\n {{ cardConfig.footer.action?.label.i18n | translate }}\n </button>\n </div>\n }\n </footer>\n } } @else {\n <div class=\"qdc-card__empty\">\n <span class=\"qdc-card__empty-text\">No card configuration provided.</span>\n </div>\n }\n</article>\n", styles: ["@charset \"UTF-8\";:root{--border-col: #e0e0e0;--text: #222;--muted: #666;--chip-bg: #fff;--chip-bd: #bdbdbd;--chip-prio: #ff9800;--chip-status: #11a35d;--btn-bg: #fff;--btn-bd: #0067b8;--btn-tx: #0067b8;--row-gap: .6rem}.qdc-card{font-family:Roboto,sans-serif;display:flex;overflow:hidden;width:100%;flex-direction:column;border:1px solid var(--border-col);border-radius:4px;background:#fff}.qdc-card+.qdc-card{margin-top:clamp(.25rem,1vw,.5rem)}.row{display:flex;align-items:center;gap:.5rem}.wrap{flex-wrap:wrap}.ml-auto{margin-left:auto}.text-muted{color:var(--muted);font-size:.875rem}.fw-bold{font-weight:600}.chip{display:inline-flex;height:1.5rem;align-items:center;justify-content:center;padding:0 .6rem;border:1px solid var(--chip-bd);border-radius:16px;background:var(--chip-bg);font-size:.75rem;line-height:1;white-space:nowrap}.chip.prio{border-color:var(--chip-prio);color:var(--chip-prio)}.chip.status{border-color:var(--chip-status);color:var(--chip-status)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.4rem 1.2rem;border:2px solid var(--btn-bd);border-radius:2px;background:var(--btn-bg);color:var(--btn-tx);cursor:pointer;font-size:.875rem;font-weight:600;gap:.4rem;text-decoration:none}.btn:hover{background:#f0f8ff}.qdc-card__header{display:flex;align-items:center;padding:1rem;border-bottom:1px solid var(--border-col);gap:.8rem}.qdc-card__header-left{display:flex;align-items:center;gap:.5rem}.qdc-card__header-main{display:grid}.qdc-card__title{font-weight:700}.qdc-card__icon{font-size:1.4rem;line-height:1}.qdc-card__subtitle{color:var(--muted);font-size:.875rem}.qdc-card__header-right{display:flex;align-items:center;margin-left:auto;gap:.5rem}.qdc-card__menu{cursor:pointer;font-size:1.4rem;line-height:1}.qdc-card__body{display:grid;padding:1rem;column-gap:.5rem;grid-template-columns:1fr auto;row-gap:var(--row-gap)}.qdc-card__body>*{margin:0}.qdc-card__body-value{color:var(--text);font-size:.8rem}.qdc-card__body-chips{display:flex;flex-wrap:wrap;gap:.5rem}.qdc-card__footer{display:flex;justify-content:space-between;padding:.7rem 1rem;border-top:1px solid var(--border-col);gap:.8rem}.qdc-card__footer-start{display:flex;flex:1;align-items:center;justify-content:start;gap:.5rem}.qdc-card__footer-start qd-icon{font-size:1.5rem;line-height:1}.qdc-card__footer-end{display:flex;flex:2;justify-content:end;gap:.5rem}.qdc-card__footer-text{font-size:.7rem}.qdc-card__body-grid{display:flex;flex-direction:column;gap:14px}.qdc-card__body-row{display:grid;grid-template-columns:33% 66%}.qdc-card__body-label{color:var(--muted);font-size:.8rem}.qdc-card__body-content{color:var(--text);font-size:.8rem}.qdc-card__body-content qd-icon{color:var(--text);font-size:1.4rem;line-height:1}@media (max-width: 480px){.qdc-card{max-width:100%}.qdc-card__body{grid-template-columns:1fr}.qdc-card__header-right{margin-left:0}.qdc-card__footer .btn{width:100%;justify-content:center}}\n"], dependencies: [{ kind: "component", type: i1.QdButtonComponent, selector: "button[qdButton], a[qdButton], button[qd-button]", inputs: ["disabled", "color", "icon", "data-test-id", "additionalInfo"] }, { kind: "directive", type: i1.QdButtonGhostDirective, selector: "button[qdButtonGhost], a[qdButtonGhost]" }, { kind: "component", type: i1.QdChipComponent, selector: "qd-chip", inputs: ["state", "close", "data", "data-test-id"], outputs: ["closeClickEmitter"] }, { kind: "component", type: i1.QdIconComponent, selector: "qd-icon", inputs: ["icon"] }, { kind: "component", type: i1.QdStatusIndicatorComponent, selector: "qd-status-indicator", inputs: ["type", "level", "caption", "data-test-id"] }, { kind: "component", type: i2.QdcCardMenuComponent, selector: "qdc-card-menu", inputs: ["actions", "data-test-id"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'qdc-card', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
41
+ class: 'qdc-card',
42
+ '[attr.data-test-id]': 'testId'
43
+ }, standalone: false, template: "<article class=\"qdc-card\" (click)=\"cardConfig?.onCardClick()\">\n @if (cardConfig) {\n <!-- Header -->\n @if (cardConfig.icon || cardConfig.title || cardConfig.subTitle || cardConfig.chip) {\n <header class=\"qdc-card__header\">\n <div class=\"qdc-card__header-left\">\n @if (cardConfig.icon) {\n <qd-icon class=\"qdc-card__icon\" [icon]=\"cardConfig.icon\"></qd-icon>\n }\n <div class=\"qdc-card__header-main\">\n @if (cardConfig.title) {\n <span class=\"qdc-card__title\">{{ cardConfig.title }}</span>\n } @if (cardConfig.subTitle) {\n <span class=\"qdc-card__subtitle\">{{ cardConfig.subTitle }}</span>\n }\n </div>\n </div>\n\n <div class=\"qdc-card__header-right\">\n @if (cardConfig.chip) {\n <qd-chip [state]=\"cardConfig.chip!.state\" data-test-id=\"test-chip\">\n {{ cardConfig.chip!.label.i18n | translate }}\n </qd-chip>\n } @if (cardConfig.menuActions) {\n <div class=\"qdc-card__header-actions\">\n <qdc-card-menu [actions]=\"cardConfig.menuActions\"></qdc-card-menu>\n </div>\n }\n </div>\n </header>\n }\n\n <!-- Body -->\n @if (cardConfig.bodyPairs) {\n <div class=\"qdc-card__body\">\n <div class=\"qdc-card__body-grid\">\n @for (item of cardConfig.bodyPairs; track item) {\n <div class=\"qdc-card__body-row\">\n <div class=\"qdc-card__body-label\">\n <span>{{ item.i18n | translate }}</span>\n </div>\n <div class=\"qdc-card__body-content\">\n @if (item.value) {\n <span class=\"qdc-card__body-value\">{{ item.value }}</span>\n } @if (item.status) {\n <qd-status-indicator [type]=\"item.status.type\" [level]=\"item.status.level\"></qd-status-indicator>\n } @if (item.icon) {\n <qd-icon [icon]=\"item.icon\"></qd-icon>\n } @if (item.chips) {\n <div class=\"qdc-card__body-chips\">\n @for (chip of item.chips; track chip) {\n <qd-chip [state]=\"chip.state\" class=\"qdc-card__body-chip\">\n {{ chip.label.i18n | translate }}\n </qd-chip>\n }\n </div>\n } @if (item.booleanValue !== undefined) {\n <qd-icon [icon]=\"item.booleanValue ? 'checkmark' : 'timesLarge'\"></qd-icon>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Footer -->\n @if (cardConfig.footer) {\n <footer class=\"qdc-card__footer\">\n @if (cardConfig.footer.icon || cardConfig.footer.text) {\n <div class=\"qdc-card__footer-start\">\n <qd-icon class=\"qdc-card__footer-icon\" [icon]=\"cardConfig.footer.icon\"></qd-icon>\n <span class=\"qdc-card__footer-text\">{{ cardConfig.footer.text | translate }}</span>\n </div>\n } @if (cardConfig.footer.action) {\n <div class=\"qdc-card__footer-end\">\n <button\n qdButton\n qdButtonGhost\n [disabled]=\"cardConfig.footer.action?.isDisabled\"\n (click)=\"cardConfig.footer.action?.handler()\"\n [icon]=\"cardConfig.footer.action?.icon\"\n data-test-id=\"test-footer-button\"\n >\n {{ cardConfig.footer.action?.label.i18n | translate }}\n </button>\n </div>\n }\n </footer>\n } } @else {\n <div class=\"qdc-card__empty\">\n <span class=\"qdc-card__empty-text\">No card configuration provided.</span>\n </div>\n }\n</article>\n", styles: ["@charset \"UTF-8\";:root{--border-col: #e0e0e0;--text: #222;--muted: #666;--chip-bg: #fff;--chip-bd: #bdbdbd;--chip-prio: #ff9800;--chip-status: #11a35d;--btn-bg: #fff;--btn-bd: #0067b8;--btn-tx: #0067b8;--row-gap: .6rem}.qdc-card{font-family:Roboto,sans-serif;display:flex;overflow:hidden;width:100%;flex-direction:column;border:1px solid var(--border-col);border-radius:4px;background:#fff}.qdc-card+.qdc-card{margin-top:clamp(.25rem,1vw,.5rem)}.row{display:flex;align-items:center;gap:.5rem}.wrap{flex-wrap:wrap}.ml-auto{margin-left:auto}.text-muted{color:var(--muted);font-size:.875rem}.fw-bold{font-weight:600}.chip{display:inline-flex;height:1.5rem;align-items:center;justify-content:center;padding:0 .6rem;border:1px solid var(--chip-bd);border-radius:16px;background:var(--chip-bg);font-size:.75rem;line-height:1;white-space:nowrap}.chip.prio{border-color:var(--chip-prio);color:var(--chip-prio)}.chip.status{border-color:var(--chip-status);color:var(--chip-status)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.4rem 1.2rem;border:2px solid var(--btn-bd);border-radius:2px;background:var(--btn-bg);color:var(--btn-tx);cursor:pointer;font-size:.875rem;font-weight:600;gap:.4rem;text-decoration:none}.btn:hover{background:#f0f8ff}.qdc-card__header{display:flex;align-items:center;padding:1rem;border-bottom:1px solid var(--border-col);gap:.8rem}.qdc-card__header-left{display:flex;align-items:center;gap:.5rem}.qdc-card__header-main{display:grid}.qdc-card__title{font-weight:700}.qdc-card__icon{font-size:1.4rem;line-height:1}.qdc-card__subtitle{color:var(--muted);font-size:.875rem}.qdc-card__header-right{display:flex;align-items:center;margin-left:auto;gap:.5rem}.qdc-card__menu{cursor:pointer;font-size:1.4rem;line-height:1}.qdc-card__body{display:grid;padding:1rem;column-gap:.5rem;grid-template-columns:1fr auto;row-gap:var(--row-gap)}.qdc-card__body>*{margin:0}.qdc-card__body-value{color:var(--text);font-size:.8rem}.qdc-card__body-chips{display:flex;flex-wrap:wrap;gap:.5rem}.qdc-card__footer{display:flex;justify-content:space-between;padding:.7rem 1rem;border-top:1px solid var(--border-col);gap:.8rem}.qdc-card__footer-start{display:flex;flex:1;align-items:center;justify-content:start;gap:.5rem}.qdc-card__footer-start qd-icon{font-size:1.5rem;line-height:1}.qdc-card__footer-end{display:flex;flex:2;justify-content:end;gap:.5rem}.qdc-card__footer-text{font-size:.7rem}.qdc-card__body-grid{display:flex;flex-direction:column;gap:14px}.qdc-card__body-row{display:grid;grid-template-columns:33% 66%}.qdc-card__body-label{color:var(--muted);font-size:.8rem}.qdc-card__body-content{color:var(--text);font-size:.8rem}.qdc-card__body-content qd-icon{color:var(--text);font-size:1.4rem;line-height:1}@media (max-width: 480px){.qdc-card{max-width:100%}.qdc-card__body{grid-template-columns:1fr}.qdc-card__header-right{margin-left:0}.qdc-card__footer .btn{width:100%;justify-content:center}}\n"] }]
44
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { cardConfig: [{
45
+ type: Input
46
+ }], testId: [{
47
+ type: Input,
48
+ args: ['data-test-id']
49
+ }], isMobile: [{
50
+ type: HostBinding,
51
+ args: ['class.mobile']
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBZXZCLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsSUFBaUMsUUFBUTtRQUN2QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoQjFDLG9FQUFvRTtRQUMzRCxlQUFVLEdBQWtCLEVBQUUsQ0FBQztRQUV4QyxvREFBb0Q7UUFDN0IsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUV2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFTMkIsQ0FBQztJQUU5QyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYztRQUN2QixPQUFPLEtBQUssWUFBWSxXQUFXLENBQUM7SUFDdEMsQ0FBQzsrR0FsQ1UsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMFJDekI3Qix1MkdBK0ZBOzs0RkR0RWEsZ0JBQWdCO2tCQVo1QixTQUFTOytCQUNFLFVBQVUsaUJBR0wsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsVUFBVTt3QkFDakIscUJBQXFCLEVBQUUsUUFBUTtxQkFDaEMsY0FDVyxLQUFLO3NGQUlSLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR2lCLE1BQU07c0JBQTVCLEtBQUs7dUJBQUMsY0FBYztnQkFLWSxRQUFRO3NCQUF4QyxXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFFkY0NhcmRDb25maWcgfSBmcm9tICcuL2NhcmQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdxZGMtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAncWRjLWNhcmQnLFxuICAgICdbYXR0ci5kYXRhLXRlc3QtaWRdJzogJ3Rlc3RJZCdcbiAgfSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgUWRjQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKiBKU09OIGNvbmZpZ3VyYXRpb24gZHJpdmluZyB0aGUgdmlzdWFsIGFwcGVhcmFuY2Ugb2YgdGhlIGNhcmQuICovXG4gIEBJbnB1dCgpIGNhcmRDb25maWc6IFFkY0NhcmRDb25maWcgPSB7fTtcblxuICAvKiogT3B0aW9uYWwgdGVzdC1pZCBmb3IgRTJFIC8gaW50ZWdyYXRpb24gdGVzdHMuICovXG4gIEBJbnB1dCgnZGF0YS10ZXN0LWlkJykgdGVzdElkID0gJ2NhcmQnO1xuXG4gIGhhc0hlYWRlciA9IGZhbHNlO1xuICBoYXNGb290ZXIgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vYmlsZScpIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogNTk5cHgpJykubWF0Y2hlcztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2YWx1YXRlVmlzaWJpbGl0eSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmFsdWF0ZVZpc2liaWxpdHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIHRoaXMuaGFzSGVhZGVyID0gISEodGhpcy5jYXJkQ29uZmlnPy5pY29uIHx8IHRoaXMuY2FyZENvbmZpZz8udGl0bGUgfHwgdGhpcy5jYXJkQ29uZmlnPy5zdWJUaXRsZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpc1RlbXBsYXRlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgVGVtcGxhdGVSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG59XG4iLCI8YXJ0aWNsZSBjbGFzcz1cInFkYy1jYXJkXCIgKGNsaWNrKT1cImNhcmRDb25maWc/Lm9uQ2FyZENsaWNrKClcIj5cbiAgQGlmIChjYXJkQ29uZmlnKSB7XG4gIDwhLS0gSGVhZGVyIC0tPlxuICBAaWYgKGNhcmRDb25maWcuaWNvbiB8fCBjYXJkQ29uZmlnLnRpdGxlIHx8IGNhcmRDb25maWcuc3ViVGl0bGUgfHwgY2FyZENvbmZpZy5jaGlwKSB7XG4gIDxoZWFkZXIgY2xhc3M9XCJxZGMtY2FyZF9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInFkYy1jYXJkX19oZWFkZXItbGVmdFwiPlxuICAgICAgQGlmIChjYXJkQ29uZmlnLmljb24pIHtcbiAgICAgIDxxZC1pY29uIGNsYXNzPVwicWRjLWNhcmRfX2ljb25cIiBbaWNvbl09XCJjYXJkQ29uZmlnLmljb25cIj48L3FkLWljb24+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2hlYWRlci1tYWluXCI+XG4gICAgICAgIEBpZiAoY2FyZENvbmZpZy50aXRsZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInFkYy1jYXJkX190aXRsZVwiPnt7IGNhcmRDb25maWcudGl0bGUgfX08L3NwYW4+XG4gICAgICAgIH0gQGlmIChjYXJkQ29uZmlnLnN1YlRpdGxlKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicWRjLWNhcmRfX3N1YnRpdGxlXCI+e3sgY2FyZENvbmZpZy5zdWJUaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2hlYWRlci1yaWdodFwiPlxuICAgICAgQGlmIChjYXJkQ29uZmlnLmNoaXApIHtcbiAgICAgIDxxZC1jaGlwIFtzdGF0ZV09XCJjYXJkQ29uZmlnLmNoaXAhLnN0YXRlXCIgZGF0YS10ZXN0LWlkPVwidGVzdC1jaGlwXCI+XG4gICAgICAgIHt7IGNhcmRDb25maWcuY2hpcCEubGFiZWwuaTE4biB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9xZC1jaGlwPlxuICAgICAgfSBAaWYgKGNhcmRDb25maWcubWVudUFjdGlvbnMpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJxZGMtY2FyZF9faGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgPHFkYy1jYXJkLW1lbnUgW2FjdGlvbnNdPVwiY2FyZENvbmZpZy5tZW51QWN0aW9uc1wiPjwvcWRjLWNhcmQtbWVudT5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2hlYWRlcj5cbiAgfVxuXG4gIDwhLS0gQm9keSAtLT5cbiAgQGlmIChjYXJkQ29uZmlnLmJvZHlQYWlycykge1xuICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2JvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2JvZHktZ3JpZFwiPlxuICAgICAgQGZvciAoaXRlbSBvZiBjYXJkQ29uZmlnLmJvZHlQYWlyczsgdHJhY2sgaXRlbSkge1xuICAgICAgPGRpdiBjbGFzcz1cInFkYy1jYXJkX19ib2R5LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2JvZHktbGFiZWxcIj5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLmkxOG4gfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2JvZHktY29udGVudFwiPlxuICAgICAgICAgIEBpZiAoaXRlbS52YWx1ZSkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicWRjLWNhcmRfX2JvZHktdmFsdWVcIj57eyBpdGVtLnZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgIH0gQGlmIChpdGVtLnN0YXR1cykge1xuICAgICAgICAgIDxxZC1zdGF0dXMtaW5kaWNhdG9yIFt0eXBlXT1cIml0ZW0uc3RhdHVzLnR5cGVcIiBbbGV2ZWxdPVwiaXRlbS5zdGF0dXMubGV2ZWxcIj48L3FkLXN0YXR1cy1pbmRpY2F0b3I+XG4gICAgICAgICAgfSBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgIDxxZC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPjwvcWQtaWNvbj5cbiAgICAgICAgICB9IEBpZiAoaXRlbS5jaGlwcykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxZGMtY2FyZF9fYm9keS1jaGlwc1wiPlxuICAgICAgICAgICAgQGZvciAoY2hpcCBvZiBpdGVtLmNoaXBzOyB0cmFjayBjaGlwKSB7XG4gICAgICAgICAgICA8cWQtY2hpcCBbc3RhdGVdPVwiY2hpcC5zdGF0ZVwiIGNsYXNzPVwicWRjLWNhcmRfX2JvZHktY2hpcFwiPlxuICAgICAgICAgICAgICB7eyBjaGlwLmxhYmVsLmkxOG4gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvcWQtY2hpcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBpZiAoaXRlbS5ib29sZWFuVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIDxxZC1pY29uIFtpY29uXT1cIml0ZW0uYm9vbGVhblZhbHVlID8gJ2NoZWNrbWFyaycgOiAndGltZXNMYXJnZSdcIj48L3FkLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gRm9vdGVyIC0tPlxuICBAaWYgKGNhcmRDb25maWcuZm9vdGVyKSB7XG4gIDxmb290ZXIgY2xhc3M9XCJxZGMtY2FyZF9fZm9vdGVyXCI+XG4gICAgQGlmIChjYXJkQ29uZmlnLmZvb3Rlci5pY29uIHx8IGNhcmRDb25maWcuZm9vdGVyLnRleHQpIHtcbiAgICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2Zvb3Rlci1zdGFydFwiPlxuICAgICAgPHFkLWljb24gY2xhc3M9XCJxZGMtY2FyZF9fZm9vdGVyLWljb25cIiBbaWNvbl09XCJjYXJkQ29uZmlnLmZvb3Rlci5pY29uXCI+PC9xZC1pY29uPlxuICAgICAgPHNwYW4gY2xhc3M9XCJxZGMtY2FyZF9fZm9vdGVyLXRleHRcIj57eyBjYXJkQ29uZmlnLmZvb3Rlci50ZXh0IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIH0gQGlmIChjYXJkQ29uZmlnLmZvb3Rlci5hY3Rpb24pIHtcbiAgICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2Zvb3Rlci1lbmRcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgcWRCdXR0b25cbiAgICAgICAgcWRCdXR0b25HaG9zdFxuICAgICAgICBbZGlzYWJsZWRdPVwiY2FyZENvbmZpZy5mb290ZXIuYWN0aW9uPy5pc0Rpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cImNhcmRDb25maWcuZm9vdGVyLmFjdGlvbj8uaGFuZGxlcigpXCJcbiAgICAgICAgW2ljb25dPVwiY2FyZENvbmZpZy5mb290ZXIuYWN0aW9uPy5pY29uXCJcbiAgICAgICAgZGF0YS10ZXN0LWlkPVwidGVzdC1mb290ZXItYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAge3sgY2FyZENvbmZpZy5mb290ZXIuYWN0aW9uPy5sYWJlbC5pMThuIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZm9vdGVyPlxuICB9IH0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwicWRjLWNhcmRfX2VtcHR5XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJxZGMtY2FyZF9fZW1wdHktdGV4dFwiPk5vIGNhcmQgY29uZmlndXJhdGlvbiBwcm92aWRlZC48L3NwYW4+XG4gIDwvZGl2PlxuICB9XG48L2FydGljbGU+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWRjLWNhcmRzL3NyYy9saWIvY2FyZC9jYXJkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBRZGNDYXJkQWN0aW9uQ29uZmlnLFxuICBRZGNDYXJkQm9keVBhaXIsXG4gIFFkY0NhcmRDaGlwLFxuICBRZGNDYXJkRm9vdGVyXG59IGZyb20gJy4vbW9kZWwvY2FyZC1hY3Rpb25zLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFFkY0NhcmRDb25maWcge1xuICAvKipcbiAgICogT3B0aW9uYWwgaWNvbiBuYW1lIHNob3duIGluIHRoZSBoZWFkZXIsIGxlZnQgb2YgdGhlIHRpdGxlLlxuICAgKiAqL1xuICBpY29uPzogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogTWFpbiBoZWFkbGluZSBvZiB0aGUgY2FyZC5cbiAgICogKi9cbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdWJ0aXRsZSBzaG93biB1bmRlciB0aGUgdGl0bGUuXG4gICAqICovXG4gIHN1YlRpdGxlPzogc3RyaW5nIHwgbnVsbDtcblxuICBib2R5UGFpcnM/OiBRZGNDYXJkQm9keVBhaXJbXTtcblxuICBjaGlwPzogUWRjQ2FyZENoaXA7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFjdGlvbnMgdG8gZGlzcGxheSBpbiB0aGUgY2FyZCBtZW51LlxuICAgKiAqL1xuICBtZW51QWN0aW9ucz86IFFkY0NhcmRBY3Rpb25Db25maWdbXTtcblxuICBmb290ZXI/OiBRZGNDYXJkRm9vdGVyO1xuXG4gIG9uQ2FyZENsaWNrPzogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { QdUiModule } from '@quadrel-enterprise-ui/framework';
5
+ import { QdcCardComponent } from './card.component';
6
+ import { QdcCardMenuComponent } from './menu/card-menu.component';
7
+ import { QdcCardsPopoverModule } from '../shared/popover/cards-popover.module';
8
+ import * as i0 from "@angular/core";
9
+ export { QdcCardComponent, QdcCardMenuComponent };
10
+ export class QdcCardModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: QdcCardModule, declarations: [QdcCardComponent, QdcCardMenuComponent], imports: [CommonModule, TranslateModule, QdUiModule, QdcCardsPopoverModule], exports: [QdcCardComponent, QdcCardMenuComponent] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardModule, imports: [CommonModule, TranslateModule, QdUiModule, QdcCardsPopoverModule] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ imports: [CommonModule, TranslateModule, QdUiModule, QdcCardsPopoverModule],
19
+ declarations: [QdcCardComponent, QdcCardMenuComponent],
20
+ exports: [QdcCardComponent, QdcCardMenuComponent]
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvbGliL2NhcmQvY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFFL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixvQkFBb0IsRUFBRSxDQUFDO0FBT2pFLE1BQU0sT0FBTyxhQUFhOytHQUFiLGFBQWE7Z0hBQWIsYUFBYSxpQkFIVCxnQkFBZ0IsRUFBRSxvQkFBb0IsYUFEM0MsWUFBWSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUscUJBQXFCLGFBRWhFLGdCQUFnQixFQUFFLG9CQUFvQjtnSEFFckMsYUFBYSxZQUpkLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLHFCQUFxQjs7NEZBSS9ELGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUscUJBQXFCLENBQUM7b0JBQzNFLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQztpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBRZFVpTW9kdWxlIH0gZnJvbSAnQHF1YWRyZWwtZW50ZXJwcmlzZS11aS9mcmFtZXdvcmsnO1xuaW1wb3J0IHsgUWRjQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUWRjQ2FyZE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUvY2FyZC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRZGNDYXJkQ29uZmlnIH0gZnJvbSAnLi9jYXJkLm1vZGVsJztcbmltcG9ydCB7IFFkY0NhcmRzUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9wb3BvdmVyL2NhcmRzLXBvcG92ZXIubW9kdWxlJztcblxuZXhwb3J0IHsgUWRjQ2FyZENvbXBvbmVudCwgUWRjQ2FyZENvbmZpZywgUWRjQ2FyZE1lbnVDb21wb25lbnQgfTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBRZFVpTW9kdWxlLCBRZGNDYXJkc1BvcG92ZXJNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtRZGNDYXJkQ29tcG9uZW50LCBRZGNDYXJkTWVudUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtRZGNDYXJkQ29tcG9uZW50LCBRZGNDYXJkTWVudUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUWRjQ2FyZE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,37 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { BehaviorSubject, Subject } from 'rxjs';
3
+ import { map, takeUntil } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@quadrel-enterprise-ui/framework";
7
+ import * as i3 from "../../shared/popover/popover-on-click/cards-popover-on-click.directive";
8
+ import * as i4 from "@ngx-translate/core";
9
+ export class QdcCardMenuComponent {
10
+ constructor() {
11
+ this.testId = 'card-menu';
12
+ this._actionsSubject = new BehaviorSubject([]);
13
+ this._destroyed$ = new Subject();
14
+ }
15
+ set actions(actions) {
16
+ this._actionsSubject.next(actions);
17
+ }
18
+ get actions$() {
19
+ return this._actionsSubject.asObservable().pipe(takeUntil(this._destroyed$), map(actions => actions.map(action => ({ ...action, isDisabled: action.isDisabled }))));
20
+ }
21
+ ngOnDestroy() {
22
+ this._destroyed$.next();
23
+ this._destroyed$.complete();
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: QdcCardMenuComponent, isStandalone: false, selector: "qdc-card-menu", inputs: { actions: "actions", testId: ["data-test-id", "testId"] }, ngImport: i0, template: "<ng-container *ngIf=\"actions$ | async as actions\">\n <qd-icon\n *ngIf=\"actions.length > 0\"\n icon=\"overflowMenuVertical\"\n class=\"menu-opener\"\n [attr.data-test-id]=\"testId + '-opener'\"\n [qdcCardsPopoverOnClick]=\"menu\"\n ></qd-icon>\n\n <ng-template #menu>\n <ng-container *ngFor=\"let action of actions$ | async\">\n <button\n class=\"menu-entry\"\n (click)=\"action.handler()\"\n [disabled]=\"action.isDisabled\"\n [attr.data-test-id]=\"testId + '-action'\"\n >\n {{ action.label.i18n | translate }}\n </button>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{font-family:Roboto,sans-serif}:host .menu-opener{position:sticky;top:1.5625rem;right:1.5rem;cursor:pointer;font-size:1.5rem;font-weight:700}button.menu-entry{display:block;overflow:hidden;width:100%;min-height:2.25rem;padding:0 1rem;background:#fff0;text-align:left;text-overflow:ellipsis;white-space:nowrap;color:inherit;font-size:.875rem;font-weight:400;line-height:1.3125rem}button.menu-entry:hover{background-color:#f2f7fa}button.menu-entry:hover[disabled]{background:#fff0;cursor:default}button.menu-entry[disabled]{color:#b4b4b4;cursor:default}button.menu-entry[disabled]:hover{background-color:#fff0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.QdIconComponent, selector: "qd-icon", inputs: ["icon"] }, { kind: "directive", type: i3.QdcCardsPopoverOnClickDirective, selector: "[qdcCardsPopoverOnClick]", inputs: ["qdcCardsPopoverOnClick", "popoverWidth", "positionStrategy", "popoverCloseStrategy"], outputs: ["opened", "closed"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardMenuComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'qdc-card-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container *ngIf=\"actions$ | async as actions\">\n <qd-icon\n *ngIf=\"actions.length > 0\"\n icon=\"overflowMenuVertical\"\n class=\"menu-opener\"\n [attr.data-test-id]=\"testId + '-opener'\"\n [qdcCardsPopoverOnClick]=\"menu\"\n ></qd-icon>\n\n <ng-template #menu>\n <ng-container *ngFor=\"let action of actions$ | async\">\n <button\n class=\"menu-entry\"\n (click)=\"action.handler()\"\n [disabled]=\"action.isDisabled\"\n [attr.data-test-id]=\"testId + '-action'\"\n >\n {{ action.label.i18n | translate }}\n </button>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{font-family:Roboto,sans-serif}:host .menu-opener{position:sticky;top:1.5625rem;right:1.5rem;cursor:pointer;font-size:1.5rem;font-weight:700}button.menu-entry{display:block;overflow:hidden;width:100%;min-height:2.25rem;padding:0 1rem;background:#fff0;text-align:left;text-overflow:ellipsis;white-space:nowrap;color:inherit;font-size:.875rem;font-weight:400;line-height:1.3125rem}button.menu-entry:hover{background-color:#f2f7fa}button.menu-entry:hover[disabled]{background:#fff0;cursor:default}button.menu-entry[disabled]{color:#b4b4b4;cursor:default}button.menu-entry[disabled]:hover{background-color:#fff0}\n"] }]
31
+ }], propDecorators: { actions: [{
32
+ type: Input
33
+ }], testId: [{
34
+ type: Input,
35
+ args: ['data-test-id']
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWRjLWNhcmRzL3NyYy9saWIvY2FyZC9tZW51L2NhcmQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvbGliL2NhcmQvbWVudS9jYXJkLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBVWhELE1BQU0sT0FBTyxvQkFBb0I7SUFQakM7UUFtQnlCLFdBQU0sR0FBRyxXQUFXLENBQUM7UUFFcEMsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsRUFBRSxDQUFDLENBQUM7UUFDakUsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBTTNDO0lBcEJDLElBQWEsT0FBTyxDQUFDLE9BQThCO1FBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUM3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUMzQixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3RGLENBQUM7SUFDSixDQUFDO0lBT0QsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQXBCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw4SUNaakMsaXBCQXNCQTs7NEZEVmEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdKLE9BQU87c0JBQW5CLEtBQUs7Z0JBV2lCLE1BQU07c0JBQTVCLEtBQUs7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBRZGNDYXJkQWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvY2FyZC1hY3Rpb25zLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdxZGMtY2FyZC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgUWRjQ2FyZE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBzZXQgYWN0aW9ucyhhY3Rpb25zOiBRZGNDYXJkQWN0aW9uQ29uZmlnW10pIHtcbiAgICB0aGlzLl9hY3Rpb25zU3ViamVjdC5uZXh0KGFjdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGFjdGlvbnMkKCk6IE9ic2VydmFibGU8UWRjQ2FyZEFjdGlvbkNvbmZpZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCksXG4gICAgICBtYXAoYWN0aW9ucyA9PiBhY3Rpb25zLm1hcChhY3Rpb24gPT4gKHsgLi4uYWN0aW9uLCBpc0Rpc2FibGVkOiBhY3Rpb24uaXNEaXNhYmxlZCB9KSkpXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgnZGF0YS10ZXN0LWlkJykgdGVzdElkID0gJ2NhcmQtbWVudSc7XG5cbiAgcHJpdmF0ZSBfYWN0aW9uc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFFkY0NhcmRBY3Rpb25Db25maWdbXT4oW10pO1xuICBwcml2YXRlIF9kZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb25zJCB8IGFzeW5jIGFzIGFjdGlvbnNcIj5cbiAgPHFkLWljb25cbiAgICAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgaWNvbj1cIm92ZXJmbG93TWVudVZlcnRpY2FsXCJcbiAgICBjbGFzcz1cIm1lbnUtb3BlbmVyXCJcbiAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkICsgJy1vcGVuZXInXCJcbiAgICBbcWRjQ2FyZHNQb3BvdmVyT25DbGlja109XCJtZW51XCJcbiAgPjwvcWQtaWNvbj5cblxuICA8bmctdGVtcGxhdGUgI21lbnU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnMkIHwgYXN5bmNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJtZW51LWVudHJ5XCJcbiAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5oYW5kbGVyKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmlzRGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkICsgJy1hY3Rpb24nXCJcbiAgICAgID5cbiAgICAgICAge3sgYWN0aW9uLmxhYmVsLmkxOG4gfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hY3Rpb25zLWNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvbGliL2NhcmQvbW9kZWwvY2FyZC1hY3Rpb25zLWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFFkQ2hpcENvbG9yIH0gZnJvbSAnQHF1YWRyZWwtZW50ZXJwcmlzZS11aS9mcmFtZXdvcmsnO1xuaW1wb3J0IHR5cGUge1xuICBRZFN0YXR1c0luZGljYXRvckxldmVsLFxuICBRZFN0YXR1c0luZGljYXRvclR5cGVcbn0gZnJvbSAnQHF1YWRyZWwtZW50ZXJwcmlzZS11aS9mcmFtZXdvcmsvbGliL3N0YXR1cy1pbmRpY2F0b3IvaW50ZXJmYWNlcy9zdGF0dXMtaW5kaWNhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRjQ2FyZEFjdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgaXMgc2hvd24gYXMgdGV4dCBpbiB0aGUgVUkgZm9yIHRoaXMgYWN0aW9uLlxuICAgKi9cbiAgbGFiZWw6IHtcbiAgICAvKiogVGhpcyBpMThuIGtleSBpcyB0cmFuc2xhdGVkIGRpcmVjdGx5IGluc2lkZSB0aGUgUWRDYXJkTWVudSBjb21wb25lbnQuICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgaGFuZGxlciB0byBleGVjdXRlIHdoZW4gdGhlIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgaGFuZGxlcjogKCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWN0aW9uIGlzIGRpc2FibGVkIG9yIG5vdFxuICAgKlxuICAgKiAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IGluIHRoZSBhY3Rpb24uXG4gICAqL1xuICBpY29uPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRZGNDYXJkQm9keVBhaXIge1xuICAvKipcbiAgICogVHJhbnNsYXRhYmxlIGxhYmVsIHRleHQuXG4gICAqICovXG4gIGkxOG46IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWUgdG8gZGlzcGxheSBuZXh0IHRvIHRoZSBsYWJlbC5cbiAgICogKi9cbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgUWQtU3RhdHVzLUluZGljYXRvclxuICAgKiAqL1xuICBzdGF0dXM/OiB7XG4gICAgdHlwZTogUWRTdGF0dXNJbmRpY2F0b3JUeXBlO1xuICAgIGxldmVsOiBRZFN0YXR1c0luZGljYXRvckxldmVsO1xuICB9IHwgbnVsbDtcblxuICBpY29uPzogc3RyaW5nIHwgbnVsbDtcblxuICBib29sZWFuVmFsdWU/OiBib29sZWFuIHwgbnVsbDtcblxuICBjaGlwcz86IFFkY0NhcmRDaGlwW10gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFkY0NhcmRGb290ZXIge1xuICBpY29uPzogc3RyaW5nIHwgbnVsbDtcbiAgdGV4dD86IHN0cmluZyB8IG51bGw7XG4gIGFjdGlvbj86IFFkY0NhcmRBY3Rpb25Db25maWcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFkY0NhcmRDaGlwIHtcbiAgLyoqXG4gICAqIENvbG9yIG9mIHRoZSBjaGlwLiBEZWZhdWx0cyB0byAncHJpbWFyeScuXG4gICAqICovXG4gIHN0YXRlOiBRZENoaXBDb2xvcjtcblxuICAvKipcbiAgICogVGV4dCBzaG93biBpbnNpZGUgdGhlIGNoaXAuXG4gICAqICovXG4gIGxhYmVsOiB7XG4gICAgLyoqXG4gICAgICogVHJhbnNsYXRhYmxlIGxhYmVsIHRleHQuXG4gICAgICogKi9cbiAgICBpMThuOiBzdHJpbmc7XG4gIH07XG4gIC8qKlxuICAgKiBPcHRpb25hbCBpY29uIHRvIGRpc3BsYXkgaW5zaWRlIHRoZSBjaGlwLlxuICAgKiAqL1xufVxuIl19
@@ -0,0 +1,117 @@
1
+ import { Component, HostListener, Input, ViewChild } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { startWith } from 'rxjs/operators';
5
+ import { QdFormControl } from '@quadrel-enterprise-ui/framework';
6
+ import { QdcCardStatusSameHeightDirective } from './card-status/card-status-height.directive';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "@quadrel-enterprise-ui/framework";
11
+ import * as i4 from "./card-status/card-status.component";
12
+ import * as i5 from "./card-status/card-status-height.directive";
13
+ export class QdcCardLayoutComponent {
14
+ constructor(ngZone) {
15
+ this.ngZone = ngZone;
16
+ this.isMobile = false;
17
+ this.MAX_COLUMNS = 5;
18
+ this.statusTitlesDropDownConfig = {
19
+ label: { i18n: 'i18n.qdc-card.layout.mobile.dropdown.status.label' },
20
+ options: []
21
+ };
22
+ this.dropDownConfig = new BehaviorSubject(this.statusTitlesDropDownConfig);
23
+ this.selectedStatusTitle = new BehaviorSubject(null);
24
+ }
25
+ ngOnInit() {
26
+ this.checkColumnLimit();
27
+ this.updateLayoutState();
28
+ this.initializeDropDown();
29
+ }
30
+ ngOnChanges(changes) {
31
+ if (changes['config']?.currentValue) {
32
+ this.checkColumnLimit();
33
+ const defaultStatusLabel = this.config.cardStatusConfig[0]?.title.i18n ?? null;
34
+ if (defaultStatusLabel) {
35
+ this.updateSelectedStatus(defaultStatusLabel);
36
+ }
37
+ this.setDropDownConfig();
38
+ }
39
+ }
40
+ onPaginationChanged() {
41
+ this.ngZone.runOutsideAngular(() => {
42
+ requestAnimationFrame(() => {
43
+ queueMicrotask(() => this.cardStatusHeightDirective?.triggerUpdate());
44
+ });
45
+ });
46
+ }
47
+ onResize() {
48
+ const wasMobile = this.isMobile;
49
+ this.updateLayoutState();
50
+ if (!wasMobile && this.isMobile) {
51
+ this.initializeDropDown();
52
+ }
53
+ }
54
+ checkColumnLimit() {
55
+ if (this.config.cardStatusConfig.length > this.MAX_COLUMNS) {
56
+ throw new Error(`Too many columns. Max allowed is ${this.MAX_COLUMNS}.`);
57
+ }
58
+ }
59
+ updateLayoutState() {
60
+ this.isMobile = window.innerWidth <= 480;
61
+ }
62
+ initializeDropDown() {
63
+ const defaultStatusLabel = this.config.cardStatusConfig[0]?.title.i18n ?? null;
64
+ this.dropDownForm = new FormGroup({
65
+ statusTitle: new QdFormControl(defaultStatusLabel)
66
+ });
67
+ this.setDropDownConfig();
68
+ this.dropDownForm
69
+ .get('statusTitle')
70
+ ?.valueChanges.pipe(startWith(this.dropDownForm.get('statusTitle')?.value))
71
+ .subscribe(title => {
72
+ this.updateSelectedStatus(title);
73
+ });
74
+ }
75
+ updateSelectedStatus(title) {
76
+ if (!title) {
77
+ this.selectedStatusTitle.next(null);
78
+ return;
79
+ }
80
+ const statusConfig = this.config.cardStatusConfig.find(s => s.title.i18n === title);
81
+ if (statusConfig) {
82
+ this.selectedStatusTitle.next({
83
+ ...statusConfig,
84
+ title: { ...statusConfig.title },
85
+ cards: [...(statusConfig.cards ?? [])]
86
+ });
87
+ }
88
+ else {
89
+ this.selectedStatusTitle.next(null);
90
+ }
91
+ }
92
+ setDropDownConfig() {
93
+ const options = this.config.cardStatusConfig.map(status => ({
94
+ i18n: status.title.i18n,
95
+ value: status.title.i18n
96
+ }));
97
+ this.dropDownConfig.next({
98
+ ...this.dropDownConfig.value,
99
+ options
100
+ });
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardLayoutComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: QdcCardLayoutComponent, isStandalone: false, selector: "qdc-card-layout", inputs: { config: "config" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "cardStatusHeightDirective", first: true, predicate: QdcCardStatusSameHeightDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"qdc-card-layout__wrapper\">\n <div class=\"qdc-card-layout__container\">\n <div class=\"qdc-card-layout__layout-header\">\n <h1>{{ config.layoutTitle }}</h1>\n </div>\n\n <ng-container *ngIf=\"isMobile\">\n <form [formGroup]=\"dropDownForm\">\n <div class=\"qdc-card-layout__mobile-filter-grid\">\n <div class=\"cell\">\n <qd-dropdown formControlName=\"statusTitle\" [config]=\"dropDownConfig | async\"> </qd-dropdown>\n </div>\n </div>\n </form>\n </ng-container>\n\n <div class=\"qdc-card-layout__layout\" qdcCardStatusSameHeight>\n <ng-container *ngIf=\"!isMobile; else mobileLayout\">\n @for (status of config.cardStatusConfig; track status) {\n <qdc-card-status [config]=\"status\" class=\"qdc-card-status-item\" (paginationChanged)=\"onPaginationChanged()\">\n </qdc-card-status>\n }\n </ng-container>\n\n <ng-template #mobileLayout>\n <qdc-card-status *ngIf=\"selectedStatusTitle | async as status\" [config]=\"status\" class=\"qdc-card-status-item\">\n </qdc-card-status>\n </ng-template>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.qdc-card-layout__wrapper{font-family:Roboto,sans-serif;width:100%;box-sizing:border-box;justify-content:center;padding:1rem 0;background-color:#efefef;overflow-x:auto}.qdc-card-layout__container{box-sizing:border-box;flex-direction:column;gap:1rem}@media (max-width: 959.98px){.qdc-card-layout__container{width:100%}}.qdc-card-layout__layout-header{align-items:center}.qdc-card-layout__layout-header h1{margin:0;font-family:Roboto,sans-serif;font-size:16px;font-weight:500;letter-spacing:.15px;line-height:100%;vertical-align:middle}.qdc-card-layout__layout{display:flex;box-sizing:border-box;padding:10px 25px 25px;gap:1rem}@media (max-width: 959.98px){.qdc-card-layout__layout{flex-direction:column;gap:6px}}.qdc-card-status-item{min-width:400px;max-width:100%;flex:1 1 0}@media (max-width: 959.98px){.qdc-card-status-item{width:100%!important;min-width:0}}@media (max-width: 959.98px){.qdc-card-layout__mobile-filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;padding-left:10px}.qdc-card-layout__mobile-filter-grid .cell{grid-column:2}}@media (max-width: 599.98px){.qdc-card-layout__mobile-filter-grid .cell{grid-column:1}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.QdDropdownComponent, selector: "qd-dropdown", inputs: ["value", "id", "formControlName", "config", "data-test-id", "qdPopoverMaxHeight", "dense"], outputs: ["valueChange", "enterClick", "clickHint", "clickReadonly", "clickViewonly"] }, { kind: "component", type: i4.QdcCardStatusComponent, selector: "qdc-card-status", inputs: ["config"], outputs: ["paginationChanged"] }, { kind: "directive", type: i5.QdcCardStatusSameHeightDirective, selector: "[qdcCardStatusSameHeight]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardLayoutComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'qdc-card-layout', standalone: false, template: "<div class=\"qdc-card-layout__wrapper\">\n <div class=\"qdc-card-layout__container\">\n <div class=\"qdc-card-layout__layout-header\">\n <h1>{{ config.layoutTitle }}</h1>\n </div>\n\n <ng-container *ngIf=\"isMobile\">\n <form [formGroup]=\"dropDownForm\">\n <div class=\"qdc-card-layout__mobile-filter-grid\">\n <div class=\"cell\">\n <qd-dropdown formControlName=\"statusTitle\" [config]=\"dropDownConfig | async\"> </qd-dropdown>\n </div>\n </div>\n </form>\n </ng-container>\n\n <div class=\"qdc-card-layout__layout\" qdcCardStatusSameHeight>\n <ng-container *ngIf=\"!isMobile; else mobileLayout\">\n @for (status of config.cardStatusConfig; track status) {\n <qdc-card-status [config]=\"status\" class=\"qdc-card-status-item\" (paginationChanged)=\"onPaginationChanged()\">\n </qdc-card-status>\n }\n </ng-container>\n\n <ng-template #mobileLayout>\n <qdc-card-status *ngIf=\"selectedStatusTitle | async as status\" [config]=\"status\" class=\"qdc-card-status-item\">\n </qdc-card-status>\n </ng-template>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.qdc-card-layout__wrapper{font-family:Roboto,sans-serif;width:100%;box-sizing:border-box;justify-content:center;padding:1rem 0;background-color:#efefef;overflow-x:auto}.qdc-card-layout__container{box-sizing:border-box;flex-direction:column;gap:1rem}@media (max-width: 959.98px){.qdc-card-layout__container{width:100%}}.qdc-card-layout__layout-header{align-items:center}.qdc-card-layout__layout-header h1{margin:0;font-family:Roboto,sans-serif;font-size:16px;font-weight:500;letter-spacing:.15px;line-height:100%;vertical-align:middle}.qdc-card-layout__layout{display:flex;box-sizing:border-box;padding:10px 25px 25px;gap:1rem}@media (max-width: 959.98px){.qdc-card-layout__layout{flex-direction:column;gap:6px}}.qdc-card-status-item{min-width:400px;max-width:100%;flex:1 1 0}@media (max-width: 959.98px){.qdc-card-status-item{width:100%!important;min-width:0}}@media (max-width: 959.98px){.qdc-card-layout__mobile-filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;padding-left:10px}.qdc-card-layout__mobile-filter-grid .cell{grid-column:2}}@media (max-width: 599.98px){.qdc-card-layout__mobile-filter-grid .cell{grid-column:1}}\n"] }]
108
+ }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { config: [{
109
+ type: Input
110
+ }], cardStatusHeightDirective: [{
111
+ type: ViewChild,
112
+ args: [QdcCardStatusSameHeightDirective]
113
+ }], onResize: [{
114
+ type: HostListener,
115
+ args: ['window:resize']
116
+ }] } });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZGMtY2FyZHMvc3JjL2xpYi9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvbGliL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBb0MsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUErQixNQUFNLGtDQUFrQyxDQUFDO0FBRzlGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7O0FBUzlGLE1BQU0sT0FBTyxzQkFBc0I7SUFvQmpDLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZGxDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDUixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUlqQiwrQkFBMEIsR0FBZ0M7WUFDaEUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLG1EQUFtRCxFQUFFO1lBQ3BFLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUVGLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRW5HLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUE2QixJQUFJLENBQUMsQ0FBQztJQUV2QyxDQUFDO0lBRXRDLFFBQVE7UUFDTixJ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ZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUWRGb3JtQ29udHJvbCwgUWRGb3JtRHJvcGRvd25Db25maWd1cmF0aW9uIH0gZnJvbSAnQHF1YWRyZWwtZW50ZXJwcmlzZS11aS9mcmFtZXdvcmsnO1xuXG5pbXBvcnQgeyBRZGNDYXJkTGF5b3V0Q29uZmlnIH0gZnJvbSAnLi9jYXJkLWxheW91dC5tb2RlbCc7XG5pbXBvcnQgeyBRZGNDYXJkU3RhdHVzU2FtZUhlaWdodERpcmVjdGl2ZSB9IGZyb20gJy4vY2FyZC1zdGF0dXMvY2FyZC1zdGF0dXMtaGVpZ2h0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBRZGNDYXJkU3RhdHVzQ29uZmlnIH0gZnJvbSAnLi9jYXJkLXN0YXR1cy9jYXJkLXN0YXR1cy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3FkYy1jYXJkLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYXJkLWxheW91dC5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFFkY0NhcmRMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbmZpZyE6IFFkY0NhcmRMYXlvdXRDb25maWc7XG5cbiAgQFZpZXdDaGlsZChRZGNDYXJkU3RhdHVzU2FtZUhlaWdodERpcmVjdGl2ZSlcbiAgY2FyZFN0YXR1c0hlaWdodERpcmVjdGl2ZT86IFFkY0NhcmRTdGF0dXNTYW1lSGVpZ2h0RGlyZWN0aXZlO1xuXG4gIGlzTW9iaWxlID0gZmFsc2U7XG4gIHJlYWRvbmx5IE1BWF9DT0xVTU5TID0gNTtcblxuICBkcm9wRG93bkZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgcHJpdmF0ZSBzdGF0dXNUaXRsZXNEcm9wRG93bkNvbmZpZzogUWRGb3JtRHJvcGRvd25Db25maWd1cmF0aW9uID0ge1xuICAgIGxhYmVsOiB7IGkxOG46ICdpMThuLnFkYy1jYXJkLmxheW91dC5tb2JpbGUuZHJvcGRvd24uc3RhdHVzLmxhYmVsJyB9LFxuICAgIG9wdGlvbnM6IFtdXG4gIH07XG5cbiAgZHJvcERvd25Db25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFFkRm9ybURyb3Bkb3duQ29uZmlndXJhdGlvbj4odGhpcy5zdGF0dXNUaXRsZXNEcm9wRG93bkNvbmZpZyk7XG5cbiAgc2VsZWN0ZWRTdGF0dXNUaXRsZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UWRjQ2FyZFN0YXR1c0NvbmZpZyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0NvbHVtbkxpbWl0KCk7XG4gICAgdGhpcy51cGRhdGVMYXlvdXRTdGF0ZSgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZURyb3BEb3duKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY2hlY2tDb2x1bW5MaW1pdCgpO1xuXG4gICAgICBjb25zdCBkZWZhdWx0U3RhdHVzTGFiZWwgPSB0aGlzLmNvbmZpZy5jYXJkU3RhdHVzQ29uZmlnWzBdPy50aXRsZS5pMThuID8/IG51bGw7XG4gICAgICBpZiAoZGVmYXVsdFN0YXR1c0xhYmVsKSB7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTdGF0dXMoZGVmYXVsdFN0YXR1c0xhYmVsKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXREcm9wRG93bkNvbmZpZygpO1xuICAgIH1cbiAgfVxuXG4gIG9uUGFnaW5hdGlvbkNoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5jYXJkU3RhdHVzSGVpZ2h0RGlyZWN0aXZlPy50cmlnZ2VyVXBkYXRlKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgY29uc3Qgd2FzTW9iaWxlID0gdGhpcy5pc01vYmlsZTtcbiAgICB0aGlzLnVwZGF0ZUxheW91dFN0YXRlKCk7XG4gICAgaWYgKCF3YXNNb2JpbGUgJiYgdGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplRHJvcERvd24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ29sdW1uTGltaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmNhcmRTdGF0dXNDb25maWcubGVuZ3RoID4gdGhpcy5NQVhfQ09MVU1OUykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUb28gbWFueSBjb2x1bW5zLiBNYXggYWxsb3dlZCBpcyAke3RoaXMuTUFYX0NPTFVNTlN9LmApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGF5b3V0U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc01vYmlsZSA9IHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ4MDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURyb3BEb3duKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRTdGF0dXNMYWJlbCA9IHRoaXMuY29uZmlnLmNhcmRTdGF0dXNDb25maWdbMF0/LnRpdGxlLmkxOG4gPz8gbnVsbDtcblxuICAgIHRoaXMuZHJvcERvd25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBzdGF0dXNUaXRsZTogbmV3IFFkRm9ybUNvbnRyb2woZGVmYXVsdFN0YXR1c0xhYmVsKVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXREcm9wRG93bkNvbmZpZygpO1xuXG4gICAgdGhpcy5kcm9wRG93bkZvcm1cbiAgICAgIC5nZXQoJ3N0YXR1c1RpdGxlJylcbiAgICAgID8udmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZHJvcERvd25Gb3JtLmdldCgnc3RhdHVzVGl0bGUnKT8udmFsdWUpKVxuICAgICAgLnN1YnNjcmliZSh0aXRsZSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTdGF0dXModGl0bGUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkU3RhdHVzKHRpdGxlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF0aXRsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFN0YXR1c1RpdGxlLm5leHQobnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdHVzQ29uZmlnID0gdGhpcy5jb25maWcuY2FyZFN0YXR1c0NvbmZpZy5maW5kKHMgPT4gcy50aXRsZS5pMThuID09PSB0aXRsZSk7XG5cbiAgICBpZiAoc3RhdHVzQ29uZmlnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU3RhdHVzVGl0bGUubmV4dCh7XG4gICAgICAgIC4uLnN0YXR1c0NvbmZpZyxcbiAgICAgICAgdGl0bGU6IHsgLi4uc3RhdHVzQ29uZmlnLnRpdGxlIH0sXG4gICAgICAgIGNhcmRzOiBbLi4uKHN0YXR1c0NvbmZpZy5jYXJkcyA/PyBbXSldXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFN0YXR1c1RpdGxlLm5leHQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXREcm9wRG93bkNvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcuY2FyZFN0YXR1c0NvbmZpZy5tYXAoc3RhdHVzID0+ICh7XG4gICAgICBpMThuOiBzdGF0dXMudGl0bGUuaTE4bixcbiAgICAgIHZhbHVlOiBzdGF0dXMudGl0bGUuaTE4blxuICAgIH0pKTtcblxuICAgIHRoaXMuZHJvcERvd25Db25maWcubmV4dCh7XG4gICAgICAuLi50aGlzLmRyb3BEb3duQ29uZmlnLnZhbHVlLFxuICAgICAgb3B0aW9uc1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicWRjLWNhcmQtbGF5b3V0X193cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJxZGMtY2FyZC1sYXlvdXRfX2NvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJxZGMtY2FyZC1sYXlvdXRfX2xheW91dC1oZWFkZXJcIj5cbiAgICAgIDxoMT57eyBjb25maWcubGF5b3V0VGl0bGUgfX08L2gxPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTW9iaWxlXCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRyb3BEb3duRm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicWRjLWNhcmQtbGF5b3V0X19tb2JpbGUtZmlsdGVyLWdyaWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiPlxuICAgICAgICAgICAgPHFkLWRyb3Bkb3duIGZvcm1Db250cm9sTmFtZT1cInN0YXR1c1RpdGxlXCIgW2NvbmZpZ109XCJkcm9wRG93bkNvbmZpZyB8IGFzeW5jXCI+IDwvcWQtZHJvcGRvd24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cInFkYy1jYXJkLWxheW91dF9fbGF5b3V0XCIgcWRjQ2FyZFN0YXR1c1NhbWVIZWlnaHQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTW9iaWxlOyBlbHNlIG1vYmlsZUxheW91dFwiPlxuICAgICAgICBAZm9yIChzdGF0dXMgb2YgY29uZmlnLmNhcmRTdGF0dXNDb25maWc7IHRyYWNrIHN0YXR1cykge1xuICAgICAgICA8cWRjLWNhcmQtc3RhdHVzIFtjb25maWddPVwic3RhdHVzXCIgY2xhc3M9XCJxZGMtY2FyZC1zdGF0dXMtaXRlbVwiIChwYWdpbmF0aW9uQ2hhbmdlZCk9XCJvblBhZ2luYXRpb25DaGFuZ2VkKClcIj5cbiAgICAgICAgPC9xZGMtY2FyZC1zdGF0dXM+XG4gICAgICAgIH1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI21vYmlsZUxheW91dD5cbiAgICAgICAgPHFkYy1jYXJkLXN0YXR1cyAqbmdJZj1cInNlbGVjdGVkU3RhdHVzVGl0bGUgfCBhc3luYyBhcyBzdGF0dXNcIiBbY29uZmlnXT1cInN0YXR1c1wiIGNsYXNzPVwicWRjLWNhcmQtc3RhdHVzLWl0ZW1cIj5cbiAgICAgICAgPC9xZGMtY2FyZC1zdGF0dXM+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvbGliL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRZGNDYXJkU3RhdHVzQ29uZmlnIH0gZnJvbSAnLi9jYXJkLXN0YXR1cy9jYXJkLXN0YXR1cy5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRjQ2FyZExheW91dENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgY2FyZHMgbGF5b3V0IGNvbXBvbmVudFxuICAgKiAqL1xuICBsYXlvdXRUaXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb2x1bW4gd2l0aCBjYXJkcyAobWF4IDUpXG4gICAqICovXG4gIGNhcmRTdGF0dXNDb25maWc6IFFkY0NhcmRTdGF0dXNDb25maWdbXTtcbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { QdUiModule } from '@quadrel-enterprise-ui/framework';
6
+ import { QdcCardModule } from '../card/card.module';
7
+ import { QdcCardLayoutComponent } from './card-layout.component';
8
+ import { QdcCardStatusComponent } from './card-status/card-status.component';
9
+ import { QdcCardStatusSameHeightDirective } from './card-status/card-status-height.directive';
10
+ import * as i0 from "@angular/core";
11
+ export { QdcCardLayoutComponent, QdcCardStatusComponent, QdcCardStatusSameHeightDirective };
12
+ export class QdcCardLayoutModule {
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: QdcCardLayoutModule, declarations: [QdcCardLayoutComponent, QdcCardStatusComponent, QdcCardStatusSameHeightDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, QdUiModule, QdcCardModule], exports: [QdcCardLayoutComponent, QdcCardStatusComponent, QdcCardStatusSameHeightDirective] }); }
15
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardLayoutModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, QdUiModule, QdcCardModule] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardLayoutModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, QdUiModule, QdcCardModule],
21
+ declarations: [QdcCardLayoutComponent, QdcCardStatusComponent, QdcCardStatusSameHeightDirective],
22
+ exports: [QdcCardLayoutComponent, QdcCardStatusComponent, QdcCardStatusSameHeightDirective]
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZGMtY2FyZHMvc3JjL2xpYi9jYXJkLWxheW91dC9jYXJkLWxheW91dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQUU5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztBQVE1RixNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixpQkFIZixzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxnQ0FBZ0MsYUFGckYsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsYUFHMUYsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsZ0NBQWdDO2dIQUUvRSxtQkFBbUIsWUFMcEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWE7OzRGQUt6RixtQkFBbUI7a0JBTi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQztvQkFFckcsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsZ0NBQWdDLENBQUM7b0JBQ2hHLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLGdDQUFnQyxDQUFDO2lCQUM1RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgUWRVaU1vZHVsZSB9IGZyb20gJ0BxdWFkcmVsLWVudGVycHJpc2UtdWkvZnJhbWV3b3JrJztcblxuaW1wb3J0IHsgUWRjQ2FyZE1vZHVsZSB9IGZyb20gJy4uL2NhcmQvY2FyZC5tb2R1bGUnO1xuaW1wb3J0IHsgUWRjQ2FyZExheW91dENvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFFkY0NhcmRTdGF0dXNDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtc3RhdHVzL2NhcmQtc3RhdHVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRZGNDYXJkU3RhdHVzU2FtZUhlaWdodERpcmVjdGl2ZSB9IGZyb20gJy4vY2FyZC1zdGF0dXMvY2FyZC1zdGF0dXMtaGVpZ2h0LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB7IFFkY0NhcmRMYXlvdXRDb21wb25lbnQsIFFkY0NhcmRTdGF0dXNDb21wb25lbnQsIFFkY0NhcmRTdGF0dXNTYW1lSGVpZ2h0RGlyZWN0aXZlIH07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFFkVWlNb2R1bGUsIFFkY0NhcmRNb2R1bGVdLFxuXG4gIGRlY2xhcmF0aW9uczogW1FkY0NhcmRMYXlvdXRDb21wb25lbnQsIFFkY0NhcmRTdGF0dXNDb21wb25lbnQsIFFkY0NhcmRTdGF0dXNTYW1lSGVpZ2h0RGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1FkY0NhcmRMYXlvdXRDb21wb25lbnQsIFFkY0NhcmRTdGF0dXNDb21wb25lbnQsIFFkY0NhcmRTdGF0dXNTYW1lSGVpZ2h0RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBRZGNDYXJkTGF5b3V0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class QdcCardStatusSameHeightDirective {
4
+ constructor(el, renderer) {
5
+ this.el = el;
6
+ this.renderer = renderer;
7
+ }
8
+ ngAfterViewInit() {
9
+ this.updateHeights();
10
+ }
11
+ onResize() {
12
+ this.updateHeights();
13
+ }
14
+ triggerUpdate() {
15
+ this.updateHeights();
16
+ }
17
+ updateHeights() {
18
+ const container = this.el.nativeElement;
19
+ const items = container.querySelectorAll('.qd-status__cards');
20
+ if (!items || items.length === 0)
21
+ return;
22
+ // Reset all heights
23
+ items.forEach((item) => {
24
+ this.renderer.setStyle(item, 'height', 'auto');
25
+ });
26
+ // Find the tallest one
27
+ let maxHeight = 0;
28
+ items.forEach((item) => {
29
+ const h = item.offsetHeight;
30
+ if (h > maxHeight)
31
+ maxHeight = h;
32
+ });
33
+ // Apply max height to all
34
+ items.forEach((item) => {
35
+ this.renderer.setStyle(item, 'height', `${maxHeight}px`);
36
+ });
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardStatusSameHeightDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: QdcCardStatusSameHeightDirective, isStandalone: false, selector: "[qdcCardStatusSameHeight]", host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdcCardStatusSameHeightDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: '[qdcCardStatusSameHeight]',
45
+ standalone: false
46
+ }]
47
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { onResize: [{
48
+ type: HostListener,
49
+ args: ['window:resize']
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1zdGF0dXMtaGVpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWRjLWNhcmRzL3NyYy9saWIvY2FyZC1sYXlvdXQvY2FyZC1zdGF0dXMvY2FyZC1zdGF0dXMtaGVpZ2h0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBTTlGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsWUFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQUcsQ0FBQztJQUVuRSxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQTRCLENBQUM7UUFDdkQsTUFBTSxLQUFLLEdBQTRCLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUV6QyxvQkFBb0I7UUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWlCLEVBQVEsRUFBRTtZQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBaUIsRUFBUSxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDNUIsSUFBSSxDQUFDLEdBQUcsU0FBUztnQkFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsMEJBQTBCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFpQixFQUFRLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXRDVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsS0FBSztpQkFDbEI7dUdBU0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1txZGNDYXJkU3RhdHVzU2FtZUhlaWdodF0nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBRZGNDYXJkU3RhdHVzU2FtZUhlaWdodERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlSGVpZ2h0cygpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uUmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlSGVpZ2h0cygpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJVcGRhdGUoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVIZWlnaHRzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhlaWdodHMoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGl0ZW1zOiBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PiA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcucWQtc3RhdHVzX19jYXJkcycpO1xuXG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIC8vIFJlc2V0IGFsbCBoZWlnaHRzXG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogSFRNTEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaXRlbSwgJ2hlaWdodCcsICdhdXRvJyk7XG4gICAgfSk7XG5cbiAgICAvLyBGaW5kIHRoZSB0YWxsZXN0IG9uZVxuICAgIGxldCBtYXhIZWlnaHQgPSAwO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IEhUTUxFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBoID0gaXRlbS5vZmZzZXRIZWlnaHQ7XG4gICAgICBpZiAoaCA+IG1heEhlaWdodCkgbWF4SGVpZ2h0ID0gaDtcbiAgICB9KTtcblxuICAgIC8vIEFwcGx5IG1heCBoZWlnaHQgdG8gYWxsXG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogSFRNTEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaXRlbSwgJ2hlaWdodCcsIGAke21heEhlaWdodH1weGApO1xuICAgIH0pO1xuICB9XG59XG4iXX0=