@tolle_/tolle-ui 0.0.15-beta → 0.0.17-beta

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.
@@ -16,6 +16,16 @@ export class DataTableComponent {
16
16
  pageSize = 10;
17
17
  expandable = false;
18
18
  size = 'default';
19
+ // --- NEW INPUTS FOR COLUMN HIDING ---
20
+ allowColumnHiding = true;
21
+ showSettings = true; // Set to false to hide the gear icon/menu entirely
22
+ // Track visibility state: { 'columnKey': true/false }
23
+ columnVisibility = {};
24
+ showColumnMenu = false;
25
+ // Filter columns based on visibility state
26
+ get activeColumns() {
27
+ return this.columns.filter(col => this.columnVisibility[col.key]);
28
+ }
19
29
  // Track which rows are open
20
30
  expandedRows = new Set();
21
31
  // Use ContentChildren to grab the tolleCell templates from the user's HTML
@@ -61,11 +71,25 @@ export class DataTableComponent {
61
71
  if (changes['data']) {
62
72
  this.refreshTable();
63
73
  }
74
+ if (changes['columns']) {
75
+ this.initializeVisibility();
76
+ }
77
+ }
78
+ initializeVisibility() {
79
+ // Default all columns to visible if not already set
80
+ this.columns.forEach(col => {
81
+ if (this.columnVisibility[col.key] === undefined) {
82
+ this.columnVisibility[col.key] = true;
83
+ }
84
+ });
64
85
  }
65
86
  // --- Search & Sort & Page Logic ---
66
87
  // (Your existing implementation of applySearch, applySort, and updatePage goes here)
67
88
  refreshTable() { this.applySearch(); this.applySort(); this.updatePage(); }
68
89
  onSearch() { this.currentPage = 1; this.refreshTable(); }
90
+ toggleColumn(key) {
91
+ this.columnVisibility[key] = !this.columnVisibility[key];
92
+ }
69
93
  applySearch() {
70
94
  if (!this.searchTerm) {
71
95
  this.filteredData = [...this.data];
@@ -123,7 +147,7 @@ export class DataTableComponent {
123
147
  return this.cellTemplates?.find(t => t.name === key);
124
148
  }
125
149
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
126
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DataTableComponent, isStandalone: true, selector: "tolle-data-table", inputs: { data: "data", columns: "columns", searchable: "searchable", paginate: "paginate", pageSize: "pageSize", expandable: "expandable", size: "size", expandedTemplate: "expandedTemplate" }, queries: [{ propertyName: "cellTemplates", predicate: TolleCellDirective }], usesOnChanges: true, ngImport: i0, template: `
150
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DataTableComponent, isStandalone: true, selector: "tolle-data-table", inputs: { data: "data", columns: "columns", searchable: "searchable", paginate: "paginate", pageSize: "pageSize", expandable: "expandable", size: "size", allowColumnHiding: "allowColumnHiding", showSettings: "showSettings", expandedTemplate: "expandedTemplate" }, queries: [{ propertyName: "cellTemplates", predicate: TolleCellDirective }], usesOnChanges: true, ngImport: i0, template: `
127
151
  <div class="space-y-4">
128
152
  <div *ngIf="searchable" class="flex items-center py-2">
129
153
  <tolle-input
@@ -211,7 +235,7 @@ export class DataTableComponent {
211
235
  (onPageSizeChange)="updatePage()"
212
236
  ></tolle-pagination>
213
237
  </div>
214
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PaginationComponent, selector: "tolle-pagination", inputs: ["class", "showPageLinks", "showPageOptions", "showCurrentPageInfo", "currentPageInfoTemplate", "totalRecords", "currentPageSize", "currentPage", "pageSizeOptions"], outputs: ["onPageNumberChange", "onPageSizeChange"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["type", "placeholder", "disabled", "error", "size", "containerClass", "class"] }] });
238
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PaginationComponent, selector: "tolle-pagination", inputs: ["class", "showPageLinks", "showPageOptions", "showCurrentPageInfo", "currentPageInfoTemplate", "totalRecords", "currentPageSize", "currentPage", "pageSizeOptions"], outputs: ["onPageNumberChange", "onPageSizeChange"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error"] }] });
215
239
  }
216
240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataTableComponent, decorators: [{
217
241
  type: Component,
@@ -323,10 +347,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
323
347
  type: Input
324
348
  }], size: [{
325
349
  type: Input
350
+ }], allowColumnHiding: [{
351
+ type: Input
352
+ }], showSettings: [{
353
+ type: Input
326
354
  }], cellTemplates: [{
327
355
  type: ContentChildren,
328
356
  args: [TolleCellDirective]
329
357
  }], expandedTemplate: [{
330
358
  type: Input
331
359
  }] } });
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUNILGVBQWUsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQXNHakQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLEdBQVUsRUFBRSxDQUFDO0lBQ2pCLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBQzVCLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDbEIsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUMxRCw0QkFBNEI7SUFDNUIsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFakMsMkVBQTJFO0lBQ3RDLGFBQWEsQ0FBaUM7SUFFbkYsb0RBQW9EO0lBQzNDLGdCQUFnQixDQUFvQjtJQUU3QyxZQUFZLEdBQVUsRUFBRSxDQUFDO0lBQ3pCLFNBQVMsR0FBVSxFQUFFLENBQUM7SUFDdEIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixXQUFXLEdBQUcsQ0FBQyxD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RSxtQkFBbUIsZ1NBQUUsY0FBYzs7NEZBMkY3RCxrQkFBa0I7a0JBOUY5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQztvQkFDekUsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0ZUO2lCQUNGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSytCLGFBQWE7c0JBQWpELGVBQWU7dUJBQUMsa0JBQWtCO2dCQUcxQixnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7UGFnaW5hdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1RvbGxlQ2VsbERpcmVjdGl2ZX0gZnJvbSAnLi90b2xsZS1jZWxsLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0lucHV0Q29tcG9uZW50fSBmcm9tICcuL2lucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29sdW1uIHtcbiAga2V5OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWRhdGEtdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUGFnaW5hdGlvbkNvbXBvbmVudCwgSW5wdXRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTRcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hhYmxlXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBweS0yXCI+XG4gICAgICAgIDx0b2xsZS1pbnB1dFxuICAgICAgICAgIFtzaXplXT1cInNpemUgPT09ICdsZycgPyAnZGVmYXVsdCcgOiAnc20nXCJcbiAgICAgICAgICBjbGFzcz1cIm1heC13LXNtXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRlciByZWNvcmRzLi4uXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoKClcIj5cbiAgICAgICAgICA8aSBwcmVmaXggY2xhc3M9XCJyaS1zZWFyY2gtbGluZVwiPjwvaT5cbiAgICAgICAgPC90b2xsZS1pbnB1dD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIG92ZXJmbG93LWhpZGRlbiBzaGFkb3ctc21cIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidy1mdWxsIHRleHQtc21cIj5cbiAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJib3JkZXItYiBiZy1tdXRlZC8zMFwiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGggKm5nSWY9XCJleHBhbmRhYmxlXCIgW2NsYXNzXT1cImNuKCdweC00Jywgc2l6ZSA9PT0gJ3hzJyA/ICd3LVszMnB4XScgOiAndy1bNDhweF0nKVwiPjwvdGg+XG4gICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgJ2ZvbnQtbWVkaXVtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCB0cmFuc2l0aW9uLWFsbCcsXG4gICAgICAgICAgICAgICAgICBoZWFkZXJQYWRkaW5nQ2xhc3MsXG4gICAgICAgICAgICAgICAgICBmb250U2l6ZUNsYXNzLFxuICAgICAgICAgICAgICAgICAgY29sLmNsYXNzXG4gICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2wuc29ydGFibGU7IGVsc2Ugc2ltcGxlSGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZVNvcnQoY29sLmtleSlcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIGN1cnNvci1wb2ludGVyIGhvdmVyOnRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgICAge3sgY29sLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiZ2V0U29ydEljb24oY29sLmtleSlcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVIZWFkZXI+e3sgY29sLmxhYmVsIH19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJkaXZpZGUteSBkaXZpZGUtYm9yZGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb3cgb2YgcGFnZWREYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImhvdmVyOmJnLW11dGVkLzUwIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiZXhwYW5kYWJsZVwiIGNsYXNzPVwicHgtNFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlUm93KGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGhvdmVyOmJnLWFjY2VudCB0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICBzaXplID09PSAneHMnID8gJ2gtNiB3LTYnIDogJ2gtOCB3LTgnXG4gICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImV4cGFuZGVkUm93cy5oYXMoaSkgPyAncmktYXJyb3ctZG93bi1zLWxpbmUnIDogJ3JpLWFycm93LXJpZ2h0LXMtbGluZSdcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgJ2FsaWduLW1pZGRsZSB0cmFuc2l0aW9uLWFsbCcsXG4gICAgICAgICAgICAgICAgICAgIGNlbGxQYWRkaW5nQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgIGNvbC5jbGFzc1xuICAgICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFRlbXBsYXRlKGNvbC5rZXkpIGFzIGNlbGw7IGVsc2UgZGVmYXVsdFZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93W2NvbC5rZXldLCByb3c6IHJvdyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZhbHVlPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZm9yZWdyb3VuZFwiPnt7IHJvd1tjb2wua2V5XSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cblxuICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJleHBhbmRlZFJvd3MuaGFzKGkpXCIgY2xhc3M9XCJiZy1tdXRlZC8xMFwiPlxuICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgKGV4cGFuZGFibGUgPyAxIDogMClcIiBjbGFzcz1cInAtMFwiPlxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTYgYm9yZGVyLWIgYm9yZGVyLWRhc2hlZCBib3JkZXItYm9yZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4cGFuZGVkVGVtcGxhdGU7IGVsc2UgZGVmYXVsdEV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXhwYW5kZWRUZW1wbGF0ZTsgY29udGV4dDogeyByb3c6IHJvdyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RXhwYW5kZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgaXRhbGljXCI+Tm8gZGV0YWlscyBhdmFpbGFibGUuPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8dG9sbGUtcGFnaW5hdGlvblxuICAgICAgICAqbmdJZj1cInBhZ2luYXRlXCJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJmaWx0ZXJlZERhdGEubGVuZ3RoXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgIChvblBhZ2VOdW1iZXJDaGFuZ2UpPVwidXBkYXRlUGFnZSgpXCJcbiAgICAgICAgKG9uUGFnZVNpemVDaGFuZ2UpPVwidXBkYXRlUGFnZSgpXCJcbiAgICAgID48L3RvbGxlLXBhZ2luYXRpb24+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XG4gIEBJbnB1dCgpIHNlYXJjaGFibGUgPSB0cnVlO1xuICBASW5wdXQoKSBwYWdpbmF0ZSA9IHRydWU7XG4gIEBJbnB1dCgpIHBhZ2VTaXplID0gMTA7XG4gIEBJbnB1dCgpIGV4cGFuZGFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnID0gJ2RlZmF1bHQnO1xuICAvLyBUcmFjayB3aGljaCByb3dzIGFyZSBvcGVuXG4gIGV4cGFuZGVkUm93cyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuXG4gIC8vIFVzZSBDb250ZW50Q2hpbGRyZW4gdG8gZ3JhYiB0aGUgdG9sbGVDZWxsIHRlbXBsYXRlcyBmcm9tIHRoZSB1c2VyJ3MgSFRNTFxuICBAQ29udGVudENoaWxkcmVuKFRvbGxlQ2VsbERpcmVjdGl2ZSkgY2VsbFRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxUb2xsZUNlbGxEaXJlY3RpdmU+O1xuXG4gIC8vIEtlZXAgdGhpcyBhcyBhbiBJbnB1dCBmb3IgdGhlIG1haW4gZXhwYW5zaW9uIHNsb3RcbiAgQElucHV0KCkgZXhwYW5kZWRUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xuICBwYWdlZERhdGE6IGFueVtdID0gW107XG4gIHNlYXJjaFRlcm0gPSAnJztcbiAgY3VycmVudFBhZ2UgPSAxO1xuICBzb3J0S2V5ID0gJyc7XG4gIHNvcnREaXI6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gMi4gTWFwIFNpemUgdG8gUGFkZGluZyBmb3IgQ2VsbHNcbiAgZ2V0IGNlbGxQYWRkaW5nQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc2l6ZSkge1xuICAgICAgY2FzZSAneHMnOiByZXR1cm4gJ3AtMSBweC00JzsgICAgLy8gVWx0cmEtY29tcGFjdFxuICAgICAgY2FzZSAnc20nOiByZXR1cm4gJ3AtMiBweC00JzsgICAgLy8gRGVuc2VcbiAgICAgIGNhc2UgJ2xnJzogcmV0dXJuICdwLTYgcHgtNCc7ICAgIC8vIFNwYWNpb3VzXG4gICAgICBkZWZhdWx0OiAgIHJldHVybiAncC00JzsgICAgICAgICAvLyBTdGFuZGFyZCAoMTZweClcbiAgICB9XG4gIH1cblxuICAvLyAzLiBNYXAgU2l6ZSB0byBQYWRkaW5nIGZvciBIZWFkZXIgKHVzdWFsbHkgc2xpZ2h0bHkgc2hvcnRlciB0aGFuIGNlbGxzKVxuICBnZXQgaGVhZGVyUGFkZGluZ0NsYXNzKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnNpemUpIHtcbiAgICAgIGNhc2UgJ3hzJzogcmV0dXJuICdoLTcgcHgtNCc7XG4gICAgICBjYXNlICdzbSc6IHJldHVybiAnaC05IHB4LTQnO1xuICAgICAgY2FzZSAnbGcnOiByZXR1cm4gJ2gtMTQgcHgtNCc7XG4gICAgICBkZWZhdWx0OiAgIHJldHVybiAnaC0xMiBweC00JztcbiAgICB9XG4gIH1cblxuICAvLyA0LiBNYXAgU2l6ZSB0byBGb250IFNpemVzXG4gIGdldCBmb250U2l6ZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnNpemUpIHtcbiAgICAgIGNhc2UgJ3hzJzogcmV0dXJuICd0ZXh0LVsxMXB4XSc7XG4gICAgICBjYXNlICdzbSc6IHJldHVybiAndGV4dC14cyc7XG4gICAgICBjYXNlICdsZyc6IHJldHVybiAndGV4dC1iYXNlJztcbiAgICAgIGRlZmF1bHQ6ICAgcmV0dXJuICd0ZXh0LXNtJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY24gPSBjbjtcblxuICBuZ09uSW5pdCgpIHsgdGhpcy5yZWZyZXNoVGFibGUoKTsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddKSB7IHRoaXMucmVmcmVzaFRhYmxlKCk7IH1cbiAgfVxuXG4gIC8vIC0tLSBTZWFyY2ggJiBTb3J0ICYgUGFnZSBMb2dpYyAtLS1cbiAgLy8gKFlvdXIgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24gb2YgYXBwbHlTZWFyY2gsIGFwcGx5U29ydCwgYW5kIHVwZGF0ZVBhZ2UgZ29lcyBoZXJlKVxuICByZWZyZXNoVGFibGUoKSB7IHRoaXMuYXBwbHlTZWFyY2goKTsgdGhpcy5hcHBseVNvcnQoKTsgdGhpcy51cGRhdGVQYWdlKCk7IH1cbiAgb25TZWFyY2goKSB7IHRoaXMuY3VycmVudFBhZ2UgPSAxOyB0aGlzLnJlZnJlc2hUYWJsZSgpOyB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlYXJjaCgpIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoVGVybSkgeyB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLmRhdGFdOyByZXR1cm47IH1cbiAgICBjb25zdCBxID0gdGhpcy5zZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKHJvdyA9PlxuICAgICAgT2JqZWN0LnZhbHVlcyhyb3cpLnNvbWUodmFsID0+IFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTb3J0KCkge1xuICAgIGlmICghdGhpcy5zb3J0S2V5IHx8ICF0aGlzLnNvcnREaXIpIHJldHVybjtcbiAgICB0aGlzLmZpbHRlcmVkRGF0YS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCB2YWxBID0gYVt0aGlzLnNvcnRLZXldOyBjb25zdCB2YWxCID0gYlt0aGlzLnNvcnRLZXldO1xuICAgICAgaWYgKHZhbEEgPCB2YWxCKSByZXR1cm4gdGhpcy5zb3J0RGlyID09PSAnYXNjJyA/IC0xIDogMTtcbiAgICAgIGlmICh2YWxBID4gdmFsQikgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVBhZ2UoKSB7XG4gICAgaWYgKCF0aGlzLnBhZ2luYXRlKSB7IHRoaXMucGFnZWREYXRhID0gdGhpcy5maWx0ZXJlZERhdGE7IHJldHVybjsgfVxuICAgIGNvbnN0IHN0YXJ0ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemU7XG4gICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLnBhZ2VTaXplO1xuICAgIHRoaXMucGFnZWREYXRhID0gdGhpcy5maWx0ZXJlZERhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gIH1cblxuICAvLyAtLS0gSGVscGVycyAtLS1cbiAgdG9nZ2xlU29ydChrZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvcnRLZXkgPT09IGtleSkge1xuICAgICAgdGhpcy5zb3J0RGlyID0gdGhpcy5zb3J0RGlyID09PSAnYXNjJyA/ICdkZXNjJyA6IHRoaXMuc29ydERpciA9PT0gJ2Rlc2MnID8gbnVsbCA6ICdhc2MnO1xuICAgIH0gZWxzZSB7IHRoaXMuc29ydEtleSA9IGtleTsgdGhpcy5zb3J0RGlyID0gJ2FzYyc7IH1cbiAgICB0aGlzLnJlZnJlc2hUYWJsZSgpO1xuICB9XG5cbiAgZ2V0U29ydEljb24oa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zb3J0S2V5ICE9PSBrZXkgfHwgIXRoaXMuc29ydERpcikgcmV0dXJuICdyaS1hcnJvdy11cC1kb3duLWxpbmUgb3BhY2l0eS0zMCc7XG4gICAgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAncmktYXJyb3ctdXAtbGluZScgOiAncmktYXJyb3ctZG93bi1saW5lJztcbiAgfVxuXG4gIHRvZ2dsZVJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWRSb3dzLmhhcyhpbmRleCkpIHRoaXMuZXhwYW5kZWRSb3dzLmRlbGV0ZShpbmRleCk7XG4gICAgZWxzZSB0aGlzLmV4cGFuZGVkUm93cy5hZGQoaW5kZXgpO1xuICB9XG5cbiAgLy8gSGVscGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGNlbGwgdGVtcGxhdGVcbiAgZ2V0VGVtcGxhdGUoa2V5OiBzdHJpbmcpOiBUb2xsZUNlbGxEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNlbGxUZW1wbGF0ZXM/LmZpbmQodCA9PiB0Lm5hbWUgPT09IGtleSk7XG4gIH1cbn1cbiJdfQ==
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUNILGVBQWUsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQXNHakQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLEdBQVUsRUFBRSxDQUFDO0lBQ2pCLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBQzVCLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDbEIsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUUxRCx1Q0FBdUM7SUFDOUIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxtREFBbUQ7SUFFakYsc0RBQXNEO0lBQ3RELGdCQUFnQixHQUE0QixFQUFFLENBQUM7SUFDL0MsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUV2QiwyQ0FBMkM7SUFDM0MsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0s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LEVBQUUsY0FBYyxDQUFDO29CQUN6RSxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3RlQ7aUJBQ0Y7OEJBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFlK0IsYUFBYTtzQkFBakQsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBRzFCLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZiwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHtQYWdpbmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7VG9sbGVDZWxsRGlyZWN0aXZlfSBmcm9tICcuL3RvbGxlLWNlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7SW5wdXRDb21wb25lbnR9IGZyb20gJy4vaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb2x1bW4ge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgc29ydGFibGU/OiBib29sZWFuO1xuICBjbGFzcz86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtZGF0YS10YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBQYWdpbmF0aW9uQ29tcG9uZW50LCBJbnB1dENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInNwYWNlLXktNFwiPlxuICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaGFibGVcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHB5LTJcIj5cbiAgICAgICAgPHRvbGxlLWlucHV0XG4gICAgICAgICAgW3NpemVdPVwic2l6ZSA9PT0gJ2xnJyA/ICdkZWZhdWx0JyA6ICdzbSdcIlxuICAgICAgICAgIGNsYXNzPVwibWF4LXctc21cIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsdGVyIHJlY29yZHMuLi5cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2goKVwiPlxuICAgICAgICAgIDxpIHByZWZpeCBjbGFzcz1cInJpLXNlYXJjaC1saW5lXCI+PC9pPlxuICAgICAgICA8L3RvbGxlLWlucHV0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgb3ZlcmZsb3ctaGlkZGVuIHNoYWRvdy1zbVwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LWZ1bGwgdGV4dC1zbVwiPlxuICAgICAgICAgIDx0aGVhZCBjbGFzcz1cImJvcmRlci1iIGJnLW11dGVkLzMwXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aCAqbmdJZj1cImV4cGFuZGFibGVcIiBbY2xhc3NdPVwiY24oJ3B4LTQnLCBzaXplID09PSAneHMnID8gJ3ctWzMycHhdJyA6ICd3LVs0OHB4XScpXCI+PC90aD5cbiAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAnZm9udC1tZWRpdW0gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tYWxsJyxcbiAgICAgICAgICAgICAgICAgIGhlYWRlclBhZGRpbmdDbGFzcyxcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplQ2xhc3MsXG4gICAgICAgICAgICAgICAgICBjb2wuY2xhc3NcbiAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbC5zb3J0YWJsZTsgZWxzZSBzaW1wbGVIZWFkZXJcIiAoY2xpY2spPVwidG9nZ2xlU29ydChjb2wua2V5KVwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgY3Vyc29yLXBvaW50ZXIgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgICB7eyBjb2wubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJnZXRTb3J0SWNvbihjb2wua2V5KVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpbXBsZUhlYWRlcj57eyBjb2wubGFiZWwgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImRpdmlkZS15IGRpdmlkZS1ib3JkZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBwYWdlZERhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiaG92ZXI6YmctbXV0ZWQvNTAgdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJleHBhbmRhYmxlXCIgY2xhc3M9XCJweC00XCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVSb3coaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ2ZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgaG92ZXI6YmctYWNjZW50IHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICAgIHNpemUgPT09ICd4cycgPyAnaC02IHctNicgOiAnaC04IHctOCdcbiAgICAgICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiZXhwYW5kZWRSb3dzLmhhcyhpKSA/ICdyaS1hcnJvdy1kb3duLXMtbGluZScgOiAncmktYXJyb3ctcmlnaHQtcy1saW5lJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAnYWxpZ24tbWlkZGxlIHRyYW5zaXRpb24tYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgY2VsbFBhZGRpbmdDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemVDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgY29sLmNsYXNzXG4gICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0VGVtcGxhdGUoY29sLmtleSkgYXMgY2VsbDsgZWxzZSBkZWZhdWx0VmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGwudGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3dbY29sLmtleV0sIHJvdzogcm93IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VmFsdWU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1mb3JlZ3JvdW5kXCI+e3sgcm93W2NvbC5rZXldIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cImV4cGFuZGVkUm93cy5oYXMoaSlcIiBjbGFzcz1cImJnLW11dGVkLzEwXCI+XG4gICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyAoZXhwYW5kYWJsZSA/IDEgOiAwKVwiIGNsYXNzPVwicC0wXCI+XG4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNiBib3JkZXItYiBib3JkZXItZGFzaGVkIGJvcmRlci1ib3JkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhwYW5kZWRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0RXhwYW5kZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHBhbmRlZFRlbXBsYXRlOyBjb250ZXh0OiB7IHJvdzogcm93IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFeHBhbmRlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBpdGFsaWNcIj5ObyBkZXRhaWxzIGF2YWlsYWJsZS48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDx0b2xsZS1wYWdpbmF0aW9uXG4gICAgICAgICpuZ0lmPVwicGFnaW5hdGVcIlxuICAgICAgICBbdG90YWxSZWNvcmRzXT1cImZpbHRlcmVkRGF0YS5sZW5ndGhcIlxuICAgICAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2VcIlxuICAgICAgICBbY3VycmVudFBhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgKG9uUGFnZU51bWJlckNoYW5nZSk9XCJ1cGRhdGVQYWdlKClcIlxuICAgICAgICAob25QYWdlU2l6ZUNoYW5nZSk9XCJ1cGRhdGVQYWdlKClcIlxuICAgICAgPjwvdG9sbGUtcGFnaW5hdGlvbj5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IFRhYmxlQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KCkgc2VhcmNoYWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHBhZ2luYXRlID0gdHJ1ZTtcbiAgQElucHV0KCkgcGFnZVNpemUgPSAxMDtcbiAgQElucHV0KCkgZXhwYW5kYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplOiAneHMnIHwgJ3NtJyB8ICdkZWZhdWx0JyB8ICdsZycgPSAnZGVmYXVsdCc7XG5cbiAgLy8gLS0tIE5FVyBJTlBVVFMgRk9SIENPTFVNTiBISURJTkcgLS0tXG4gIEBJbnB1dCgpIGFsbG93Q29sdW1uSGlkaW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1NldHRpbmdzID0gdHJ1ZTsgLy8gU2V0IHRvIGZhbHNlIHRvIGhpZGUgdGhlIGdlYXIgaWNvbi9tZW51IGVudGlyZWx5XG5cbiAgLy8gVHJhY2sgdmlzaWJpbGl0eSBzdGF0ZTogeyAnY29sdW1uS2V5JzogdHJ1ZS9mYWxzZSB9XG4gIGNvbHVtblZpc2liaWxpdHk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gIHNob3dDb2x1bW5NZW51ID0gZmFsc2U7XG5cbiAgLy8gRmlsdGVyIGNvbHVtbnMgYmFzZWQgb24gdmlzaWJpbGl0eSBzdGF0ZVxuICBnZXQgYWN0aXZlQ29sdW1ucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2wgPT4gdGhpcy5jb2x1bW5WaXNpYmlsaXR5W2NvbC5rZXldKTtcbiAgfVxuXG4gIC8vIFRyYWNrIHdoaWNoIHJvd3MgYXJlIG9wZW5cbiAgZXhwYW5kZWRSb3dzID0gbmV3IFNldDxudW1iZXI+KCk7XG5cbiAgLy8gVXNlIENvbnRlbnRDaGlsZHJlbiB0byBncmFiIHRoZSB0b2xsZUNlbGwgdGVtcGxhdGVzIGZyb20gdGhlIHVzZXIncyBIVE1MXG4gIEBDb250ZW50Q2hpbGRyZW4oVG9sbGVDZWxsRGlyZWN0aXZlKSBjZWxsVGVtcGxhdGVzITogUXVlcnlMaXN0PFRvbGxlQ2VsbERpcmVjdGl2ZT47XG5cbiAgLy8gS2VlcCB0aGlzIGFzIGFuIElucHV0IGZvciB0aGUgbWFpbiBleHBhbnNpb24gc2xvdFxuICBASW5wdXQoKSBleHBhbmRlZFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBmaWx0ZXJlZERhdGE6IGFueVtdID0gW107XG4gIHBhZ2VkRGF0YTogYW55W10gPSBbXTtcbiAgc2VhcmNoVGVybSA9ICcnO1xuICBjdXJyZW50UGFnZSA9IDE7XG4gIHNvcnRLZXkgPSAnJztcbiAgc29ydERpcjogJ2FzYycgfCAnZGVzYycgfCBudWxsID0gbnVsbDtcblxuICAvLyAyLiBNYXAgU2l6ZSB0byBQYWRkaW5nIGZvciBDZWxsc1xuICBnZXQgY2VsbFBhZGRpbmdDbGFzcygpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5zaXplKSB7XG4gICAgICBjYXNlICd4cyc6IHJldHVybiAncC0xIHB4LTQnOyAgICAvLyBVbHRyYS1jb21wYWN0XG4gICAgICBjYXNlICdzbSc6IHJldHVybiAncC0yIHB4LTQnOyAgICAvLyBEZW5zZVxuICAgICAgY2FzZSAnbGcnOiByZXR1cm4gJ3AtNiBweC00JzsgICAgLy8gU3BhY2lvdXNcbiAgICAgIGRlZmF1bHQ6ICAgcmV0dXJuICdwLTQnOyAgICAgICAgIC8vIFN0YW5kYXJkICgxNnB4KVxuICAgIH1cbiAgfVxuXG4gIC8vIDMuIE1hcCBTaXplIHRvIFBhZGRpbmcgZm9yIEhlYWRlciAodXN1YWxseSBzbGlnaHRseSBzaG9ydGVyIHRoYW4gY2VsbHMpXG4gIGdldCBoZWFkZXJQYWRkaW5nQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc2l6ZSkge1xuICAgICAgY2FzZSAneHMnOiByZXR1cm4gJ2gtNyBweC00JztcbiAgICAgIGNhc2UgJ3NtJzogcmV0dXJuICdoLTkgcHgtNCc7XG4gICAgICBjYXNlICdsZyc6IHJldHVybiAnaC0xNCBweC00JztcbiAgICAgIGRlZmF1bHQ6ICAgcmV0dXJuICdoLTEyIHB4LTQnO1xuICAgIH1cbiAgfVxuXG4gIC8vIDQuIE1hcCBTaXplIHRvIEZvbnQgU2l6ZXNcbiAgZ2V0IGZvbnRTaXplQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc2l6ZSkge1xuICAgICAgY2FzZSAneHMnOiByZXR1cm4gJ3RleHQtWzExcHhdJztcbiAgICAgIGNhc2UgJ3NtJzogcmV0dXJuICd0ZXh0LXhzJztcbiAgICAgIGNhc2UgJ2xnJzogcmV0dXJuICd0ZXh0LWJhc2UnO1xuICAgICAgZGVmYXVsdDogICByZXR1cm4gJ3RleHQtc20nO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbiA9IGNuO1xuXG4gIG5nT25Jbml0KCkgeyB0aGlzLnJlZnJlc2hUYWJsZSgpOyB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10pIHsgdGhpcy5yZWZyZXNoVGFibGUoKTsgfVxuICAgIGlmIChjaGFuZ2VzWydjb2x1bW5zJ10pIHsgdGhpcy5pbml0aWFsaXplVmlzaWJpbGl0eSgpOyB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVWaXNpYmlsaXR5KCkge1xuICAgIC8vIERlZmF1bHQgYWxsIGNvbHVtbnMgdG8gdmlzaWJsZSBpZiBub3QgYWxyZWFkeSBzZXRcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgaWYgKHRoaXMuY29sdW1uVmlzaWJpbGl0eVtjb2wua2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eVtjb2wua2V5XSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0gU2VhcmNoICYgU29ydCAmIFBhZ2UgTG9naWMgLS0tXG4gIC8vIChZb3VyIGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIG9mIGFwcGx5U2VhcmNoLCBhcHBseVNvcnQsIGFuZCB1cGRhdGVQYWdlIGdvZXMgaGVyZSlcbiAgcmVmcmVzaFRhYmxlKCkgeyB0aGlzLmFwcGx5U2VhcmNoKCk7IHRoaXMuYXBwbHlTb3J0KCk7IHRoaXMudXBkYXRlUGFnZSgpOyB9XG4gIG9uU2VhcmNoKCkgeyB0aGlzLmN1cnJlbnRQYWdlID0gMTsgdGhpcy5yZWZyZXNoVGFibGUoKTsgfVxuXG4gIHRvZ2dsZUNvbHVtbihrZXk6IHN0cmluZykge1xuICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eVtrZXldID0gIXRoaXMuY29sdW1uVmlzaWJpbGl0eVtrZXldO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlYXJjaCgpIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoVGVybSkgeyB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLmRhdGFdOyByZXR1cm47IH1cbiAgICBjb25zdCBxID0gdGhpcy5zZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKHJvdyA9PlxuICAgICAgT2JqZWN0LnZhbHVlcyhyb3cpLnNvbWUodmFsID0+IFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTb3J0KCkge1xuICAgIGlmICghdGhpcy5zb3J0S2V5IHx8ICF0aGlzLnNvcnREaXIpIHJldHVybjtcbiAgICB0aGlzLmZpbHRlcmVkRGF0YS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCB2YWxBID0gYVt0aGlzLnNvcnRLZXldOyBjb25zdCB2YWxCID0gYlt0aGlzLnNvcnRLZXldO1xuICAgICAgaWYgKHZhbEEgPCB2YWxCKSByZXR1cm4gdGhpcy5zb3J0RGlyID09PSAnYXNjJyA/IC0xIDogMTtcbiAgICAgIGlmICh2YWxBID4gdmFsQikgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVBhZ2UoKSB7XG4gICAgaWYgKCF0aGlzLnBhZ2luYXRlKSB7IHRoaXMucGFnZWREYXRhID0gdGhpcy5maWx0ZXJlZERhdGE7IHJldHVybjsgfVxuICAgIGNvbnN0IHN0YXJ0ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemU7XG4gICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLnBhZ2VTaXplO1xuICAgIHRoaXMucGFnZWREYXRhID0gdGhpcy5maWx0ZXJlZERhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gIH1cblxuICAvLyAtLS0gSGVscGVycyAtLS1cbiAgdG9nZ2xlU29ydChrZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvcnRLZXkgPT09IGtleSkge1xuICAgICAgdGhpcy5zb3J0RGlyID0gdGhpcy5zb3J0RGlyID09PSAnYXNjJyA/ICdkZXNjJyA6IHRoaXMuc29ydERpciA9PT0gJ2Rlc2MnID8gbnVsbCA6ICdhc2MnO1xuICAgIH0gZWxzZSB7IHRoaXMuc29ydEtleSA9IGtleTsgdGhpcy5zb3J0RGlyID0gJ2FzYyc7IH1cbiAgICB0aGlzLnJlZnJlc2hUYWJsZSgpO1xuICB9XG5cbiAgZ2V0U29ydEljb24oa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zb3J0S2V5ICE9PSBrZXkgfHwgIXRoaXMuc29ydERpcikgcmV0dXJuICdyaS1hcnJvdy11cC1kb3duLWxpbmUgb3BhY2l0eS0zMCc7XG4gICAgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAncmktYXJyb3ctdXAtbGluZScgOiAncmktYXJyb3ctZG93bi1saW5lJztcbiAgfVxuXG4gIHRvZ2dsZVJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWRSb3dzLmhhcyhpbmRleCkpIHRoaXMuZXhwYW5kZWRSb3dzLmRlbGV0ZShpbmRleCk7XG4gICAgZWxzZSB0aGlzLmV4cGFuZGVkUm93cy5hZGQoaW5kZXgpO1xuICB9XG5cbiAgLy8gSGVscGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGNlbGwgdGVtcGxhdGVcbiAgZ2V0VGVtcGxhdGUoa2V5OiBzdHJpbmcpOiBUb2xsZUNlbGxEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNlbGxUZW1wbGF0ZXM/LmZpbmQodCA9PiB0Lm5hbWUgPT09IGtleSk7XG4gIH1cbn1cbiJdfQ==
@@ -139,7 +139,7 @@ export class DateRangePickerComponent {
139
139
  ></tolle-range-calendar>
140
140
  </div>
141
141
  </div>
142
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RangeCalendarComponent, selector: "tolle-range-calendar", inputs: ["class", "disablePastDates"], outputs: ["rangeSelect"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["type", "placeholder", "disabled", "error", "size", "containerClass", "class"] }] });
142
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RangeCalendarComponent, selector: "tolle-range-calendar", inputs: ["class", "disablePastDates"], outputs: ["rangeSelect"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error"] }] });
143
143
  }
144
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateRangePickerComponent, decorators: [{
145
145
  type: Component,
@@ -3,81 +3,111 @@ import { CommonModule } from '@angular/common';
3
3
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
4
4
  import { cn } from './utils/cn';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
7
8
  export class InputComponent {
8
9
  cdr;
10
+ id = `input-${Math.random().toString(36).substr(2, 9)}`;
11
+ label = '';
12
+ hint = '';
13
+ errorMessage = '';
9
14
  type = 'text';
10
15
  placeholder = '';
11
- disabled = false;
12
- error = false;
13
16
  size = 'default';
14
17
  containerClass = '';
15
18
  class = '';
16
- // Internal State
19
+ // New States
20
+ disabled = false;
21
+ readonly = false;
22
+ error = false;
17
23
  value = '';
18
- // CVA Callbacks
19
24
  onChange = () => { };
20
25
  onTouched = () => { };
21
26
  constructor(cdr) {
22
27
  this.cdr = cdr;
23
28
  }
24
- // --- ControlValueAccessor Implementation ---
25
29
  writeValue(value) {
26
30
  this.value = value;
27
31
  this.cdr.markForCheck();
28
32
  }
29
- registerOnChange(fn) {
30
- this.onChange = fn;
31
- }
32
- registerOnTouched(fn) {
33
- this.onTouched = fn;
34
- }
33
+ registerOnChange(fn) { this.onChange = fn; }
34
+ registerOnTouched(fn) { this.onTouched = fn; }
35
35
  setDisabledState(isDisabled) {
36
36
  this.disabled = isDisabled;
37
37
  this.cdr.markForCheck();
38
38
  }
39
39
  onInputChange(event) {
40
+ if (this.readonly || this.disabled)
41
+ return;
40
42
  const val = event.target.value;
41
43
  this.value = val;
42
44
  this.onChange(val);
43
45
  }
44
- // --- Styling Logic ---
45
46
  cn = cn;
46
47
  get computedContainerClass() {
47
- return cn("group relative flex items-center w-full rounded-md border border-input bg-background ring-offset-background transition-all focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-1 shadow-sm", this.size === 'xs' && "h-8 px-2 gap-1.5", this.size === 'sm' && "h-9 px-3 gap-2", this.size === 'default' && "h-10 px-3 gap-2", this.size === 'lg' && "h-11 px-4 gap-3", this.disabled && "cursor-not-allowed opacity-50", this.error && "border-destructive focus-within:ring-destructive", this.containerClass);
48
+ return cn("group relative flex items-center w-full rounded-md border transition-all shadow-sm", "bg-background ring-offset-background",
49
+ // Sizing
50
+ this.size === 'xs' && "h-8 px-2 gap-1.5", this.size === 'sm' && "h-9 px-3 gap-2", this.size === 'default' && "h-10 px-3 gap-2", this.size === 'lg' && "h-11 px-4 gap-3",
51
+ // Interaction States (Focus ring disabled for Readonly/Disabled)
52
+ !(this.readonly || this.disabled) && "focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-1",
53
+ // Colors & Borders
54
+ this.error ? "border-destructive focus-within:ring-destructive" : "border-input",
55
+ // Disabled vs Readonly styling
56
+ this.disabled && "cursor-not-allowed opacity-50 bg-muted/30", this.readonly && "cursor-default bg-muted/10 border-dashed focus-within:ring-0", this.containerClass);
48
57
  }
49
58
  get computedInputClass() {
50
- return cn("flex-1 bg-transparent border-none p-0 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-0 disabled:cursor-not-allowed", this.size === 'xs' && "text-xs", this.size === 'lg' && "text-base", this.class);
59
+ return cn("flex-1 bg-transparent border-none p-0 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-0", this.size === 'xs' && "text-xs", this.size === 'lg' && "text-base", this.disabled && "cursor-not-allowed", this.readonly && "cursor-default", this.class);
51
60
  }
52
61
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
53
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: InputComponent, isStandalone: true, selector: "tolle-input", inputs: { type: "type", placeholder: "placeholder", disabled: "disabled", error: "error", size: "size", containerClass: "containerClass", class: "class" }, providers: [
62
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: InputComponent, isStandalone: true, selector: "tolle-input", inputs: { id: "id", label: "label", hint: "hint", errorMessage: "errorMessage", type: "type", placeholder: "placeholder", size: "size", containerClass: "containerClass", class: "class", disabled: "disabled", readonly: "readonly", error: "error" }, providers: [
54
63
  {
55
64
  provide: NG_VALUE_ACCESSOR,
56
65
  useExisting: forwardRef(() => InputComponent),
57
66
  multi: true
58
67
  }
59
68
  ], ngImport: i0, template: `
60
- <div [class]="computedContainerClass">
69
+ <div class="flex flex-col gap-1.5 w-full">
70
+ <label
71
+ *ngIf="label"
72
+ [for]="id"
73
+ [class.opacity-50]="disabled"
74
+ class="text-sm font-medium text-foreground leading-none transition-opacity"
75
+ >
76
+ {{ label }}
77
+ </label>
61
78
 
62
- <div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
63
- <ng-content select="[prefix]"></ng-content>
64
- </div>
79
+ <div [class]="computedContainerClass">
80
+ <div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
81
+ <ng-content select="[prefix]"></ng-content>
82
+ </div>
65
83
 
66
- <input
67
- [type]="type"
68
- [placeholder]="placeholder"
69
- [disabled]="disabled"
70
- [(ngModel)]="value"
71
- (blur)="onTouched()"
72
- (input)="onInputChange($event)"
73
- [class]="computedInputClass"
74
- />
84
+ <input
85
+ [id]="id"
86
+ [type]="type"
87
+ [placeholder]="placeholder"
88
+ [disabled]="disabled"
89
+ [readOnly]="readonly"
90
+ [(ngModel)]="value"
91
+ (blur)="onTouched()"
92
+ (input)="onInputChange($event)"
93
+ [class]="computedInputClass"
94
+ />
75
95
 
76
- <div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
77
- <ng-content select="[suffix]"></ng-content>
96
+ <div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
97
+ <ng-content select="[suffix]"></ng-content>
98
+ </div>
78
99
  </div>
100
+
101
+ <ng-container *ngIf="!disabled">
102
+ <p *ngIf="hint && !error" class="text-xs text-muted-foreground px-1">
103
+ {{ hint }}
104
+ </p>
105
+ <p *ngIf="error && errorMessage" class="text-xs text-destructive px-1">
106
+ {{ errorMessage }}
107
+ </p>
108
+ </ng-container>
79
109
  </div>
80
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
110
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
81
111
  }
82
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputComponent, decorators: [{
83
113
  type: Component,
@@ -93,35 +123,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
93
123
  }
94
124
  ],
95
125
  template: `
96
- <div [class]="computedContainerClass">
126
+ <div class="flex flex-col gap-1.5 w-full">
127
+ <label
128
+ *ngIf="label"
129
+ [for]="id"
130
+ [class.opacity-50]="disabled"
131
+ class="text-sm font-medium text-foreground leading-none transition-opacity"
132
+ >
133
+ {{ label }}
134
+ </label>
97
135
 
98
- <div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
99
- <ng-content select="[prefix]"></ng-content>
100
- </div>
136
+ <div [class]="computedContainerClass">
137
+ <div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
138
+ <ng-content select="[prefix]"></ng-content>
139
+ </div>
101
140
 
102
- <input
103
- [type]="type"
104
- [placeholder]="placeholder"
105
- [disabled]="disabled"
106
- [(ngModel)]="value"
107
- (blur)="onTouched()"
108
- (input)="onInputChange($event)"
109
- [class]="computedInputClass"
110
- />
141
+ <input
142
+ [id]="id"
143
+ [type]="type"
144
+ [placeholder]="placeholder"
145
+ [disabled]="disabled"
146
+ [readOnly]="readonly"
147
+ [(ngModel)]="value"
148
+ (blur)="onTouched()"
149
+ (input)="onInputChange($event)"
150
+ [class]="computedInputClass"
151
+ />
111
152
 
112
- <div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
113
- <ng-content select="[suffix]"></ng-content>
153
+ <div class="flex items-center text-muted-foreground group-focus-within:text-primary transition-colors">
154
+ <ng-content select="[suffix]"></ng-content>
155
+ </div>
114
156
  </div>
157
+
158
+ <ng-container *ngIf="!disabled">
159
+ <p *ngIf="hint && !error" class="text-xs text-muted-foreground px-1">
160
+ {{ hint }}
161
+ </p>
162
+ <p *ngIf="error && errorMessage" class="text-xs text-destructive px-1">
163
+ {{ errorMessage }}
164
+ </p>
165
+ </ng-container>
115
166
  </div>
116
167
  `,
117
168
  }]
118
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { type: [{
169
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { id: [{
119
170
  type: Input
120
- }], placeholder: [{
171
+ }], label: [{
121
172
  type: Input
122
- }], disabled: [{
173
+ }], hint: [{
123
174
  type: Input
124
- }], error: [{
175
+ }], errorMessage: [{
176
+ type: Input
177
+ }], type: [{
178
+ type: Input
179
+ }], placeholder: [{
125
180
  type: Input
126
181
  }], size: [{
127
182
  type: Input
@@ -129,5 +184,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
129
184
  type: Input
130
185
  }], class: [{
131
186
  type: Input
187
+ }], disabled: [{
188
+ type: Input
189
+ }], readonly: [{
190
+ type: Input
191
+ }], error: [{
192
+ type: Input
132
193
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFvQ2hDLE1BQU0sT0FBTyxjQUFjO0lBZ0JMO0lBZlgsSUFBSSxHQUFXLE1BQU0sQ0FBQztJQUN0QixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUN2QixJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUNqRCxjQUFjLEdBQVcsRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFFNUIsaUJBQWlCO0lBQ2pCLEtBQUssR0FBUSxFQUFFLENBQUM7SUFFaEIsZ0JBQWdCO0lBQ2hCLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUxQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUFHLENBQUM7SUFFOUMsOENBQThDO0lBRTlDLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLE1BQU0sR0FBRyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCx3QkFBd0I7SUFDTCxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRTNCLElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sRUFBRSxDQUNQLDRNQUE0TSxFQUM1TSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxrQkFBa0IsRUFDeEMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksZ0JBQWdCLEVBQ3RDLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLGlCQUFpQixFQUM1QyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxpQkFBaUIsRUFDdkMsSUFBSSxDQUFDLFFBQVEsSUFBSSwrQkFBK0IsRUFDaEQsSUFBSSxDQUFDLEtBQUssSUFBSSxrREFBa0QsRUFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLEVBQUUsQ0FDUCw2SUFBNkksRUFDN0ksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksU0FBUyxFQUMvQixJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxXQUFXLEVBQ2pDLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7d0dBbkVVLGNBQWM7NEZBQWQsY0FBYyxzTkE5QmQ7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDN0MsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQsMkRBN0JTLFlBQVksOEJBQUUsV0FBVzs7NEZBK0J4QixjQUFjO2tCQWxDMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ3BDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7NEJBQzdDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJUO2lCQUNGO3NGQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ29udGFpbmVyQ2xhc3NcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBncm91cC1mb2N1cy13aXRoaW46dGV4dC1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtjbGFzc109XCJjb21wdXRlZElucHV0Q2xhc3NcIlxuICAgICAgLz5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBncm91cC1mb2N1cy13aXRoaW46dGV4dC1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgPSAndGV4dCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBjb250YWluZXJDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAvLyBJbnRlcm5hbCBTdGF0ZVxuICB2YWx1ZTogYW55ID0gJyc7XG5cbiAgLy8gQ1ZBIENhbGxiYWNrc1xuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIC8vIC0tLSBDb250cm9sVmFsdWVBY2Nlc3NvciBJbXBsZW1lbnRhdGlvbiAtLS1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2YWwgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xuICB9XG5cbiAgLy8gLS0tIFN0eWxpbmcgTG9naWMgLS0tXG4gIHByb3RlY3RlZCByZWFkb25seSBjbiA9IGNuO1xuXG4gIGdldCBjb21wdXRlZENvbnRhaW5lckNsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIFwiZ3JvdXAgcmVsYXRpdmUgZmxleCBpdGVtcy1jZW50ZXIgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1hbGwgZm9jdXMtd2l0aGluOnJpbmctMiBmb2N1cy13aXRoaW46cmluZy1yaW5nIGZvY3VzLXdpdGhpbjpyaW5nLW9mZnNldC0xIHNoYWRvdy1zbVwiLFxuICAgICAgdGhpcy5zaXplID09PSAneHMnICYmIFwiaC04IHB4LTIgZ2FwLTEuNVwiLFxuICAgICAgdGhpcy5zaXplID09PSAnc20nICYmIFwiaC05IHB4LTMgZ2FwLTJcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmIFwiaC0xMCBweC0zIGdhcC0yXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdsZycgJiYgXCJoLTExIHB4LTQgZ2FwLTNcIixcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MFwiLFxuICAgICAgdGhpcy5lcnJvciAmJiBcImJvcmRlci1kZXN0cnVjdGl2ZSBmb2N1cy13aXRoaW46cmluZy1kZXN0cnVjdGl2ZVwiLFxuICAgICAgdGhpcy5jb250YWluZXJDbGFzc1xuICAgICk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRJbnB1dENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIFwiZmxleC0xIGJnLXRyYW5zcGFyZW50IGJvcmRlci1ub25lIHAtMCB0ZXh0LXNtIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZFwiLFxuICAgICAgdGhpcy5zaXplID09PSAneHMnICYmIFwidGV4dC14c1wiLFxuICAgICAgdGhpcy5zaXplID09PSAnbGcnICYmIFwidGV4dC1iYXNlXCIsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxufVxuIl19
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBeURoQyxNQUFNLE9BQU8sY0FBYztJQW9CTDtJQW5CWCxFQUFFLEdBQVcsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLElBQUksR0FBVyxFQUFFLENBQUM7SUFDbEIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMxQixJQUFJLEdBQVcsTUFBTSxDQUFDO0lBQ3RCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsSUFBSSxHQUFtQyxTQUFTLENBQUM7SUFDakQsY0FBYyxHQUFXLEVBQUUsQ0FBQztJQUM1QixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRTVCLGFBQWE7SUFDSixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUVoQyxLQUFLLEdBQVEsRUFBRSxDQUFDO0lBQ2hCLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDekIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUx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LFVBQVUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDOzRCQUM3QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDVDtpQkFDRjtzRkFFVSxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEuNSB3LWZ1bGxcIj5cbiAgICAgIDxsYWJlbFxuICAgICAgICAqbmdJZj1cImxhYmVsXCJcbiAgICAgICAgW2Zvcl09XCJpZFwiXG4gICAgICAgIFtjbGFzcy5vcGFjaXR5LTUwXT1cImRpc2FibGVkXCJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBsZWFkaW5nLW5vbmUgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgID5cbiAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgIDwvbGFiZWw+XG5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ29udGFpbmVyQ2xhc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBncm91cC1mb2N1cy13aXRoaW46dGV4dC1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3ByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIFtjbGFzc109XCJjb21wdXRlZElucHV0Q2xhc3NcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQgZ3JvdXAtZm9jdXMtd2l0aGluOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRpc2FibGVkXCI+XG4gICAgICAgIDxwICpuZ0lmPVwiaGludCAmJiAhZXJyb3JcIiBjbGFzcz1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHB4LTFcIj5cbiAgICAgICAgICB7eyBoaW50IH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgKm5nSWY9XCJlcnJvciAmJiBlcnJvck1lc3NhZ2VcIiBjbGFzcz1cInRleHQteHMgdGV4dC1kZXN0cnVjdGl2ZSBweC0xXCI+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IGBpbnB1dC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgPSAndGV4dCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBjb250YWluZXJDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAvLyBOZXcgU3RhdGVzXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdmFsdWU6IGFueSA9ICcnO1xuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCB2YWwgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNuID0gY247XG5cbiAgZ2V0IGNvbXB1dGVkQ29udGFpbmVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgXCJncm91cCByZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgdHJhbnNpdGlvbi1hbGwgc2hhZG93LXNtXCIsXG4gICAgICBcImJnLWJhY2tncm91bmQgcmluZy1vZmZzZXQtYmFja2dyb3VuZFwiLFxuXG4gICAgICAvLyBTaXppbmdcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3hzJyAmJiBcImgtOCBweC0yIGdhcC0xLjVcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3NtJyAmJiBcImgtOSBweC0zIGdhcC0yXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdkZWZhdWx0JyAmJiBcImgtMTAgcHgtMyBnYXAtMlwiLFxuICAgICAgdGhpcy5zaXplID09PSAnbGcnICYmIFwiaC0xMSBweC00IGdhcC0zXCIsXG5cbiAgICAgIC8vIEludGVyYWN0aW9uIFN0YXRlcyAoRm9jdXMgcmluZyBkaXNhYmxlZCBmb3IgUmVhZG9ubHkvRGlzYWJsZWQpXG4gICAgICAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgJiYgXCJmb2N1cy13aXRoaW46cmluZy0yIGZvY3VzLXdpdGhpbjpyaW5nLXJpbmcgZm9jdXMtd2l0aGluOnJpbmctb2Zmc2V0LTFcIixcblxuICAgICAgLy8gQ29sb3JzICYgQm9yZGVyc1xuICAgICAgdGhpcy5lcnJvciA/IFwiYm9yZGVyLWRlc3RydWN0aXZlIGZvY3VzLXdpdGhpbjpyaW5nLWRlc3RydWN0aXZlXCIgOiBcImJvcmRlci1pbnB1dFwiLFxuXG4gICAgICAvLyBEaXNhYmxlZCB2cyBSZWFkb25seSBzdHlsaW5nXG4gICAgICB0aGlzLmRpc2FibGVkICYmIFwiY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAgYmctbXV0ZWQvMzBcIixcbiAgICAgIHRoaXMucmVhZG9ubHkgJiYgXCJjdXJzb3ItZGVmYXVsdCBiZy1tdXRlZC8xMCBib3JkZXItZGFzaGVkIGZvY3VzLXdpdGhpbjpyaW5nLTBcIixcblxuICAgICAgdGhpcy5jb250YWluZXJDbGFzc1xuICAgICk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRJbnB1dENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIFwiZmxleC0xIGJnLXRyYW5zcGFyZW50IGJvcmRlci1ub25lIHAtMCB0ZXh0LXNtIHBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICd4cycgJiYgXCJ0ZXh0LXhzXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdsZycgJiYgXCJ0ZXh0LWJhc2VcIixcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJjdXJzb3Itbm90LWFsbG93ZWRcIixcbiAgICAgIHRoaXMucmVhZG9ubHkgJiYgXCJjdXJzb3ItZGVmYXVsdFwiLFxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -157,7 +157,7 @@ export class MultiSelectComponent {
157
157
  </div>
158
158
  </div>
159
159
  </div>
160
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: BadgeComponent, selector: "tolle-badge", inputs: ["variant", "size", "removable", "class"], outputs: ["onRemove"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["type", "placeholder", "disabled", "error", "size", "containerClass", "class"] }] });
160
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: BadgeComponent, selector: "tolle-badge", inputs: ["variant", "size", "removable", "class"], outputs: ["onRemove"] }, { kind: "component", type: InputComponent, selector: "tolle-input", inputs: ["id", "label", "hint", "errorMessage", "type", "placeholder", "size", "containerClass", "class", "disabled", "readonly", "error"] }] });
161
161
  }
162
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultiSelectComponent, decorators: [{
163
163
  type: Component,
@@ -177,7 +177,7 @@ export class PaginationComponent {
177
177
  </div>
178
178
  </div>
179
179
  </div>
180
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SelectComponent, selector: "tolle-select", inputs: ["placeholder", "class", "disabled", "searchable", "size"] }, { kind: "component", type: SelectItemComponent, selector: "tolle-select-item", inputs: ["value", "class", "selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
180
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SelectComponent, selector: "tolle-select", inputs: ["placeholder", "class", "disabled", "searchable", "size", "readonly"] }, { kind: "component", type: SelectItemComponent, selector: "tolle-select-item", inputs: ["value", "class", "selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
181
181
  }
182
182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, decorators: [{
183
183
  type: Component,
@@ -277,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
277
277
  }], onPageSizeChange: [{
278
278
  type: Output
279
279
  }] } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQTJFNUQsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNyQixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUMzQix1QkFBdUIsQ0FBVTtJQUVqQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDckIsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNoQixlQUFlLEdBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU1QyxrQkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ2hELGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFeEQsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssR0FBRyxDQUFDLENBQUM7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OEJBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7U2VsZWN0Q29tcG9uZW50fSBmcm9tICcuL3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3RJdGVtQ29tcG9uZW50fSBmcm9tICcuL3NlbGVjdC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXBhZ2luYXRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU2VsZWN0Q29tcG9uZW50LCBTZWxlY3RJdGVtQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjbignZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB4LTIgcHktNCcsIGNsYXNzKVwiPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd0N1cnJlbnRQYWdlSW5mb1wiIGNsYXNzPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRQYWdlSW5mb1RlbXBsYXRlOyBlbHNlIGRlZmF1bHRSZXBvcnRcIj5cbiAgICAgICAgICB7eyBwYWdlUmVwb3J0IH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRSZXBvcnQ+XG4gICAgICAgICAgU2hvd2luZyB7eyBmaXJzdCB9fSB0byB7eyBsYXN0IH19IG9mIHt7IHRvdGFsUmVjb3JkcyB9fSBlbnRyaWVzXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNiBsZzpzcGFjZS14LThcIj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1BhZ2VPcHRpb25zXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTJcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj5Sb3dzIHBlciBwYWdlPC9wPlxuICAgICAgICAgIDx0b2xsZS1zZWxlY3RcbiAgICAgICAgICAgIGNsYXNzPVwidy1bNzBweF1cIlxuICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImN1cnJlbnRQYWdlU2l6ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzaXplQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx0b2xsZS1zZWxlY3QtaXRlbSAqbmdGb3I9XCJsZXQgb3B0IG9mIHBhZ2VTaXplT3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRcIj5cbiAgICAgICAgICAgICAge3sgb3B0IH19XG4gICAgICAgICAgICA8L3RvbGxlLXNlbGVjdC1pdGVtPlxuICAgICAgICAgIDwvdG9sbGUtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFzaG93UGFnZUxpbmtzXCIgY2xhc3M9XCJmbGV4IHctWzEwMHB4XSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bVwiPlxuICAgICAgICAgICAgUGFnZSB7eyBjdXJyZW50UGFnZSB9fSBvZiB7eyB0b3RhbFBhZ2VzIH19XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1BhZ2VMaW5rc1wiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCJuYXZCdG5DbGFzc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicmktYXJyb3ctbGVmdC1zLWxpbmVcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBkaXNwbGF5UGFnZUluZGV4XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGFnZSlcIlxuICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgJ2gtOCB3LTggdGV4dC1zbSByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFnZSA9PT0gcGFnZVxuICAgICAgICAgICAgICAgICAgPyAnYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBmb250LW1lZGl1bSdcbiAgICAgICAgICAgICAgICAgIDogJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJ1xuICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXMgfHwgdG90YWxQYWdlcyA9PT0gMFwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCJuYXZCdG5DbGFzc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicmktYXJyb3ctcmlnaHQtcy1saW5lXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIHNob3dQYWdlTGlua3MgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93UGFnZU9wdGlvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Q3VycmVudFBhZ2VJbmZvID0gdHJ1ZTtcbiAgQElucHV0KCkgY3VycmVudFBhZ2VJbmZvVGVtcGxhdGU/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcbiAgQElucHV0KCkgY3VycmVudFBhZ2VTaXplID0gMTA7XG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlID0gMTtcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwLCA1MF07XG5cbiAgQE91dHB1dCgpIG9uUGFnZU51bWJlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgb25QYWdlU2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHRvdGFsUGFnZXMgPSAwO1xuICBmaXJzdCA9IDA7XG4gIGxhc3QgPSAwO1xuICBkaXNwbGF5UGFnZUluZGV4OiBudW1iZXJbXSA9IFtdO1xuICBwYWdlUmVwb3J0ID0gJyc7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIGNuID0gY247XG5cbiAgbmF2QnRuQ2xhc3MgPSAnaC04IHctOCBwLTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWlucHV0IGJnLWJhY2tncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgZGlzYWJsZWQ6b3BhY2l0eS01MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2luYXRpb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBPbmx5IHJlLWluaXQgaWYgbWVhbmluZ2Z1bCBkYXRhIGNoYW5nZXNcbiAgICBpZiAoY2hhbmdlc1sndG90YWxSZWNvcmRzJ10gfHwgY2hhbmdlc1snY3VycmVudFBhZ2UnXSB8fCBjaGFuZ2VzWydjdXJyZW50UGFnZVNpemUnXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVBhZ2luYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjUGFnaW5hdGlvbigpO1xuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmV4dFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMudG90YWxQYWdlcyA+IHRoaXMuY3VycmVudFBhZ2UpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UrKztcbiAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzUGFnZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA+IDEpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UtLTtcbiAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFBhZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPT09IHBhZ2UpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHNpemVDaGFuZ2Uoc2l6ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZVNpemUgPSBzaXplO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxOyAvLyBSZXNldCB0byBwYWdlIDEgb24gc2l6ZSBjaGFuZ2VcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGNQYWdpbmF0aW9uKCk7XG4gICAgdGhpcy5vblBhZ2VOdW1iZXJDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICB0aGlzLm9uUGFnZVNpemVDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlU2l6ZSk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGNhbGNQYWdpbmF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbCh0aGlzLnRvdGFsUmVjb3JkcyAvIHRoaXMuY3VycmVudFBhZ2VTaXplKSB8fCAwO1xuXG4gICAgLy8gQm91bmRzIGNoZWNrXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiB0aGlzLnRvdGFsUGFnZXMgJiYgdGhpcy50b3RhbFBhZ2VzID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMudG90YWxQYWdlcztcbiAgICB9XG5cbiAgICB0aGlzLmZpcnN0ID0gdGhpcy50b3RhbFJlY29yZHMgPT09IDAgPyAwIDogKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMuY3VycmVudFBhZ2VTaXplICsgMTtcbiAgICB0aGlzLmxhc3QgPSBNYXRoLm1pbih0aGlzLnRvdGFsUmVjb3JkcywgdGhpcy5jdXJyZW50UGFnZSAqIHRoaXMuY3VycmVudFBhZ2VTaXplKTtcblxuICAgIC8vIENhbGN1bGF0ZSBTbGlkaW5nIFdpbmRvdyBmb3IgUGFnZSBOdW1iZXJzIChNYXggNSB2aXNpYmxlKVxuICAgIGNvbnN0IHBhZ2VzOiBudW1iZXJbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMudG90YWxQYWdlcyB9LCAoXywgaSkgPT4gaSArIDEpO1xuXG4gICAgaWYgKHRoaXMudG90YWxQYWdlcyA8PSA1KSB7XG4gICAgICB0aGlzLmRpc3BsYXlQYWdlSW5kZXggPSBwYWdlcztcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHN0YXJ0ID0gTWF0aC5tYXgoMCwgdGhpcy5jdXJyZW50UGFnZSAtIDMpO1xuICAgICAgbGV0IGVuZCA9IHN0YXJ0ICsgNTtcblxuICAgICAgaWYgKGVuZCA+IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgICBlbmQgPSB0aGlzLnRvdGFsUGFnZXM7XG4gICAgICAgIHN0YXJ0ID0gZW5kIC0gNTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzcGxheVBhZ2VJbmRleCA9IHBhZ2VzLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8vIFRlbXBsYXRlIFBhcnNpbmdcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZUluZm9UZW1wbGF0ZSkge1xuICAgICAgdGhpcy5wYWdlUmVwb3J0ID0gdGhpcy5jdXJyZW50UGFnZUluZm9UZW1wbGF0ZS5yZXBsYWNlKFxuICAgICAgICAve2ZpcnN0fXx7bGFzdH18e3RvdGFsUmVjb3Jkc318e2N1cnJlbnRQYWdlfXx7Y3VycmVudFBhZ2VTaXplfXx7dG90YWxQYWdlc30vZyxcbiAgICAgICAgKG1hdGNoKSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChtYXRjaCkge1xuICAgICAgICAgICAgY2FzZSAne2ZpcnN0fSc6IHJldHVybiBgJHt0aGlzLmZpcnN0fWA7XG4gICAgICAgICAgICBjYXNlICd7bGFzdH0nOiByZXR1cm4gYCR7dGhpcy5sYXN0fWA7XG4gICAgICAgICAgICBjYXNlICd7dG90YWxSZWNvcmRzfSc6IHJldHVybiBgJHt0aGlzLnRvdGFsUmVjb3Jkc31gO1xuICAgICAgICAgICAgY2FzZSAne3RvdGFsUGFnZXN9JzogcmV0dXJuIGAke3RoaXMudG90YWxQYWdlc31gO1xuICAgICAgICAgICAgY2FzZSAne2N1cnJlbnRQYWdlfSc6IHJldHVybiBgJHt0aGlzLmN1cnJlbnRQYWdlfWA7XG4gICAgICAgICAgICBjYXNlICd7Y3VycmVudFBhZ2VTaXplfSc6IHJldHVybiBgJHt0aGlzLmN1cnJlbnRQYWdlU2l6ZX1gO1xuICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIG1hdGNoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQTJFNUQsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNyQixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUMzQix1QkFBdUIsQ0FBVTtJQUVqQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDckIsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNoQixlQUFlLEdBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU1QyxrQkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ2hELGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFeEQsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssR0FBRyxDQUFDLENBQUM7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OEJBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7U2VsZWN0Q29tcG9uZW50fSBmcm9tICcuL3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3RJdGVtQ29tcG9uZW50fSBmcm9tICcuL3NlbGVjdC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXBhZ2luYXRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU2VsZWN0Q29tcG9uZW50LCBTZWxlY3RJdGVtQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjbignZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB4LTIgcHktNCcsIGNsYXNzKVwiPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd0N1cnJlbnRQYWdlSW5mb1wiIGNsYXNzPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRQYWdlSW5mb1RlbXBsYXRlOyBlbHNlIGRlZmF1bHRSZXBvcnRcIj5cbiAgICAgICAgICB7eyBwYWdlUmVwb3J0IH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRSZXBvcnQ+XG4gICAgICAgICAgU2hvd2luZyB7eyBmaXJzdCB9fSB0byB7eyBsYXN0IH19IG9mIHt7IHRvdGFsUmVjb3JkcyB9fSBlbnRyaWVzXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNiBsZzpzcGFjZS14LThcIj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1BhZ2VPcHRpb25zXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTJcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj5Sb3dzIHBlciBwYWdlPC9wPlxuICAgICAgICAgIDx0b2xsZS1zZWxlY3RcbiAgICAgICAgICAgIGNsYXNzPVwidy1bNzBweF1cIlxuICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImN1cnJlbnRQYWdlU2l6ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzaXplQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx0b2xsZS1zZWxlY3QtaXRlbSAqbmdGb3I9XCJsZXQgb3B0IG9mIHBhZ2VTaXplT3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRcIj5cbiAgICAgICAgICAgICAge3sgb3B0IH19XG4gICAgICAgICAgICA8L3RvbGxlLXNlbGVjdC1pdGVtPlxuICAgICAgICAgIDwvdG9sbGUtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFzaG93UGFnZUxpbmtzXCIgY2xhc3M9XCJmbGV4IHctWzEwMHB4XSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bVwiPlxuICAgICAgICAgICAgUGFnZSB7eyBjdXJyZW50UGFnZSB9fSBvZiB7eyB0b3RhbFBhZ2VzIH19XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1BhZ2VMaW5rc1wiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCJuYXZCdG5DbGFzc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicmktYXJyb3ctbGVmdC1zLWxpbmVcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBkaXNwbGF5UGFnZUluZGV4XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGFnZSlcIlxuICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgJ2gtOCB3LTggdGV4dC1zbSByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFnZSA9PT0gcGFnZVxuICAgICAgICAgICAgICAgICAgPyAnYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBmb250LW1lZGl1bSdcbiAgICAgICAgICAgICAgICAgIDogJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJ1xuICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXMgfHwgdG90YWxQYWdlcyA9PT0gMFwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCJuYXZCdG5DbGFzc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicmktYXJyb3ctcmlnaHQtcy1saW5lXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIHNob3dQYWdlTGlua3MgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93UGFnZU9wdGlvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Q3VycmVudFBhZ2VJbmZvID0gdHJ1ZTtcbiAgQElucHV0KCkgY3VycmVudFBhZ2VJbmZvVGVtcGxhdGU/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcbiAgQElucHV0KCkgY3VycmVudFBhZ2VTaXplID0gMTA7XG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlID0gMTtcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwLCA1MF07XG5cbiAgQE91dHB1dCgpIG9uUGFnZU51bWJlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgb25QYWdlU2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHRvdGFsUGFnZXMgPSAwO1xuICBmaXJzdCA9IDA7XG4gIGxhc3QgPSAwO1xuICBkaXNwbGF5UGFnZUluZGV4OiBudW1iZXJbXSA9IFtdO1xuICBwYWdlUmVwb3J0ID0gJyc7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIGNuID0gY247XG5cbiAgbmF2QnRuQ2xhc3MgPSAnaC04IHctOCBwLTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWlucHV0IGJnLWJhY2tncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgZGlzYWJsZWQ6b3BhY2l0eS01MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2luYXRpb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBPbmx5IHJlLWluaXQgaWYgbWVhbmluZ2Z1bCBkYXRhIGNoYW5nZXNcbiAgICBpZiAoY2hhbmdlc1sndG90YWxSZWNvcmRzJ10gfHwgY2hhbmdlc1snY3VycmVudFBhZ2UnXSB8fCBjaGFuZ2VzWydjdXJyZW50UGFnZVNpemUnXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVBhZ2luYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjUGFnaW5hdGlvbigpO1xuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmV4dFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMudG90YWxQYWdlcyA+IHRoaXMuY3VycmVudFBhZ2UpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UrKztcbiAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzUGFnZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA+IDEpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UtLTtcbiAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFBhZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPT09IHBhZ2UpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHNpemVDaGFuZ2Uoc2l6ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZVNpemUgPSBzaXplO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxOyAvLyBSZXNldCB0byBwYWdlIDEgb24gc2l6ZSBjaGFuZ2VcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGNQYWdpbmF0aW9uKCk7XG4gICAgdGhpcy5vblBhZ2VOdW1iZXJDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICB0aGlzLm9uUGFnZVNpemVDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlU2l6ZSk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGNhbGNQYWdpbmF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbCh0aGlzLnRvdGFsUmVjb3JkcyAvIHRoaXMuY3VycmVudFBhZ2VTaXplKSB8fCAwO1xuXG4gICAgLy8gQm91bmRzIGNoZWNrXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiB0aGlzLnRvdGFsUGFnZXMgJiYgdGhpcy50b3RhbFBhZ2VzID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMudG90YWxQYWdlcztcbiAgICB9XG5cbiAgICB0aGlzLmZpcnN0ID0gdGhpcy50b3RhbFJlY29yZHMgPT09IDAgPyAwIDogKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMuY3VycmVudFBhZ2VTaXplICsgMTtcbiAgICB0aGlzLmxhc3QgPSBNYXRoLm1pbih0aGlzLnRvdGFsUmVjb3JkcywgdGhpcy5jdXJyZW50UGFnZSAqIHRoaXMuY3VycmVudFBhZ2VTaXplKTtcblxuICAgIC8vIENhbGN1bGF0ZSBTbGlkaW5nIFdpbmRvdyBmb3IgUGFnZSBOdW1iZXJzIChNYXggNSB2aXNpYmxlKVxuICAgIGNvbnN0IHBhZ2VzOiBudW1iZXJbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMudG90YWxQYWdlcyB9LCAoXywgaSkgPT4gaSArIDEpO1xuXG4gICAgaWYgKHRoaXMudG90YWxQYWdlcyA8PSA1KSB7XG4gICAgICB0aGlzLmRpc3BsYXlQYWdlSW5kZXggPSBwYWdlcztcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHN0YXJ0ID0gTWF0aC5tYXgoMCwgdGhpcy5jdXJyZW50UGFnZSAtIDMpO1xuICAgICAgbGV0IGVuZCA9IHN0YXJ0ICsgNTtcblxuICAgICAgaWYgKGVuZCA+IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgICBlbmQgPSB0aGlzLnRvdGFsUGFnZXM7XG4gICAgICAgIHN0YXJ0ID0gZW5kIC0gNTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzcGxheVBhZ2VJbmRleCA9IHBhZ2VzLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIC8vIFRlbXBsYXRlIFBhcnNpbmdcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZUluZm9UZW1wbGF0ZSkge1xuICAgICAgdGhpcy5wYWdlUmVwb3J0ID0gdGhpcy5jdXJyZW50UGFnZUluZm9UZW1wbGF0ZS5yZXBsYWNlKFxuICAgICAgICAve2ZpcnN0fXx7bGFzdH18e3RvdGFsUmVjb3Jkc318e2N1cnJlbnRQYWdlfXx7Y3VycmVudFBhZ2VTaXplfXx7dG90YWxQYWdlc30vZyxcbiAgICAgICAgKG1hdGNoKSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChtYXRjaCkge1xuICAgICAgICAgICAgY2FzZSAne2ZpcnN0fSc6IHJldHVybiBgJHt0aGlzLmZpcnN0fWA7XG4gICAgICAgICAgICBjYXNlICd7bGFzdH0nOiByZXR1cm4gYCR7dGhpcy5sYXN0fWA7XG4gICAgICAgICAgICBjYXNlICd7dG90YWxSZWNvcmRzfSc6IHJldHVybiBgJHt0aGlzLnRvdGFsUmVjb3Jkc31gO1xuICAgICAgICAgICAgY2FzZSAne3RvdGFsUGFnZXN9JzogcmV0dXJuIGAke3RoaXMudG90YWxQYWdlc31gO1xuICAgICAgICAgICAgY2FzZSAne2N1cnJlbnRQYWdlfSc6IHJldHVybiBgJHt0aGlzLmN1cnJlbnRQYWdlfWA7XG4gICAgICAgICAgICBjYXNlICd7Y3VycmVudFBhZ2VTaXplfSc6IHJldHVybiBgJHt0aGlzLmN1cnJlbnRQYWdlU2l6ZX1gO1xuICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIG1hdGNoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==