@codetectonics/mantle 1.0.2 → 1.0.4

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 (32) hide show
  1. package/bundles/codetectonics-mantle.umd.js +167 -68
  2. package/bundles/codetectonics-mantle.umd.js.map +1 -1
  3. package/esm2015/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.js +7 -3
  4. package/esm2015/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.js +7 -3
  5. package/esm2015/lib/components/dashboard/dashboard-card/dashboard-card.component.js +12 -3
  6. package/esm2015/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.js +7 -3
  7. package/esm2015/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.js +5 -2
  8. package/esm2015/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.js +1 -1
  9. package/esm2015/lib/components/form/fields/colorpicker-input/colorpicker-input.component.js +57 -0
  10. package/esm2015/lib/components/form/fields/dropdown/dropdown.component.js +6 -7
  11. package/esm2015/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.js +8 -7
  12. package/esm2015/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.js +1 -1
  13. package/esm2015/lib/components/pages/dashboard-page/dashboard-page.component.js +4 -2
  14. package/esm2015/lib/components/pages/list-page/list-page-datasource.js +8 -1
  15. package/esm2015/lib/mantle.module.js +6 -1
  16. package/esm2015/lib/material.module.js +18 -4
  17. package/esm2015/lib/services/adapters/web-api-crud.adapter.js +1 -1
  18. package/esm2015/public-api.js +2 -1
  19. package/fesm2015/codetectonics-mantle.js +132 -32
  20. package/fesm2015/codetectonics-mantle.js.map +1 -1
  21. package/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.d.ts +2 -1
  22. package/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.d.ts +2 -1
  23. package/lib/components/dashboard/dashboard-card/dashboard-card.component.d.ts +2 -1
  24. package/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.d.ts +2 -1
  25. package/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.d.ts +2 -1
  26. package/lib/components/form/fields/colorpicker-input/colorpicker-input.component.d.ts +18 -0
  27. package/lib/components/pages/dashboard-page/dashboard-page.component.d.ts +1 -0
  28. package/lib/mantle.module.d.ts +87 -86
  29. package/lib/material.module.d.ts +3 -1
  30. package/lib/services/adapters/web-api-crud.adapter.d.ts +1 -0
  31. package/package.json +2 -1
  32. package/public-api.d.ts +1 -0
@@ -3,10 +3,12 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "../plain-dashboard-container/plain-dashboard-container.component";
4
4
  import * as i2 from "@angular/common";
5
5
  export class DynamicDashboardContainerComponent {
6
- constructor() { }
6
+ constructor() {
7
+ this.searchValues = {};
8
+ }
7
9
  }
8
10
  DynamicDashboardContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DynamicDashboardContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- DynamicDashboardContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DynamicDashboardContainerComponent, selector: "mantle-dynamic-dashboard-container", inputs: { dashboardPageService: "dashboardPageService", content: "content", container: "container" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-plain-dashboard-container>\n </ng-container>\n\n</ng-container>\n", styles: [""], components: [{ type: i1.PlainDashboardContainerComponent, selector: "mantle-plain-dashboard-container", inputs: ["dashboardPageService", "content", "container"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
11
+ DynamicDashboardContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DynamicDashboardContainerComponent, selector: "mantle-dynamic-dashboard-container", inputs: { dashboardPageService: "dashboardPageService", content: "content", container: "container", searchValues: "searchValues" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\" [searchValues]=\"searchValues\">\n </mantle-plain-dashboard-container>\n </ng-container>\n\n</ng-container>\n", styles: [""], components: [{ type: i1.PlainDashboardContainerComponent, selector: "mantle-plain-dashboard-container", inputs: ["dashboardPageService", "content", "container", "searchValues"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
10
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DynamicDashboardContainerComponent, decorators: [{
11
13
  type: Component,
12
14
  args: [{
@@ -20,5 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
20
22
  type: Input
21
23
  }], container: [{
22
24
  type: Input
25
+ }], searchValues: [{
26
+ type: Input
23
27
  }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkL2NvbnRhaW5lcnMvZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyL2R5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL2R5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lci9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTakQsTUFBTSxPQUFPLGtDQUFrQztJQU03QyxnQkFBZ0IsQ0FBQzs7K0hBTk4sa0NBQWtDO21IQUFsQyxrQ0FBa0MsZ0xDVC9DLGdVQVFBOzJGRENhLGtDQUFrQztrQkFMOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxXQUFXLEVBQUUsOENBQThDO29CQUMzRCxTQUFTLEVBQUUsQ0FBQyw4Q0FBOEMsQ0FBQztpQkFDNUQ7MEVBR1Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0Rhc2hib2FyZENvbnRlbnQsIER5bmFtaWNMYXlvdXRDb250YWluZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhLXN0cnVjdHVyZXMvZHluYW1pYy1sYXlvdXQuc3RydWN0dXJlJztcbmltcG9ydCB7IERhc2hib2FyZFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtcGFnZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWR5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRGFzaGJvYXJkQ29udGFpbmVyQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBkYXNoYm9hcmRQYWdlU2VydmljZSE6IERhc2hib2FyZFBhZ2VTZXJ2aWNlO1xuICBASW5wdXQoKSBjb250ZW50ITogRHluYW1pY0Rhc2hib2FyZENvbnRlbnQ7XG4gIEBJbnB1dCgpIGNvbnRhaW5lciE6IER5bmFtaWNMYXlvdXRDb250YWluZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29udGFpbmVyLmNvbnRhaW5lcl9zdHlsZVwiPlxuXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwbGFpbidcIj5cbiAgICA8bWFudGxlLXBsYWluLWRhc2hib2FyZC1jb250YWluZXIgW2Rhc2hib2FyZFBhZ2VTZXJ2aWNlXT1cImRhc2hib2FyZFBhZ2VTZXJ2aWNlXCIgW2NvbnRhaW5lcl09XCJjb250YWluZXJcIiBbY29udGVudF09XCJjb250ZW50XCI+XG4gICAgPC9tYW50bGUtcGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvbmctY29udGFpbmVyPlxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkL2NvbnRhaW5lcnMvZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyL2R5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL2R5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lci9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTakQsTUFBTSxPQUFPLGtDQUFrQztJQU83QztRQUZTLGlCQUFZLEdBQVEsRUFBRSxDQUFDO0lBRWhCLENBQUM7OytIQVBOLGtDQUFrQzttSEFBbEMsa0NBQWtDLDhNQ1QvQyxnV0FRQTsyRkRDYSxrQ0FBa0M7a0JBTDlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsV0FBVyxFQUFFLDhDQUE4QztvQkFDM0QsU0FBUyxFQUFFLENBQUMsOENBQThDLENBQUM7aUJBQzVEOzBFQUdVLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0Rhc2hib2FyZENvbnRlbnQsIER5bmFtaWNMYXlvdXRDb250YWluZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhLXN0cnVjdHVyZXMvZHluYW1pYy1sYXlvdXQuc3RydWN0dXJlJztcbmltcG9ydCB7IERhc2hib2FyZFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtcGFnZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWR5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRGFzaGJvYXJkQ29udGFpbmVyQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBkYXNoYm9hcmRQYWdlU2VydmljZSE6IERhc2hib2FyZFBhZ2VTZXJ2aWNlO1xuICBASW5wdXQoKSBjb250ZW50ITogRHluYW1pY0Rhc2hib2FyZENvbnRlbnQ7XG4gIEBJbnB1dCgpIGNvbnRhaW5lciE6IER5bmFtaWNMYXlvdXRDb250YWluZXI7XG4gIEBJbnB1dCgpIHNlYXJjaFZhbHVlczogYW55ID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29udGFpbmVyLmNvbnRhaW5lcl9zdHlsZVwiPlxuXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwbGFpbidcIj5cbiAgICA8bWFudGxlLXBsYWluLWRhc2hib2FyZC1jb250YWluZXIgW2Rhc2hib2FyZFBhZ2VTZXJ2aWNlXT1cImRhc2hib2FyZFBhZ2VTZXJ2aWNlXCIgW2NvbnRhaW5lcl09XCJjb250YWluZXJcIiBbY29udGVudF09XCJjb250ZW50XCIgW3NlYXJjaFZhbHVlc109XCJzZWFyY2hWYWx1ZXNcIj5cbiAgICA8L21hbnRsZS1wbGFpbi1kYXNoYm9hcmQtY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -5,7 +5,9 @@ import * as i2 from "../../../details/sections/grid-details-section/grid-details
5
5
  import * as i3 from "../../../details/sections/table-details-section/table-details-section.component";
6
6
  import * as i4 from "@angular/common";
7
7
  export class PlainDashboardContainerComponent {
8
- constructor() { }
8
+ constructor() {
9
+ this.searchValues = {};
10
+ }
9
11
  asDynamicLayoutGridSection(section) {
10
12
  return section;
11
13
  }
@@ -17,7 +19,7 @@ export class PlainDashboardContainerComponent {
17
19
  }
18
20
  }
19
21
  PlainDashboardContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: PlainDashboardContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- PlainDashboardContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: PlainDashboardContainerComponent, selector: "mantle-plain-dashboard-container", inputs: { dashboardPageService: "dashboardPageService", content: "content", container: "container" }, ngImport: i0, template: "<ng-container *ngFor=\"let section of container.sections\">\n <ng-container *ngIf=\"!section.hidden\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"dashboardPageService\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\">\n </mantle-table-details-section>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [""], components: [{ type: i1.DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: ["dashboardPageService", "slug", "data", "section"] }, { type: i2.GridDetailsSectionComponent, selector: "mantle-grid-details-section", inputs: ["data", "section", "defaultRowHeight"] }, { type: i3.TableDetailsSectionComponent, selector: "mantle-table-details-section", inputs: ["data", "section", "detailPageService"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
22
+ PlainDashboardContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: PlainDashboardContainerComponent, selector: "mantle-plain-dashboard-container", inputs: { dashboardPageService: "dashboardPageService", content: "content", container: "container", searchValues: "searchValues" }, ngImport: i0, template: "<ng-container *ngFor=\"let section of container.sections\">\n <ng-container *ngIf=\"!section.hidden\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"dashboardPageService\"\n [searchValues]=\"searchValues\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\">\n </mantle-table-details-section>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [""], components: [{ type: i1.DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: ["dashboardPageService", "slug", "data", "section", "searchValues"] }, { type: i2.GridDetailsSectionComponent, selector: "mantle-grid-details-section", inputs: ["data", "section", "defaultRowHeight"] }, { type: i3.TableDetailsSectionComponent, selector: "mantle-table-details-section", inputs: ["data", "section", "detailPageService"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
21
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: PlainDashboardContainerComponent, decorators: [{
22
24
  type: Component,
23
25
  args: [{
@@ -31,5 +33,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
31
33
  type: Input
32
34
  }], container: [{
33
35
  type: Input
36
+ }], searchValues: [{
37
+ type: Input
34
38
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIvcGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIvcGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWWpELE1BQU0sT0FBTyxnQ0FBZ0M7SUFNM0MsZ0JBQWdCLENBQUM7SUFFakIsMEJBQTBCLENBQUMsT0FBWTtRQUNyQyxPQUFPLE9BQW1DLENBQUM7SUFDN0MsQ0FBQztJQUVELDJCQUEyQixDQUFDLE9BQVk7UUFDdEMsT0FBTyxPQUFvQyxDQUFDO0lBQzlDLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxPQUFZO1FBQzFDLE9BQU8sT0FBd0MsQ0FBQztJQUNsRCxDQUFDOzs2SEFsQlUsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsOEtDWjdDLG1qQ0E4QkE7MkZEbEJhLGdDQUFnQztrQkFMNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxXQUFXLEVBQUUsNENBQTRDO29CQUN6RCxTQUFTLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQztpQkFDMUQ7MEVBR1Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRHluYW1pY0Rhc2hib2FyZENvbnRlbnQsIER5bmFtaWNMYXlvdXRDb250YWluZXIsIER5bmFtaWNMYXlvdXRHcmlkU2VjdGlvbixcbiAgRHluYW1pY0xheW91dFRhYmxlU2VjdGlvbiwgRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb25cbn0gZnJvbSAnLi4vLi4vLi4vLi4vZGF0YS1zdHJ1Y3R1cmVzL2R5bmFtaWMtbGF5b3V0LnN0cnVjdHVyZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRQYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvZGFzaGJvYXJkLXBhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1wbGFpbi1kYXNoYm9hcmQtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbGFpbi1kYXNoYm9hcmQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGxhaW5EYXNoYm9hcmRDb250YWluZXJDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGRhc2hib2FyZFBhZ2VTZXJ2aWNlITogRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG4gIEBJbnB1dCgpIGNvbnRlbnQhOiBEeW5hbWljRGFzaGJvYXJkQ29udGVudDtcbiAgQElucHV0KCkgY29udGFpbmVyITogRHluYW1pY0xheW91dENvbnRhaW5lcjtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGFzRHluYW1pY0xheW91dEdyaWRTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXRHcmlkU2VjdGlvbiB7XG4gICAgcmV0dXJuIHNlY3Rpb24gYXMgRHluYW1pY0xheW91dEdyaWRTZWN0aW9uO1xuICB9XG5cbiAgYXNEeW5hbWljTGF5b3V0VGFibGVTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb24ge1xuICAgIHJldHVybiBzZWN0aW9uIGFzIER5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb247XG4gIH1cblxuICBhc0R5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uIHtcbiAgICByZXR1cm4gc2VjdGlvbiBhcyBEeW5hbWljTGF5b3V0RGFzaGJvYXJkU2VjdGlvbjtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGNvbnRhaW5lci5zZWN0aW9uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlY3Rpb24uaGlkZGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbi5sYXlvdXRcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Rhc2hib2FyZCdcIj5cbiAgICAgICAgPG1hbnRsZS1kYXNoYm9hcmQtc2VjdGlvblxuICAgICAgICAgICAgW3NsdWddPVwic2VjdGlvbi5zbHVnXCJcbiAgICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb24oc2VjdGlvbilcIlxuICAgICAgICAgICAgW2RhdGFdPVwiY29udGVudC5kYXRhXCJcbiAgICAgICAgICAgIFtkYXNoYm9hcmRQYWdlU2VydmljZV09XCJkYXNoYm9hcmRQYWdlU2VydmljZVwiPlxuICAgICAgICA8L21hbnRsZS1kYXNoYm9hcmQtc2VjdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZ3JpZCdcIj5cbiAgICAgICAgPG1hbnRsZS1ncmlkLWRldGFpbHMtc2VjdGlvblxuICAgICAgICAgICAgW3NlY3Rpb25dPVwiYXNEeW5hbWljTGF5b3V0R3JpZFNlY3Rpb24oc2VjdGlvbilcIlxuICAgICAgICAgICAgW2RhdGFdPVwiY29udGVudC5kYXRhXCI+XG4gICAgICAgIDwvbWFudGxlLWdyaWQtZGV0YWlscy1zZWN0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0YWJsZSdcIj5cbiAgICAgICAgPG1hbnRsZS10YWJsZS1kZXRhaWxzLXNlY3Rpb25cbiAgICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dFRhYmxlU2VjdGlvbihzZWN0aW9uKVwiXG4gICAgICAgICAgICBbZGF0YV09XCJjb250ZW50LmRhdGFcIj5cbiAgICAgICAgPC9tYW50bGUtdGFibGUtZGV0YWlscy1zZWN0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIvcGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9jb250YWluZXJzL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIvcGxhaW4tZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWWpELE1BQU0sT0FBTyxnQ0FBZ0M7SUFPM0M7UUFGUyxpQkFBWSxHQUFRLEVBQUUsQ0FBQztJQUVoQixDQUFDO0lBRWpCLDBCQUEwQixDQUFDLE9BQVk7UUFDckMsT0FBTyxPQUFtQyxDQUFDO0lBQzdDLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxPQUFZO1FBQ3RDLE9BQU8sT0FBb0MsQ0FBQztJQUM5QyxDQUFDO0lBRUQsK0JBQStCLENBQUMsT0FBWTtRQUMxQyxPQUFPLE9BQXdDLENBQUM7SUFDbEQsQ0FBQzs7NkhBbkJVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLDRNQ1o3QyxnbUNBK0JBOzJGRG5CYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsV0FBVyxFQUFFLDRDQUE0QztvQkFDekQsU0FBUyxFQUFFLENBQUMsNENBQTRDLENBQUM7aUJBQzFEOzBFQUdVLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRHluYW1pY0Rhc2hib2FyZENvbnRlbnQsIER5bmFtaWNMYXlvdXRDb250YWluZXIsIER5bmFtaWNMYXlvdXRHcmlkU2VjdGlvbixcbiAgRHluYW1pY0xheW91dFRhYmxlU2VjdGlvbiwgRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb25cbn0gZnJvbSAnLi4vLi4vLi4vLi4vZGF0YS1zdHJ1Y3R1cmVzL2R5bmFtaWMtbGF5b3V0LnN0cnVjdHVyZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRQYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvZGFzaGJvYXJkLXBhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1wbGFpbi1kYXNoYm9hcmQtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYWluLWRhc2hib2FyZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbGFpbi1kYXNoYm9hcmQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGxhaW5EYXNoYm9hcmRDb250YWluZXJDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGRhc2hib2FyZFBhZ2VTZXJ2aWNlITogRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG4gIEBJbnB1dCgpIGNvbnRlbnQhOiBEeW5hbWljRGFzaGJvYXJkQ29udGVudDtcbiAgQElucHV0KCkgY29udGFpbmVyITogRHluYW1pY0xheW91dENvbnRhaW5lcjtcbiAgQElucHV0KCkgc2VhcmNoVmFsdWVzOiBhbnkgPSB7fTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGFzRHluYW1pY0xheW91dEdyaWRTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXRHcmlkU2VjdGlvbiB7XG4gICAgcmV0dXJuIHNlY3Rpb24gYXMgRHluYW1pY0xheW91dEdyaWRTZWN0aW9uO1xuICB9XG5cbiAgYXNEeW5hbWljTGF5b3V0VGFibGVTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb24ge1xuICAgIHJldHVybiBzZWN0aW9uIGFzIER5bmFtaWNMYXlvdXRUYWJsZVNlY3Rpb247XG4gIH1cblxuICBhc0R5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uKHNlY3Rpb246IGFueSk6IER5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uIHtcbiAgICByZXR1cm4gc2VjdGlvbiBhcyBEeW5hbWljTGF5b3V0RGFzaGJvYXJkU2VjdGlvbjtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGNvbnRhaW5lci5zZWN0aW9uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlY3Rpb24uaGlkZGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbi5sYXlvdXRcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Rhc2hib2FyZCdcIj5cbiAgICAgICAgPG1hbnRsZS1kYXNoYm9hcmQtc2VjdGlvblxuICAgICAgICAgICAgW3NsdWddPVwic2VjdGlvbi5zbHVnXCJcbiAgICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb24oc2VjdGlvbilcIlxuICAgICAgICAgICAgW2RhdGFdPVwiY29udGVudC5kYXRhXCJcbiAgICAgICAgICAgIFtkYXNoYm9hcmRQYWdlU2VydmljZV09XCJkYXNoYm9hcmRQYWdlU2VydmljZVwiXG4gICAgICAgICAgICBbc2VhcmNoVmFsdWVzXT1cInNlYXJjaFZhbHVlc1wiPlxuICAgICAgICA8L21hbnRsZS1kYXNoYm9hcmQtc2VjdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZ3JpZCdcIj5cbiAgICAgICAgPG1hbnRsZS1ncmlkLWRldGFpbHMtc2VjdGlvblxuICAgICAgICAgICAgW3NlY3Rpb25dPVwiYXNEeW5hbWljTGF5b3V0R3JpZFNlY3Rpb24oc2VjdGlvbilcIlxuICAgICAgICAgICAgW2RhdGFdPVwiY29udGVudC5kYXRhXCI+XG4gICAgICAgIDwvbWFudGxlLWdyaWQtZGV0YWlscy1zZWN0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0YWJsZSdcIj5cbiAgICAgICAgPG1hbnRsZS10YWJsZS1kZXRhaWxzLXNlY3Rpb25cbiAgICAgICAgICAgIFtzZWN0aW9uXT1cImFzRHluYW1pY0xheW91dFRhYmxlU2VjdGlvbihzZWN0aW9uKVwiXG4gICAgICAgICAgICBbZGF0YV09XCJjb250ZW50LmRhdGFcIj5cbiAgICAgICAgPC9tYW50bGUtdGFibGUtZGV0YWlscy1zZWN0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -21,6 +21,7 @@ export class DashboardCardComponent {
21
21
  this.objectService = objectService;
22
22
  this.screenSizeService = screenSizeService;
23
23
  this.rowHeight = '';
24
+ this.searchValues = {};
24
25
  this.widgetItemContexts = [];
25
26
  this.exportOptions = [];
26
27
  this.additionalWidgetButtons = [];
@@ -55,9 +56,15 @@ export class DashboardCardComponent {
55
56
  });
56
57
  }
57
58
  refreshFormContent() {
59
+ let elements = this.dashboardWidgetService.widgetSearchFields();
60
+ elements.forEach((searchField) => {
61
+ if ((searchField.type == 'dropdown') && (this.searchValues[searchField.attr] !== undefined)) {
62
+ searchField.options = { values: this.searchValues[searchField.attr] };
63
+ }
64
+ });
58
65
  this.formContent = {
59
66
  data: this.options,
60
- elements: this.dashboardWidgetService.widgetSearchFields()
67
+ elements: elements
61
68
  };
62
69
  }
63
70
  onSearchClicked() {
@@ -102,7 +109,7 @@ export class DashboardCardComponent {
102
109
  }
103
110
  }
104
111
  DashboardCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DashboardCardComponent, deps: [{ token: i1.ObjectService }, { token: i2.ScreenSizeService }], target: i0.ɵɵFactoryTarget.Component });
105
- DashboardCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DashboardCardComponent, selector: "mantle-dashboard-card", inputs: { widget: "widget", widgetConfig: "widgetConfig", widgetItems: "widgetItems", rowHeight: "rowHeight", dashboardWidgetService: "dashboardWidgetService", dashboardPageService: "dashboardPageService" }, viewQueries: [{ propertyName: "searchForm", first: true, predicate: DashboardCardSearchMenuComponent, descendants: true }, { propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<mat-card fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"0px\" class=\"dashboard-card\">\n <mat-card-header fxFlex=\"0 0 auto\">\n <mat-card-title>\n <span *ngIf=\"!dashboardWidgetService.icon; else iconHeader\" class=\"sub-card-title\">{{ widget.label }}</span>\n <ng-template #iconHeader>\n <div>\n <mat-icon class=\"card-title-icon\">{{ dashboardWidgetService.icon }}</mat-icon>\n <span class=\"main-card-title\">\n {{ widget.label }}\n </span>\n </div>\n </ng-template>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(options).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"additionalWidgetButtons\">\n <div class=\"widget-button-container\" [ngClass]=\"{ 'with-menu-button': dashboardWidgetService.showMenuButton }\">\n <button *ngFor=\"let button of additionalWidgetButtons\"\n mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"widget-button\"\n [ngStyle]=\"button.styling\"\n (click)=\"onAdditionalWidgetButtonClicked(button.onClick)\"\n [disabled]=\"button.disabled\">\n {{ button.label | translate }}\n </button>\n </div>\n </ng-container>\n\n <button #menuTrigger mat-icon-button class=\"more-button\" [matMenuTriggerFor]=\"menu\" *ngIf=\"dashboardWidgetService.showMenuButton\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <div class=\"menu-form\" click-stop-propagation>\n <mantle-dashboard-card-search-menu #searchForm [content]=\"formContent\"></mantle-dashboard-card-search-menu>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"search-button\" (click)=\"onSearchClicked(); menuTrigger.closeMenu();\">\n {{ 'mantle.buttons.search' | translate }}\n </button>\n </div>\n </div>\n </div>\n </mat-menu>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content fxFlex=\"1 0 1px\" fxAlign=\"center center\" class=\"dashboard-card-content\">\n\n <div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"widgetRowHeight\"\n [cols]=\"WIDGET_COLUMNS\">\n <mat-grid-tile *ngFor=\"let context of widgetItemContexts\" [colspan]=\"getWidgetItemColspan(context.config)\" [rowspan]=\"getWidgetItemRowspan(context.config)\">\n <mantle-dynamic-widget-display\n class=\"card-content-wrapper\"\n [widgetItem]=\"context.config\"\n [data]=\"context.data\"\n [options]=\"context.options\">\n </mantle-dynamic-widget-display>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n\n </mat-card-content>\n</mat-card>\n", styles: [".dashboard-card{position:absolute;top:15px;left:15px;right:15px;bottom:15px;padding:10px 15px}.more-button{position:absolute;top:5px;right:10px}.dashboard-card-content{text-align:center}.mat-card-title{margin-bottom:10px;padding-top:5px;font-weight:400}.mat-card-title .main-card-title{font-size:19px;text-transform:uppercase;font-weight:500;vertical-align:middle}.mat-card-title .card-title-icon{font-size:2rem;vertical-align:middle;padding-right:7px}.mat-card-title .sub-card-title{font-size:18px;font-weight:500}.card-content-wrapper{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.menu-form{width:140px;padding:0 8px}.export-button{display:inline-block;width:110px;background-color:transparent;white-space:nowrap;padding:0;position:absolute;top:8px;right:50px}.export-button .export-button-label{display:inline-block;width:80px;white-space:normal;text-align:right;text-transform:uppercase;font-weight:normal;font-size:12px;line-height:1.25rem;margin-right:.25rem}.widget-button-container{display:inline-block;position:absolute;z-index:100;top:15px;right:20px}.widget-button-container .widget-button{margin-left:7px}.with-menu-button{right:50px}.mat-icon{height:auto;width:auto;font-size:1.5rem}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3.MatCardHeader, selector: "mat-card-header" }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i7.DashboardCardSearchMenuComponent, selector: "mantle-dashboard-card-search-menu", inputs: ["content"] }, { type: i8.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i8.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i9.DynamicWidgetDisplayComponent, selector: "mantle-dynamic-widget-display", inputs: ["widgetItem", "data", "options"] }], directives: [{ type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i12.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i13.ClickStopPropagationDirective, selector: "[click-stop-propagation]" }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }], pipes: { "translate": i14.TranslatePipe } });
112
+ DashboardCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DashboardCardComponent, selector: "mantle-dashboard-card", inputs: { widget: "widget", widgetConfig: "widgetConfig", widgetItems: "widgetItems", rowHeight: "rowHeight", dashboardWidgetService: "dashboardWidgetService", dashboardPageService: "dashboardPageService", searchValues: "searchValues" }, viewQueries: [{ propertyName: "searchForm", first: true, predicate: DashboardCardSearchMenuComponent, descendants: true }, { propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<mat-card fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"0px\" class=\"dashboard-card\">\n <mat-card-header fxFlex=\"0 0 auto\">\n <mat-card-title>\n <span *ngIf=\"!dashboardWidgetService.icon; else iconHeader\" class=\"sub-card-title\">{{ widget.label }}</span>\n <ng-template #iconHeader>\n <div>\n <mat-icon class=\"card-title-icon\">{{ dashboardWidgetService.icon }}</mat-icon>\n <span class=\"main-card-title\">\n {{ widget.label }}\n </span>\n </div>\n </ng-template>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(options).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"additionalWidgetButtons\">\n <div class=\"widget-button-container\" [ngClass]=\"{ 'with-menu-button': dashboardWidgetService.showMenuButton }\">\n <button *ngFor=\"let button of additionalWidgetButtons\"\n mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"widget-button\"\n [ngStyle]=\"button.styling\"\n (click)=\"onAdditionalWidgetButtonClicked(button.onClick)\"\n [disabled]=\"button.disabled\">\n {{ button.label | translate }}\n </button>\n </div>\n </ng-container>\n\n <button #menuTrigger mat-icon-button class=\"more-button\" [matMenuTriggerFor]=\"menu\" *ngIf=\"dashboardWidgetService.showMenuButton\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <div class=\"menu-form\" click-stop-propagation>\n <mantle-dashboard-card-search-menu #searchForm [content]=\"formContent\"></mantle-dashboard-card-search-menu>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"search-button\" (click)=\"onSearchClicked(); menuTrigger.closeMenu();\">\n {{ 'mantle.buttons.search' | translate }}\n </button>\n </div>\n </div>\n </div>\n </mat-menu>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content fxFlex=\"1 0 1px\" fxAlign=\"center center\" class=\"dashboard-card-content\">\n\n <div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"widgetRowHeight\"\n [cols]=\"WIDGET_COLUMNS\">\n <mat-grid-tile *ngFor=\"let context of widgetItemContexts\" [colspan]=\"getWidgetItemColspan(context.config)\" [rowspan]=\"getWidgetItemRowspan(context.config)\">\n <mantle-dynamic-widget-display\n class=\"card-content-wrapper\"\n [widgetItem]=\"context.config\"\n [data]=\"context.data\"\n [options]=\"context.options\">\n </mantle-dynamic-widget-display>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n\n </mat-card-content>\n</mat-card>\n", styles: [".dashboard-card{position:absolute;top:15px;left:15px;right:15px;bottom:15px;padding:10px 15px}.more-button{position:absolute;top:5px;right:10px}.dashboard-card-content{text-align:center}.mat-card-title{margin-bottom:10px;padding-top:5px;font-weight:400}.mat-card-title .main-card-title{font-size:19px;text-transform:uppercase;font-weight:500;vertical-align:middle}.mat-card-title .card-title-icon{font-size:2rem;vertical-align:middle;padding-right:7px}.mat-card-title .sub-card-title{font-size:18px;font-weight:500}.card-content-wrapper{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.menu-form{width:140px;padding:0 8px}.export-button{display:inline-block;width:110px;background-color:transparent;white-space:nowrap;padding:0;position:absolute;top:8px;right:50px}.export-button .export-button-label{display:inline-block;width:80px;white-space:normal;text-align:right;text-transform:uppercase;font-weight:normal;font-size:12px;line-height:1.25rem;margin-right:.25rem}.widget-button-container{display:inline-block;position:absolute;z-index:100;top:15px;right:20px}.widget-button-container .widget-button{margin-left:7px}.with-menu-button{right:50px}.mat-icon{height:auto;width:auto;font-size:1.5rem}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3.MatCardHeader, selector: "mat-card-header" }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i7.DashboardCardSearchMenuComponent, selector: "mantle-dashboard-card-search-menu", inputs: ["content"] }, { type: i8.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i8.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i9.DynamicWidgetDisplayComponent, selector: "mantle-dynamic-widget-display", inputs: ["widgetItem", "data", "options"] }], directives: [{ type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i12.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i13.ClickStopPropagationDirective, selector: "[click-stop-propagation]" }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }], pipes: { "translate": i14.TranslatePipe } });
106
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DashboardCardComponent, decorators: [{
107
114
  type: Component,
108
115
  args: [{
@@ -128,5 +135,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
128
135
  type: Input
129
136
  }], dashboardPageService: [{
130
137
  type: Input
138
+ }], searchValues: [{
139
+ type: Input
131
140
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQvZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQvZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrRkFBK0YsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVdqSixNQUFNLE9BQU8sc0JBQXNCO0lBc0JqQyxZQUFvQixhQUE0QixFQUFVLGlCQUFvQztRQUExRSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFkckYsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUl6Qix1QkFBa0IsR0FBVSxFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBeUIsRUFBRSxDQUFDO1FBQ3pDLDRCQUF1QixHQUE0QixFQUFFLENBQUM7UUFFdEQsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUVqQixlQUFVLEdBQVcsU0FBUyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQ3JDLG9CQUFlLEdBQVcsT0FBTyxDQUFDO0lBRXlELENBQUM7SUFFbkcsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxD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Q0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQy9ELENBQUM7O21IQTFHVSxzQkFBc0I7dUdBQXRCLHNCQUFzQix5VEFFdEIsZ0NBQWdDLDhFQUNoQyxjQUFjLGdEQ2pCM0IsK3hHQTBFQTsyRkQ1RGEsc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2lCQUMvQztvSUFHOEMsVUFBVTtzQkFBdEQsU0FBUzt1QkFBQyxnQ0FBZ0M7Z0JBQ2hCLFdBQVc7c0JBQXJDLFNBQVM7dUJBQUMsY0FBYztnQkFFaEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IER5bmFtaWNEYXNoYm9hcmRXaWRnZXQsIERhc2hib2FyZENhcmRTZWFyY2hNZW51Q29udGVudCB9IGZyb20gJy4uLy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2FyZFNlYXJjaE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2FyZC1zZWFyY2gtbWVudS9kYXNoYm9hcmQtY2FyZC1zZWFyY2gtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NyZWVuU2l6ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZFdpZGdldFNlcnZpY2UsIFdpZGdldEV4cG9ydE9wdGlvbiwgRGFzaGJvYXJkV2lkZ2V0QnV0dG9uLCBEYXNoYm9hcmRXaWRnZXRJdGVtQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtd2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JqZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWRhc2hib2FyZC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKERhc2hib2FyZENhcmRTZWFyY2hNZW51Q29tcG9uZW50KSBzZWFyY2hGb3JtITogRGFzaGJvYXJkQ2FyZFNlYXJjaE1lbnVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIG1lbnVUcmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XG5cbiAgQElucHV0KCkgd2lkZ2V0ITogRHluYW1pY0Rhc2hib2FyZFdpZGdldDtcbiAgQElucHV0KCkgd2lkZ2V0Q29uZmlnITogYW55O1xuICBASW5wdXQoKSB3aWRnZXRJdGVtcyE6IGFueTtcbiAgQElucHV0KCkgcm93SGVpZ2h0OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGFzaGJvYXJkV2lkZ2V0U2VydmljZSE6IERhc2hib2FyZFdpZGdldFNlcnZpY2U7XG4gIEBJbnB1dCgpIGRhc2hib2FyZFBhZ2VTZXJ2aWNlITogRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG5cbiAgcHVibGljIHdpZGdldEl0ZW1Db250ZXh0czogYW55W10gPSBbXTtcbiAgcHVibGljIGV4cG9ydE9wdGlvbnM6IFdpZGdldEV4cG9ydE9wdGlvbltdID0gW107XG4gIHB1YmxpYyBhZGRpdGlvbmFsV2lkZ2V0QnV0dG9uczogRGFzaGJvYXJkV2lkZ2V0QnV0dG9uW10gPSBbXTtcbiAgcHVibGljIGZvcm1Db250ZW50ITogRGFzaGJvYXJkQ2FyZFNlYXJjaE1lbnVDb250ZW50O1xuICBwdWJsaWMgb3B0aW9uczogYW55ID0ge307XG5cbiAgcHJpdmF0ZSBzY3JlZW5TaXplOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIHB1YmxpYyByZWFkb25seSBXSURHRVRfQ09MVU1OUzogbnVtYmVyID0gMTI7XG4gIHB1YmxpYyB3aWRnZXRSb3dIZWlnaHQ6IHN0cmluZyA9ICcxNzBweCc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlLCBwcml2YXRlIHNjcmVlblNpemVTZXJ2aWNlOiBTY3JlZW5TaXplU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0KCk7XG4gICAgdGhpcy5nZXRXaWRnZXRJdGVtRGF0YSgpO1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5kZWZhdWx0T3B0aW9ucygpO1xuICAgIHRoaXMud2F0Y2hTY3JlZW5TaXplKHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXREaW1lbnNpb25zKTtcbiAgICB0aGlzLnJlZnJlc2hGb3JtQ29udGVudCgpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVdpZGdldCgpIHtcbiAgICB0aGlzLmV4cG9ydE9wdGlvbnMgPSB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2Uud2lkZ2V0RXhwb3J0T3B0aW9ucygpO1xuICAgIHRoaXMuYWRkaXRpb25hbFdpZGdldEJ1dHRvbnMgPSB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2UuYWRkaXRpb25hbFdpZGdldEJ1dHRvbnModGhpcy53aWRnZXRDb25maWcpO1xuICB9XG5cbiAgZ2V0V2lkZ2V0SXRlbURhdGEoKSB7XG4gICAgdGhpcy53aWRnZXRJdGVtQ29udGV4dHMgPSB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2Uud2lkZ2V0SXRlbXNDb25maWcoKS5tYXAoKHdpZGdldEl0ZW06IGFueSkgPT4ge1xuICAgICAgbGV0IHdpZGdldEl0ZW1EYXRhID0gdGhpcy53aWRnZXRJdGVtc1t3aWRnZXRJdGVtLnNsdWddO1xuICAgICAgd2lkZ2V0SXRlbURhdGEuZGF0YSA9IHRoaXMub2JqZWN0U2VydmljZS5kZWVwTWVyZ2Uod2lkZ2V0SXRlbS5jb25maWd1cmF0aW9uLCB3aWRnZXRJdGVtRGF0YS5kYXRhKTtcbiAgICAgIGlmICh3aWRnZXRJdGVtLnR5cGUgPT0gJ2luZm8nKSB7XG4gICAgICAgIHdpZGdldEl0ZW1EYXRhLmRhdGEgPSB0aGlzLm9iamVjdFNlcnZpY2UuZGVlcE1lcmdlKHdpZGdldEl0ZW1EYXRhLmRhdGEsIHsga2V5X3ZhbHVlOiB7IGxhYmVsOiB3aWRnZXRJdGVtLmxhYmVsIH0gfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbmZpZzogd2lkZ2V0SXRlbSxcbiAgICAgICAgZGF0YTogd2lkZ2V0SXRlbURhdGEuZGF0YSxcbiAgICAgICAgb3B0aW9uczogd2lkZ2V0SXRlbURhdGEub3B0aW9uc1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlZnJlc2hGb3JtQ29udGVudCgpIHtcbiAgICB0aGlzLmZvcm1Db250ZW50ID0ge1xuICAgICAgZGF0YTogdGhpcy5vcHRpb25zLFxuICAgICAgZWxlbWVudHM6IHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXRTZWFyY2hGaWVsZHMoKVxuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoQ2xpY2tlZCgpIHtcbiAgICBsZXQgaXRlbVNsdWdzID0gdGhpcy53aWRnZXRJdGVtQ29udGV4dHMubWFwKChjb250ZXh0OiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBjb250ZXh0LmNvbmZpZy5zbHVnO1xuICAgIH0pO1xuICAgIGxldCBzZWFyY2hQYXJhbXMgPSB0aGlzLnNlYXJjaEZvcm0udmFsdWU7XG4gICAgc2VhcmNoUGFyYW1zLndpZGdldF9pdGVtX3NsdWdzID0gSlNPTi5zdHJpbmdpZnkoaXRlbVNsdWdzKTtcbiAgICB0aGlzLm9iamVjdFNlcnZpY2UucmVtb3ZlRW1wdHlBdHRyaWJ1dGVzKHNlYXJjaFBhcmFtcyk7XG5cbiAgICB0aGlzLmRhc2hib2FyZFBhZ2VTZXJ2aWNlLmdldFdpZGdldEl0ZW1zKHNlYXJjaFBhcmFtcykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLndpZGdldENvbmZpZyA9IHJlcy5jb250ZW50LmRhdGEud2lkZ2V0X2NvbmZpZ3NbdGhpcy53aWRnZXQuc2x1Z107XG4gICAgICB0aGlzLndpZGdldEl0ZW1zID0gcmVzLmNvbnRlbnQuZGF0YS53aWRnZXRfaXRlbXM7XG5cbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xuICAgICAgdGhpcy5nZXRXaWRnZXRJdGVtRGF0YSgpO1xuICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy53aWRnZXRJdGVtc1tpdGVtU2x1Z3NbMF1dLm9wdGlvbnM7XG4gICAgICB0aGlzLnJlZnJlc2hGb3JtQ29udGVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgb25BZGRpdGlvbmFsV2lkZ2V0QnV0dG9uQ2xpY2tlZChidXR0b25DYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgICBidXR0b25DYWxsYmFjayh7XG4gICAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgdGhpcy5kYXNoYm9hcmRQYWdlU2VydmljZS5nZXRXaWRnZXRJdGVtcyh7fSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy53aWRnZXRDb25maWcgPSByZXMuY29udGVudC5kYXRhLndpZGdldF9jb25maWdzW3RoaXMud2lkZ2V0LnNsdWddO1xuICAgICAgICAgIHRoaXMud2lkZ2V0SXRlbXMgPSByZXMuY29udGVudC5kYXRhLndpZGdldF9pdGVtcztcblxuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xuICAgICAgICAgIHRoaXMuZ2V0V2lkZ2V0SXRlbURhdGEoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB3YXRjaFNjcmVlblNpemUod2lkZ2V0RGltZW5zaW9uczogYW55KSB7XG4gICAgdGhpcy5zY3JlZW5TaXplU2VydmljZS5zY3JlZW5TaXplLnN1YnNjcmliZSgoc2NyZWVuU2l6ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnNjcmVlblNpemUgPSBzY3JlZW5TaXplO1xuICAgICAgdGhpcy53aWRnZXRSb3dIZWlnaHQgPSB3aWRnZXREaW1lbnNpb25zLmZpbmRCeVNjcmVlblNpemUodGhpcy5zY3JlZW5TaXplKS5yb3dIZWlnaHQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRXaWRnZXRJdGVtQ29sc3Bhbihjb25maWc6IERhc2hib2FyZFdpZGdldEl0ZW1Db25maWcpOiBudW1iZXIge1xuICAgIHJldHVybiBjb25maWcuc2l6ZS5maW5kQnlTY3JlZW5TaXplKHRoaXMuc2NyZWVuU2l6ZSkuY29sc3BhbjtcbiAgfVxuXG4gIGdldFdpZGdldEl0ZW1Sb3dzcGFuKGNvbmZpZzogRGFzaGJvYXJkV2lkZ2V0SXRlbUNvbmZpZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIGNvbmZpZy5zaXplLmZpbmRCeVNjcmVlblNpemUodGhpcy5zY3JlZW5TaXplKS5yb3dzcGFuO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RyZXRjaFwiIGZ4TGF5b3V0R2FwPVwiMHB4XCIgY2xhc3M9XCJkYXNoYm9hcmQtY2FyZFwiPlxuICA8bWF0LWNhcmQtaGVhZGVyIGZ4RmxleD1cIjAgMCBhdXRvXCI+XG4gICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5pY29uOyBlbHNlIGljb25IZWFkZXJcIiBjbGFzcz1cInN1Yi1jYXJkLXRpdGxlXCI+e3sgd2lkZ2V0LmxhYmVsIH19PC9zcGFuPlxuICAgICAgPG5nLXRlbXBsYXRlICNpY29uSGVhZGVyPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhcmQtdGl0bGUtaWNvblwiPnt7IGRhc2hib2FyZFdpZGdldFNlcnZpY2UuaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLWNhcmQtdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHdpZGdldC5sYWJlbCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHBvcnRPcHRpb24gb2YgZXhwb3J0T3B0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZXhwb3J0LWJ1dHRvblwiIChjbGljayk9XCJleHBvcnRPcHRpb24uZXhwb3J0KG9wdGlvbnMpLnN1YnNjcmliZSgpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBvcnQtYnV0dG9uLWxhYmVsXCI+e3sgZXhwb3J0T3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDxtYXQtaWNvbj5kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRpdGlvbmFsV2lkZ2V0QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWJ1dHRvbi1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICd3aXRoLW1lbnUtYnV0dG9uJzogZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5zaG93TWVudUJ1dHRvbiB9XCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFkZGl0aW9uYWxXaWRnZXRCdXR0b25zXCJcbiAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cInt7IGJ1dHRvbi5jb2xvciB9fVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2lkZ2V0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJidXR0b24uc3R5bGluZ1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGRpdGlvbmFsV2lkZ2V0QnV0dG9uQ2xpY2tlZChidXR0b24ub25DbGljaylcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbi5kaXNhYmxlZFwiPlxuICAgICAgICAgICAge3sgYnV0dG9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxidXR0b24gI21lbnVUcmlnZ2VyIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm1vcmUtYnV0dG9uXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiAqbmdJZj1cImRhc2hib2FyZFdpZGdldFNlcnZpY2Uuc2hvd01lbnVCdXR0b25cIj5cbiAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtZm9ybVwiIGNsaWNrLXN0b3AtcHJvcGFnYXRpb24+XG4gICAgICAgICAgPG1hbnRsZS1kYXNoYm9hcmQtY2FyZC1zZWFyY2gtbWVudSAjc2VhcmNoRm9ybSBbY29udGVudF09XCJmb3JtQ29udGVudFwiPjwvbWFudGxlLWRhc2hib2FyZC1jYXJkLXNlYXJjaC1tZW51PlxuXG4gICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxNnB4XCI+XG4gICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjEgMSBhdXRvXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2VhcmNoLWJ1dHRvblwiIChjbGljayk9XCJvblNlYXJjaENsaWNrZWQoKTsgbWVudVRyaWdnZXIuY2xvc2VNZW51KCk7XCI+XG4gICAgICAgICAgICAgICAge3sgJ21hbnRsZS5idXR0b25zLnNlYXJjaCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gIDxtYXQtY2FyZC1jb250ZW50IGZ4RmxleD1cIjEgMCAxcHhcIiBmeEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwiZGFzaGJvYXJkLWNhcmQtY29udGVudFwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29udGFpbmVyXCI+XG4gICAgICA8bWF0LWdyaWQtbGlzdFxuICAgICAgICBbcm93SGVpZ2h0XT1cIndpZGdldFJvd0hlaWdodFwiXG4gICAgICAgIFtjb2xzXT1cIldJREdFVF9DT0xVTU5TXCI+XG4gICAgICAgIDxtYXQtZ3JpZC10aWxlICpuZ0Zvcj1cImxldCBjb250ZXh0IG9mIHdpZGdldEl0ZW1Db250ZXh0c1wiIFtjb2xzcGFuXT1cImdldFdpZGdldEl0ZW1Db2xzcGFuKGNvbnRleHQuY29uZmlnKVwiIFtyb3dzcGFuXT1cImdldFdpZGdldEl0ZW1Sb3dzcGFuKGNvbnRleHQuY29uZmlnKVwiPlxuICAgICAgICAgIDxtYW50bGUtZHluYW1pYy13aWRnZXQtZGlzcGxheVxuICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWNvbnRlbnQtd3JhcHBlclwiXG4gICAgICAgICAgICBbd2lkZ2V0SXRlbV09XCJjb250ZXh0LmNvbmZpZ1wiXG4gICAgICAgICAgICBbZGF0YV09XCJjb250ZXh0LmRhdGFcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwiY29udGV4dC5vcHRpb25zXCI+XG4gICAgICAgICAgPC9tYW50bGUtZHluYW1pYy13aWRnZXQtZGlzcGxheT5cbiAgICAgICAgPC9tYXQtZ3JpZC10aWxlPlxuICAgICAgPC9tYXQtZ3JpZC1saXN0PlxuICAgIDwvZGl2PlxuXG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQvZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQvZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrRkFBK0YsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVlqSixNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxZQUFvQixhQUE0QixFQUFVLGlCQUFvQztRQUExRSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFmckYsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUd2QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV6Qix1QkFBa0IsR0FBVSxFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBeUIsRUFBRSxDQUFDO1FBQ3pDLDRCQUF1QixHQUE0QixFQUFFLENBQUM7UUFFdEQsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUVqQixlQUFVLEdBQVcsU0FBUyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQ3JDLG9CQUFlLEdBQVcsT0FBTyxDQUFDO0lBRXlELENBQUM7SUFFbkcsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FB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ICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBEeW5hbWljRGFzaGJvYXJkV2lkZ2V0LCBEYXNoYm9hcmRDYXJkU2VhcmNoTWVudUNvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9kYXRhLXN0cnVjdHVyZXMvZHluYW1pYy1sYXlvdXQuc3RydWN0dXJlJztcbmltcG9ydCB7IERhc2hib2FyZENhcmRTZWFyY2hNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLWNhcmQtc2VhcmNoLW1lbnUvZGFzaGJvYXJkLWNhcmQtc2VhcmNoLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFNjcmVlblNpemVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2NyZWVuLXNpemUuc2VydmljZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRQYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvZGFzaGJvYXJkLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLCBXaWRnZXRFeHBvcnRPcHRpb24sIERhc2hib2FyZFdpZGdldEJ1dHRvbiwgRGFzaGJvYXJkV2lkZ2V0SXRlbUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvZGFzaGJvYXJkLXdpZGdldC5zZXJ2aWNlJztcbmltcG9ydCB7IE9iamVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vYmplY3Quc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtZGFzaGJvYXJkLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXNoYm9hcmQtY2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoRGFzaGJvYXJkQ2FyZFNlYXJjaE1lbnVDb21wb25lbnQpIHNlYXJjaEZvcm0hOiBEYXNoYm9hcmRDYXJkU2VhcmNoTWVudUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgbWVudVRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcblxuICBASW5wdXQoKSB3aWRnZXQhOiBEeW5hbWljRGFzaGJvYXJkV2lkZ2V0O1xuICBASW5wdXQoKSB3aWRnZXRDb25maWchOiBhbnk7XG4gIEBJbnB1dCgpIHdpZGdldEl0ZW1zITogYW55O1xuICBASW5wdXQoKSByb3dIZWlnaHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlITogRGFzaGJvYXJkV2lkZ2V0U2VydmljZTtcbiAgQElucHV0KCkgZGFzaGJvYXJkUGFnZVNlcnZpY2UhOiBEYXNoYm9hcmRQYWdlU2VydmljZTtcbiAgQElucHV0KCkgc2VhcmNoVmFsdWVzOiBhbnkgPSB7fTtcblxuICBwdWJsaWMgd2lkZ2V0SXRlbUNvbnRleHRzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgZXhwb3J0T3B0aW9uczogV2lkZ2V0RXhwb3J0T3B0aW9uW10gPSBbXTtcbiAgcHVibGljIGFkZGl0aW9uYWxXaWRnZXRCdXR0b25zOiBEYXNoYm9hcmRXaWRnZXRCdXR0b25bXSA9IFtdO1xuICBwdWJsaWMgZm9ybUNvbnRlbnQhOiBEYXNoYm9hcmRDYXJkU2VhcmNoTWVudUNvbnRlbnQ7XG4gIHB1YmxpYyBvcHRpb25zOiBhbnkgPSB7fTtcblxuICBwcml2YXRlIHNjcmVlblNpemU6IHN0cmluZyA9ICdkZWZhdWx0JztcbiAgcHVibGljIHJlYWRvbmx5IFdJREdFVF9DT0xVTU5TOiBudW1iZXIgPSAxMjtcbiAgcHVibGljIHdpZGdldFJvd0hlaWdodDogc3RyaW5nID0gJzE3MHB4JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9iamVjdFNlcnZpY2U6IE9iamVjdFNlcnZpY2UsIHByaXZhdGUgc2NyZWVuU2l6ZVNlcnZpY2U6IFNjcmVlblNpemVTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVXaWRnZXQoKTtcbiAgICB0aGlzLmdldFdpZGdldEl0ZW1EYXRhKCk7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5kYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLmRlZmF1bHRPcHRpb25zKCk7XG4gICAgdGhpcy53YXRjaFNjcmVlblNpemUodGhpcy5kYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLndpZGdldERpbWVuc2lvbnMpO1xuICAgIHRoaXMucmVmcmVzaEZvcm1Db250ZW50KCk7XG4gIH1cblxuICBpbml0aWFsaXplV2lkZ2V0KCkge1xuICAgIHRoaXMuZXhwb3J0T3B0aW9ucyA9IHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXRFeHBvcnRPcHRpb25zKCk7XG4gICAgdGhpcy5hZGRpdGlvbmFsV2lkZ2V0QnV0dG9ucyA9IHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5hZGRpdGlvbmFsV2lkZ2V0QnV0dG9ucyh0aGlzLndpZGdldENvbmZpZyk7XG4gIH1cblxuICBnZXRXaWRnZXRJdGVtRGF0YSgpIHtcbiAgICB0aGlzLndpZGdldEl0ZW1Db250ZXh0cyA9IHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXRJdGVtc0NvbmZpZygpLm1hcCgod2lkZ2V0SXRlbTogYW55KSA9PiB7XG4gICAgICBsZXQgd2lkZ2V0SXRlbURhdGEgPSB0aGlzLndpZGdldEl0ZW1zW3dpZGdldEl0ZW0uc2x1Z107XG4gICAgICB3aWRnZXRJdGVtRGF0YS5kYXRhID0gdGhpcy5vYmplY3RTZXJ2aWNlLmRlZXBNZXJnZSh3aWRnZXRJdGVtLmNvbmZpZ3VyYXRpb24sIHdpZGdldEl0ZW1EYXRhLmRhdGEpO1xuICAgICAgaWYgKHdpZGdldEl0ZW0udHlwZSA9PSAnaW5mbycpIHtcbiAgICAgICAgd2lkZ2V0SXRlbURhdGEuZGF0YSA9IHRoaXMub2JqZWN0U2VydmljZS5kZWVwTWVyZ2Uod2lkZ2V0SXRlbURhdGEuZGF0YSwgeyBrZXlfdmFsdWU6IHsgbGFiZWw6IHdpZGdldEl0ZW0ubGFiZWwgfSB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnOiB3aWRnZXRJdGVtLFxuICAgICAgICBkYXRhOiB3aWRnZXRJdGVtRGF0YS5kYXRhLFxuICAgICAgICBvcHRpb25zOiB3aWRnZXRJdGVtRGF0YS5vcHRpb25zXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEZvcm1Db250ZW50KCkge1xuICAgIGxldCBlbGVtZW50cyA9IHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXRTZWFyY2hGaWVsZHMoKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChzZWFyY2hGaWVsZDogRHluYW1pY0Zvcm1GaWVsZCkgPT4ge1xuICAgICAgaWYgKChzZWFyY2hGaWVsZC50eXBlID09ICdkcm9wZG93bicpICYmICh0aGlzLnNlYXJjaFZhbHVlc1tzZWFyY2hGaWVsZC5hdHRyXSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgICBzZWFyY2hGaWVsZC5vcHRpb25zID0geyB2YWx1ZXM6IHRoaXMuc2VhcmNoVmFsdWVzW3NlYXJjaEZpZWxkLmF0dHJdIH07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1Db250ZW50ID0ge1xuICAgICAgZGF0YTogdGhpcy5vcHRpb25zLFxuICAgICAgZWxlbWVudHM6IGVsZW1lbnRzXG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2hDbGlja2VkKCkge1xuICAgIGxldCBpdGVtU2x1Z3MgPSB0aGlzLndpZGdldEl0ZW1Db250ZXh0cy5tYXAoKGNvbnRleHQ6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIGNvbnRleHQuY29uZmlnLnNsdWc7XG4gICAgfSk7XG4gICAgbGV0IHNlYXJjaFBhcmFtcyA9IHRoaXMuc2VhcmNoRm9ybS52YWx1ZTtcbiAgICBzZWFyY2hQYXJhbXMud2lkZ2V0X2l0ZW1fc2x1Z3MgPSBKU09OLnN0cmluZ2lmeShpdGVtU2x1Z3MpO1xuICAgIHRoaXMub2JqZWN0U2VydmljZS5yZW1vdmVFbXB0eUF0dHJpYnV0ZXMoc2VhcmNoUGFyYW1zKTtcblxuICAgIHRoaXMuZGFzaGJvYXJkUGFnZVNlcnZpY2UuZ2V0V2lkZ2V0SXRlbXMoc2VhcmNoUGFyYW1zKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMud2lkZ2V0Q29uZmlnID0gcmVzLmNvbnRlbnQuZGF0YS53aWRnZXRfY29uZmlnc1t0aGlzLndpZGdldC5zbHVnXTtcbiAgICAgIHRoaXMud2lkZ2V0SXRlbXMgPSByZXMuY29udGVudC5kYXRhLndpZGdldF9pdGVtcztcblxuICAgICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0KCk7XG4gICAgICB0aGlzLmdldFdpZGdldEl0ZW1EYXRhKCk7XG4gICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLndpZGdldEl0ZW1zW2l0ZW1TbHVnc1swXV0ub3B0aW9ucztcbiAgICAgIHRoaXMucmVmcmVzaEZvcm1Db250ZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkFkZGl0aW9uYWxXaWRnZXRCdXR0b25DbGlja2VkKGJ1dHRvbkNhbGxiYWNrOiBGdW5jdGlvbikge1xuICAgIGJ1dHRvbkNhbGxiYWNrKHtcbiAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICB0aGlzLmRhc2hib2FyZFBhZ2VTZXJ2aWNlLmdldFdpZGdldEl0ZW1zKHt9KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLndpZGdldENvbmZpZyA9IHJlcy5jb250ZW50LmRhdGEud2lkZ2V0X2NvbmZpZ3NbdGhpcy53aWRnZXQuc2x1Z107XG4gICAgICAgICAgdGhpcy53aWRnZXRJdGVtcyA9IHJlcy5jb250ZW50LmRhdGEud2lkZ2V0X2l0ZW1zO1xuXG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0KCk7XG4gICAgICAgICAgdGhpcy5nZXRXaWRnZXRJdGVtRGF0YSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHdhdGNoU2NyZWVuU2l6ZSh3aWRnZXREaW1lbnNpb25zOiBhbnkpIHtcbiAgICB0aGlzLnNjcmVlblNpemVTZXJ2aWNlLnNjcmVlblNpemUuc3Vic2NyaWJlKChzY3JlZW5TaXplOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2NyZWVuU2l6ZSA9IHNjcmVlblNpemU7XG4gICAgICB0aGlzLndpZGdldFJvd0hlaWdodCA9IHdpZGdldERpbWVuc2lvbnMuZmluZEJ5U2NyZWVuU2l6ZSh0aGlzLnNjcmVlblNpemUpLnJvd0hlaWdodDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFdpZGdldEl0ZW1Db2xzcGFuKGNvbmZpZzogRGFzaGJvYXJkV2lkZ2V0SXRlbUNvbmZpZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIGNvbmZpZy5zaXplLmZpbmRCeVNjcmVlblNpemUodGhpcy5zY3JlZW5TaXplKS5jb2xzcGFuO1xuICB9XG5cbiAgZ2V0V2lkZ2V0SXRlbVJvd3NwYW4oY29uZmlnOiBEYXNoYm9hcmRXaWRnZXRJdGVtQ29uZmlnKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY29uZmlnLnNpemUuZmluZEJ5U2NyZWVuU2l6ZSh0aGlzLnNjcmVlblNpemUpLnJvd3NwYW47XG4gIH1cbn1cbiIsIjxtYXQtY2FyZCBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdHJldGNoXCIgZnhMYXlvdXRHYXA9XCIwcHhcIiBjbGFzcz1cImRhc2hib2FyZC1jYXJkXCI+XG4gIDxtYXQtY2FyZC1oZWFkZXIgZnhGbGV4PVwiMCAwIGF1dG9cIj5cbiAgICA8bWF0LWNhcmQtdGl0bGU+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLmljb247IGVsc2UgaWNvbkhlYWRlclwiIGNsYXNzPVwic3ViLWNhcmQtdGl0bGVcIj57eyB3aWRnZXQubGFiZWwgfX08L3NwYW4+XG4gICAgICA8bmctdGVtcGxhdGUgI2ljb25IZWFkZXI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2FyZC10aXRsZS1pY29uXCI+e3sgZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4tY2FyZC10aXRsZVwiPlxuICAgICAgICAgICAge3sgd2lkZ2V0LmxhYmVsIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGV4cG9ydE9wdGlvbiBvZiBleHBvcnRPcHRpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJleHBvcnQtYnV0dG9uXCIgKGNsaWNrKT1cImV4cG9ydE9wdGlvbi5leHBvcnQob3B0aW9ucykuc3Vic2NyaWJlKClcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4cG9ydC1idXR0b24tbGFiZWxcIj57eyBleHBvcnRPcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPG1hdC1pY29uPmRvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZGl0aW9uYWxXaWRnZXRCdXR0b25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtYnV0dG9uLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgJ3dpdGgtbWVudS1idXR0b24nOiBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLnNob3dNZW51QnV0dG9uIH1cIj5cbiAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYWRkaXRpb25hbFdpZGdldEJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgIGNvbG9yPVwie3sgYnV0dG9uLmNvbG9yIH19XCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3aWRnZXQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImJ1dHRvbi5zdHlsaW5nXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFkZGl0aW9uYWxXaWRnZXRCdXR0b25DbGlja2VkKGJ1dHRvbi5vbkNsaWNrKVwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnV0dG9uLmRpc2FibGVkXCI+XG4gICAgICAgICAgICB7eyBidXR0b24ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGJ1dHRvbiAjbWVudVRyaWdnZXIgbWF0LWljb24tYnV0dG9uIGNsYXNzPVwibW9yZS1idXR0b25cIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiICpuZ0lmPVwiZGFzaGJvYXJkV2lkZ2V0U2VydmljZS5zaG93TWVudUJ1dHRvblwiPlxuICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1mb3JtXCIgY2xpY2stc3RvcC1wcm9wYWdhdGlvbj5cbiAgICAgICAgICA8bWFudGxlLWRhc2hib2FyZC1jYXJkLXNlYXJjaC1tZW51ICNzZWFyY2hGb3JtIFtjb250ZW50XT1cImZvcm1Db250ZW50XCI+PC9tYW50bGUtZGFzaGJvYXJkLWNhcmQtc2VhcmNoLW1lbnU+XG5cbiAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjE2cHhcIj5cbiAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMSAxIGF1dG9cIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZWFyY2gtYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpOyBtZW51VHJpZ2dlci5jbG9zZU1lbnUoKTtcIj5cbiAgICAgICAgICAgICAgICB7eyAnbWFudGxlLmJ1dHRvbnMuc2VhcmNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9tYXQtY2FyZC10aXRsZT5cbiAgPC9tYXQtY2FyZC1oZWFkZXI+XG5cbiAgPG1hdC1jYXJkLWNvbnRlbnQgZnhGbGV4PVwiMSAwIDFweFwiIGZ4QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgY2xhc3M9XCJkYXNoYm9hcmQtY2FyZC1jb250ZW50XCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1jb250YWluZXJcIj5cbiAgICAgIDxtYXQtZ3JpZC1saXN0XG4gICAgICAgIFtyb3dIZWlnaHRdPVwid2lkZ2V0Um93SGVpZ2h0XCJcbiAgICAgICAgW2NvbHNdPVwiV0lER0VUX0NPTFVNTlNcIj5cbiAgICAgICAgPG1hdC1ncmlkLXRpbGUgKm5nRm9yPVwibGV0IGNvbnRleHQgb2Ygd2lkZ2V0SXRlbUNvbnRleHRzXCIgW2NvbHNwYW5dPVwiZ2V0V2lkZ2V0SXRlbUNvbHNwYW4oY29udGV4dC5jb25maWcpXCIgW3Jvd3NwYW5dPVwiZ2V0V2lkZ2V0SXRlbVJvd3NwYW4oY29udGV4dC5jb25maWcpXCI+XG4gICAgICAgICAgPG1hbnRsZS1keW5hbWljLXdpZGdldC1kaXNwbGF5XG4gICAgICAgICAgICBjbGFzcz1cImNhcmQtY29udGVudC13cmFwcGVyXCJcbiAgICAgICAgICAgIFt3aWRnZXRJdGVtXT1cImNvbnRleHQuY29uZmlnXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImNvbnRleHQuZGF0YVwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJjb250ZXh0Lm9wdGlvbnNcIj5cbiAgICAgICAgICA8L21hbnRsZS1keW5hbWljLXdpZGdldC1kaXNwbGF5PlxuICAgICAgICA8L21hdC1ncmlkLXRpbGU+XG4gICAgICA8L21hdC1ncmlkLWxpc3Q+XG4gICAgPC9kaXY+XG5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==
@@ -4,10 +4,12 @@ import * as i1 from "../containers/dynamic-dashboard-container/dynamic-dashboard
4
4
  import * as i2 from "../../widgets/loader/loader.component";
5
5
  import * as i3 from "@angular/common";
6
6
  export class DynamicDashboardComponent {
7
- constructor() { }
7
+ constructor() {
8
+ this.searchValues = {};
9
+ }
8
10
  }
9
11
  DynamicDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DynamicDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- DynamicDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DynamicDashboardComponent, selector: "mantle-dynamic-dashboard", inputs: { dashboardPageService: "dashboardPageService", content: "content" }, ngImport: i0, template: "<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-dynamic-dashboard-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n", styles: [""], components: [{ type: i1.DynamicDashboardContainerComponent, selector: "mantle-dynamic-dashboard-container", inputs: ["dashboardPageService", "content", "container"] }, { type: i2.LoaderComponent, selector: "mantle-loader", inputs: ["delay"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
12
+ DynamicDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DynamicDashboardComponent, selector: "mantle-dynamic-dashboard", inputs: { dashboardPageService: "dashboardPageService", content: "content", searchValues: "searchValues" }, ngImport: i0, template: "<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\" [searchValues]=\"searchValues\">\n </mantle-dynamic-dashboard-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n", styles: [""], components: [{ type: i1.DynamicDashboardContainerComponent, selector: "mantle-dynamic-dashboard-container", inputs: ["dashboardPageService", "content", "container", "searchValues"] }, { type: i2.LoaderComponent, selector: "mantle-loader", inputs: ["delay"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
11
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DynamicDashboardComponent, decorators: [{
12
14
  type: Component,
13
15
  args: [{
@@ -19,5 +21,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
19
21
  type: Input
20
22
  }], content: [{
21
23
  type: Input
24
+ }], searchValues: [{
25
+ type: Input
22
26
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU2pELE1BQU0sT0FBTyx5QkFBeUI7SUFLcEMsZ0JBQWdCLENBQUM7O3NIQUxOLHlCQUF5QjswR0FBekIseUJBQXlCLDhJQ1R0Qyx1WkFVQTsyRkREYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7aUJBQ2xEOzBFQUdVLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljRGFzaGJvYXJkQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Rhc2hib2FyZC1wYWdlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtZHluYW1pYy1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNEYXNoYm9hcmRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGRhc2hib2FyZFBhZ2VTZXJ2aWNlITogRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG4gIEBJbnB1dCgpIGNvbnRlbnQhOiBEeW5hbWljRGFzaGJvYXJkQ29udGVudDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudDsgZWxzZSBsb2FkZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29udGFpbmVyIG9mIGNvbnRlbnQuY29udGFpbmVyc1wiPlxuICAgIDxtYW50bGUtZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyIFtkYXNoYm9hcmRQYWdlU2VydmljZV09XCJkYXNoYm9hcmRQYWdlU2VydmljZVwiIFtjb250YWluZXJdPVwiY29udGFpbmVyXCIgW2NvbnRlbnRdPVwiY29udGVudFwiPlxuICAgIDwvbWFudGxlLWR5bmFtaWMtZGFzaGJvYXJkLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkZXI+XG4gIDxtYW50bGUtbG9hZGVyPjwvbWFudGxlLWxvYWRlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQvZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU2pELE1BQU0sT0FBTyx5QkFBeUI7SUFNcEM7UUFGUyxpQkFBWSxHQUFRLEVBQUUsQ0FBQztJQUVoQixDQUFDOztzSEFOTix5QkFBeUI7MEdBQXpCLHlCQUF5Qiw0S0NUdEMsdWJBVUE7MkZERGEseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSxvQ0FBb0M7b0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNsRDswRUFHVSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljRGFzaGJvYXJkQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Rhc2hib2FyZC1wYWdlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtZHluYW1pYy1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNEYXNoYm9hcmRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGRhc2hib2FyZFBhZ2VTZXJ2aWNlITogRGFzaGJvYXJkUGFnZVNlcnZpY2U7XG4gIEBJbnB1dCgpIGNvbnRlbnQhOiBEeW5hbWljRGFzaGJvYXJkQ29udGVudDtcbiAgQElucHV0KCkgc2VhcmNoVmFsdWVzOiBhbnkgPSB7fTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudDsgZWxzZSBsb2FkZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29udGFpbmVyIG9mIGNvbnRlbnQuY29udGFpbmVyc1wiPlxuICAgIDxtYW50bGUtZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyIFtkYXNoYm9hcmRQYWdlU2VydmljZV09XCJkYXNoYm9hcmRQYWdlU2VydmljZVwiIFtjb250YWluZXJdPVwiY29udGFpbmVyXCIgW2NvbnRlbnRdPVwiY29udGVudFwiIFtzZWFyY2hWYWx1ZXNdPVwic2VhcmNoVmFsdWVzXCI+XG4gICAgPC9tYW50bGUtZHluYW1pYy1kYXNoYm9hcmQtY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2xvYWRlcj5cbiAgPG1hbnRsZS1sb2FkZXI+PC9tYW50bGUtbG9hZGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -10,6 +10,7 @@ export class DashboardSectionComponent {
10
10
  this.arrayService = arrayService;
11
11
  this.screenSizeService = screenSizeService;
12
12
  this.data = {};
13
+ this.searchValues = {};
13
14
  this.dashboardWidgetServices = [];
14
15
  this.screenSize = 'default';
15
16
  this.SECTION_COLUMNS = 12;
@@ -49,7 +50,7 @@ export class DashboardSectionComponent {
49
50
  }
50
51
  }
51
52
  DashboardSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DashboardSectionComponent, deps: [{ token: i1.ArrayService }, { token: i2.ScreenSizeService }], target: i0.ɵɵFactoryTarget.Component });
52
- DashboardSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: { dashboardPageService: "dashboardPageService", slug: "slug", data: "data", section: "section" }, ngImport: i0, template: "<div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"rowHeight\"\n [cols]=\"SECTION_COLUMNS\"\n [class.multi-column]=\"true\">\n\n <mat-grid-tile *ngFor=\"let widget of section.elements\" [colspan]=\"getColSpanForWidget(widget.slug)\" [rowspan]=\"getRowSpanForWidget(widget.slug)\">\n <mantle-dashboard-card\n [widget]=\"widget\"\n [widgetConfig]=\"data.widget_configs[widget.slug]\"\n [widgetItems]=\"data.widget_items\"\n [rowHeight]=\"rowHeight\"\n [dashboardWidgetService]=\"getDashboardWidgetService(widget.slug)\"\n [dashboardPageService]=\"dashboardPageService\">\n </mantle-dashboard-card>\n </mat-grid-tile>\n\n </mat-grid-list>\n</div>\n", styles: [""], components: [{ type: i3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i4.DashboardCardComponent, selector: "mantle-dashboard-card", inputs: ["widget", "widgetConfig", "widgetItems", "rowHeight", "dashboardWidgetService", "dashboardPageService"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
53
+ DashboardSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: { dashboardPageService: "dashboardPageService", slug: "slug", data: "data", section: "section", searchValues: "searchValues" }, ngImport: i0, template: "<div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"rowHeight\"\n [cols]=\"SECTION_COLUMNS\"\n [class.multi-column]=\"true\">\n\n <mat-grid-tile *ngFor=\"let widget of section.elements\" [colspan]=\"getColSpanForWidget(widget.slug)\" [rowspan]=\"getRowSpanForWidget(widget.slug)\">\n <mantle-dashboard-card\n [widget]=\"widget\"\n [widgetConfig]=\"data.widget_configs[widget.slug]\"\n [widgetItems]=\"data.widget_items\"\n [rowHeight]=\"rowHeight\"\n [dashboardWidgetService]=\"getDashboardWidgetService(widget.slug)\"\n [dashboardPageService]=\"dashboardPageService\"\n [searchValues]=\"searchValues\">\n </mantle-dashboard-card>\n </mat-grid-tile>\n\n </mat-grid-list>\n</div>\n", styles: [""], components: [{ type: i3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i4.DashboardCardComponent, selector: "mantle-dashboard-card", inputs: ["widget", "widgetConfig", "widgetItems", "rowHeight", "dashboardWidgetService", "dashboardPageService", "searchValues"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
53
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DashboardSectionComponent, decorators: [{
54
55
  type: Component,
55
56
  args: [{
@@ -65,5 +66,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
65
66
  type: Input
66
67
  }], section: [{
67
68
  type: Input
69
+ }], searchValues: [{
70
+ type: Input
68
71
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvc2VjdGlvbnMvZGFzaGJvYXJkLXNlY3Rpb24vZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvc2VjdGlvbnMvZGFzaGJvYXJkLXNlY3Rpb24vZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFZekQsTUFBTSxPQUFPLHlCQUF5QjtJQWFwQyxZQUFvQixZQUEwQixFQUFVLGlCQUFvQztRQUF4RSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFUbkYsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUdqQiw0QkFBdUIsR0FBNkIsRUFBRSxDQUFDO1FBRXRELGVBQVUsR0FBVyxTQUFTLENBQUM7UUFDdkIsb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDdEMsY0FBUyxHQUFXLE9BQU8sQ0FBQztJQUU2RCxDQUFDO0lBRWpHLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRXZCLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdEUsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRHLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQztRQUV4RSxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGVBQWUsQ0FBQyxpQkFBc0I7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtZQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDakYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsVUFBa0I7UUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFMUUsSUFBSSxzQkFBc0IsSUFBSSxJQUFJO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFFN0MsT0FBTyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFrQjtRQUNwQyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxRSxJQUFJLHNCQUFzQixJQUFJLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUU3QyxPQUFPLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDdkYsQ0FBQztJQUVELHlCQUF5QixDQUFDLFVBQWtCO1FBQzFDLEtBQUssSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ3RELElBQUksYUFBYSxDQUFDLElBQUksSUFBSSxVQUFVO2dCQUFFLE9BQU8sYUFBYSxDQUFDO1NBQzVEO0lBQ0gsQ0FBQzs7c0hBckRVLHlCQUF5QjswR0FBekIseUJBQXlCLDBLQ1p0QywrdEJBbUJBOzJGRFBhLHlCQUF5QjtrQkFMckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7bUlBR1Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0RGFzaGJvYXJkU2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Rhc2hib2FyZC1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkV2lkZ2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvZGFzaGJvYXJkLXdpZGdldC5zZXJ2aWNlJztcbmltcG9ydCB7IFNjcmVlblNpemVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc2NyZWVuLXNpemUuc2VydmljZSc7XG5pbXBvcnQgeyBBcnJheVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hcnJheS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWRhc2hib2FyZC1zZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRTZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBkYXNoYm9hcmRQYWdlU2VydmljZSE6IERhc2hib2FyZFBhZ2VTZXJ2aWNlO1xuICBASW5wdXQoKSBzbHVnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRhdGE6IGFueSA9IHt9O1xuICBASW5wdXQoKSBzZWN0aW9uITogRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb247XG5cbiAgcHVibGljIGRhc2hib2FyZFdpZGdldFNlcnZpY2VzOiBEYXNoYm9hcmRXaWRnZXRTZXJ2aWNlW10gPSBbXTtcblxuICBwcml2YXRlIHNjcmVlblNpemU6IHN0cmluZyA9ICdkZWZhdWx0JztcbiAgcHVibGljIHJlYWRvbmx5IFNFQ1RJT05fQ09MVU1OUzogbnVtYmVyID0gMTI7XG4gIHB1YmxpYyByb3dIZWlnaHQ6IHN0cmluZyA9ICcyMDBweCc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcnJheVNlcnZpY2U6IEFycmF5U2VydmljZSwgcHJpdmF0ZSBzY3JlZW5TaXplU2VydmljZTogU2NyZWVuU2l6ZVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zbHVnKSByZXR1cm47XG5cbiAgICBsZXQgZGFzaGJvYXJkU2VjdGlvbnMgPSB0aGlzLmRhc2hib2FyZFBhZ2VTZXJ2aWNlLmRhc2hib2FyZFNlY3Rpb25zKCk7XG4gICAgbGV0IGRhc2hib2FyZFNlY3Rpb24gPSB0aGlzLmFycmF5U2VydmljZS5maW5kQnlBdHRyaWJ1dGUoZGFzaGJvYXJkU2VjdGlvbnMsICdzZWN0aW9uU2x1ZycsIHRoaXMuc2x1Zyk7XG5cbiAgICB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2VzID0gZGFzaGJvYXJkU2VjdGlvbi5kYXNoYm9hcmRXaWRnZXRTZXJ2aWNlcztcblxuICAgIHRoaXMud2F0Y2hTY3JlZW5TaXplKGRhc2hib2FyZFNlY3Rpb24uc2VjdGlvbkRpbWVuc2lvbnMpO1xuICB9XG5cbiAgd2F0Y2hTY3JlZW5TaXplKHNlY3Rpb25EaW1lbnNpb25zOiBhbnkpIHtcbiAgICB0aGlzLnNjcmVlblNpemVTZXJ2aWNlLnNjcmVlblNpemUuc3Vic2NyaWJlKChzY3JlZW5TaXplOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2NyZWVuU2l6ZSA9IHNjcmVlblNpemU7XG4gICAgICB0aGlzLnJvd0hlaWdodCA9IHNlY3Rpb25EaW1lbnNpb25zLmZpbmRCeVNjcmVlblNpemUodGhpcy5zY3JlZW5TaXplKS5yb3dIZWlnaHQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRDb2xTcGFuRm9yV2lkZ2V0KHdpZGdldFNsdWc6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgZGFzaGJvYXJkV2lkZ2V0U2VydmljZSA9IHRoaXMuZ2V0RGFzaGJvYXJkV2lkZ2V0U2VydmljZSh3aWRnZXRTbHVnKTtcblxuICAgIGlmIChkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlID09IG51bGwpIHJldHVybiAxO1xuXG4gICAgcmV0dXJuIGRhc2hib2FyZFdpZGdldFNlcnZpY2Uud2lkZ2V0U2l6ZSgpLmZpbmRCeVNjcmVlblNpemUodGhpcy5zY3JlZW5TaXplKS5jb2xzcGFuO1xuICB9XG5cbiAgZ2V0Um93U3BhbkZvcldpZGdldCh3aWRnZXRTbHVnOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGRhc2hib2FyZFdpZGdldFNlcnZpY2UgPSB0aGlzLmdldERhc2hib2FyZFdpZGdldFNlcnZpY2Uod2lkZ2V0U2x1Zyk7XG5cbiAgICBpZiAoZGFzaGJvYXJkV2lkZ2V0U2VydmljZSA9PSBudWxsKSByZXR1cm4gMTtcblxuICAgIHJldHVybiBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLndpZGdldFNpemUoKS5maW5kQnlTY3JlZW5TaXplKHRoaXMuc2NyZWVuU2l6ZSkucm93c3BhbjtcbiAgfVxuXG4gIGdldERhc2hib2FyZFdpZGdldFNlcnZpY2Uod2lkZ2V0U2x1Zzogc3RyaW5nKTogYW55IHtcbiAgICBmb3IgKGxldCB3aWRnZXRTZXJ2aWNlIG9mIHRoaXMuZGFzaGJvYXJkV2lkZ2V0U2VydmljZXMpIHtcbiAgICAgIGlmICh3aWRnZXRTZXJ2aWNlLnNsdWcgPT0gd2lkZ2V0U2x1ZykgcmV0dXJuIHdpZGdldFNlcnZpY2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1jb250YWluZXJcIj5cbiAgPG1hdC1ncmlkLWxpc3RcbiAgICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcbiAgICAgIFtjb2xzXT1cIlNFQ1RJT05fQ09MVU1OU1wiXG4gICAgICBbY2xhc3MubXVsdGktY29sdW1uXT1cInRydWVcIj5cblxuICAgIDxtYXQtZ3JpZC10aWxlICpuZ0Zvcj1cImxldCB3aWRnZXQgb2Ygc2VjdGlvbi5lbGVtZW50c1wiIFtjb2xzcGFuXT1cImdldENvbFNwYW5Gb3JXaWRnZXQod2lkZ2V0LnNsdWcpXCIgW3Jvd3NwYW5dPVwiZ2V0Um93U3BhbkZvcldpZGdldCh3aWRnZXQuc2x1ZylcIj5cbiAgICAgIDxtYW50bGUtZGFzaGJvYXJkLWNhcmRcbiAgICAgICAgW3dpZGdldF09XCJ3aWRnZXRcIlxuICAgICAgICBbd2lkZ2V0Q29uZmlnXT1cImRhdGEud2lkZ2V0X2NvbmZpZ3Nbd2lkZ2V0LnNsdWddXCJcbiAgICAgICAgW3dpZGdldEl0ZW1zXT1cImRhdGEud2lkZ2V0X2l0ZW1zXCJcbiAgICAgICAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIlxuICAgICAgICBbZGFzaGJvYXJkV2lkZ2V0U2VydmljZV09XCJnZXREYXNoYm9hcmRXaWRnZXRTZXJ2aWNlKHdpZGdldC5zbHVnKVwiXG4gICAgICAgIFtkYXNoYm9hcmRQYWdlU2VydmljZV09XCJkYXNoYm9hcmRQYWdlU2VydmljZVwiPlxuICAgICAgPC9tYW50bGUtZGFzaGJvYXJkLWNhcmQ+XG4gICAgPC9tYXQtZ3JpZC10aWxlPlxuXG4gIDwvbWF0LWdyaWQtbGlzdD5cbjwvZGl2PlxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvc2VjdGlvbnMvZGFzaGJvYXJkLXNlY3Rpb24vZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvc2VjdGlvbnMvZGFzaGJvYXJkLXNlY3Rpb24vZGFzaGJvYXJkLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFZekQsTUFBTSxPQUFPLHlCQUF5QjtJQWNwQyxZQUFvQixZQUEwQixFQUFVLGlCQUFvQztRQUF4RSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFWbkYsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUVmLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBRXpCLDRCQUF1QixHQUE2QixFQUFFLENBQUM7UUFFdEQsZUFBVSxHQUFXLFNBQVMsQ0FBQztRQUN2QixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUN0QyxjQUFTLEdBQVcsT0FBTyxDQUFDO0lBRTZELENBQUM7SUFFakcsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFFdkIsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN0RSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEcsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDO1FBRXhFLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsZUFBZSxDQUFDLGlCQUFzQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO1lBQzlELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFrQjtRQUNwQyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxRSxJQUFJLHNCQUFzQixJQUFJLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUU3QyxPQUFPLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDdkYsQ0FBQztJQUVELG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFFLElBQUksc0JBQXNCLElBQUksSUFBSTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sc0JBQXNCLENBQUMsVUFBVSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUN2RixDQUFDO0lBRUQseUJBQXlCLENBQUMsVUFBa0I7UUFDMUMsS0FBSyxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDdEQsSUFBSSxhQUFhLENBQUMsSUFBSSxJQUFJLFVBQVU7Z0JBQUUsT0FBTyxhQUFhLENBQUM7U0FDNUQ7SUFDSCxDQUFDOztzSEF0RFUseUJBQXlCOzBHQUF6Qix5QkFBeUIsd01DWnRDLHd3QkFvQkE7MkZEUmEseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSxvQ0FBb0M7b0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNsRDttSUFHVSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0xheW91dERhc2hib2FyZFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhLXN0cnVjdHVyZXMvZHluYW1pYy1sYXlvdXQuc3RydWN0dXJlJztcbmltcG9ydCB7IERhc2hib2FyZFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kYXNoYm9hcmQtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZFdpZGdldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Rhc2hib2FyZC13aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5TaXplU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3NjcmVlbi1zaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXJyYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXJyYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1kYXNoYm9hcmQtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgZGFzaGJvYXJkUGFnZVNlcnZpY2UhOiBEYXNoYm9hcmRQYWdlU2VydmljZTtcbiAgQElucHV0KCkgc2x1Zzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBkYXRhOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgc2VjdGlvbiE6IER5bmFtaWNMYXlvdXREYXNoYm9hcmRTZWN0aW9uO1xuICBASW5wdXQoKSBzZWFyY2hWYWx1ZXM6IGFueSA9IHt9O1xuXG4gIHB1YmxpYyBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlczogRGFzaGJvYXJkV2lkZ2V0U2VydmljZVtdID0gW107XG5cbiAgcHJpdmF0ZSBzY3JlZW5TaXplOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIHB1YmxpYyByZWFkb25seSBTRUNUSU9OX0NPTFVNTlM6IG51bWJlciA9IDEyO1xuICBwdWJsaWMgcm93SGVpZ2h0OiBzdHJpbmcgPSAnMjAwcHgnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXJyYXlTZXJ2aWNlOiBBcnJheVNlcnZpY2UsIHByaXZhdGUgc2NyZWVuU2l6ZVNlcnZpY2U6IFNjcmVlblNpemVTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2x1ZykgcmV0dXJuO1xuXG4gICAgbGV0IGRhc2hib2FyZFNlY3Rpb25zID0gdGhpcy5kYXNoYm9hcmRQYWdlU2VydmljZS5kYXNoYm9hcmRTZWN0aW9ucygpO1xuICAgIGxldCBkYXNoYm9hcmRTZWN0aW9uID0gdGhpcy5hcnJheVNlcnZpY2UuZmluZEJ5QXR0cmlidXRlKGRhc2hib2FyZFNlY3Rpb25zLCAnc2VjdGlvblNsdWcnLCB0aGlzLnNsdWcpO1xuXG4gICAgdGhpcy5kYXNoYm9hcmRXaWRnZXRTZXJ2aWNlcyA9IGRhc2hib2FyZFNlY3Rpb24uZGFzaGJvYXJkV2lkZ2V0U2VydmljZXM7XG5cbiAgICB0aGlzLndhdGNoU2NyZWVuU2l6ZShkYXNoYm9hcmRTZWN0aW9uLnNlY3Rpb25EaW1lbnNpb25zKTtcbiAgfVxuXG4gIHdhdGNoU2NyZWVuU2l6ZShzZWN0aW9uRGltZW5zaW9uczogYW55KSB7XG4gICAgdGhpcy5zY3JlZW5TaXplU2VydmljZS5zY3JlZW5TaXplLnN1YnNjcmliZSgoc2NyZWVuU2l6ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnNjcmVlblNpemUgPSBzY3JlZW5TaXplO1xuICAgICAgdGhpcy5yb3dIZWlnaHQgPSBzZWN0aW9uRGltZW5zaW9ucy5maW5kQnlTY3JlZW5TaXplKHRoaXMuc2NyZWVuU2l6ZSkucm93SGVpZ2h0O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q29sU3BhbkZvcldpZGdldCh3aWRnZXRTbHVnOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGRhc2hib2FyZFdpZGdldFNlcnZpY2UgPSB0aGlzLmdldERhc2hib2FyZFdpZGdldFNlcnZpY2Uod2lkZ2V0U2x1Zyk7XG5cbiAgICBpZiAoZGFzaGJvYXJkV2lkZ2V0U2VydmljZSA9PSBudWxsKSByZXR1cm4gMTtcblxuICAgIHJldHVybiBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLndpZGdldFNpemUoKS5maW5kQnlTY3JlZW5TaXplKHRoaXMuc2NyZWVuU2l6ZSkuY29sc3BhbjtcbiAgfVxuXG4gIGdldFJvd1NwYW5Gb3JXaWRnZXQod2lkZ2V0U2x1Zzogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlID0gdGhpcy5nZXREYXNoYm9hcmRXaWRnZXRTZXJ2aWNlKHdpZGdldFNsdWcpO1xuXG4gICAgaWYgKGRhc2hib2FyZFdpZGdldFNlcnZpY2UgPT0gbnVsbCkgcmV0dXJuIDE7XG5cbiAgICByZXR1cm4gZGFzaGJvYXJkV2lkZ2V0U2VydmljZS53aWRnZXRTaXplKCkuZmluZEJ5U2NyZWVuU2l6ZSh0aGlzLnNjcmVlblNpemUpLnJvd3NwYW47XG4gIH1cblxuICBnZXREYXNoYm9hcmRXaWRnZXRTZXJ2aWNlKHdpZGdldFNsdWc6IHN0cmluZyk6IGFueSB7XG4gICAgZm9yIChsZXQgd2lkZ2V0U2VydmljZSBvZiB0aGlzLmRhc2hib2FyZFdpZGdldFNlcnZpY2VzKSB7XG4gICAgICBpZiAod2lkZ2V0U2VydmljZS5zbHVnID09IHdpZGdldFNsdWcpIHJldHVybiB3aWRnZXRTZXJ2aWNlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdyaWQtY29udGFpbmVyXCI+XG4gIDxtYXQtZ3JpZC1saXN0XG4gICAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiXG4gICAgICBbY29sc109XCJTRUNUSU9OX0NPTFVNTlNcIlxuICAgICAgW2NsYXNzLm11bHRpLWNvbHVtbl09XCJ0cnVlXCI+XG5cbiAgICA8bWF0LWdyaWQtdGlsZSAqbmdGb3I9XCJsZXQgd2lkZ2V0IG9mIHNlY3Rpb24uZWxlbWVudHNcIiBbY29sc3Bhbl09XCJnZXRDb2xTcGFuRm9yV2lkZ2V0KHdpZGdldC5zbHVnKVwiIFtyb3dzcGFuXT1cImdldFJvd1NwYW5Gb3JXaWRnZXQod2lkZ2V0LnNsdWcpXCI+XG4gICAgICA8bWFudGxlLWRhc2hib2FyZC1jYXJkXG4gICAgICAgIFt3aWRnZXRdPVwid2lkZ2V0XCJcbiAgICAgICAgW3dpZGdldENvbmZpZ109XCJkYXRhLndpZGdldF9jb25maWdzW3dpZGdldC5zbHVnXVwiXG4gICAgICAgIFt3aWRnZXRJdGVtc109XCJkYXRhLndpZGdldF9pdGVtc1wiXG4gICAgICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcbiAgICAgICAgW2Rhc2hib2FyZFdpZGdldFNlcnZpY2VdPVwiZ2V0RGFzaGJvYXJkV2lkZ2V0U2VydmljZSh3aWRnZXQuc2x1ZylcIlxuICAgICAgICBbZGFzaGJvYXJkUGFnZVNlcnZpY2VdPVwiZGFzaGJvYXJkUGFnZVNlcnZpY2VcIlxuICAgICAgICBbc2VhcmNoVmFsdWVzXT1cInNlYXJjaFZhbHVlc1wiPlxuICAgICAgPC9tYW50bGUtZGFzaGJvYXJkLWNhcmQ+XG4gICAgPC9tYXQtZ3JpZC10aWxlPlxuXG4gIDwvbWF0LWdyaWQtbGlzdD5cbjwvZGl2PlxuIl19
@@ -28,7 +28,7 @@ export class DynamicDetailsSectionComponent {
28
28
  }
29
29
  }
30
30
  DynamicDetailsSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DynamicDetailsSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
- DynamicDetailsSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DynamicDetailsSectionComponent, selector: "mantle-dynamic-details-section", inputs: { detailPageService: "detailPageService", content: "content", section: "section" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\"\n [detailPageService]=\"detailPageService\">\n </mantle-table-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"asDashboardPageService(detailPageService)\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-details-section\n [section]=\"asDynamicLayoutMarkdownSection(section)\">\n </mantle-markdown-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'roster-shift-list'\">\n <mantle-roster-shift-list-details-section\n [section]=\"asDynamicLayoutRosterShiftListSection(section)\"\n [data]=\"content.data\">\n </mantle-roster-shift-list-details-section>\n </ng-container>\n\n</ng-container>\n", styles: [""], components: [{ type: i1.GridDetailsSectionComponent, selector: "mantle-grid-details-section", inputs: ["data", "section", "defaultRowHeight"] }, { type: i2.TableDetailsSectionComponent, selector: "mantle-table-details-section", inputs: ["data", "section", "detailPageService"] }, { type: i3.DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: ["dashboardPageService", "slug", "data", "section"] }, { type: i4.MarkdownDetailsSectionComponent, selector: "mantle-markdown-details-section", inputs: ["section"] }, { type: i5.RosterShiftListDetailsSectionComponent, selector: "mantle-roster-shift-list-details-section", inputs: ["data", "section"] }], directives: [{ type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
31
+ DynamicDetailsSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DynamicDetailsSectionComponent, selector: "mantle-dynamic-details-section", inputs: { detailPageService: "detailPageService", content: "content", section: "section" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\"\n [detailPageService]=\"detailPageService\">\n </mantle-table-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"asDashboardPageService(detailPageService)\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-details-section\n [section]=\"asDynamicLayoutMarkdownSection(section)\">\n </mantle-markdown-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'roster-shift-list'\">\n <mantle-roster-shift-list-details-section\n [section]=\"asDynamicLayoutRosterShiftListSection(section)\"\n [data]=\"content.data\">\n </mantle-roster-shift-list-details-section>\n </ng-container>\n\n</ng-container>\n", styles: [""], components: [{ type: i1.GridDetailsSectionComponent, selector: "mantle-grid-details-section", inputs: ["data", "section", "defaultRowHeight"] }, { type: i2.TableDetailsSectionComponent, selector: "mantle-table-details-section", inputs: ["data", "section", "detailPageService"] }, { type: i3.DashboardSectionComponent, selector: "mantle-dashboard-section", inputs: ["dashboardPageService", "slug", "data", "section", "searchValues"] }, { type: i4.MarkdownDetailsSectionComponent, selector: "mantle-markdown-details-section", inputs: ["section"] }, { type: i5.RosterShiftListDetailsSectionComponent, selector: "mantle-roster-shift-list-details-section", inputs: ["data", "section"] }], directives: [{ type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DynamicDetailsSectionComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{
@@ -0,0 +1,57 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/form-field";
5
+ import * as i2 from "@ng-matero/extensions/colorpicker";
6
+ import * as i3 from "@angular/material/input";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "@angular/common";
9
+ import * as i6 from "@ngx-translate/core";
10
+ export class ColorPickerInputComponent {
11
+ constructor() {
12
+ this.value = null;
13
+ this.onChange = (newValue) => { };
14
+ this.onTouched = () => { };
15
+ }
16
+ registerOnChange(fn) { this.onChange = fn; }
17
+ registerOnTouched(fn) { this.onTouched = fn; }
18
+ writeValue(newValue) {
19
+ this.value = newValue;
20
+ this.onChange(newValue);
21
+ }
22
+ onValueChanged(event) {
23
+ this.onChange(this.value);
24
+ }
25
+ }
26
+ ColorPickerInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: ColorPickerInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27
+ ColorPickerInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: ColorPickerInputComponent, selector: "mantle-colorpicker-input", inputs: { label: "label", disable: "disable", required: "required", error: "error" }, providers: [
28
+ {
29
+ provide: NG_VALUE_ACCESSOR,
30
+ useExisting: forwardRef(() => ColorPickerInputComponent),
31
+ multi: true
32
+ }
33
+ ], ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <input matInput\n [mtxColorpicker]=\"picker\"\n [(ngModel)]=\"value\"\n (colorChange)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n format=\"hex\"\n autocomplete=\"off\" />\n <mtx-colorpicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-colorpicker-toggle>\n <mtx-colorpicker #picker></mtx-colorpicker>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n", styles: [""], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MtxColorpickerToggle, selector: "mtx-colorpicker-toggle", inputs: ["tabIndex", "disabled", "for", "aria-label", "disableRipple"], exportAs: ["mtxColorpickerToggle"] }, { type: i2.MtxColorpicker, selector: "mtx-colorpicker", inputs: ["xPosition", "yPosition", "disabled", "restoreFocus", "opened", "color", "format", "content"], outputs: ["opened", "closed"], exportAs: ["mtxColorpicker"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i2.MtxColorpickerInput, selector: "input[mtxColorpicker]", inputs: ["format", "mtxColorpicker", "value", "disabled"], outputs: ["colorChange", "colorInput"], exportAs: ["mtxColorpickerInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "translate": i6.TranslatePipe } });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: ColorPickerInputComponent, decorators: [{
35
+ type: Component,
36
+ args: [{
37
+ selector: 'mantle-colorpicker-input',
38
+ templateUrl: './colorpicker-input.component.html',
39
+ styleUrls: ['./colorpicker-input.component.scss'],
40
+ providers: [
41
+ {
42
+ provide: NG_VALUE_ACCESSOR,
43
+ useExisting: forwardRef(() => ColorPickerInputComponent),
44
+ multi: true
45
+ }
46
+ ]
47
+ }]
48
+ }], ctorParameters: function () { return []; }, propDecorators: { label: [{
49
+ type: Input
50
+ }], disable: [{
51
+ type: Input
52
+ }], required: [{
53
+ type: Input
54
+ }], error: [{
55
+ type: Input
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9jb2xvcnBpY2tlci1pbnB1dC9jb2xvcnBpY2tlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2NvbG9ycGlja2VyLWlucHV0L2NvbG9ycGlja2VyLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBY3pFLE1BQU0sT0FBTyx5QkFBeUI7SUFTcEM7UUFGTyxVQUFLLEdBQVEsSUFBSSxDQUFDO1FBSXpCLGFBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUdyQyxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBTE4sQ0FBQztJQUdqQixnQkFBZ0IsQ0FBQyxFQUE4QixJQUFVLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUc5RSxpQkFBaUIsQ0FBQyxFQUFjLElBQVUsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhFLFVBQVUsQ0FBQyxRQUFhO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7O3NIQXhCVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix5SUFSekI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztZQUN4RCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDYkgsb2xCQWVBOzJGREFhLHlCQUF5QjtrQkFackMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztvQkFDakQsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjswRUFHVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtY29sb3JwaWNrZXItaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3JwaWNrZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2xvcnBpY2tlci1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbG9yUGlja2VySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdmFsdWU6IGFueSA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBvbkNoYW5nZSA9IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB7IH07XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIHdyaXRlVmFsdWUobmV3VmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWludmFsaWRdPVwiZXJyb3JcIj5cbiAgPG1hdC1sYWJlbD57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgIFttdHhDb2xvcnBpY2tlcl09XCJwaWNrZXJcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAoY29sb3JDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVcIlxuICAgICAgZm9ybWF0PVwiaGV4XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XG4gIDxtdHgtY29sb3JwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiIHRhYmluZGV4PVwiLTFcIj48L210eC1jb2xvcnBpY2tlci10b2dnbGU+XG4gIDxtdHgtY29sb3JwaWNrZXIgI3BpY2tlcj48L210eC1jb2xvcnBpY2tlcj5cblxuICA8bWF0LWhpbnQgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPnt7IGVycm9yIH19PC9tYXQtaGludD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
@@ -2,11 +2,10 @@ import { Component, Input, forwardRef } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/material/form-field";
5
- import * as i2 from "@angular/material/select";
6
- import * as i3 from "@angular/material/core";
7
- import * as i4 from "@angular/forms";
8
- import * as i5 from "@angular/common";
9
- import * as i6 from "@ngx-translate/core";
5
+ import * as i2 from "@ng-matero/extensions/select";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "@ngx-translate/core";
10
9
  export class DropdownComponent {
11
10
  constructor() {
12
11
  this.value = null;
@@ -45,7 +44,7 @@ DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
45
44
  useExisting: forwardRef(() => DropdownComponent),
46
45
  multi: true
47
46
  }
48
- ], usesOnChanges: true, ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <mat-select\n [(ngModel)]=\"value\"\n (selectionChange)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\">\n <mat-option value=\"\"></mat-option>\n <mat-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-select>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n", styles: [""], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "translate": i6.TranslatePipe } });
47
+ ], usesOnChanges: true, ngImport: i0, template: "<mat-form-field [class.mat-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <mtx-select\n [(ngModel)]=\"value\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n appendTo=\"body\">\n <mtx-option value=\"\"></mtx-option>\n <mtx-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mtx-option>\n </mtx-select>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n", styles: [""], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MtxSelectComponent, selector: "mtx-select", inputs: ["addTag", "addTagText", "appearance", "closeOnSelect", "clearAllText", "clearable", "clearOnBackspace", "dropdownPosition", "selectableGroup", "selectableGroupAsModel", "hideSelected", "loading", "loadingText", "labelForId", "markFirst", "multiple", "notFoundText", "searchable", "readonly", "searchFn", "searchWhileComposing", "selectOnTab", "trackByFn", "inputAttrs", "minTermLength", "editableSearchTerm", "keyDownFn", "virtualScroll", "typeToSearchText", "aria-label", "aria-labelledby", "id", "clearSearchOnAdd", "items", "value", "placeholder", "required", "disabled", "appendTo", "bindLabel", "bindValue", "compareWith", "groupBy", "groupValue", "isOpen", "maxSelectedItems", "tabIndex", "openOnEnter", "typeahead", "errorStateMatcher"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"], exportAs: ["mtxSelect"] }, { type: i2.MtxOptionComponent, selector: "mtx-option", inputs: ["disabled", "value"], exportAs: ["mtxOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "translate": i5.TranslatePipe } });
49
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DropdownComponent, decorators: [{
50
49
  type: Component,
51
50
  args: [{
@@ -71,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
71
70
  }], error: [{
72
71
  type: Input
73
72
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBY3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFXNUI7UUFITyxVQUFLLEdBQVEsSUFBSSxDQUFDO1FBQ2xCLG1CQUFjLEdBQXVDLEVBQUUsQ0FBQztRQUkvRCxhQUFRLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFHckMsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUxOLENBQUM7SUFHakIsZ0JBQWdCLENBQUMsRUFBOEIsSUFBVSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFHOUUsaUJBQWlCLENBQUMsRUFBYyxJQUFVLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVoRSxXQUFXLENBQUMsT0FBWTtRQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUMxQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQTFDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixvSkFSakI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUNoRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsK0NDYkgsdWlCQWVBOzJGREFhLGlCQUFpQjtrQkFaN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsMkJBQTJCO29CQUN4QyxTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDeEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjswRUFHVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcm9wZG93bkNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgb3B0aW9ucyE6IHsgdmFsdWVzOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGhpZGRlbjogYm9vbGVhbiB9W10gfTtcbiAgQElucHV0KCkgZGlzYWJsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdmFsdWU6IGFueSA9IG51bGw7XG4gIHB1YmxpYyBkcm9wZG93blZhbHVlczogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgb25DaGFuZ2UgPSAobmV3VmFsdWU6IHN0cmluZykgPT4geyB9O1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAobmV3VmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cblxuICBvblRvdWNoZWQgPSAoKSA9PiB7IH07XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckRyb3Bkb3duVmFsdWVzKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG5ld1ZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gU3RyaW5nKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuXG4gICAgdGhpcy5maWx0ZXJEcm9wZG93blZhbHVlcygpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICBmaWx0ZXJEcm9wZG93blZhbHVlcygpIHtcbiAgICB0aGlzLmRyb3Bkb3duVmFsdWVzID0gdGhpcy5vcHRpb25zLnZhbHVlcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnZhbHVlID09IHRoaXMudmFsdWUpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuICFpdGVtLmhpZGRlbjtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8bWF0LWZvcm0tZmllbGQgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWludmFsaWRdPVwiZXJyb3JcIj5cbiAgPG1hdC1sYWJlbD57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICA8bWF0LXNlbGVjdFxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlXCI+XG4gICAgPG1hdC1vcHRpb24gdmFsdWU9XCJcIj48L21hdC1vcHRpb24+XG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkcm9wZG93blZhbHVlc1wiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgIHt7b3B0aW9uLmxhYmVsfX1cbiAgICA8L21hdC1vcHRpb24+XG4gIDwvbWF0LXNlbGVjdD5cblxuICA8bWF0LWhpbnQgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPnt7IGVycm9yIH19PC9tYXQtaGludD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2ZpZWxkcy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZmllbGRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFjekUsTUFBTSxPQUFPLGlCQUFpQjtJQVc1QjtRQUhPLFVBQUssR0FBUSxJQUFJLENBQUM7UUFDbEIsbUJBQWMsR0FBdUMsRUFBRSxDQUFDO1FBSS9ELGFBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUdyQyxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBTE4sQ0FBQztJQUdqQixnQkFBZ0IsQ0FBQyxFQUE4QixJQUFVLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUc5RSxpQkFBaUIsQ0FBQyxFQUFjLElBQVUsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhFLFdBQVcsQ0FBQyxPQUFZO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OEdBMUNVLGlCQUFpQjtrR0FBakIsaUJBQWlCLG9KQVJqQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwrQ0NiSCx1akJBZ0JBOzJGRERhLGlCQUFpQjtrQkFaN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsMkJBQTJCO29CQUN4QyxTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDeEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjswRUFHVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcm9wZG93bkNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgb3B0aW9ucyE6IHsgdmFsdWVzOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGhpZGRlbjogYm9vbGVhbiB9W10gfTtcbiAgQElucHV0KCkgZGlzYWJsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgdmFsdWU6IGFueSA9IG51bGw7XG4gIHB1YmxpYyBkcm9wZG93blZhbHVlczogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgb25DaGFuZ2UgPSAobmV3VmFsdWU6IHN0cmluZykgPT4geyB9O1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAobmV3VmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cblxuICBvblRvdWNoZWQgPSAoKSA9PiB7IH07XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckRyb3Bkb3duVmFsdWVzKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG5ld1ZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gU3RyaW5nKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuXG4gICAgdGhpcy5maWx0ZXJEcm9wZG93blZhbHVlcygpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICBmaWx0ZXJEcm9wZG93blZhbHVlcygpIHtcbiAgICB0aGlzLmRyb3Bkb3duVmFsdWVzID0gdGhpcy5vcHRpb25zLnZhbHVlcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnZhbHVlID09IHRoaXMudmFsdWUpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuICFpdGVtLmhpZGRlbjtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8bWF0LWZvcm0tZmllbGQgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWludmFsaWRdPVwiZXJyb3JcIj5cbiAgPG1hdC1sYWJlbD57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICA8bXR4LXNlbGVjdFxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlXCJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiPlxuICAgIDxtdHgtb3B0aW9uIHZhbHVlPVwiXCI+PC9tdHgtb3B0aW9uPlxuICAgIDxtdHgtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZHJvcGRvd25WYWx1ZXNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XG4gICAgICB7e29wdGlvbi5sYWJlbH19XG4gICAgPC9tdHgtb3B0aW9uPlxuICA8L210eC1zZWxlY3Q+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj57eyBlcnJvciB9fTwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19