@seniorsistemas/data-seniorx-core 1.6.0 → 1.7.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 (72) hide show
  1. package/core/config/card.type.config.d.ts +2 -0
  2. package/core/config/row-card.type.config.d.ts +2 -0
  3. package/core/types/button.type.d.ts +2 -0
  4. package/core/types/card.type.d.ts +36 -0
  5. package/core/types/filters.type.d.ts +27 -0
  6. package/core/types/row-card.type.d.ts +39 -0
  7. package/core/types/semantics.type.d.ts +5 -0
  8. package/core/types/tab.type.d.ts +5 -0
  9. package/core/types/table.types.d.ts +2 -2
  10. package/esm2022/core/config/card.type.config.mjs +18 -0
  11. package/esm2022/core/config/row-card.type.config.mjs +20 -0
  12. package/esm2022/core/types/button.type.mjs +2 -0
  13. package/esm2022/core/types/card.type.mjs +39 -0
  14. package/esm2022/core/types/filters.type.mjs +2 -0
  15. package/esm2022/core/types/row-card.type.mjs +59 -0
  16. package/esm2022/core/types/semantics.type.mjs +1 -1
  17. package/esm2022/core/types/tab.type.mjs +2 -0
  18. package/esm2022/core/types/table.types.mjs +4 -2
  19. package/esm2022/features/button/button.component.mjs +5 -5
  20. package/esm2022/features/card-list/card/card.component.mjs +34 -0
  21. package/esm2022/features/card-list/card-list.component.mjs +136 -0
  22. package/esm2022/features/checkbox/checkbox.component.mjs +5 -5
  23. package/esm2022/features/combobox/combobox.component.mjs +88 -28
  24. package/esm2022/features/confirm/confirm.component.mjs +13 -13
  25. package/esm2022/features/filters/filters.component.mjs +190 -0
  26. package/esm2022/features/hyperlink/hyperlink.component.mjs +14 -14
  27. package/esm2022/features/inputs.mjs +1 -1
  28. package/esm2022/features/list/list.component.mjs +14 -14
  29. package/esm2022/features/modal/modal.component.mjs +11 -11
  30. package/esm2022/features/modalc/modalc.component.mjs +19 -13
  31. package/esm2022/features/paginator/paginator.component.mjs +43 -0
  32. package/esm2022/features/panel/panel.component.mjs +11 -11
  33. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +58 -0
  34. package/esm2022/features/row-card-list/row-card-list.component.mjs +150 -0
  35. package/esm2022/features/scaffold/scaffold.component.mjs +4 -4
  36. package/esm2022/features/searchbox/searchbox.component.mjs +7 -6
  37. package/esm2022/features/sidebar/sidebar.component.mjs +6 -4
  38. package/esm2022/features/spinner/spinner.component.mjs +6 -8
  39. package/esm2022/features/sql-editor/sql-editor.component.mjs +34 -36
  40. package/esm2022/features/tab/tab.component.mjs +8 -7
  41. package/esm2022/features/table/table.component.mjs +52 -47
  42. package/esm2022/features/textbox/textbox.component.mjs +16 -9
  43. package/esm2022/features/toast/toast.component.mjs +17 -21
  44. package/esm2022/locales/en.json +6 -1
  45. package/esm2022/locales/es-CO.json +7 -2
  46. package/esm2022/locales/pt.json +6 -1
  47. package/esm2022/public-api.mjs +5 -1
  48. package/features/button/button.component.d.ts +5 -3
  49. package/features/card-list/card/card.component.d.ts +11 -0
  50. package/features/card-list/card-list.component.d.ts +36 -0
  51. package/features/combobox/combobox.component.d.ts +25 -8
  52. package/features/confirm/confirm.component.d.ts +4 -4
  53. package/features/filters/filters.component.d.ts +36 -0
  54. package/features/hyperlink/hyperlink.component.d.ts +3 -3
  55. package/features/list/list.component.d.ts +3 -3
  56. package/features/modal/modal.component.d.ts +3 -3
  57. package/features/paginator/paginator.component.d.ts +15 -0
  58. package/features/panel/panel.component.d.ts +4 -4
  59. package/features/row-card-list/row-card/row-card.component.d.ts +18 -0
  60. package/features/row-card-list/row-card-list.component.d.ts +40 -0
  61. package/features/searchbox/searchbox.component.d.ts +1 -1
  62. package/features/spinner/spinner.component.d.ts +1 -1
  63. package/features/sql-editor/sql-editor.component.d.ts +8 -8
  64. package/features/tab/tab.component.d.ts +2 -8
  65. package/features/table/table.component.d.ts +5 -6
  66. package/features/toast/toast.component.d.ts +5 -5
  67. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +883 -226
  68. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  69. package/package.json +1 -1
  70. package/public-api.d.ts +4 -0
  71. package/styles.css +49 -48
  72. package/styles.css.map +1 -1
@@ -0,0 +1,136 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, computed, signal, ViewEncapsulation } from '@angular/core';
3
+ import { CardComponent } from './card/card.component';
4
+ import { isMobile, isTablet } from 'lib/src/core/utils/layout.util';
5
+ import { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';
6
+ import { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';
7
+ import { ButtonComponent } from '../button/button.component';
8
+ import { PaginatorComponent } from '../paginator/paginator.component';
9
+ import { DEFAULT_CARD_LIST_OPTIONS } from 'lib/src/core/config/card.type.config';
10
+ import { TranslateModule } from '@ngx-translate/core';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/common";
13
+ import * as i2 from "@ngx-translate/core";
14
+ import * as i3 from "@seniorsistemas/angular-components/empty-state";
15
+ import * as i4 from "@seniorsistemas/angular-components/loading-state";
16
+ export class CardListComponent {
17
+ data = [];
18
+ loading = false;
19
+ config = DEFAULT_CARD_LIST_OPTIONS;
20
+ cardButtonClick = new EventEmitter();
21
+ isMobile = isMobile();
22
+ isTablet = isTablet();
23
+ options = signal(DEFAULT_CARD_LIST_OPTIONS);
24
+ totalRecordsLabel = computed(() => this.options().totalRecordsLabel ?? '');
25
+ emptyTitle = computed(() => this.options().empty?.title ?? '');
26
+ emptyText = computed(() => this.options().empty?.message ?? '');
27
+ page = signal({ first: 0, rows: 4 });
28
+ isFirstPage = computed(() => this.page().first === 0);
29
+ isLastPage = computed(() => this.page().first + this.page().rows >= this.filtered().length);
30
+ raw = signal([]);
31
+ filtered = signal([]);
32
+ pagedData = computed(() => {
33
+ const list = this.filtered();
34
+ if (!this.options().enablePagination)
35
+ return list;
36
+ const { first, rows } = this.page();
37
+ return list.slice(first, first + rows);
38
+ });
39
+ configHash = '';
40
+ ngOnChanges(changes) {
41
+ if (changes['data']) {
42
+ const v = this.data ?? [];
43
+ this.raw.set(v);
44
+ this.filtered.set(v);
45
+ this.page.set({ first: 0, rows: this.page().rows });
46
+ }
47
+ if (changes['config']) {
48
+ this.applyConfigOptions();
49
+ this.page.set({ first: 0, rows: this.page().rows });
50
+ this.configHash = this.stableStringify(this.config);
51
+ }
52
+ }
53
+ ngDoCheck() {
54
+ const nextHash = this.stableStringify(this.config);
55
+ if (nextHash !== this.configHash) {
56
+ this.configHash = nextHash;
57
+ this.applyConfigOptions();
58
+ this.page.set({ first: 0, rows: this.page().rows });
59
+ }
60
+ }
61
+ onChangePaginator(event) {
62
+ if (!this.options().enablePagination)
63
+ return;
64
+ this.page.set({
65
+ first: event.first ?? 0,
66
+ rows: event.rows ?? this.page().rows
67
+ });
68
+ }
69
+ nextPage() {
70
+ if (!this.options().enablePagination)
71
+ return;
72
+ const { first, rows } = this.page();
73
+ if (this.filtered().length > first + rows) {
74
+ this.page.set({ first: first + rows, rows });
75
+ }
76
+ }
77
+ prevPage() {
78
+ if (!this.options().enablePagination)
79
+ return;
80
+ const { first, rows } = this.page();
81
+ if (first - rows >= 0) {
82
+ this.page.set({ first: first - rows, rows });
83
+ }
84
+ }
85
+ onCardClick(card) {
86
+ this.cardButtonClick.emit(card);
87
+ }
88
+ applyConfigOptions() {
89
+ const base = DEFAULT_CARD_LIST_OPTIONS;
90
+ const cfg = { ...base, ...(this.config ?? {}) };
91
+ cfg.customCard = { ...base.customCard, ...(this.config?.customCard ?? {}) };
92
+ this.options.set(cfg);
93
+ }
94
+ stableStringify(obj) {
95
+ const seen = new WeakSet();
96
+ const replacer = (_k, v) => {
97
+ if (v && typeof v === 'object') {
98
+ const asObj = v;
99
+ if (seen.has(asObj))
100
+ return;
101
+ seen.add(asObj);
102
+ if (Array.isArray(v))
103
+ return v;
104
+ const o = v;
105
+ return Object.keys(o).sort().reduce((acc, key) => {
106
+ acc[key] = o[key];
107
+ return acc;
108
+ }, {});
109
+ }
110
+ if (typeof v === 'function' || typeof v === 'undefined')
111
+ return undefined;
112
+ return v;
113
+ };
114
+ try {
115
+ return JSON.stringify(obj ?? {}, replacer);
116
+ }
117
+ catch {
118
+ return JSON.stringify(obj ?? {});
119
+ }
120
+ }
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
122
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardListComponent, isStandalone: true, selector: "sdc-card-list", inputs: { data: "data", loading: "loading", config: "config" }, outputs: { cardButtonClick: "cardButtonClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-card-list m-3\">\n <div [class.my-3]=\"isMobile\">\n @if (loading) {\n <s-loading-state [loading]=\"loading\" [blockWindow]=\"false\" class=\"sdc-cardlist-loading-state\"></s-loading-state>\n } @else { @if (pagedData().length) {\n <div class=\"relative\">\n @if (options().enableSideButtons) {\n <sdc-button\n width=\"3rem\"\n *ngIf=\"!isMobile\"\n (click)=\"prevPage()\"\n [disabled]=\"isFirstPage()\"\n class=\"absolute left-0 top-50 transform -translate-y-50 z-1\"\n type=\"button\"\n icon=\"fas fa-arrow-left\"\n ></sdc-button>\n }\n <div class=\"grid flex-1\" [class.mx-5]=\"!isMobile && options().enableSideButtons\">\n @for (card of pagedData(); track card.name) {\n <div class=\"col-12 md:col-6 lg:col-4 xl:col-3\">\n <dp-card (cardAction)=\"onCardClick($event)\" [options]=\"options().customCard\" [data]=\"card\"></dp-card>\n </div>\n }\n </div>\n @if (options().enableSideButtons) {\n <sdc-button\n width=\"3rem\"\n *ngIf=\"!isMobile\"\n [disabled]=\"isLastPage()\"\n (click)=\"nextPage()\"\n class=\"absolute right-0 top-50 transform -translate-y-50 z-1\"\n type=\"button\"\n icon=\"fas fa-arrow-right\"\n ></sdc-button>\n }\n </div>\n } @else {\n <s-empty-state\n id=\"cardlist-empty\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle() | translate\"\n [description]=\"emptyText() | translate\"\n class=\"sdc-cardlist-empty-state\"\n ></s-empty-state>\n } @if (options().enablePagination) {\n <div class=\"flex justify-content-beetween sdc-paginator\" [class.justify-content-center]=\"isMobile || isTablet\">\n <sdc-paginator\n style=\"min-width: 100%\"\n (pageChange)=\"onChangePaginator($event)\"\n [first]=\"page().first\"\n [rows]=\"page().rows\"\n [totalRecords]=\"filtered().length\"\n [totalRecordsLabel]=\"totalRecordsLabel() | translate\"\n [isMobile]=\"isMobile\"\n >\n </sdc-paginator>\n </div>\n } }\n </div>\n</div>\n", styles: [".sdc-card-list{min-height:30rem;min-width:17rem;align-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CardComponent, selector: "dp-card", inputs: ["data", "options"], outputs: ["cardAction"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["disabled", "width", "icon", "id", "label", "priority", "size", "type"], outputs: ["onClick"] }, { kind: "component", type: PaginatorComponent, selector: "sdc-paginator", inputs: ["first", "rows", "totalRecords", "rowsPerPageOptions", "isMobile", "totalRecordsLabel"], outputs: ["pageChange"] }, { kind: "ngmodule", type: EmptyStateModule }, { kind: "component", type: i3.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "ngmodule", type: LoadingStateModule }, { kind: "component", type: i4.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading"] }] });
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardListComponent, decorators: [{
125
+ type: Component,
126
+ args: [{ selector: 'sdc-card-list', standalone: true, imports: [CommonModule, CardComponent, TranslateModule, ButtonComponent, PaginatorComponent, EmptyStateModule, LoadingStateModule], encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-card-list m-3\">\n <div [class.my-3]=\"isMobile\">\n @if (loading) {\n <s-loading-state [loading]=\"loading\" [blockWindow]=\"false\" class=\"sdc-cardlist-loading-state\"></s-loading-state>\n } @else { @if (pagedData().length) {\n <div class=\"relative\">\n @if (options().enableSideButtons) {\n <sdc-button\n width=\"3rem\"\n *ngIf=\"!isMobile\"\n (click)=\"prevPage()\"\n [disabled]=\"isFirstPage()\"\n class=\"absolute left-0 top-50 transform -translate-y-50 z-1\"\n type=\"button\"\n icon=\"fas fa-arrow-left\"\n ></sdc-button>\n }\n <div class=\"grid flex-1\" [class.mx-5]=\"!isMobile && options().enableSideButtons\">\n @for (card of pagedData(); track card.name) {\n <div class=\"col-12 md:col-6 lg:col-4 xl:col-3\">\n <dp-card (cardAction)=\"onCardClick($event)\" [options]=\"options().customCard\" [data]=\"card\"></dp-card>\n </div>\n }\n </div>\n @if (options().enableSideButtons) {\n <sdc-button\n width=\"3rem\"\n *ngIf=\"!isMobile\"\n [disabled]=\"isLastPage()\"\n (click)=\"nextPage()\"\n class=\"absolute right-0 top-50 transform -translate-y-50 z-1\"\n type=\"button\"\n icon=\"fas fa-arrow-right\"\n ></sdc-button>\n }\n </div>\n } @else {\n <s-empty-state\n id=\"cardlist-empty\"\n iconClass=\"fa fa-inbox\"\n [title]=\"emptyTitle() | translate\"\n [description]=\"emptyText() | translate\"\n class=\"sdc-cardlist-empty-state\"\n ></s-empty-state>\n } @if (options().enablePagination) {\n <div class=\"flex justify-content-beetween sdc-paginator\" [class.justify-content-center]=\"isMobile || isTablet\">\n <sdc-paginator\n style=\"min-width: 100%\"\n (pageChange)=\"onChangePaginator($event)\"\n [first]=\"page().first\"\n [rows]=\"page().rows\"\n [totalRecords]=\"filtered().length\"\n [totalRecordsLabel]=\"totalRecordsLabel() | translate\"\n [isMobile]=\"isMobile\"\n >\n </sdc-paginator>\n </div>\n } }\n </div>\n</div>\n", styles: [".sdc-card-list{min-height:30rem;min-width:17rem;align-content:center}\n"] }]
127
+ }], propDecorators: { data: [{
128
+ type: Input
129
+ }], loading: [{
130
+ type: Input
131
+ }], config: [{
132
+ type: Input
133
+ }], cardButtonClick: [{
134
+ type: Output
135
+ }] } });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvY2FyZC1saXN0L2NhcmQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NhcmQtbGlzdC9jYXJkLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBOEQsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEssT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBVXRELE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLE1BQU0sR0FBb0IseUJBQXlCLENBQUM7SUFFbkQsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFbEMsUUFBUSxHQUFH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QUFpQixDQUFDLFFBQVE7OEJBR2hDLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIGNvbXB1dGVkLCBzaWduYWwsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgRG9DaGVjaywgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdpbmF0b3JTdGF0ZSB9IGZyb20gJ3ByaW1lbmcvcGFnaW5hdG9yJztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZCwgQ2FyZExpc3RPcHRpb25zIH0gZnJvbSAnbGliL3NyYy9jb3JlL3R5cGVzL2NhcmQudHlwZSc7XG5pbXBvcnQgeyBpc01vYmlsZSwgaXNUYWJsZXQgfSBmcm9tICdsaWIvc3JjL2NvcmUvdXRpbHMvbGF5b3V0LnV0aWwnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvZW1wdHktc3RhdGUnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2FkaW5nLXN0YXRlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IERFRkFVTFRfQ0FSRF9MSVNUX09QVElPTlMgfSBmcm9tICdsaWIvc3JjL2NvcmUvY29uZmlnL2NhcmQudHlwZS5jb25maWcnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jYXJkLWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDYXJkQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgUGFnaW5hdG9yQ29tcG9uZW50LCBFbXB0eVN0YXRlTW9kdWxlLCBMb2FkaW5nU3RhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhcmQtbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgRG9DaGVjayB7XG4gIEBJbnB1dCgpIGRhdGE6IENhcmRbXSA9IFtdO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbmZpZzogQ2FyZExpc3RPcHRpb25zID0gREVGQVVMVF9DQVJEX0xJU1RfT1BUSU9OUztcblxuICBAT3V0cHV0KCkgY2FyZEJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDYXJkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc1RhYmxldCA9IGlzVGFibGV0KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBzaWduYWw8Q2FyZExpc3RPcHRpb25zPihERUZBVUxUX0NBUkRfTElTVF9PUFRJT05TKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvdGFsUmVjb3Jkc0xhYmVsID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKS50b3RhbFJlY29yZHNMYWJlbCA/PyAnJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlbXB0eVRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKS5lbXB0eT8udGl0bGUgPz8gJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1wdHlUZXh0ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKS5lbXB0eT8ubWVzc2FnZSA/PyAnJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZ2UgPSBzaWduYWwoeyBmaXJzdDogMCwgcm93czogNCB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRmlyc3RQYWdlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wYWdlKCkuZmlyc3QgPT09IDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMYXN0UGFnZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGFnZSgpLmZpcnN0ICsgdGhpcy5wYWdlKCkucm93cyA+PSB0aGlzLmZpbHRlcmVkKCkubGVuZ3RoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJhdyA9IHNpZ25hbDxDYXJkW10+KFtdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbHRlcmVkID0gc2lnbmFsPENhcmRbXT4oW10pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYWdlZERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZmlsdGVyZWQoKTtcbiAgICBpZiAoIXRoaXMub3B0aW9ucygpLmVuYWJsZVBhZ2luYXRpb24pIHJldHVybiBsaXN0O1xuICAgIGNvbnN0IHsgZmlyc3QsIHJvd3MgfSA9IHRoaXMucGFnZSgpO1xuICAgIHJldHVybiBsaXN0LnNsaWNlKGZpcnN0LCBmaXJzdCArIHJvd3MpO1xuICB9KTtcblxuICBwcml2YXRlIGNvbmZpZ0hhc2ggPSAnJztcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGEnXSkge1xuICAgICAgY29uc3QgdiA9IHRoaXMuZGF0YSA/PyBbXTtcbiAgICAgIHRoaXMucmF3LnNldCh2KTtcbiAgICAgIHRoaXMuZmlsdGVyZWQuc2V0KHYpO1xuICAgICAgdGhpcy5wYWdlLnNldCh7IGZpcnN0OiAwLCByb3dzOiB0aGlzLnBhZ2UoKS5yb3dzIH0pO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcbiAgICAgIHRoaXMuYXBwbHlDb25maWdPcHRpb25zKCk7XG4gICAgICB0aGlzLnBhZ2Uuc2V0KHsgZmlyc3Q6IDAsIHJvd3M6IHRoaXMucGFnZSgpLnJvd3MgfSk7XG4gICAgICB0aGlzLmNvbmZpZ0hhc2ggPSB0aGlzLnN0YWJsZVN0cmluZ2lmeSh0aGlzLmNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHRIYXNoID0gdGhpcy5zdGFibGVTdHJpbmdpZnkodGhpcy5jb25maWcpO1xuICAgIGlmIChuZXh0SGFzaCAhPT0gdGhpcy5jb25maWdIYXNoKSB7XG4gICAgICB0aGlzLmNvbmZpZ0hhc2ggPSBuZXh0SGFzaDtcbiAgICAgIHRoaXMuYXBwbHlDb25maWdPcHRpb25zKCk7XG4gICAgICB0aGlzLnBhZ2Uuc2V0KHsgZmlyc3Q6IDAsIHJvd3M6IHRoaXMucGFnZSgpLnJvd3MgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlUGFnaW5hdG9yKGV2ZW50OiBQYWdpbmF0b3JTdGF0ZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKCkuZW5hYmxlUGFnaW5hdGlvbikgcmV0dXJuO1xuICAgIHRoaXMucGFnZS5zZXQoe1xuICAgICAgZmlyc3Q6IGV2ZW50LmZpcnN0ID8/IDAsXG4gICAgICByb3dzOiBldmVudC5yb3dzID8/IHRoaXMucGFnZSgpLnJvd3NcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0UGFnZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucygpLmVuYWJsZVBhZ2luYXRpb24pIHJldHVybjtcbiAgICBjb25zdCB7IGZpcnN0LCByb3dzIH0gPSB0aGlzLnBhZ2UoKTtcbiAgICBpZiAodGhpcy5maWx0ZXJlZCgpLmxlbmd0aCA+IGZpcnN0ICsgcm93cykge1xuICAgICAgdGhpcy5wYWdlLnNldCh7IGZpcnN0OiBmaXJzdCArIHJvd3MsIHJvd3MgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByZXZQYWdlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKCkuZW5hYmxlUGFnaW5hdGlvbikgcmV0dXJuO1xuICAgIGNvbnN0IHsgZmlyc3QsIHJvd3MgfSA9IHRoaXMucGFnZSgpO1xuICAgIGlmIChmaXJzdCAtIHJvd3MgPj0gMCkge1xuICAgICAgdGhpcy5wYWdlLnNldCh7IGZpcnN0OiBmaXJzdCAtIHJvd3MsIHJvd3MgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2FyZENsaWNrKGNhcmQ6IENhcmQpOiB2b2lkIHtcbiAgICB0aGlzLmNhcmRCdXR0b25DbGljay5lbWl0KGNhcmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbmZpZ09wdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgYmFzZSA9IERFRkFVTFRfQ0FSRF9MSVNUX09QVElPTlM7XG4gICAgY29uc3QgY2ZnOiBDYXJkTGlzdE9wdGlvbnMgPSB7IC4uLmJhc2UsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICBjZmcuY3VzdG9tQ2FyZCA9IHsgLi4uYmFzZS5jdXN0b21DYXJkLCAuLi4odGhpcy5jb25maWc/LmN1c3RvbUNhcmQgPz8ge30pIH07XG4gICAgdGhpcy5vcHRpb25zLnNldChjZmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFibGVTdHJpbmdpZnkob2JqOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFdlYWtTZXQ8b2JqZWN0PigpO1xuICAgIGNvbnN0IHJlcGxhY2VyID0gKF9rOiBzdHJpbmcsIHY6IHVua25vd24pOiB1bmtub3duID0+IHtcbiAgICAgIGlmICh2ICYmIHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCBhc09iaiA9IHYgYXMgb2JqZWN0O1xuICAgICAgICBpZiAoc2Vlbi5oYXMoYXNPYmopKSByZXR1cm47XG4gICAgICAgIHNlZW4uYWRkKGFzT2JqKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHJldHVybiB2O1xuICAgICAgICBjb25zdCBvID0gdiBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG8pLnNvcnQoKS5yZWR1Y2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gb1trZXldO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdiA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdjtcbiAgICB9O1xuICAgIHRyeSB7IHJldHVybiBKU09OLnN0cmluZ2lmeShvYmogPz8ge30sIHJlcGxhY2VyIGFzIGFueSk7IH0gY2F0Y2ggeyByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqID8/IHt9KTsgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNhcmQtbGlzdCBtLTNcIj5cbiAgPGRpdiBbY2xhc3MubXktM109XCJpc01vYmlsZVwiPlxuICAgIEBpZiAobG9hZGluZykge1xuICAgIDxzLWxvYWRpbmctc3RhdGUgW2xvYWRpbmddPVwibG9hZGluZ1wiIFtibG9ja1dpbmRvd109XCJmYWxzZVwiIGNsYXNzPVwic2RjLWNhcmRsaXN0LWxvYWRpbmctc3RhdGVcIj48L3MtbG9hZGluZy1zdGF0ZT5cbiAgICB9IEBlbHNlIHsgQGlmIChwYWdlZERhdGEoKS5sZW5ndGgpIHtcbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgIEBpZiAob3B0aW9ucygpLmVuYWJsZVNpZGVCdXR0b25zKSB7XG4gICAgICA8c2RjLWJ1dHRvblxuICAgICAgICB3aWR0aD1cIjNyZW1cIlxuICAgICAgICAqbmdJZj1cIiFpc01vYmlsZVwiXG4gICAgICAgIChjbGljayk9XCJwcmV2UGFnZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRmlyc3RQYWdlKClcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIGxlZnQtMCB0b3AtNTAgdHJhbnNmb3JtIC10cmFuc2xhdGUteS01MCB6LTFcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgaWNvbj1cImZhcyBmYS1hcnJvdy1sZWZ0XCJcbiAgICAgID48L3NkYy1idXR0b24+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBmbGV4LTFcIiBbY2xhc3MubXgtNV09XCIhaXNNb2JpbGUgJiYgb3B0aW9ucygpLmVuYWJsZVNpZGVCdXR0b25zXCI+XG4gICAgICAgIEBmb3IgKGNhcmQgb2YgcGFnZWREYXRhKCk7IHRyYWNrIGNhcmQubmFtZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC02IGxnOmNvbC00IHhsOmNvbC0zXCI+XG4gICAgICAgICAgPGRwLWNhcmQgKGNhcmRBY3Rpb24pPVwib25DYXJkQ2xpY2soJGV2ZW50KVwiIFtvcHRpb25zXT1cIm9wdGlvbnMoKS5jdXN0b21DYXJkXCIgW2RhdGFdPVwiY2FyZFwiPjwvZHAtY2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChvcHRpb25zKCkuZW5hYmxlU2lkZUJ1dHRvbnMpIHtcbiAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgIHdpZHRoPVwiM3JlbVwiXG4gICAgICAgICpuZ0lmPVwiIWlzTW9iaWxlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGFzdFBhZ2UoKVwiXG4gICAgICAgIChjbGljayk9XCJuZXh0UGFnZSgpXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0wIHRvcC01MCB0cmFuc2Zvcm0gLXRyYW5zbGF0ZS15LTUwIHotMVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpY29uPVwiZmFzIGZhLWFycm93LXJpZ2h0XCJcbiAgICAgID48L3NkYy1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgPHMtZW1wdHktc3RhdGVcbiAgICAgIGlkPVwiY2FyZGxpc3QtZW1wdHlcIlxuICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtaW5ib3hcIlxuICAgICAgW3RpdGxlXT1cImVtcHR5VGl0bGUoKSB8IHRyYW5zbGF0ZVwiXG4gICAgICBbZGVzY3JpcHRpb25dPVwiZW1wdHlUZXh0KCkgfCB0cmFuc2xhdGVcIlxuICAgICAgY2xhc3M9XCJzZGMtY2FyZGxpc3QtZW1wdHktc3RhdGVcIlxuICAgID48L3MtZW1wdHktc3RhdGU+XG4gICAgfSBAaWYgKG9wdGlvbnMoKS5lbmFibGVQYWdpbmF0aW9uKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJlZXR3ZWVuIHNkYy1wYWdpbmF0b3JcIiBbY2xhc3MuanVzdGlmeS1jb250ZW50LWNlbnRlcl09XCJpc01vYmlsZSB8fCBpc1RhYmxldFwiPlxuICAgICAgPHNkYy1wYWdpbmF0b3JcbiAgICAgICAgc3R5bGU9XCJtaW4td2lkdGg6IDEwMCVcIlxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvbkNoYW5nZVBhZ2luYXRvcigkZXZlbnQpXCJcbiAgICAgICAgW2ZpcnN0XT1cInBhZ2UoKS5maXJzdFwiXG4gICAgICAgIFtyb3dzXT1cInBhZ2UoKS5yb3dzXCJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJmaWx0ZXJlZCgpLmxlbmd0aFwiXG4gICAgICAgIFt0b3RhbFJlY29yZHNMYWJlbF09XCJ0b3RhbFJlY29yZHNMYWJlbCgpIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgID5cbiAgICAgIDwvc2RjLXBhZ2luYXRvcj5cbiAgICA8L2Rpdj5cbiAgICB9IH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, Input, Output, EventEmitter, forwardRef } from "@angular/core";
1
+ import { Component, Input, Output, EventEmitter, forwardRef, ChangeDetectionStrategy, ViewEncapsulation } from "@angular/core";
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { NG_VALUE_ACCESSOR } from "@angular/forms";
4
4
  import * as i0 from "@angular/core";
@@ -51,17 +51,17 @@ export class CheckboxComponent {
51
51
  useExisting: forwardRef(() => CheckboxComponent),
52
52
  multi: true
53
53
  }
54
- ], ngImport: i0, template: "<!-- Nativo -->\n<label\n *ngIf=\"commonCheckbox\"\n class=\"sdc-checkbox sdc-checkbox--native\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input-native\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n\n<!-- Custom -->\n<label\n *ngIf=\"!commonCheckbox\"\n class=\"sdc-checkbox\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span class=\"sdc-checkbox__box\" aria-hidden=\"true\"></span>\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n", styles: [":host{display:inline-flex}.sdc-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-checkbox--disabled{cursor:not-allowed;opacity:.6}.sdc-checkbox--label-left{flex-direction:row-reverse}.sdc-checkbox--native .sdc-checkbox__input-native{width:var(--sdc-chk-size);height:var(--sdc-chk-size)}.sdc-checkbox--small{--sdc-chk-size: 14px}.sdc-checkbox--medium{--sdc-chk-size: 18px}.sdc-checkbox--large{--sdc-chk-size: 24px}.sdc-checkbox__input{position:absolute;opacity:0;width:0;height:0}.sdc-checkbox__box{width:var(--sdc-chk-size);height:var(--sdc-chk-size);border:2px solid var(--sdc-chk-border);border-radius:var(--sdc-chk-radius);display:inline-block;position:relative;transition:all .15s ease-in-out;flex:0 0 auto}.sdc-checkbox__input:focus-visible+.sdc-checkbox__box{outline:2px solid var(--sdc-chk-focus);outline-offset:2px}.sdc-checkbox__input:checked+.sdc-checkbox__box{background-color:var(--sdc-chk-color);border-color:var(--sdc-chk-color)}.sdc-checkbox__input:checked+.sdc-checkbox__box:after{content:\"\";position:absolute;left:calc(var(--sdc-chk-size) * .22);top:calc(var(--sdc-chk-size) * .02);width:calc(var(--sdc-chk-size) * .3);height:calc(var(--sdc-chk-size) * .6);border:solid #fff;border-width:0 max(2px,var(--sdc-chk-size) * .1) max(2px,var(--sdc-chk-size) * .1) 0;transform:rotate(45deg);box-sizing:border-box}.sdc-checkbox__label{font-size:14px;line-height:1;align-self:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
54
+ ], ngImport: i0, template: "<!-- Nativo -->\n<label\n *ngIf=\"commonCheckbox\"\n class=\"sdc-checkbox sdc-checkbox--native\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input-native\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n\n<!-- Custom -->\n<label\n *ngIf=\"!commonCheckbox\"\n class=\"sdc-checkbox\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span class=\"sdc-checkbox__box\" aria-hidden=\"true\"></span>\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n", styles: [":host{display:inline-flex}.sdc-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-checkbox--disabled{cursor:not-allowed;opacity:.6}.sdc-checkbox--label-left{flex-direction:row-reverse}.sdc-checkbox--native .sdc-checkbox__input-native{width:var(--sdc-chk-size);height:var(--sdc-chk-size)}.sdc-checkbox--small{--sdc-chk-size: 14px}.sdc-checkbox--medium{--sdc-chk-size: 18px}.sdc-checkbox--large{--sdc-chk-size: 24px}.sdc-checkbox__input{position:absolute;opacity:0;width:0;height:0}.sdc-checkbox__box{width:var(--sdc-chk-size);height:var(--sdc-chk-size);border:1px solid var(--sdc-chk-border);border-radius:var(--sdc-chk-radius);display:inline-block;position:relative;transition:all .15s ease-in-out;flex:0 0 auto}.sdc-checkbox__input:focus-visible+.sdc-checkbox__box{outline:2px solid var(--sdc-chk-focus);outline-offset:2px}.sdc-checkbox__input:checked+.sdc-checkbox__box{background-color:var(--sdc-chk-color);border-color:var(--sdc-chk-color)}.sdc-checkbox__input:checked+.sdc-checkbox__box:after{content:\"\";position:absolute;left:calc(var(--sdc-chk-size) * .22);top:calc(var(--sdc-chk-size) * .02);width:calc(var(--sdc-chk-size) * .3);height:calc(var(--sdc-chk-size) * .6);border:solid #fff;border-width:0 max(2px,var(--sdc-chk-size) * .1) max(2px,var(--sdc-chk-size) * .1) 0;transform:rotate(45deg);box-sizing:border-box}.sdc-checkbox__label{font-size:14px;line-height:1;align-self:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ standalone: true, selector: "sdc-checkbox", imports: [CommonModule], providers: [
58
+ args: [{ standalone: true, selector: "sdc-checkbox", imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, providers: [
59
59
  {
60
60
  provide: NG_VALUE_ACCESSOR,
61
61
  useExisting: forwardRef(() => CheckboxComponent),
62
62
  multi: true
63
63
  }
64
- ], template: "<!-- Nativo -->\n<label\n *ngIf=\"commonCheckbox\"\n class=\"sdc-checkbox sdc-checkbox--native\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input-native\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n\n<!-- Custom -->\n<label\n *ngIf=\"!commonCheckbox\"\n class=\"sdc-checkbox\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span class=\"sdc-checkbox__box\" aria-hidden=\"true\"></span>\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n", styles: [":host{display:inline-flex}.sdc-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-checkbox--disabled{cursor:not-allowed;opacity:.6}.sdc-checkbox--label-left{flex-direction:row-reverse}.sdc-checkbox--native .sdc-checkbox__input-native{width:var(--sdc-chk-size);height:var(--sdc-chk-size)}.sdc-checkbox--small{--sdc-chk-size: 14px}.sdc-checkbox--medium{--sdc-chk-size: 18px}.sdc-checkbox--large{--sdc-chk-size: 24px}.sdc-checkbox__input{position:absolute;opacity:0;width:0;height:0}.sdc-checkbox__box{width:var(--sdc-chk-size);height:var(--sdc-chk-size);border:2px solid var(--sdc-chk-border);border-radius:var(--sdc-chk-radius);display:inline-block;position:relative;transition:all .15s ease-in-out;flex:0 0 auto}.sdc-checkbox__input:focus-visible+.sdc-checkbox__box{outline:2px solid var(--sdc-chk-focus);outline-offset:2px}.sdc-checkbox__input:checked+.sdc-checkbox__box{background-color:var(--sdc-chk-color);border-color:var(--sdc-chk-color)}.sdc-checkbox__input:checked+.sdc-checkbox__box:after{content:\"\";position:absolute;left:calc(var(--sdc-chk-size) * .22);top:calc(var(--sdc-chk-size) * .02);width:calc(var(--sdc-chk-size) * .3);height:calc(var(--sdc-chk-size) * .6);border:solid #fff;border-width:0 max(2px,var(--sdc-chk-size) * .1) max(2px,var(--sdc-chk-size) * .1) 0;transform:rotate(45deg);box-sizing:border-box}.sdc-checkbox__label{font-size:14px;line-height:1;align-self:center}\n"] }]
64
+ ], template: "<!-- Nativo -->\n<label\n *ngIf=\"commonCheckbox\"\n class=\"sdc-checkbox sdc-checkbox--native\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input-native\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n\n<!-- Custom -->\n<label\n *ngIf=\"!commonCheckbox\"\n class=\"sdc-checkbox\"\n [class.sdc-checkbox--disabled]=\"disabled\"\n [class.sdc-checkbox--label-left]=\"labelPosition === 'left'\"\n [class.sdc-checkbox--small]=\"size === 'small'\"\n [class.sdc-checkbox--medium]=\"size === 'medium'\"\n [class.sdc-checkbox--large]=\"size === 'large'\"\n [attr.aria-disabled]=\"disabled\"\n>\n <input\n class=\"sdc-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInputChange($event)\"\n [attr.aria-checked]=\"checked\"\n [attr.role]=\"'checkbox'\"\n />\n <span class=\"sdc-checkbox__box\" aria-hidden=\"true\"></span>\n <span *ngIf=\"label\" class=\"sdc-checkbox__label\">{{ label }}</span>\n</label>\n", styles: [":host{display:inline-flex}.sdc-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.sdc-checkbox--disabled{cursor:not-allowed;opacity:.6}.sdc-checkbox--label-left{flex-direction:row-reverse}.sdc-checkbox--native .sdc-checkbox__input-native{width:var(--sdc-chk-size);height:var(--sdc-chk-size)}.sdc-checkbox--small{--sdc-chk-size: 14px}.sdc-checkbox--medium{--sdc-chk-size: 18px}.sdc-checkbox--large{--sdc-chk-size: 24px}.sdc-checkbox__input{position:absolute;opacity:0;width:0;height:0}.sdc-checkbox__box{width:var(--sdc-chk-size);height:var(--sdc-chk-size);border:1px solid var(--sdc-chk-border);border-radius:var(--sdc-chk-radius);display:inline-block;position:relative;transition:all .15s ease-in-out;flex:0 0 auto}.sdc-checkbox__input:focus-visible+.sdc-checkbox__box{outline:2px solid var(--sdc-chk-focus);outline-offset:2px}.sdc-checkbox__input:checked+.sdc-checkbox__box{background-color:var(--sdc-chk-color);border-color:var(--sdc-chk-color)}.sdc-checkbox__input:checked+.sdc-checkbox__box:after{content:\"\";position:absolute;left:calc(var(--sdc-chk-size) * .22);top:calc(var(--sdc-chk-size) * .02);width:calc(var(--sdc-chk-size) * .3);height:calc(var(--sdc-chk-size) * .6);border:solid #fff;border-width:0 max(2px,var(--sdc-chk-size) * .1) max(2px,var(--sdc-chk-size) * .1) 0;transform:rotate(45deg);box-sizing:border-box}.sdc-checkbox__label{font-size:14px;line-height:1;align-self:center}\n"] }]
65
65
  }], propDecorators: { label: [{
66
66
  type: Input
67
67
  }], disabled: [{
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
77
77
  }], checkedChange: [{
78
78
  type: Output
79
79
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV6RSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFnQmYsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxhQUFhLEdBQXFCLE9BQU8sQ0FBQztJQUMxQyxJQUFJLEdBQWlDLFFBQVEsQ0FBQztJQUU5QyxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3hCLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRXRELE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUU3QixRQUFRLEdBQTJCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUM1QyxTQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXpDLFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBMEI7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVM7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQTBCLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7d0dBM0NVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDhQQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNsQkgsK2hEQWdEQSxnL0NEdkNZLFlBQVk7OzRGQVdYLGlCQUFpQjtrQkFkN0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sY0FBYyxXQUNmLENBQUMsWUFBWSxDQUFDLGFBR1o7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogXCJzZGMtY2hlY2tib3hcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiBcIi4vY2hlY2tib3guY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzXCJdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY29tbW9uQ2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJztcblxuICBASW5wdXQoKSBjaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBjaGVja2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGlucHV0SWQgPSBgc2RjLWNoZWNrYm94LSR7KytuZXh0SWR9YDtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsOiBib29sZWFuKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9ICEhdmFsdWU7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbDogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICB0b2dnbGVDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZShldjogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGVsID0gZXYudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5jaGVja2VkID0gISFlbC5jaGVja2VkO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5jaGVja2VkKTtcbiAgICB0aGlzLmNoZWNrZWRDaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWQpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cbn1cbiIsIjwhLS0gTmF0aXZvIC0tPlxuPGxhYmVsXG4gICpuZ0lmPVwiY29tbW9uQ2hlY2tib3hcIlxuICBjbGFzcz1cInNkYy1jaGVja2JveCBzZGMtY2hlY2tib3gtLW5hdGl2ZVwiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbGFiZWwtbGVmdF09XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICBbY2xhc3Muc2RjLWNoZWNrYm94LS1zbWFsbF09XCJzaXplID09PSAnc21hbGwnXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbWVkaXVtXT1cInNpemUgPT09ICdtZWRpdW0nXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbGFyZ2VdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cInNkYy1jaGVja2JveF9faW5wdXQtbmF0aXZlXCJcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2F0dHIucm9sZV09XCInY2hlY2tib3gnXCJcbiAgLz5cbiAgPHNwYW4gKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwic2RjLWNoZWNrYm94X19sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuPC9sYWJlbD5cblxuPCEtLSBDdXN0b20gLS0+XG48bGFiZWxcbiAgKm5nSWY9XCIhY29tbW9uQ2hlY2tib3hcIlxuICBjbGFzcz1cInNkYy1jaGVja2JveFwiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbGFiZWwtbGVmdF09XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICBbY2xhc3Muc2RjLWNoZWNrYm94LS1zbWFsbF09XCJzaXplID09PSAnc21hbGwnXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbWVkaXVtXT1cInNpemUgPT09ICdtZWRpdW0nXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tbGFyZ2VdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cInNkYy1jaGVja2JveF9faW5wdXRcIlxuICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgW2lkXT1cImlucHV0SWRcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICBbYXR0ci5yb2xlXT1cIidjaGVja2JveCdcIlxuICAvPlxuICA8c3BhbiBjbGFzcz1cInNkYy1jaGVja2JveF9fYm94XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJzZGMtY2hlY2tib3hfX2xhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG48L2xhYmVsPlxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV6RSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFrQmYsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxhQUFhLEdBQXFCLE9BQU8sQ0FBQztJQUMxQyxJQUFJLEdBQWlDLFFBQVEsQ0FBQztJQUM5QyxPQUFPLEdBQVksS0FBSyxDQUFDO0lBRXhCLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRXRELE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUU3QixRQUFRLEdBQTJCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QyxTQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTFDLFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBMEI7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVM7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQTBCLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7d0dBOUNVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDhQQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNwQkgsK2hEQWdEQSxnL0NEdkNZLFlBQVk7OzRGQWFYLGlCQUFpQjtrQkFoQjdCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGNBQWMsV0FDZixDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRLGFBQzlCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogXCJzZGMtY2hlY2tib3hcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiBcIi4vY2hlY2tib3guY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hlY2tib3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb21tb25DaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiAncmlnaHQnIHwgJ2xlZnQnID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdtZWRpdW0nO1xuICBASW5wdXQoKSBjaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNoZWNrZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgaW5wdXRJZCA9IGBzZGMtY2hlY2tib3gtJHsrK25leHRJZH1gO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWw6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbDogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgdG9nZ2xlQ2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmNoZWNrZWQpO1xuICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXY6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCBlbCA9IGV2LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMuY2hlY2tlZCA9ICEhZWwuY2hlY2tlZDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG59XG4iLCI8IS0tIE5hdGl2byAtLT5cbjxsYWJlbFxuICAqbmdJZj1cImNvbW1vbkNoZWNrYm94XCJcbiAgY2xhc3M9XCJzZGMtY2hlY2tib3ggc2RjLWNoZWNrYm94LS1uYXRpdmVcIlxuICBbY2xhc3Muc2RjLWNoZWNrYm94LS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLWxhYmVsLWxlZnRdPVwibGFiZWxQb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tc21hbGxdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLW1lZGl1bV09XCJzaXplID09PSAnbWVkaXVtJ1wiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLWxhcmdlXT1cInNpemUgPT09ICdsYXJnZSdcIlxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbj5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJzZGMtY2hlY2tib3hfX2lucHV0LW5hdGl2ZVwiXG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFthdHRyLnJvbGVdPVwiJ2NoZWNrYm94J1wiXG4gIC8+XG4gIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cInNkYy1jaGVja2JveF9fbGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbjwvbGFiZWw+XG5cbjwhLS0gQ3VzdG9tIC0tPlxuPGxhYmVsXG4gICpuZ0lmPVwiIWNvbW1vbkNoZWNrYm94XCJcbiAgY2xhc3M9XCJzZGMtY2hlY2tib3hcIlxuICBbY2xhc3Muc2RjLWNoZWNrYm94LS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLWxhYmVsLWxlZnRdPVwibGFiZWxQb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgW2NsYXNzLnNkYy1jaGVja2JveC0tc21hbGxdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLW1lZGl1bV09XCJzaXplID09PSAnbWVkaXVtJ1wiXG4gIFtjbGFzcy5zZGMtY2hlY2tib3gtLWxhcmdlXT1cInNpemUgPT09ICdsYXJnZSdcIlxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbj5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJzZGMtY2hlY2tib3hfX2lucHV0XCJcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2F0dHIucm9sZV09XCInY2hlY2tib3gnXCJcbiAgLz5cbiAgPHNwYW4gY2xhc3M9XCJzZGMtY2hlY2tib3hfX2JveFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwic2RjLWNoZWNrYm94X19sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==
@@ -1,23 +1,65 @@
1
- import { Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, forwardRef, Input, Output, ViewChild, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
2
2
  import { AutoCompleteModule } from 'primeng/autocomplete';
3
+ import { MultiSelectModule } from 'primeng/multiselect';
3
4
  import { CommonModule } from '@angular/common';
4
- import { fixComboBoxOverlay } from '../../public-api';
5
5
  import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
6
6
  import { InputsComponent } from '../inputs';
7
+ import { fixComboBoxOverlay } from 'lib/src/core/fixes/fix-zindex';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "primeng/autocomplete";
9
10
  import * as i2 from "primeng/api";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@angular/forms";
11
+ import * as i3 from "primeng/multiselect";
12
+ import * as i4 from "@angular/common";
13
+ import * as i5 from "@angular/forms";
12
14
  export class ComboboxComponent extends InputsComponent {
13
- filteredItems = [];
14
- autocomplete;
15
+ multiple = false;
15
16
  appendTo;
16
17
  zIndex = 9999;
17
18
  options = [];
19
+ overrideChipMessage;
20
+ maxSelectedLabels = 2;
18
21
  selectedValueEvent = new EventEmitter();
22
+ autocomplete;
23
+ multiselect;
24
+ filteredItems = [];
25
+ value = null;
26
+ displayMode = 'chip';
19
27
  ngAfterViewInit() {
20
- fixComboBoxOverlay(this.autocomplete, this.zIndex);
28
+ if (!this.multiple && this.autocomplete) {
29
+ fixComboBoxOverlay(this.autocomplete, this.zIndex);
30
+ }
31
+ this.updateDisplayMode();
32
+ }
33
+ onSearch(event) {
34
+ const all = this.normalizeOptions();
35
+ const q = (event?.query ?? '').toString().trim().toLowerCase();
36
+ const source = !q ? all : all.filter(i => (i?.text ?? '').toLowerCase().includes(q));
37
+ this.filteredItems = source.slice();
38
+ this.invalid = this.filteredItems.length === 0 && this.asArray(this.value).length === 0;
39
+ }
40
+ onMultiChange(e) {
41
+ this.propagateFromValue(e?.value ?? []);
42
+ }
43
+ onInput(event) {
44
+ const val = Array.isArray(event) ? event : event;
45
+ this.propagateFromValue(val);
46
+ }
47
+ clearAll() {
48
+ this.value = this.multiple ? [] : null;
49
+ this.invalid = false;
50
+ this.selectedValueEvent.emit(this.value);
51
+ super.onInput({ target: { value: this.value } });
52
+ this.updateDisplayMode();
53
+ }
54
+ onMultiModelChange(val) {
55
+ this.propagateFromValue(Array.isArray(val) ? val : []);
56
+ }
57
+ get normalizedOptions() {
58
+ return this.normalizeOptions();
59
+ }
60
+ get selectedItemsLabel() {
61
+ const tpl = this.overrideChipMessage || '{0} itens selecionados';
62
+ return tpl.replace(/\{count\}/g, '{0}');
21
63
  }
22
64
  normalizeOptions() {
23
65
  if (Array.isArray(this.options))
@@ -30,53 +72,71 @@ export class ComboboxComponent extends InputsComponent {
30
72
  return [];
31
73
  }
32
74
  }
33
- onSearch(event) {
34
- const all = this.normalizeOptions();
35
- const q = (event?.query ?? '').toString().trim().toLowerCase();
36
- if (!q) {
37
- this.filteredItems = all.slice();
38
- this.invalid = this.filteredItems.length === 0;
75
+ asArray(val) {
76
+ if (Array.isArray(val))
77
+ return val;
78
+ if (val === null || val === undefined)
79
+ return [];
80
+ return [val];
81
+ }
82
+ selectedCount() {
83
+ return this.multiple ? this.asArray(this.value).length : (this.value != null ? 1 : 0);
84
+ }
85
+ updateDisplayMode() {
86
+ if (!this.multiple) {
87
+ this.displayMode = 'comma';
39
88
  return;
40
89
  }
41
- this.filteredItems = all.filter(i => (i?.text ?? '').toLowerCase().includes(q));
42
- this.invalid = this.filteredItems.length === 0;
90
+ const count = this.selectedCount();
91
+ this.displayMode = count > this.maxSelectedLabels ? 'comma' : 'chip';
43
92
  }
44
- onInput(event) {
45
- super.onInput(event);
46
- this.selectedValueEvent.emit(this.value);
47
- if (this.filteredItems?.length > 0) {
93
+ propagateFromValue(val) {
94
+ this.value = val;
95
+ if (this.asArray(this.value).length > 0)
48
96
  this.invalid = false;
49
- }
97
+ this.selectedValueEvent.emit(this.value ?? (this.multiple ? [] : null));
98
+ const syntheticEvt = { target: { value: this.value } };
99
+ super.onInput(syntheticEvt);
100
+ this.updateDisplayMode();
50
101
  }
51
102
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ComboboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
52
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ComboboxComponent, isStandalone: true, selector: "sdc-combobox", inputs: { appendTo: "appendTo", zIndex: "zIndex", options: "options" }, outputs: { selectedValueEvent: "onSelectedItem" }, providers: [
103
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ComboboxComponent, isStandalone: true, selector: "sdc-combobox", inputs: { multiple: "multiple", appendTo: "appendTo", zIndex: "zIndex", options: "options", overrideChipMessage: "overrideChipMessage", maxSelectedLabels: "maxSelectedLabels" }, outputs: { selectedValueEvent: "onSelectedItem" }, providers: [
53
104
  {
54
105
  provide: NG_VALUE_ACCESSOR,
55
106
  useExisting: forwardRef(() => ComboboxComponent),
56
107
  multi: true
57
108
  }
58
- ], viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["autocomplete"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-combobox\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span class=\"required-field\" *ngIf=\"required\"> &bull;</span>\n </label>\n\n <p-autocomplete\n #autocomplete\n dropdownIcon=\"fas fa-caret-down\"\n (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [autoHighlight]=\"true\"\n [disabled]=\"disabled\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [showClear]=\"true\"\n [style]=\"getInputStyle()\"\n [suggestions]=\"filteredItems\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [appendTo]=\"appendTo\">\n\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-autocomplete>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">{{ message }}</small>\n</div>\n", styles: [".sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-button-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}\n"], dependencies: [{ kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
109
+ ], viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "multiselect", first: true, predicate: ["multiselect"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-combobox\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span class=\"required-field\" *ngIf=\"required\"> &bull;</span>\n </label>\n\n <!-- SINGLE: p-autocomplete -->\n <ng-container *ngIf=\"!multiple; else multipleTpl\">\n <p-autocomplete #autocomplete dropdownIcon=\"fas fa-caret-down\" (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\" [(ngModel)]=\"value\" [autoHighlight]=\"true\" [disabled]=\"disabled\"\n [dropdown]=\"true\" [forceSelection]=\"true\" [id]=\"identity.id\" [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\" [placeholder]=\"placeholder\" [required]=\"required\" [showClear]=\"true\"\n [style]=\"getInputStyle()\" [suggestions]=\"filteredItems\" optionLabel=\"text\" optionValue=\"value\"\n [appendTo]=\"appendTo\">\n\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-autocomplete>\n </ng-container>\n\n <!-- MULTIPLE: p-multiselect -->\n <ng-template #multipleTpl>\n <p-multiselect chipIcon=\"fas fa-times\" #multiselect (ngModelChange)=\"onMultiModelChange($event)\" [options]=\"normalizedOptions\"\n optionLabel=\"text\" optionValue=\"value\" [filter]=\"true\" [display]=\"displayMode\" dropdownIcon=\"fas fa-caret-down\"\n [disabled]=\"disabled\" [appendTo]=\"appendTo\" [placeholder]=\"placeholder\" [showClear]=\"true\"\n [style]=\"getInputStyle()\" [ngClass]=\"getInvalidClass()\" [id]=\"identity.id\" [name]=\"identity.name ?? ''\"\n [required]=\"required\" (onChange)=\"onMultiChange($event)\" [(ngModel)]=\"value\"\n [maxSelectedLabels]=\"maxSelectedLabels\" [selectedItemsLabel]=\"selectedItemsLabel\"><ng-template pTemplate=\"item\"\n let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"chip\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span class=\"text-sm\">{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-multiselect>\n </ng-template>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">{{ message }}</small>\n</div>\n", styles: [".sdc-combobox label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:7px;padding-bottom:7px}.sdc-combobox .required-field{margin-left:.25rem}.sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-formfield-default-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete .p-autocomplete-clear-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect{display:flex!important;align-items:center!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label-container{height:100%!important;display:flex!important;align-items:center!important;overflow:hidden!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label{height:100%!important;display:flex!important;align-items:center!important;padding:0 .75rem!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect-dropdown{height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;border-left:1px solid var(--sdc-formfield-default-border)!important;background-color:var(--sdc-formfield-default-bg)!important;border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger span,.sdc-combobox ::ng-deep .p-multiselect-dropdown span{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect-dropdown:hover{background-color:var(--sdc-button-bg-hover)!important;transition:var(--sdc-button-bg-hover-transition)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger-icon,.sdc-combobox ::ng-deep .p-multiselect-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect-token{margin-block:0!important}.sdc-combobox ::ng-deep .p-chip{background:var(--sdc-formfield-default-bg)!important;font-weight:500;border:1px solid var(--sdc-formfield-default-border)!important}.sdc-combobox ::ng-deep .p-multiselect:not(.p-disabled):hover{border-color:var(--sdc-formfield-default-border)!important}.sdc-combobox ::ng-deep .p-multiselect-clear-icon{color:var(--sdc-button-icon-default)!important;padding:10px!important}.sdc-combobox ::ng-deep .p-multiselect input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown{background-color:var(--sdc-formfield-disabled-bg)!important;color:var(--sdc-button-icon-default)!important;opacity:.6;cursor:not-allowed!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown:hover{background-color:var(--sdc-formfield-disabled-bg)!important}\n"], dependencies: [{ kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i3.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
59
110
  }
60
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ComboboxComponent, decorators: [{
61
112
  type: Component,
62
- args: [{ imports: [AutoCompleteModule, CommonModule, FormsModule, ReactiveFormsModule], standalone: true, selector: 'sdc-combobox', providers: [
113
+ args: [{ imports: [AutoCompleteModule, MultiSelectModule, CommonModule, FormsModule, ReactiveFormsModule], standalone: true, selector: 'sdc-combobox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, providers: [
63
114
  {
64
115
  provide: NG_VALUE_ACCESSOR,
65
116
  useExisting: forwardRef(() => ComboboxComponent),
66
117
  multi: true
67
118
  }
68
- ], template: "<div class=\"sdc-combobox\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span class=\"required-field\" *ngIf=\"required\"> &bull;</span>\n </label>\n\n <p-autocomplete\n #autocomplete\n dropdownIcon=\"fas fa-caret-down\"\n (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [autoHighlight]=\"true\"\n [disabled]=\"disabled\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [showClear]=\"true\"\n [style]=\"getInputStyle()\"\n [suggestions]=\"filteredItems\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [appendTo]=\"appendTo\">\n\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-autocomplete>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">{{ message }}</small>\n</div>\n", styles: [".sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-button-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}\n"] }]
69
- }], propDecorators: { autocomplete: [{
70
- type: ViewChild,
71
- args: ['autocomplete']
119
+ ], template: "<div class=\"sdc-combobox\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span class=\"required-field\" *ngIf=\"required\"> &bull;</span>\n </label>\n\n <!-- SINGLE: p-autocomplete -->\n <ng-container *ngIf=\"!multiple; else multipleTpl\">\n <p-autocomplete #autocomplete dropdownIcon=\"fas fa-caret-down\" (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\" [(ngModel)]=\"value\" [autoHighlight]=\"true\" [disabled]=\"disabled\"\n [dropdown]=\"true\" [forceSelection]=\"true\" [id]=\"identity.id\" [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\" [placeholder]=\"placeholder\" [required]=\"required\" [showClear]=\"true\"\n [style]=\"getInputStyle()\" [suggestions]=\"filteredItems\" optionLabel=\"text\" optionValue=\"value\"\n [appendTo]=\"appendTo\">\n\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-autocomplete>\n </ng-container>\n\n <!-- MULTIPLE: p-multiselect -->\n <ng-template #multipleTpl>\n <p-multiselect chipIcon=\"fas fa-times\" #multiselect (ngModelChange)=\"onMultiModelChange($event)\" [options]=\"normalizedOptions\"\n optionLabel=\"text\" optionValue=\"value\" [filter]=\"true\" [display]=\"displayMode\" dropdownIcon=\"fas fa-caret-down\"\n [disabled]=\"disabled\" [appendTo]=\"appendTo\" [placeholder]=\"placeholder\" [showClear]=\"true\"\n [style]=\"getInputStyle()\" [ngClass]=\"getInvalidClass()\" [id]=\"identity.id\" [name]=\"identity.name ?? ''\"\n [required]=\"required\" (onChange)=\"onMultiChange($event)\" [(ngModel)]=\"value\"\n [maxSelectedLabels]=\"maxSelectedLabels\" [selectedItemsLabel]=\"selectedItemsLabel\"><ng-template pTemplate=\"item\"\n let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"chip\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span class=\"text-sm\">{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-multiselect>\n </ng-template>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">{{ message }}</small>\n</div>\n", styles: [".sdc-combobox label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:7px;padding-bottom:7px}.sdc-combobox .required-field{margin-left:.25rem}.sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-formfield-default-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete .p-autocomplete-clear-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect{display:flex!important;align-items:center!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label-container{height:100%!important;display:flex!important;align-items:center!important;overflow:hidden!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label{height:100%!important;display:flex!important;align-items:center!important;padding:0 .75rem!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect-dropdown{height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;border-left:1px solid var(--sdc-formfield-default-border)!important;background-color:var(--sdc-formfield-default-bg)!important;border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger span,.sdc-combobox ::ng-deep .p-multiselect-dropdown span{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect-dropdown:hover{background-color:var(--sdc-button-bg-hover)!important;transition:var(--sdc-button-bg-hover-transition)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger-icon,.sdc-combobox ::ng-deep .p-multiselect-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect-token{margin-block:0!important}.sdc-combobox ::ng-deep .p-chip{background:var(--sdc-formfield-default-bg)!important;font-weight:500;border:1px solid var(--sdc-formfield-default-border)!important}.sdc-combobox ::ng-deep .p-multiselect:not(.p-disabled):hover{border-color:var(--sdc-formfield-default-border)!important}.sdc-combobox ::ng-deep .p-multiselect-clear-icon{color:var(--sdc-button-icon-default)!important;padding:10px!important}.sdc-combobox ::ng-deep .p-multiselect input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown{background-color:var(--sdc-formfield-disabled-bg)!important;color:var(--sdc-button-icon-default)!important;opacity:.6;cursor:not-allowed!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown:hover{background-color:var(--sdc-formfield-disabled-bg)!important}\n"] }]
120
+ }], propDecorators: { multiple: [{
121
+ type: Input
72
122
  }], appendTo: [{
73
123
  type: Input
74
124
  }], zIndex: [{
75
125
  type: Input
76
126
  }], options: [{
77
127
  type: Input
128
+ }], overrideChipMessage: [{
129
+ type: Input
130
+ }], maxSelectedLabels: [{
131
+ type: Input
78
132
  }], selectedValueEvent: [{
79
133
  type: Output,
80
134
  args: ['onSelectedItem']
135
+ }], autocomplete: [{
136
+ type: ViewChild,
137
+ args: ['autocomplete']
138
+ }], multiselect: [{
139
+ type: ViewChild,
140
+ args: ['multiselect']
81
141
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLHNCQUFzQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQW9DLE1BQU0sa0JBQWtCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7OztBQWdCNUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQTRCO0lBQzFELGFBQWEsR0FBaUIsRUFBRSxDQUFDO0lBQ2IsWUFBWSxDQUFNO0lBRXBDLFFBQVEsQ0FBcUI7SUFDN0IsTUFBTSxHQUFXLElBQUksQ0FBQztJQUN0QixPQUFPLEdBQXFCLEVBQUUsQ0FBQztJQUVkLGtCQUFrQixHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFL0UsZUFBZTtRQUNiLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUF1QixDQUFDO1FBQ3JFLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFFLE1BQXVCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFnQztRQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFL0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDL0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVRLE9BQU8sQ0FBQyxLQUEwQjtRQUN6QyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7d0dBN0NVLGlCQUFpQjs0RkFBakIsaUJBQWlCLHNMQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwrSkNuQkgsdTVDQTZDQSwreUNEckNZLGtCQUFrQiwyMkNBQUUsWUFBWSxnT0FBRSxXQUFXLDJqQkFBRSxtQkFBbUI7OzRGQWFqRSxpQkFBaUI7a0JBZDdCLFNBQVM7OEJBQ0MsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLGNBQ2pFLElBQUksWUFDTixjQUFjLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUkwQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBRWhCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFb0Isa0JBQWtCO3NCQUEzQyxNQUFNO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZU1vZHVsZSwgQXV0b0NvbXBsZXRlQ29tcGxldGVFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBmaXhDb21ib0JveE92ZXJsYXksIE9wdGlvbkl0ZW0sIE9wdGlvbnMsIE9wdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0F1dG9Db21wbGV0ZU1vZHVsZSwgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWNvbWJvYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb21ib2JveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveENvbXBvbmVudCBleHRlbmRzIElucHV0c0NvbXBvbmVudDxPcHRpb25WYWx1ZT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIGZpbHRlcmVkSXRlbXM6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGUnKSBhdXRvY29tcGxldGU6IGFueTtcbiAgXG4gIEBJbnB1dCgpIGFwcGVuZFRvOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHpJbmRleDogbnVtYmVyID0gOTk5OTtcbiAgQElucHV0KCkgb3B0aW9uczogT3B0aW9ucyB8IHN0cmluZyA9IFtdO1xuXG4gIEBPdXRwdXQoJ29uU2VsZWN0ZWRJdGVtJykgc2VsZWN0ZWRWYWx1ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25WYWx1ZT4oKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgZml4Q29tYm9Cb3hPdmVybGF5KHRoaXMuYXV0b2NvbXBsZXRlLCB0aGlzLnpJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9wdGlvbnMoKTogT3B0aW9uSXRlbVtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMpKSByZXR1cm4gdGhpcy5vcHRpb25zIGFzIE9wdGlvbkl0ZW1bXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0aGlzLm9wdGlvbnMgfHwgJ1tdJyk7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gKHBhcnNlZCBhcyBPcHRpb25JdGVtW10pIDogW107XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2goZXZlbnQ6IEF1dG9Db21wbGV0ZUNvbXBsZXRlRXZlbnQpIHtcbiAgICBjb25zdCBhbGwgPSB0aGlzLm5vcm1hbGl6ZU9wdGlvbnMoKTtcbiAgICBjb25zdCBxID0gKGV2ZW50Py5xdWVyeSA/PyAnJykudG9TdHJpbmcoKS50cmltKCkudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmICghcSkge1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gYWxsLnNsaWNlKCk7XG4gICAgICB0aGlzLmludmFsaWQgPSB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSAwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGFsbC5maWx0ZXIoaSA9PiAoaT8udGV4dCA/PyAnJykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSk7XG4gICAgdGhpcy5pbnZhbGlkID0gdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5wdXQoZXZlbnQ6IEV2ZW50IHwgT3B0aW9uVmFsdWUpOiB2b2lkIHtcbiAgICBzdXBlci5vbklucHV0KGV2ZW50KTtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVFdmVudC5lbWl0KHRoaXMudmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRJdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbWJvYm94XCI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW2Zvcl09XCJpZGVudGl0eS5pZFwiPlxuICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiAqbmdJZj1cInJlcXVpcmVkXCI+ICZidWxsOzwvc3Bhbj5cbiAgPC9sYWJlbD5cblxuICA8cC1hdXRvY29tcGxldGVcbiAgICAjYXV0b2NvbXBsZXRlXG4gICAgZHJvcGRvd25JY29uPVwiZmFzIGZhLWNhcmV0LWRvd25cIlxuICAgIChjb21wbGV0ZU1ldGhvZCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0KCRldmVudClcIlxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFthdXRvSGlnaGxpZ2h0XT1cInRydWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICBbaWRdPVwiaWRlbnRpdHkuaWRcIlxuICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWUgPz8gJydcIlxuICAgIFtuZ0NsYXNzXT1cImdldEludmFsaWRDbGFzcygpXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICBbc3R5bGVdPVwiZ2V0SW5wdXRTdHlsZSgpXCJcbiAgICBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRJdGVtc1wiXG4gICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcbiAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCJcbiAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIj5cblxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LW9wdD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICA8aSAqbmdJZj1cIm9wdD8uaWNvblwiIFtjbGFzc109XCJvcHQuaWNvblwiPjwvaT5cbiAgICAgICAgPHNwYW4+e3sgb3B0Py50ZXh0IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIiBsZXQtb3B0PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxpICpuZ0lmPVwib3B0Py5pY29uXCIgW2NsYXNzXT1cIm9wdC5pY29uXCI+PC9pPlxuICAgICAgICA8c3Bhbj57eyBvcHQ/LnRleHQgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtYXV0b2NvbXBsZXRlPlxuXG4gIDxzbWFsbCAqbmdJZj1cIm1lc3NhZ2VcIiBbbmdDbGFzc109XCJnZXRJbnZhbGlkTWVzc2FnZUNsYXNzKClcIj57eyBtZXNzYWdlIH19PC9zbWFsbD5cbjwvZGl2PlxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekosT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLHNCQUFzQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7OztBQWtCbkUsTUFBTSxPQUFPLGlCQUNYLFNBQVEsZUFBNEM7SUFHM0MsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixRQUFRLENBQXFCO0lBQzdCLE1BQU0sR0FBVyxJQUFJLENBQUM7SUFDdEIsT0FBTyxHQUFxQixFQUFFLENBQUM7SUFDL0IsbUJBQW1CLENBQVU7SUFDN0IsaUJBQWlCLEdBQVcsQ0FBQyxDQUFDO0lBRWIsa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7SUFFcEUsWUFBWSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUVwQyxhQUFhLEdBQWlCLEVB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LENBQUMsUUFBUSxhQUM5Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBTVEsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFb0Isa0JBQWtCO3NCQUEzQyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFFRyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0MsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUsIEF1dG9Db21wbGV0ZUNvbXBsZXRlRXZlbnQgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbXVsdGlzZWxlY3QnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElucHV0c0NvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0cyc7XG5pbXBvcnQgeyBPcHRpb25JdGVtLCBPcHRpb25zLCBPcHRpb25WYWx1ZSB9IGZyb20gJ2xpYi9zcmMvY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBmaXhDb21ib0JveE92ZXJsYXkgfSBmcm9tICdsaWIvc3JjL2NvcmUvZml4ZXMvZml4LXppbmRleCc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQXV0b0NvbXBsZXRlTW9kdWxlLCBNdWx0aVNlbGVjdE1vZHVsZSwgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWNvbWJvYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbWJvYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94Q29tcG9uZW50XG4gIGV4dGVuZHMgSW5wdXRzQ29tcG9uZW50PE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXT5cbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBhcHBlbmRUbzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSB6SW5kZXg6IG51bWJlciA9IDk5OTk7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IE9wdGlvbnMgfCBzdHJpbmcgPSBbXTtcbiAgQElucHV0KCkgb3ZlcnJpZGVDaGlwTWVzc2FnZT86IHN0cmluZztcbiAgQElucHV0KCkgbWF4U2VsZWN0ZWRMYWJlbHM6IG51bWJlciA9IDI7XG5cbiAgQE91dHB1dCgnb25TZWxlY3RlZEl0ZW0nKSBzZWxlY3RlZFZhbHVlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXT4oKTtcblxuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGUnKSBhdXRvY29tcGxldGU6IGFueTtcbiAgQFZpZXdDaGlsZCgnbXVsdGlzZWxlY3QnKSBtdWx0aXNlbGVjdDogYW55O1xuXG4gIHB1YmxpYyBmaWx0ZXJlZEl0ZW1zOiBPcHRpb25JdGVtW10gPSBbXTtcbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlOiBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGRpc3BsYXlNb2RlOiAnY2hpcCcgfCAnY29tbWEnID0gJ2NoaXAnO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5hdXRvY29tcGxldGUpIHtcbiAgICAgIGZpeENvbWJvQm94T3ZlcmxheSh0aGlzLmF1dG9jb21wbGV0ZSwgdGhpcy56SW5kZXgpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlNb2RlKCk7XG4gIH1cblxuICBvblNlYXJjaChldmVudDogQXV0b0NvbXBsZXRlQ29tcGxldGVFdmVudCkge1xuICAgIGNvbnN0IGFsbCA9IHRoaXMubm9ybWFsaXplT3B0aW9ucygpO1xuICAgIGNvbnN0IHEgPSAoZXZlbnQ/LnF1ZXJ5ID8/ICcnKS50b1N0cmluZygpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHNvdXJjZSA9ICFxID8gYWxsIDogYWxsLmZpbHRlcihpID0+IChpPy50ZXh0ID8/ICcnKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpKTtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBzb3VyY2Uuc2xpY2UoKTtcbiAgICB0aGlzLmludmFsaWQgPSB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSAwICYmIHRoaXMuYXNBcnJheSh0aGlzLnZhbHVlKS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBvbk11bHRpQ2hhbmdlKGU6IHsgdmFsdWU6IE9wdGlvblZhbHVlW10gfSkge1xuICAgIHRoaXMucHJvcGFnYXRlRnJvbVZhbHVlKGU/LnZhbHVlID8/IFtdKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5wdXQoZXZlbnQ6IEV2ZW50IHwgT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdKTogdm9pZCB7XG4gICAgY29uc3QgdmFsID0gQXJyYXkuaXNBcnJheShldmVudCkgPyAoZXZlbnQgYXMgT3B0aW9uVmFsdWVbXSkgOiAoZXZlbnQgYXMgT3B0aW9uVmFsdWUgfCBudWxsKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUZyb21WYWx1ZSh2YWwgYXMgYW55KTtcbiAgfVxuXG4gIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLm11bHRpcGxlID8gW10gOiBudWxsO1xuICAgIHRoaXMuaW52YWxpZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUV2ZW50LmVtaXQodGhpcy52YWx1ZSBhcyBhbnkpO1xuICAgIHN1cGVyLm9uSW5wdXQoeyB0YXJnZXQ6IHsgdmFsdWU6IHRoaXMudmFsdWUgfSB9IGFzIGFueSk7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5TW9kZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uTXVsdGlNb2RlbENoYW5nZSh2YWw6IE9wdGlvblZhbHVlW10gfCBudWxsKSB7XG4gICAgdGhpcy5wcm9wYWdhdGVGcm9tVmFsdWUoQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsIDogW10pO1xuICB9XG5cbiAgZ2V0IG5vcm1hbGl6ZWRPcHRpb25zKCk6IE9wdGlvbkl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplT3B0aW9ucygpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkSXRlbXNMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRwbCA9IHRoaXMub3ZlcnJpZGVDaGlwTWVzc2FnZSB8fCAnezB9IGl0ZW5zIHNlbGVjaW9uYWRvcyc7XG4gICAgcmV0dXJuIHRwbC5yZXBsYWNlKC9cXHtjb3VudFxcfS9nLCAnezB9Jyk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9wdGlvbnMoKTogT3B0aW9uSXRlbVtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMpKSByZXR1cm4gdGhpcy5vcHRpb25zIGFzIE9wdGlvbkl0ZW1bXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0aGlzLm9wdGlvbnMgfHwgJ1tdJyk7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gKHBhcnNlZCBhcyBPcHRpb25JdGVtW10pIDogW107XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc0FycmF5KHZhbDogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdIHwgbnVsbCB8IHVuZGVmaW5lZCk6IE9wdGlvblZhbHVlW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiB2YWwgYXMgT3B0aW9uVmFsdWVbXTtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW107XG4gICAgcmV0dXJuIFt2YWwgYXMgT3B0aW9uVmFsdWVdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyB0aGlzLmFzQXJyYXkodGhpcy52YWx1ZSkubGVuZ3RoIDogKHRoaXMudmFsdWUgIT0gbnVsbCA/IDEgOiAwKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGlzcGxheU1vZGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7IHRoaXMuZGlzcGxheU1vZGUgPSAnY29tbWEnOyByZXR1cm47IH1cbiAgICBjb25zdCBjb3VudCA9IHRoaXMuc2VsZWN0ZWRDb3VudCgpO1xuICAgIHRoaXMuZGlzcGxheU1vZGUgPSBjb3VudCA+IHRoaXMubWF4U2VsZWN0ZWRMYWJlbHMgPyAnY29tbWEnIDogJ2NoaXAnO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wYWdhdGVGcm9tVmFsdWUodmFsOiBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10gfCBudWxsKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbCBhcyBhbnk7XG4gICAgaWYgKHRoaXMuYXNBcnJheSh0aGlzLnZhbHVlKS5sZW5ndGggPiAwKSB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVFdmVudC5lbWl0KHRoaXMudmFsdWUgPz8gKHRoaXMubXVsdGlwbGUgPyBbXSA6IG51bGwpKTtcbiAgICBjb25zdCBzeW50aGV0aWNFdnQgPSB7IHRhcmdldDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9IH0gYXMgdW5rbm93biBhcyBFdmVudDtcbiAgICBzdXBlci5vbklucHV0KHN5bnRoZXRpY0V2dCk7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5TW9kZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbWJvYm94XCI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW2Zvcl09XCJpZGVudGl0eS5pZFwiPlxuICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiAqbmdJZj1cInJlcXVpcmVkXCI+ICZidWxsOzwvc3Bhbj5cbiAgPC9sYWJlbD5cblxuICA8IS0tIFNJTkdMRTogcC1hdXRvY29tcGxldGUgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlwbGU7IGVsc2UgbXVsdGlwbGVUcGxcIj5cbiAgICA8cC1hdXRvY29tcGxldGUgI2F1dG9jb21wbGV0ZSBkcm9wZG93bkljb249XCJmYXMgZmEtY2FyZXQtZG93blwiIChjb21wbGV0ZU1ldGhvZCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXQoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwidmFsdWVcIiBbYXV0b0hpZ2hsaWdodF09XCJ0cnVlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtkcm9wZG93bl09XCJ0cnVlXCIgW2ZvcmNlU2VsZWN0aW9uXT1cInRydWVcIiBbaWRdPVwiaWRlbnRpdHkuaWRcIiBbbmFtZV09XCJpZGVudGl0eS5uYW1lID8/ICcnXCJcbiAgICAgIFtuZ0NsYXNzXT1cImdldEludmFsaWRDbGFzcygpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIFtzdHlsZV09XCJnZXRJbnB1dFN0eWxlKClcIiBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRJdGVtc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxuICAgICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LW9wdD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJvcHQ/Lmljb25cIiBbY2xhc3NdPVwib3B0Lmljb25cIj48L2k+XG4gICAgICAgICAgPHNwYW4+e3sgb3B0Py50ZXh0IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIiBsZXQtb3B0PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8aSAqbmdJZj1cIm9wdD8uaWNvblwiIFtjbGFzc109XCJvcHQuaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyBvcHQ/LnRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtYXV0b2NvbXBsZXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIE1VTFRJUExFOiBwLW11bHRpc2VsZWN0IC0tPlxuICA8bmctdGVtcGxhdGUgI211bHRpcGxlVHBsPlxuICAgIDxwLW11bHRpc2VsZWN0IGNoaXBJY29uPVwiZmFzIGZhLXRpbWVzXCIgI211bHRpc2VsZWN0IChuZ01vZGVsQ2hhbmdlKT1cIm9uTXVsdGlNb2RlbENoYW5nZSgkZXZlbnQpXCIgW29wdGlvbnNdPVwibm9ybWFsaXplZE9wdGlvbnNcIlxuICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtmaWx0ZXJdPVwidHJ1ZVwiIFtkaXNwbGF5XT1cImRpc3BsYXlNb2RlXCIgZHJvcGRvd25JY29uPVwiZmFzIGZhLWNhcmV0LWRvd25cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIFtzdHlsZV09XCJnZXRJbnB1dFN0eWxlKClcIiBbbmdDbGFzc109XCJnZXRJbnZhbGlkQ2xhc3MoKVwiIFtpZF09XCJpZGVudGl0eS5pZFwiIFtuYW1lXT1cImlkZW50aXR5Lm5hbWUgPz8gJydcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgKG9uQ2hhbmdlKT1cIm9uTXVsdGlDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgW21heFNlbGVjdGVkTGFiZWxzXT1cIm1heFNlbGVjdGVkTGFiZWxzXCIgW3NlbGVjdGVkSXRlbXNMYWJlbF09XCJzZWxlY3RlZEl0ZW1zTGFiZWxcIj48bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaXRlbVwiXG4gICAgICAgIGxldC1vcHQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgIDxpICpuZ0lmPVwib3B0Py5pY29uXCIgW2NsYXNzXT1cIm9wdC5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuPnt7IG9wdD8udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2hpcFwiIGxldC1vcHQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgIDxpICpuZ0lmPVwib3B0Py5pY29uXCIgW2NsYXNzXT1cIm9wdC5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiPnt7IG9wdD8udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC1tdWx0aXNlbGVjdD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8c21hbGwgKm5nSWY9XCJtZXNzYWdlXCIgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCI+e3sgbWVzc2FnZSB9fTwvc21hbGw+XG48L2Rpdj5cbiJdfQ==