@quadrel-enterprise-ui/qdc-cards 19.1.0 → 20.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 (59) hide show
  1. package/esm2022/index.js +3 -0
  2. package/esm2022/index.js.map +1 -0
  3. package/esm2022/lib/card/{card.component.mjs → card.component.js} +14 -14
  4. package/esm2022/lib/card/card.component.js.map +1 -0
  5. package/esm2022/lib/card/card.model.js +2 -0
  6. package/esm2022/lib/card/card.model.js.map +1 -0
  7. package/esm2022/lib/card/card.module.js +23 -0
  8. package/esm2022/lib/card/card.module.js.map +1 -0
  9. package/esm2022/lib/card/menu/{card-menu.component.mjs → card-menu.component.js} +4 -4
  10. package/esm2022/lib/card/menu/card-menu.component.js.map +1 -0
  11. package/esm2022/lib/card/model/card-actions-config.interface.js +2 -0
  12. package/esm2022/lib/card/model/card-actions-config.interface.js.map +1 -0
  13. package/esm2022/lib/card-layout/card-layout.component.js +117 -0
  14. package/esm2022/lib/card-layout/card-layout.component.js.map +1 -0
  15. package/esm2022/lib/card-layout/card-layout.model.js +2 -0
  16. package/esm2022/lib/card-layout/card-layout.model.js.map +1 -0
  17. package/esm2022/lib/card-layout/card-layout.module.js +25 -0
  18. package/esm2022/lib/card-layout/card-layout.module.js.map +1 -0
  19. package/esm2022/lib/card-layout/card-status/card-status-height.directive.js +51 -0
  20. package/esm2022/lib/card-layout/card-status/card-status-height.directive.js.map +1 -0
  21. package/esm2022/lib/card-layout/card-status/card-status.component.js +112 -0
  22. package/esm2022/lib/card-layout/card-status/card-status.component.js.map +1 -0
  23. package/esm2022/lib/card-layout/card-status/card-status.model.js +2 -0
  24. package/esm2022/lib/card-layout/card-status/card-status.model.js.map +1 -0
  25. package/esm2022/lib/card-layout/card-status/pagination/pagination.model.js +2 -0
  26. package/esm2022/lib/card-layout/card-status/pagination/pagination.model.js.map +1 -0
  27. package/esm2022/lib/shared/popover/cards-popover.module.js +19 -0
  28. package/esm2022/lib/shared/popover/cards-popover.module.js.map +1 -0
  29. package/esm2022/lib/shared/popover/cards-popover.service.js +23 -0
  30. package/esm2022/lib/shared/popover/cards-popover.service.js.map +1 -0
  31. package/esm2022/lib/shared/popover/popover/cards-popover.component.js +14 -0
  32. package/esm2022/lib/shared/popover/popover/cards-popover.component.js.map +1 -0
  33. package/esm2022/lib/shared/popover/popover-on-click/cards-popover-on-click.directive.js +100 -0
  34. package/esm2022/lib/shared/popover/popover-on-click/cards-popover-on-click.directive.js.map +1 -0
  35. package/esm2022/quadrel-enterprise-ui-qdc-cards.js +5 -0
  36. package/esm2022/quadrel-enterprise-ui-qdc-cards.js.map +1 -0
  37. package/lib/card/card.component.d.ts +2 -3
  38. package/lib/card/model/card-actions-config.interface.d.ts +2 -5
  39. package/lib/card-layout/card-layout.component.d.ts +2 -3
  40. package/lib/card-layout/card-status/card-status-height.directive.d.ts +1 -2
  41. package/lib/shared/popover/popover-on-click/cards-popover-on-click.directive.d.ts +2 -4
  42. package/package.json +10 -10
  43. package/quadrel-enterprise-ui-qdc-cards.d.ts +5 -0
  44. package/esm2022/index.mjs +0 -3
  45. package/esm2022/lib/card/card.model.mjs +0 -2
  46. package/esm2022/lib/card/card.module.mjs +0 -23
  47. package/esm2022/lib/card/model/card-actions-config.interface.mjs +0 -2
  48. package/esm2022/lib/card-layout/card-layout.component.mjs +0 -117
  49. package/esm2022/lib/card-layout/card-layout.model.mjs +0 -2
  50. package/esm2022/lib/card-layout/card-layout.module.mjs +0 -25
  51. package/esm2022/lib/card-layout/card-status/card-status-height.directive.mjs +0 -51
  52. package/esm2022/lib/card-layout/card-status/card-status.component.mjs +0 -112
  53. package/esm2022/lib/card-layout/card-status/card-status.model.mjs +0 -2
  54. package/esm2022/lib/card-layout/card-status/pagination/pagination.model.mjs +0 -2
  55. package/esm2022/lib/shared/popover/cards-popover.module.mjs +0 -19
  56. package/esm2022/lib/shared/popover/cards-popover.service.mjs +0 -23
  57. package/esm2022/lib/shared/popover/popover/cards-popover.component.mjs +0 -14
  58. package/esm2022/lib/shared/popover/popover-on-click/cards-popover-on-click.directive.mjs +0 -100
  59. package/esm2022/quadrel-enterprise-ui-qdc-cards.mjs +0 -5
@@ -0,0 +1,112 @@
1
+ import { Component, EventEmitter, HostListener, Input, Output, ViewChild, inject } from '@angular/core';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@quadrel-enterprise-ui/framework";
7
+ import * as i4 from "../../card/card.component";
8
+ import * as i5 from "@ngx-translate/core";
9
+ export class QdcCardStatusComponent {
10
+ constructor() {
11
+ this.paginationChanged = new EventEmitter();
12
+ this.translate = inject(TranslateService);
13
+ this.isDropdownOpen = false;
14
+ this.hideEntriesLabel = window.innerWidth <= 1600;
15
+ this.defaultPageSizes = [5, 10, 20, 50];
16
+ }
17
+ ngOnInit() {
18
+ if (this.config?.pagination) {
19
+ if (!this.config.pagination.pageSizes || this.config.pagination.pageSizes.length === 0) {
20
+ this.config.pagination.pageSizes = this.defaultPageSizes;
21
+ }
22
+ if (!this.config.pagination.pageSize) {
23
+ this.config.pagination.pageSize = this.config.pagination.pageSizes[0];
24
+ }
25
+ if (this.config.pagination.currentPage == null) {
26
+ this.config.pagination.currentPage = 0;
27
+ }
28
+ }
29
+ }
30
+ get pagedCards() {
31
+ return this.config.cards;
32
+ }
33
+ get pagination() {
34
+ return this.config.pagination;
35
+ }
36
+ goToPage(delta) {
37
+ if (!this.pagination)
38
+ return;
39
+ const newPage = this.pagination.currentPage + delta;
40
+ if (newPage >= 0 && newPage < this.pagination.totalPages) {
41
+ this.pagination.currentPage = newPage; // update current page
42
+ this.pagination.handler(newPage, this.pagination.pageSize);
43
+ this.paginationChanged.emit();
44
+ }
45
+ }
46
+ goToFirstPage() {
47
+ if (this.pagination && this.pagination.currentPage !== 0) {
48
+ this.pagination.currentPage = 0;
49
+ this.pagination.handler(0, this.pagination.pageSize);
50
+ this.paginationChanged.emit();
51
+ }
52
+ }
53
+ goToLastPage() {
54
+ if (!this.pagination)
55
+ return;
56
+ const last = this.pagination.totalPages - 1;
57
+ if (last >= 0 && this.pagination.currentPage !== last) {
58
+ this.pagination.currentPage = last;
59
+ this.pagination.handler(last, this.pagination.pageSize);
60
+ this.paginationChanged.emit();
61
+ }
62
+ }
63
+ onPageSizeChange() {
64
+ if (this.pagination) {
65
+ // ngModel has already updated pageSize here
66
+ const totalPages = Math.ceil(this.pagination.totalElements / this.pagination.pageSize);
67
+ // If the current page is out of range, snap it to the last page
68
+ if (this.pagination.currentPage >= totalPages) {
69
+ this.pagination.currentPage = Math.max(0, totalPages - 1);
70
+ }
71
+ this.pagination.handler(this.pagination.currentPage, this.pagination.pageSize);
72
+ this.paginationChanged.emit();
73
+ }
74
+ }
75
+ toggleDropdownIcon() {
76
+ this.isDropdownOpen = !this.isDropdownOpen;
77
+ }
78
+ onResize() {
79
+ this.hideEntriesLabel = window.innerWidth <= 1600;
80
+ }
81
+ getPaginationInfo() {
82
+ if (!this.pagination)
83
+ return '';
84
+ const total = this.pagination.totalElements;
85
+ const pageSize = this.pagination.pageSize;
86
+ const currentPage = this.pagination.currentPage;
87
+ const start = total === 0 ? 0 : currentPage * pageSize + 1;
88
+ const end = Math.min(start + pageSize - 1, total);
89
+ return this.translate.instant('i18n.qdc-card.status.pagination.service.from.label', {
90
+ start,
91
+ end,
92
+ total
93
+ });
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: QdcCardStatusComponent, isStandalone: false, selector: "qdc-card-status", inputs: { config: "config" }, outputs: { paginationChanged: "paginationChanged" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "cardsContainer", first: true, predicate: ["cardsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"qdc-status__container\">\n <div class=\"qdc-status__header\">\n {{ config.title.i18n | translate }}\n </div>\n\n <div class=\"qdc-status__cards\" #cardsContainer [ngClass]=\"{ empty: !config.cards || config.cards.length === 0 }\">\n @if (!config.cards || config.cards.length === 0) {\n <div class=\"qdc-status_no-cards-message\">\n {{ \"i18n.qdc-cards.status.noCards.label\" | translate | placeholder : \"title\" : (config.title.i18n | translate) }}\n </div>\n } @else { @for (card of pagedCards; track card) {\n <qdc-card [cardConfig]=\"card\"></qdc-card>\n } @if (config.pagination) {\n <div class=\"qdc-status__pagination-row\">\n <div>\n @if (!hideEntriesLabel) {\n <span>\n {{ \"i18n.qdc-card.status.pagination.service.entries.label\" | translate }}\n </span>\n }\n\n <select\n style=\"\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 0;\n outline: 0;\n box-shadow: none;\n background: transparent;\n padding-left: 5px;\n font-family: Roboto, Arial, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;\n color: rgb(69, 69, 69);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.3125rem;\n \"\n [(ngModel)]=\"config.pagination.pageSize\"\n (ngModelChange)=\"onPageSizeChange()\"\n (click)=\"toggleDropdownIcon()\"\n >\n @for (size of pagination?.pageSizes; track size) {\n <option [ngValue]=\"size\">{{ size }}</option>\n }\n </select>\n\n <qd-icon [icon]=\"isDropdownOpen ? 'ctrlTop' : 'ctrlDown'\"></qd-icon>\n </div>\n\n <div class=\"qdc-status__pagination-info\">\n <span class=\"qdc-status__pagination-info__text\">\n {{ getPaginationInfo() }}\n </span>\n </div>\n\n <div>\n <button qdIconButton [disabled]=\"pagination?.currentPage === 0\" (click)=\"goToFirstPage()\">\n <qd-icon icon=\"pageFirst1\"></qd-icon>\n </button>\n <button qdIconButton [disabled]=\"pagination?.currentPage === 0\" (click)=\"goToPage(-1)\">\n <qd-icon icon=\"triangleLeftSolid\"></qd-icon>\n </button>\n <button\n qdIconButton\n [disabled]=\"pagination?.currentPage >= (pagination?.totalPages ?? 1) - 1\"\n (click)=\"goToPage(1)\"\n >\n <qd-icon icon=\"triangleRightSolid\"></qd-icon>\n </button>\n <button\n qdIconButton\n [disabled]=\"pagination?.currentPage >= (pagination?.totalPages ?? 1) - 1\"\n (click)=\"goToLastPage()\"\n >\n <qd-icon icon=\"pageLast\"></qd-icon>\n </button>\n </div>\n </div>\n } }\n </div>\n </div>\n", styles: [".qdc-status__container{font-family:Roboto,sans-serif;display:flex;width:100%;max-width:906px;box-sizing:border-box;flex-direction:column;padding:0;border-radius:8px;background-color:#efefef}.qdc-status__header{display:flex;width:100%;height:50px;box-sizing:border-box;align-items:center;padding:0 24px;background-color:#e5e5e5;font-family:Roboto,sans-serif;font-size:16px;font-weight:500;letter-spacing:.15px;line-height:100%;vertical-align:middle}.qdc-status__cards{min-height:265px;box-sizing:border-box;flex-direction:row;flex-wrap:wrap;padding:1rem 1.5rem;border:1px solid #e5e5e5;scrollbar-width:none}@media screen and (min-width: 480px){.qdc-status__cards{max-height:700px;overflow-y:scroll;overflow-x:hidden}}.qdc-status__cards.empty{min-height:265px;align-items:center;justify-content:center;padding:0}.qdc-status_no-cards-message{padding:40px 0;color:#979797;font-family:Roboto,sans-serif;font-size:12px;font-weight:400;line-height:14px;text-align:center}.qdc-status__pagination-row{border-top:1px solid rgba(0,0,0,.1);margin-top:1rem;color:#454545;font-size:.875rem;font-weight:400;line-height:1.3125rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding-left:.75rem;flex-wrap:nowrap;white-space:nowrap;min-height:clamp(36px,5.5vw,44px);padding-block-end:2.8125rem}button.qd-icon-button{border:none;border-left:.0625rem solid rgb(229,229,229);border-radius:unset}@media (max-width: 480px){.qdc-status__container{padding:0}.qdc-status__cards{flex-direction:column;padding:0}.qdc-status__header{padding:0}.qdc-status__pagination-info{min-width:0;overflow:hidden}.qdc-status__pagination-info__text{display:inline-block;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}@media (max-width: 480px) and (max-width: 480px){.qdc-status__pagination-info__text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;overflow:hidden;word-break:break-word}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.QdIconButtonComponent, selector: "button[qdIconButton], a[qdIconButton], button[qd-icon-button]", inputs: ["color", "data-test-id"] }, { kind: "component", type: i3.QdIconComponent, selector: "qd-icon", inputs: ["icon"] }, { kind: "component", type: i4.QdcCardComponent, selector: "qdc-card", inputs: ["cardConfig", "data-test-id"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i3.QdPlaceholderPipe, name: "placeholder" }] }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardStatusComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'qdc-card-status', standalone: false, template: "<div class=\"qdc-status__container\">\n <div class=\"qdc-status__header\">\n {{ config.title.i18n | translate }}\n </div>\n\n <div class=\"qdc-status__cards\" #cardsContainer [ngClass]=\"{ empty: !config.cards || config.cards.length === 0 }\">\n @if (!config.cards || config.cards.length === 0) {\n <div class=\"qdc-status_no-cards-message\">\n {{ \"i18n.qdc-cards.status.noCards.label\" | translate | placeholder : \"title\" : (config.title.i18n | translate) }}\n </div>\n } @else { @for (card of pagedCards; track card) {\n <qdc-card [cardConfig]=\"card\"></qdc-card>\n } @if (config.pagination) {\n <div class=\"qdc-status__pagination-row\">\n <div>\n @if (!hideEntriesLabel) {\n <span>\n {{ \"i18n.qdc-card.status.pagination.service.entries.label\" | translate }}\n </span>\n }\n\n <select\n style=\"\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 0;\n outline: 0;\n box-shadow: none;\n background: transparent;\n padding-left: 5px;\n font-family: Roboto, Arial, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;\n color: rgb(69, 69, 69);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.3125rem;\n \"\n [(ngModel)]=\"config.pagination.pageSize\"\n (ngModelChange)=\"onPageSizeChange()\"\n (click)=\"toggleDropdownIcon()\"\n >\n @for (size of pagination?.pageSizes; track size) {\n <option [ngValue]=\"size\">{{ size }}</option>\n }\n </select>\n\n <qd-icon [icon]=\"isDropdownOpen ? 'ctrlTop' : 'ctrlDown'\"></qd-icon>\n </div>\n\n <div class=\"qdc-status__pagination-info\">\n <span class=\"qdc-status__pagination-info__text\">\n {{ getPaginationInfo() }}\n </span>\n </div>\n\n <div>\n <button qdIconButton [disabled]=\"pagination?.currentPage === 0\" (click)=\"goToFirstPage()\">\n <qd-icon icon=\"pageFirst1\"></qd-icon>\n </button>\n <button qdIconButton [disabled]=\"pagination?.currentPage === 0\" (click)=\"goToPage(-1)\">\n <qd-icon icon=\"triangleLeftSolid\"></qd-icon>\n </button>\n <button\n qdIconButton\n [disabled]=\"pagination?.currentPage >= (pagination?.totalPages ?? 1) - 1\"\n (click)=\"goToPage(1)\"\n >\n <qd-icon icon=\"triangleRightSolid\"></qd-icon>\n </button>\n <button\n qdIconButton\n [disabled]=\"pagination?.currentPage >= (pagination?.totalPages ?? 1) - 1\"\n (click)=\"goToLastPage()\"\n >\n <qd-icon icon=\"pageLast\"></qd-icon>\n </button>\n </div>\n </div>\n } }\n </div>\n </div>\n", styles: [".qdc-status__container{font-family:Roboto,sans-serif;display:flex;width:100%;max-width:906px;box-sizing:border-box;flex-direction:column;padding:0;border-radius:8px;background-color:#efefef}.qdc-status__header{display:flex;width:100%;height:50px;box-sizing:border-box;align-items:center;padding:0 24px;background-color:#e5e5e5;font-family:Roboto,sans-serif;font-size:16px;font-weight:500;letter-spacing:.15px;line-height:100%;vertical-align:middle}.qdc-status__cards{min-height:265px;box-sizing:border-box;flex-direction:row;flex-wrap:wrap;padding:1rem 1.5rem;border:1px solid #e5e5e5;scrollbar-width:none}@media screen and (min-width: 480px){.qdc-status__cards{max-height:700px;overflow-y:scroll;overflow-x:hidden}}.qdc-status__cards.empty{min-height:265px;align-items:center;justify-content:center;padding:0}.qdc-status_no-cards-message{padding:40px 0;color:#979797;font-family:Roboto,sans-serif;font-size:12px;font-weight:400;line-height:14px;text-align:center}.qdc-status__pagination-row{border-top:1px solid rgba(0,0,0,.1);margin-top:1rem;color:#454545;font-size:.875rem;font-weight:400;line-height:1.3125rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding-left:.75rem;flex-wrap:nowrap;white-space:nowrap;min-height:clamp(36px,5.5vw,44px);padding-block-end:2.8125rem}button.qd-icon-button{border:none;border-left:.0625rem solid rgb(229,229,229);border-radius:unset}@media (max-width: 480px){.qdc-status__container{padding:0}.qdc-status__cards{flex-direction:column;padding:0}.qdc-status__header{padding:0}.qdc-status__pagination-info{min-width:0;overflow:hidden}.qdc-status__pagination-info__text{display:inline-block;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}@media (max-width: 480px) and (max-width: 480px){.qdc-status__pagination-info__text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;overflow:hidden;word-break:break-word}}\n"] }]
101
+ }], propDecorators: { paginationChanged: [{
102
+ type: Output
103
+ }], config: [{
104
+ type: Input
105
+ }], cardsContainer: [{
106
+ type: ViewChild,
107
+ args: ['cardsContainer', { static: false }]
108
+ }], onResize: [{
109
+ type: HostListener,
110
+ args: ['window:resize']
111
+ }] } });
112
+ //# sourceMappingURL=card-status.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-status.component.js","sourceRoot":"","sources":["../../../../../../../libs/qdc-cards/src/lib/card-layout/card-status/card-status.component.ts","../../../../../../../libs/qdc-cards/src/lib/card-layout/card-status/card-status.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ElementRef,\n inject,\n OnInit\n} from '@angular/core';\nimport { QdcCardStatusConfig } from './card-status.model';\nimport { QdcCardConfig } from '../../card/card.model';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'qdc-card-status',\n templateUrl: 'card-status.component.html',\n styleUrls: ['card-status.component.scss'],\n standalone: false\n})\nexport class QdcCardStatusComponent implements OnInit {\n @Output() paginationChanged = new EventEmitter<void>();\n @Input() config!: QdcCardStatusConfig;\n\n @ViewChild('cardsContainer', { static: false }) cardsContainer?: ElementRef<HTMLElement>;\n\n private readonly translate = inject(TranslateService);\n\n isDropdownOpen = false;\n hideEntriesLabel = window.innerWidth <= 1600;\n defaultPageSizes: number[] = [5, 10, 20, 50];\n\n ngOnInit(): void {\n if (this.config?.pagination) {\n if (!this.config.pagination.pageSizes || this.config.pagination.pageSizes.length === 0) {\n this.config.pagination.pageSizes = this.defaultPageSizes;\n }\n if (!this.config.pagination.pageSize) {\n this.config.pagination.pageSize = this.config.pagination.pageSizes[0];\n }\n if (this.config.pagination.currentPage == null) {\n this.config.pagination.currentPage = 0;\n }\n }\n }\n\n get pagedCards(): QdcCardConfig[] {\n return this.config.cards;\n }\n\n get pagination() {\n return this.config.pagination;\n }\n\n goToPage(delta: number): void {\n if (!this.pagination) return;\n const newPage = this.pagination.currentPage + delta;\n if (newPage >= 0 && newPage < this.pagination.totalPages) {\n this.pagination.currentPage = newPage; // update current page\n this.pagination.handler(newPage, this.pagination.pageSize!);\n this.paginationChanged.emit();\n }\n }\n\n goToFirstPage(): void {\n if (this.pagination && this.pagination.currentPage !== 0) {\n this.pagination.currentPage = 0;\n this.pagination.handler(0, this.pagination.pageSize!);\n this.paginationChanged.emit();\n }\n }\n\n goToLastPage(): void {\n if (!this.pagination) return;\n const last = this.pagination.totalPages - 1;\n if (last >= 0 && this.pagination.currentPage !== last) {\n this.pagination.currentPage = last;\n this.pagination.handler(last, this.pagination.pageSize!);\n this.paginationChanged.emit();\n }\n }\n\n onPageSizeChange(): void {\n if (this.pagination) {\n // ngModel has already updated pageSize here\n const totalPages = Math.ceil(this.pagination.totalElements / this.pagination.pageSize!);\n\n // If the current page is out of range, snap it to the last page\n if (this.pagination.currentPage >= totalPages) {\n this.pagination.currentPage = Math.max(0, totalPages - 1);\n }\n this.pagination.handler(this.pagination.currentPage, this.pagination.pageSize!);\n this.paginationChanged.emit();\n }\n }\n\n toggleDropdownIcon(): void {\n this.isDropdownOpen = !this.isDropdownOpen;\n }\n\n @HostListener('window:resize')\n onResize(): void {\n this.hideEntriesLabel = window.innerWidth <= 1600;\n }\n\n getPaginationInfo(): string {\n if (!this.pagination) return '';\n\n const total = this.pagination.totalElements;\n const pageSize = this.pagination.pageSize;\n const currentPage = this.pagination.currentPage;\n\n const start = total === 0 ? 0 : currentPage * pageSize! + 1;\n const end = Math.min(start + pageSize! - 1, total);\n\n return this.translate.instant('i18n.qdc-card.status.pagination.service.from.label', {\n start,\n end,\n total\n });\n }\n}\n","<div class=\"qdc-status__container\">\n <div class=\"qdc-status__header\">\n {{ config.title.i18n | translate }}\n </div>\n\n <div class=\"qdc-status__cards\" #cardsContainer [ngClass]=\"{ empty: !config.cards || config.cards.length === 0 }\">\n @if (!config.cards || config.cards.length === 0) {\n <div class=\"qdc-status_no-cards-message\">\n {{ \"i18n.qdc-cards.status.noCards.label\" | translate | placeholder : \"title\" : (config.title.i18n | translate) }}\n </div>\n } @else { @for (card of pagedCards; track card) {\n <qdc-card [cardConfig]=\"card\"></qdc-card>\n } @if (config.pagination) {\n <div class=\"qdc-status__pagination-row\">\n <div>\n @if (!hideEntriesLabel) {\n <span>\n {{ \"i18n.qdc-card.status.pagination.service.entries.label\" | translate }}\n </span>\n }\n\n <select\n style=\"\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 0;\n outline: 0;\n box-shadow: none;\n background: transparent;\n padding-left: 5px;\n font-family: Roboto, Arial, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;\n color: rgb(69, 69, 69);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.3125rem;\n \"\n [(ngModel)]=\"config.pagination.pageSize\"\n (ngModelChange)=\"onPageSizeChange()\"\n (click)=\"toggleDropdownIcon()\"\n >\n @for (size of pagination?.pageSizes; track size) {\n <option [ngValue]=\"size\">{{ size }}</option>\n }\n </select>\n\n <qd-icon [icon]=\"isDropdownOpen ? 'ctrlTop' : 'ctrlDown'\"></qd-icon>\n </div>\n\n <div class=\"qdc-status__pagination-info\">\n <span class=\"qdc-status__pagination-info__text\">\n {{ getPaginationInfo() }}\n </span>\n </div>\n\n <div>\n <button qdIconButton [disabled]=\"pagination?.currentPage === 0\" (click)=\"goToFirstPage()\">\n <qd-icon icon=\"pageFirst1\"></qd-icon>\n </button>\n <button qdIconButton [disabled]=\"pagination?.currentPage === 0\" (click)=\"goToPage(-1)\">\n <qd-icon icon=\"triangleLeftSolid\"></qd-icon>\n </button>\n <button\n qdIconButton\n [disabled]=\"pagination?.currentPage >= (pagination?.totalPages ?? 1) - 1\"\n (click)=\"goToPage(1)\"\n >\n <qd-icon icon=\"triangleRightSolid\"></qd-icon>\n </button>\n <button\n qdIconButton\n [disabled]=\"pagination?.currentPage >= (pagination?.totalPages ?? 1) - 1\"\n (click)=\"goToLastPage()\"\n >\n <qd-icon icon=\"pageLast\"></qd-icon>\n </button>\n </div>\n </div>\n } }\n </div>\n </div>\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=card-status.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-status.model.js","sourceRoot":"","sources":["../../../../../../../libs/qdc-cards/src/lib/card-layout/card-status/card-status.model.ts"],"names":[],"mappings":"","sourcesContent":["import { QdcCardConfig } from '../../card/card.model';\nimport { QdcCardStatusPaginationConfig } from './pagination/pagination.model';\n\nexport interface QdcCardStatusConfig {\n /**\n * Title of the cards layout component\n * */\n\n title: {\n /**\n * Translatable title text\n * */\n i18n: string;\n };\n /**\n * Cards\n * */\n cards: QdcCardConfig[];\n\n /**\n * Pagination configuration\n * */\n pagination?: QdcCardStatusPaginationConfig;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pagination.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.model.js","sourceRoot":"","sources":["../../../../../../../../libs/qdc-cards/src/lib/card-layout/card-status/pagination/pagination.model.ts"],"names":[],"mappings":"","sourcesContent":["export interface QdcCardStatusPaginationConfig {\n /**\n * Total number of elements\n * */\n totalElements: number;\n\n /**\n * Total number of pages\n * */\n totalPages: number;\n\n /**\n * Page size (total elements per page)\n * */\n pageSize?: number;\n\n /**\n * Current page (0-based index)\n * */\n currentPage: number;\n\n /**\n * Pagination handler\n * */\n handler: (page: number, size: number) => void;\n\n /**\n * Optional array of page sizes for a dropdown\n * */\n pageSizes?: number[];\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { QdcCardsPopoverComponent } from './popover/cards-popover.component';
4
+ import { QdcCardsPopoverOnClickDirective } from './popover-on-click/cards-popover-on-click.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class QdcCardsPopoverModule {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverModule, declarations: [QdcCardsPopoverComponent, QdcCardsPopoverOnClickDirective], imports: [CommonModule], exports: [QdcCardsPopoverOnClickDirective] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverModule, imports: [CommonModule] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: [QdcCardsPopoverComponent, QdcCardsPopoverOnClickDirective],
16
+ exports: [QdcCardsPopoverOnClickDirective]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=cards-popover.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards-popover.module.js","sourceRoot":"","sources":["../../../../../../../libs/qdc-cards/src/lib/shared/popover/cards-popover.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;;AAOtG,MAAM,OAAO,qBAAqB;+GAArB,qBAAqB;gHAArB,qBAAqB,iBAHjB,wBAAwB,EAAE,+BAA+B,aAD9D,YAAY,aAEZ,+BAA+B;gHAE9B,qBAAqB,YAJtB,YAAY;;4FAIX,qBAAqB;kBALjC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,wBAAwB,EAAE,+BAA+B,CAAC;oBACzE,OAAO,EAAE,CAAC,+BAA+B,CAAC;iBAC3C","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QdcCardsPopoverComponent } from './popover/cards-popover.component';\nimport { QdcCardsPopoverOnClickDirective } from './popover-on-click/cards-popover-on-click.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [QdcCardsPopoverComponent, QdcCardsPopoverOnClickDirective],\n exports: [QdcCardsPopoverOnClickDirective]\n})\nexport class QdcCardsPopoverModule {}\n"]}
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class QdcCardsPopoverService {
5
+ constructor() {
6
+ this.closeHandler = new Subject();
7
+ }
8
+ closeAllOverlays() {
9
+ this.closeHandler.next(true);
10
+ }
11
+ subscribe(callback) {
12
+ return this.closeHandler.subscribe(callback);
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverService, providedIn: 'root' }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root'
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=cards-popover.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards-popover.service.js","sourceRoot":"","sources":["../../../../../../../libs/qdc-cards/src/lib/shared/popover/cards-popover.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAgB,MAAM,MAAM,CAAC;;AAO7C,MAAM,OAAO,sBAAsB;IAHnC;QAIU,iBAAY,GAAG,IAAI,OAAO,EAAW,CAAC;KAS/C;IAPC,gBAAgB;QACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,QAA8B;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;+GATU,sBAAsB;mHAAtB,sBAAsB,cAFrB,MAAM;;4FAEP,sBAAsB;kBAHlC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nexport type PopoverCloseCallback = () => void;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QdcCardsPopoverService {\n private closeHandler = new Subject<boolean>();\n\n closeAllOverlays(): void {\n this.closeHandler.next(true);\n }\n\n subscribe(callback: PopoverCloseCallback): Subscription {\n return this.closeHandler.subscribe(callback);\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class QdcCardsPopoverComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: QdcCardsPopoverComponent, isStandalone: false, selector: "qdc-cards-popover", inputs: { content: "content" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n", styles: [":host{background-color:#fff;box-shadow:0 0 .625rem #979797;display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'qdc-cards-popover', standalone: false, template: "<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n", styles: [":host{background-color:#fff;box-shadow:0 0 .625rem #979797;display:block;width:100%}\n"] }]
11
+ }], propDecorators: { content: [{
12
+ type: Input
13
+ }] } });
14
+ //# sourceMappingURL=cards-popover.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards-popover.component.js","sourceRoot":"","sources":["../../../../../../../../libs/qdc-cards/src/lib/shared/popover/popover/cards-popover.component.ts","../../../../../../../../libs/qdc-cards/src/lib/shared/popover/popover/cards-popover.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAe,MAAM,eAAe,CAAC;;;AAQ9D,MAAM,OAAO,wBAAwB;+GAAxB,wBAAwB;mGAAxB,wBAAwB,8GCRrC,+DACA;;4FDOa,wBAAwB;kBANpC,SAAS;+BACE,mBAAmB,cAGjB,KAAK;;sBAGhB,KAAK","sourcesContent":["import { Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'qdc-cards-popover',\n templateUrl: './cards-popover.component.html',\n styleUrls: ['./cards-popover.component.scss'],\n standalone: false\n})\nexport class QdcCardsPopoverComponent {\n @Input()\n content!: TemplateRef<unknown>;\n}\n","<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n"]}
@@ -0,0 +1,100 @@
1
+ import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
2
+ import { ComponentPortal } from '@angular/cdk/portal';
3
+ import { Directive, ElementRef, EventEmitter, HostListener, inject, Input, Output } from '@angular/core';
4
+ import { QdcCardsPopoverComponent } from '../popover/cards-popover.component';
5
+ import { QdcCardsPopoverService } from '../cards-popover.service';
6
+ import * as i0 from "@angular/core";
7
+ export class QdcCardsPopoverOnClickDirective {
8
+ constructor() {
9
+ this.hostRef = inject(ElementRef);
10
+ this.overlayPositionBuilder = inject(OverlayPositionBuilder);
11
+ this.overlay = inject(Overlay);
12
+ this.popoverService = inject(QdcCardsPopoverService);
13
+ this.host = this.hostRef.nativeElement;
14
+ this.popoverWidth = '204';
15
+ this.popoverCloseStrategy = 'onEveryClick';
16
+ this.opened = new EventEmitter();
17
+ this.closed = new EventEmitter();
18
+ }
19
+ ngOnInit() {
20
+ const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.host).withPositions([
21
+ ...(this.positionStrategy ? [this.positionStrategy] : []),
22
+ {
23
+ originX: 'end',
24
+ originY: 'bottom',
25
+ overlayX: 'end',
26
+ overlayY: 'top'
27
+ }
28
+ ]);
29
+ this.overlayRef = this.overlay.create({ positionStrategy, width: this.popoverWidth, disposeOnNavigation: true });
30
+ }
31
+ ngOnDestroy() {
32
+ this.close();
33
+ }
34
+ show(event) {
35
+ event.stopPropagation();
36
+ if (!this.overlayRef.hasAttached()) {
37
+ const popoverPortal = new ComponentPortal(QdcCardsPopoverComponent);
38
+ const popoverRef = this.overlayRef.attach(popoverPortal);
39
+ popoverRef.instance.content = this.qdcCardsPopoverOnClick;
40
+ this.opened.emit();
41
+ this.popoverService.closeAllOverlays();
42
+ this.closeSubscription = this.popoverService.subscribe(() => {
43
+ this.close();
44
+ });
45
+ }
46
+ else {
47
+ this.close();
48
+ }
49
+ }
50
+ clickedOutside(event) {
51
+ if (this.overlayRef.hasAttached() && this.shouldClose(event))
52
+ this.close();
53
+ }
54
+ close() {
55
+ this.overlayRef?.detach();
56
+ this.closeSubscription?.unsubscribe();
57
+ this.closed.emit();
58
+ }
59
+ shouldClose(event) {
60
+ const target = event.target;
61
+ if (!this.overlayRef.hasAttached())
62
+ return false;
63
+ if (this.popoverCloseStrategy === 'onEveryClick')
64
+ return !(target?.classList?.contains('disabled') || target?.disabled);
65
+ if (this.popoverCloseStrategy === 'onOutsideClick') {
66
+ const hostElementHovered = this.host.parentElement.querySelector(':hover');
67
+ const overlayElementHovered = this.overlayRef.overlayElement.querySelector(':hover');
68
+ return !hostElementHovered && !overlayElementHovered;
69
+ }
70
+ return false;
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverOnClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
73
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: QdcCardsPopoverOnClickDirective, isStandalone: false, selector: "[qdcCardsPopoverOnClick]", inputs: { qdcCardsPopoverOnClick: "qdcCardsPopoverOnClick", popoverWidth: "popoverWidth", positionStrategy: "positionStrategy", popoverCloseStrategy: "popoverCloseStrategy" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "click": "show($event)", "document:click": "clickedOutside($event)" } }, ngImport: i0 }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdcCardsPopoverOnClickDirective, decorators: [{
76
+ type: Directive,
77
+ args: [{
78
+ selector: '[qdcCardsPopoverOnClick]',
79
+ standalone: false
80
+ }]
81
+ }], propDecorators: { qdcCardsPopoverOnClick: [{
82
+ type: Input
83
+ }], popoverWidth: [{
84
+ type: Input
85
+ }], positionStrategy: [{
86
+ type: Input
87
+ }], popoverCloseStrategy: [{
88
+ type: Input
89
+ }], opened: [{
90
+ type: Output
91
+ }], closed: [{
92
+ type: Output
93
+ }], show: [{
94
+ type: HostListener,
95
+ args: ['click', ['$event']]
96
+ }], clickedOutside: [{
97
+ type: HostListener,
98
+ args: ['document:click', ['$event']]
99
+ }] } });
100
+ //# sourceMappingURL=cards-popover-on-click.directive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards-popover-on-click.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/qdc-cards/src/lib/shared/popover/popover-on-click/cards-popover-on-click.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConnectedPosition, Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { QdcCardsPopoverComponent } from '../popover/cards-popover.component';\nimport { QdcCardsPopoverService } from '../cards-popover.service';\n\n@Directive({\n selector: '[qdcCardsPopoverOnClick]',\n standalone: false\n})\nexport class QdcCardsPopoverOnClickDirective implements OnInit, OnDestroy {\n private hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private overlayPositionBuilder = inject(OverlayPositionBuilder);\n private overlay = inject(Overlay);\n private popoverService = inject(QdcCardsPopoverService);\n\n private host: HTMLElement = this.hostRef.nativeElement;\n private overlayRef!: OverlayRef;\n private closeSubscription!: Subscription;\n\n @Input() qdcCardsPopoverOnClick!: TemplateRef<unknown>;\n @Input() popoverWidth: string | 'auto' = '204';\n @Input() positionStrategy!: ConnectedPosition;\n @Input() popoverCloseStrategy: 'onOutsideClick' | 'onEveryClick' = 'onEveryClick';\n\n @Output() readonly opened = new EventEmitter();\n @Output() readonly closed = new EventEmitter();\n\n ngOnInit(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.host).withPositions([\n ...(this.positionStrategy ? [this.positionStrategy] : []),\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }\n ]);\n\n this.overlayRef = this.overlay.create({ positionStrategy, width: this.popoverWidth, disposeOnNavigation: true });\n }\n\n ngOnDestroy(): void {\n this.close();\n }\n\n @HostListener('click', ['$event'])\n show(event: Event) {\n event.stopPropagation();\n if (!this.overlayRef.hasAttached()) {\n const popoverPortal = new ComponentPortal(QdcCardsPopoverComponent);\n const popoverRef = this.overlayRef.attach(popoverPortal);\n\n popoverRef.instance.content = this.qdcCardsPopoverOnClick;\n this.opened.emit();\n\n this.popoverService.closeAllOverlays();\n\n this.closeSubscription = this.popoverService.subscribe(() => {\n this.close();\n });\n } else {\n this.close();\n }\n }\n\n @HostListener('document:click', ['$event'])\n clickedOutside(event: PointerEvent) {\n if (this.overlayRef.hasAttached() && this.shouldClose(event)) this.close();\n }\n\n close() {\n this.overlayRef?.detach();\n this.closeSubscription?.unsubscribe();\n this.closed.emit();\n }\n\n private shouldClose(event: PointerEvent): boolean {\n const target = event.target as (HTMLElement & { disabled?: boolean }) | null;\n\n if (!this.overlayRef.hasAttached()) return false;\n\n if (this.popoverCloseStrategy === 'onEveryClick')\n return !((target?.classList as DOMTokenList)?.contains('disabled') || target?.disabled);\n\n if (this.popoverCloseStrategy === 'onOutsideClick') {\n const hostElementHovered = this.host.parentElement!.querySelector(':hover');\n const overlayElementHovered = this.overlayRef.overlayElement.querySelector(':hover');\n\n return !hostElementHovered && !overlayElementHovered;\n }\n\n return false;\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=quadrel-enterprise-ui-qdc-cards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quadrel-enterprise-ui-qdc-cards.js","sourceRoot":"","sources":["../../../../libs/qdc-cards/src/quadrel-enterprise-ui-qdc-cards.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
@@ -1,8 +1,7 @@
1
- import { AfterContentInit, ChangeDetectorRef, OnChanges, TemplateRef } from '@angular/core';
1
+ import { AfterContentInit, OnChanges, TemplateRef } from '@angular/core';
2
2
  import { QdcCardConfig } from './card.model';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class QdcCardComponent implements AfterContentInit, OnChanges {
5
- private cdr;
6
5
  /** JSON configuration driving the visual appearance of the card. */
7
6
  cardConfig: QdcCardConfig;
8
7
  /** Optional test-id for E2E / integration tests. */
@@ -10,7 +9,7 @@ export declare class QdcCardComponent implements AfterContentInit, OnChanges {
10
9
  hasHeader: boolean;
11
10
  hasFooter: boolean;
12
11
  get isMobile(): boolean;
13
- constructor(cdr: ChangeDetectorRef);
12
+ private cdr;
14
13
  ngAfterContentInit(): void;
15
14
  ngOnChanges(): void;
16
15
  private evaluateVisibility;
@@ -1,5 +1,5 @@
1
1
  import { QdChipColor } from '@quadrel-enterprise-ui/framework';
2
- import type { QdStatusIndicatorLevel, QdStatusIndicatorType } from '@quadrel-enterprise-ui/framework/lib/status-indicator/interfaces/status-indicator.interface';
2
+ import type { QdStatusIndicator } from '@quadrel-enterprise-ui/framework';
3
3
  export interface QdcCardActionConfig {
4
4
  /**
5
5
  * The label is shown as text in the UI for this action.
@@ -35,10 +35,7 @@ export interface QdcCardBodyPair {
35
35
  /**
36
36
  * Optional Qd-Status-Indicator
37
37
  * */
38
- status?: {
39
- type: QdStatusIndicatorType;
40
- level: QdStatusIndicatorLevel;
41
- } | null;
38
+ status?: Pick<QdStatusIndicator, 'type' | 'level'> | null;
42
39
  icon?: string | null;
43
40
  booleanValue?: boolean | null;
44
41
  chips?: QdcCardChip[] | null;
@@ -1,4 +1,4 @@
1
- import { OnInit, OnChanges, SimpleChanges, NgZone } from '@angular/core';
1
+ import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import { QdFormDropdownConfiguration } from '@quadrel-enterprise-ui/framework';
@@ -7,7 +7,6 @@ import { QdcCardStatusSameHeightDirective } from './card-status/card-status-heig
7
7
  import { QdcCardStatusConfig } from './card-status/card-status.model';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class QdcCardLayoutComponent implements OnInit, OnChanges {
10
- private ngZone;
11
10
  config: QdcCardLayoutConfig;
12
11
  cardStatusHeightDirective?: QdcCardStatusSameHeightDirective;
13
12
  isMobile: boolean;
@@ -16,7 +15,7 @@ export declare class QdcCardLayoutComponent implements OnInit, OnChanges {
16
15
  private statusTitlesDropDownConfig;
17
16
  dropDownConfig: BehaviorSubject<QdFormDropdownConfiguration>;
18
17
  selectedStatusTitle: BehaviorSubject<QdcCardStatusConfig>;
19
- constructor(ngZone: NgZone);
18
+ private ngZone;
20
19
  ngOnInit(): void;
21
20
  ngOnChanges(changes: SimpleChanges): void;
22
21
  onPaginationChanged(): void;
@@ -1,9 +1,8 @@
1
- import { AfterViewInit, ElementRef, Renderer2 } from '@angular/core';
1
+ import { AfterViewInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class QdcCardStatusSameHeightDirective implements AfterViewInit {
4
4
  private el;
5
5
  private renderer;
6
- constructor(el: ElementRef, renderer: Renderer2);
7
6
  ngAfterViewInit(): void;
8
7
  onResize(): void;
9
8
  triggerUpdate(): void;
@@ -1,6 +1,5 @@
1
- import { ConnectedPosition, Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
2
- import { ElementRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
3
- import { QdcCardsPopoverService } from '../cards-popover.service';
1
+ import { ConnectedPosition } from '@angular/cdk/overlay';
2
+ import { EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class QdcCardsPopoverOnClickDirective implements OnInit, OnDestroy {
6
5
  private hostRef;
@@ -16,7 +15,6 @@ export declare class QdcCardsPopoverOnClickDirective implements OnInit, OnDestro
16
15
  popoverCloseStrategy: 'onOutsideClick' | 'onEveryClick';
17
16
  readonly opened: EventEmitter<any>;
18
17
  readonly closed: EventEmitter<any>;
19
- constructor(hostRef: ElementRef<HTMLElement>, overlayPositionBuilder: OverlayPositionBuilder, overlay: Overlay, popoverService: QdcCardsPopoverService);
20
18
  ngOnInit(): void;
21
19
  ngOnDestroy(): void;
22
20
  show(event: Event): void;
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@quadrel-enterprise-ui/qdc-cards",
3
- "version": "19.1.0",
3
+ "version": "20.0.0",
4
4
  "description": "Library for loading dynamic and static translation files",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "peerDependencies": {
9
- "@quadrel-enterprise-ui/framework": "^19",
10
- "@angular/common": "^19.2.9",
11
- "@angular/core": "^19.2.9",
12
- "@angular/forms": "^19.2.9",
13
- "@angular/cdk": "^19.2.9",
9
+ "@quadrel-enterprise-ui/framework": "^20.0.1",
10
+ "@angular/common": "^20",
11
+ "@angular/core": "^20",
12
+ "@angular/forms": "^20",
13
+ "@angular/cdk": "^20",
14
14
  "@ngx-translate/core": "^17.0.0",
15
15
  "rxjs": "~7.8.0"
16
16
  },
@@ -20,15 +20,15 @@
20
20
  "indent": 4,
21
21
  "sonar56x": true
22
22
  },
23
- "module": "esm2022/quadrel-enterprise-ui-qdc-cards.mjs",
24
- "typings": "index.d.ts",
23
+ "module": "esm2022/quadrel-enterprise-ui-qdc-cards.js",
24
+ "typings": "quadrel-enterprise-ui-qdc-cards.d.ts",
25
25
  "exports": {
26
26
  "./package.json": {
27
27
  "default": "./package.json"
28
28
  },
29
29
  ".": {
30
- "types": "./index.d.ts",
31
- "default": "./esm2022/quadrel-enterprise-ui-qdc-cards.mjs"
30
+ "types": "./quadrel-enterprise-ui-qdc-cards.d.ts",
31
+ "default": "./esm2022/quadrel-enterprise-ui-qdc-cards.js"
32
32
  }
33
33
  },
34
34
  "sideEffects": false,
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@quadrel-enterprise-ui/qdc-cards" />
5
+ export * from './index';
package/esm2022/index.mjs DELETED
@@ -1,3 +0,0 @@
1
- export * from './lib/card-layout/card-layout.module';
2
- export * from './lib/card/card.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC1sYXlvdXQvY2FyZC1sYXlvdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQvY2FyZC5tb2R1bGUnO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWRjLWNhcmRzL3NyYy9saWIvY2FyZC9jYXJkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBRZGNDYXJkQWN0aW9uQ29uZmlnLFxuICBRZGNDYXJkQm9keVBhaXIsXG4gIFFkY0NhcmRDaGlwLFxuICBRZGNDYXJkRm9vdGVyXG59IGZyb20gJy4vbW9kZWwvY2FyZC1hY3Rpb25zLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFFkY0NhcmRDb25maWcge1xuICAvKipcbiAgICogT3B0aW9uYWwgaWNvbiBuYW1lIHNob3duIGluIHRoZSBoZWFkZXIsIGxlZnQgb2YgdGhlIHRpdGxlLlxuICAgKiAqL1xuICBpY29uPzogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogTWFpbiBoZWFkbGluZSBvZiB0aGUgY2FyZC5cbiAgICogKi9cbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdWJ0aXRsZSBzaG93biB1bmRlciB0aGUgdGl0bGUuXG4gICAqICovXG4gIHN1YlRpdGxlPzogc3RyaW5nIHwgbnVsbDtcblxuICBib2R5UGFpcnM/OiBRZGNDYXJkQm9keVBhaXJbXTtcblxuICBjaGlwPzogUWRjQ2FyZENoaXA7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFjdGlvbnMgdG8gZGlzcGxheSBpbiB0aGUgY2FyZCBtZW51LlxuICAgKiAqL1xuICBtZW51QWN0aW9ucz86IFFkY0NhcmRBY3Rpb25Db25maWdbXTtcblxuICBmb290ZXI/OiBRZGNDYXJkRm9vdGVyO1xuXG4gIG9uQ2FyZENsaWNrPzogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
@@ -1,23 +0,0 @@
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
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hY3Rpb25zLWNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkYy1jYXJkcy9zcmMvbGliL2NhcmQvbW9kZWwvY2FyZC1hY3Rpb25zLWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFFkQ2hpcENvbG9yIH0gZnJvbSAnQHF1YWRyZWwtZW50ZXJwcmlzZS11aS9mcmFtZXdvcmsnO1xuaW1wb3J0IHR5cGUge1xuICBRZFN0YXR1c0luZGljYXRvckxldmVsLFxuICBRZFN0YXR1c0luZGljYXRvclR5cGVcbn0gZnJvbSAnQHF1YWRyZWwtZW50ZXJwcmlzZS11aS9mcmFtZXdvcmsvbGliL3N0YXR1cy1pbmRpY2F0b3IvaW50ZXJmYWNlcy9zdGF0dXMtaW5kaWNhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRjQ2FyZEFjdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgaXMgc2hvd24gYXMgdGV4dCBpbiB0aGUgVUkgZm9yIHRoaXMgYWN0aW9uLlxuICAgKi9cbiAgbGFiZWw6IHtcbiAgICAvKiogVGhpcyBpMThuIGtleSBpcyB0cmFuc2xhdGVkIGRpcmVjdGx5IGluc2lkZSB0aGUgUWRDYXJkTWVudSBjb21wb25lbnQuICovXG4gICAgaTE4bjogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgaGFuZGxlciB0byBleGVjdXRlIHdoZW4gdGhlIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgaGFuZGxlcjogKCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWN0aW9uIGlzIGRpc2FibGVkIG9yIG5vdFxuICAgKlxuICAgKiAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IGluIHRoZSBhY3Rpb24uXG4gICAqL1xuICBpY29uPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRZGNDYXJkQm9keVBhaXIge1xuICAvKipcbiAgICogVHJhbnNsYXRhYmxlIGxhYmVsIHRleHQuXG4gICAqICovXG4gIGkxOG46IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWUgdG8gZGlzcGxheSBuZXh0IHRvIHRoZSBsYWJlbC5cbiAgICogKi9cbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgUWQtU3RhdHVzLUluZGljYXRvclxuICAgKiAqL1xuICBzdGF0dXM/OiB7XG4gICAgdHlwZTogUWRTdGF0dXNJbmRpY2F0b3JUeXBlO1xuICAgIGxldmVsOiBRZFN0YXR1c0luZGljYXRvckxldmVsO1xuICB9IHwgbnVsbDtcblxuICBpY29uPzogc3RyaW5nIHwgbnVsbDtcblxuICBib29sZWFuVmFsdWU/OiBib29sZWFuIHwgbnVsbDtcblxuICBjaGlwcz86IFFkY0NhcmRDaGlwW10gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFkY0NhcmRGb290ZXIge1xuICBpY29uPzogc3RyaW5nIHwgbnVsbDtcbiAgdGV4dD86IHN0cmluZyB8IG51bGw7XG4gIGFjdGlvbj86IFFkY0NhcmRBY3Rpb25Db25maWcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFkY0NhcmRDaGlwIHtcbiAgLyoqXG4gICAqIENvbG9yIG9mIHRoZSBjaGlwLiBEZWZhdWx0cyB0byAncHJpbWFyeScuXG4gICAqICovXG4gIHN0YXRlOiBRZENoaXBDb2xvcjtcblxuICAvKipcbiAgICogVGV4dCBzaG93biBpbnNpZGUgdGhlIGNoaXAuXG4gICAqICovXG4gIGxhYmVsOiB7XG4gICAgLyoqXG4gICAgICogVHJhbnNsYXRhYmxlIGxhYmVsIHRleHQuXG4gICAgICogKi9cbiAgICBpMThuOiBzdHJpbmc7XG4gIH07XG4gIC8qKlxuICAgKiBPcHRpb25hbCBpY29uIHRvIGRpc3BsYXkgaW5zaWRlIHRoZSBjaGlwLlxuICAgKiAqL1xufVxuIl19