cps-ui-kit 0.73.0 → 0.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm2020/lib/base_components/base-tree-dropdown.component.mjs +484 -0
  2. package/esm2020/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +1 -1
  3. package/esm2020/lib/components/cps-datepicker/cps-datepicker.component.mjs +1 -1
  4. package/esm2020/lib/components/cps-menu/cps-menu.component.mjs +7 -3
  5. package/esm2020/lib/components/cps-select/cps-select.component.mjs +1 -1
  6. package/esm2020/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.mjs +2 -2
  7. package/esm2020/lib/components/cps-table/cps-table.component.mjs +10 -4
  8. package/esm2020/lib/components/cps-table/directives/cps-table-column-sortable.directive.mjs +1 -6
  9. package/esm2020/lib/components/cps-table/directives/cps-table-row-selectable.directive.mjs +31 -0
  10. package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.mjs +18 -11
  11. package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter.component.mjs +61 -34
  12. package/esm2020/lib/components/cps-table/table-row-menu/table-row-menu.component.mjs +1 -1
  13. package/esm2020/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +4 -4
  14. package/esm2020/lib/components/cps-tree-select/cps-tree-select.component.mjs +4 -4
  15. package/esm2020/lib/components/cps-tree-table/cps-tree-table.component.mjs +116 -63
  16. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.mjs +70 -0
  17. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-column-sortable.directive.mjs +1 -6
  18. package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-row-selectable.directive.mjs +31 -0
  19. package/esm2020/public-api.mjs +4 -1
  20. package/fesm2015/cps-ui-kit.mjs +337 -125
  21. package/fesm2015/cps-ui-kit.mjs.map +1 -1
  22. package/fesm2020/cps-ui-kit.mjs +330 -123
  23. package/fesm2020/cps-ui-kit.mjs.map +1 -1
  24. package/lib/base_components/{cps-tree-dropdown-base.component.d.ts → base-tree-dropdown.component.d.ts} +3 -3
  25. package/lib/components/cps-menu/cps-menu.component.d.ts +2 -1
  26. package/lib/components/cps-table/cps-table.component.d.ts +3 -1
  27. package/lib/components/cps-table/directives/cps-table-column-sortable.directive.d.ts +0 -1
  28. package/lib/components/cps-table/directives/cps-table-row-selectable.directive.d.ts +14 -0
  29. package/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.d.ts +5 -2
  30. package/lib/components/cps-table/table-column-filter/table-column-filter.component.d.ts +6 -2
  31. package/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.d.ts +2 -2
  32. package/lib/components/cps-tree-select/cps-tree-select.component.d.ts +2 -2
  33. package/lib/components/cps-tree-table/cps-tree-table.component.d.ts +17 -14
  34. package/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.d.ts +22 -0
  35. package/lib/components/cps-tree-table/directives/cps-tree-table-column-sortable.directive.d.ts +0 -1
  36. package/lib/components/cps-tree-table/directives/cps-tree-table-row-selectable.directive.d.ts +14 -0
  37. package/package.json +1 -1
  38. package/public-api.d.ts +3 -0
  39. package/esm2020/lib/base_components/cps-tree-dropdown-base.component.mjs +0 -484
@@ -21,11 +21,6 @@ export class CpsTableColumnSortableDirective extends SortableColumn {
21
21
  this.sortIconRef.destroy();
22
22
  this.viewContainerRef.clear();
23
23
  }
24
- onClick(event) {
25
- if (!this.elementRef?.nativeElement?.classList?.contains('cps-table-col-filter-menu-open')) {
26
- super.onClick(event);
27
- }
28
- }
29
24
  }
30
25
  CpsTableColumnSortableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableColumnSortableDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.Table }], target: i0.ɵɵFactoryTarget.Directive });
31
26
  CpsTableColumnSortableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CpsTableColumnSortableDirective, isStandalone: true, selector: "[cpsTColSortable]", inputs: { field: ["cpsTColSortable", "field"] }, usesInheritance: true, ngImport: i0 });
@@ -39,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
39
34
  type: Input,
40
35
  args: ['cpsTColSortable']
41
36
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYmxlLWNvbHVtbi1zb3J0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvZGlyZWN0aXZlcy9jcHMtdGFibGUtY29sdW1uLXNvcnRhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBUyxNQUFNLGVBQWUsQ0FBQzs7O0FBTWhFLE1BQU0sT0FBTywrQkFDWCxTQUFRLGNBQWM7SUFNdEIsWUFDVSxVQUFzQixFQUN0QixnQkFBa0MsRUFDMUIsRUFBUztRQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFKRixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBTztRQU5RLFVBQUssR0FBRyxFQUFFLENBQUM7UUFTNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQ3hDLENBQUM7SUFDSixDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVRLE9BQU8sQ0FBQyxLQUFpQjtRQUNoQyxJQUNFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FDbEQsZ0NBQWdDLENBQ2pDLEVBQ0Q7WUFDQSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7NEhBdENVLCtCQUErQjtnSEFBL0IsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO29KQUtvQyxLQUFLO3NCQUF2QyxLQUFLO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb3J0SWNvbiwgU29ydGFibGVDb2x1bW4sIFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tjcHNUQ29sU29ydGFibGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBDcHNUYWJsZUNvbHVtblNvcnRhYmxlRGlyZWN0aXZlXG4gIGV4dGVuZHMgU29ydGFibGVDb2x1bW5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoJ2Nwc1RDb2xTb3J0YWJsZScpIG92ZXJyaWRlIGZpZWxkID0gJyc7XG4gIHNvcnRJY29uUmVmOiBDb21wb25lbnRSZWY8U29ydEljb24+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIG92ZXJyaWRlIGR0OiBUYWJsZVxuICApIHtcbiAgICBzdXBlcihkdCk7XG4gICAgdGhpcy5zb3J0SWNvblJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoU29ydEljb24pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLnNvcnRJY29uUmVmLnNldElucHV0KCdmaWVsZCcsIHRoaXMuZmllbGQpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKFxuICAgICAgdGhpcy5zb3J0SWNvblJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50XG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5zb3J0SWNvblJlZi5kZXN0cm95KCk7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gIH1cblxuICBvdmVycmlkZSBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0Py5jb250YWlucyhcbiAgICAgICAgJ2Nwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtb3BlbidcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHN1cGVyLm9uQ2xpY2soZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYmxlLWNvbHVtbi1zb3J0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvZGlyZWN0aXZlcy9jcHMtdGFibGUtY29sdW1uLXNvcnRhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBUyxNQUFNLGVBQWUsQ0FBQzs7O0FBTWhFLE1BQU0sT0FBTywrQkFDWCxTQUFRLGNBQWM7SUFNdEIsWUFDVSxVQUFzQixFQUN0QixnQkFBa0MsRUFDMUIsRUFBUztRQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFKRixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBTztRQU5RLFVBQUssR0FBRyxFQUFFLENBQUM7UUFTNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQ3hDLENBQUM7SUFDSixDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7NEhBNUJVLCtCQUErQjtnSEFBL0IsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO29KQUtvQyxLQUFLO3NCQUF2QyxLQUFLO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb3J0SWNvbiwgU29ydGFibGVDb2x1bW4sIFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tjcHNUQ29sU29ydGFibGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBDcHNUYWJsZUNvbHVtblNvcnRhYmxlRGlyZWN0aXZlXG4gIGV4dGVuZHMgU29ydGFibGVDb2x1bW5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoJ2Nwc1RDb2xTb3J0YWJsZScpIG92ZXJyaWRlIGZpZWxkID0gJyc7XG4gIHNvcnRJY29uUmVmOiBDb21wb25lbnRSZWY8U29ydEljb24+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIG92ZXJyaWRlIGR0OiBUYWJsZVxuICApIHtcbiAgICBzdXBlcihkdCk7XG4gICAgdGhpcy5zb3J0SWNvblJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoU29ydEljb24pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLnNvcnRJY29uUmVmLnNldElucHV0KCdmaWVsZCcsIHRoaXMuZmllbGQpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKFxuICAgICAgdGhpcy5zb3J0SWNvblJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50XG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5zb3J0SWNvblJlZi5kZXN0cm95KCk7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { TableCheckbox } from 'primeng/table';
3
+ import * as i0 from "@angular/core";
4
+ export class CpsTableRowSelectableDirective {
5
+ constructor(elementRef, viewContainerRef) {
6
+ this.elementRef = elementRef;
7
+ this.viewContainerRef = viewContainerRef;
8
+ this.checkboxCompRef = this.viewContainerRef.createComponent(TableCheckbox);
9
+ }
10
+ ngOnInit() {
11
+ this.checkboxCompRef.setInput('value', this.value);
12
+ this.elementRef.nativeElement.appendChild(this.checkboxCompRef.location.nativeElement);
13
+ }
14
+ ngOnDestroy() {
15
+ this.checkboxCompRef.destroy();
16
+ this.viewContainerRef.clear();
17
+ }
18
+ }
19
+ CpsTableRowSelectableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableRowSelectableDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
20
+ CpsTableRowSelectableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CpsTableRowSelectableDirective, isStandalone: true, selector: "[cpsTRowSelectable]", inputs: { value: ["cpsTRowSelectable", "value"] }, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableRowSelectableDirective, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ standalone: true,
25
+ selector: '[cpsTRowSelectable]'
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { value: [{
28
+ type: Input,
29
+ args: ['cpsTRowSelectable']
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYmxlLXJvdy1zZWxlY3RhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS9kaXJlY3RpdmVzL2Nwcy10YWJsZS1yb3ctc2VsZWN0YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNOUMsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNVLFVBQXNCLEVBQ3RCLGdCQUFrQztRQURsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFFMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FDNUMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7MkhBdEJVLDhCQUE4QjsrR0FBOUIsOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDO2dJQUU2QixLQUFLO3NCQUFoQyxLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUNoZWNrYm94IH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tjcHNUUm93U2VsZWN0YWJsZV0nXG59KVxuZXhwb3J0IGNsYXNzIENwc1RhYmxlUm93U2VsZWN0YWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCdjcHNUUm93U2VsZWN0YWJsZScpIHZhbHVlOiBhbnk7XG4gIGNoZWNrYm94Q29tcFJlZjogQ29tcG9uZW50UmVmPFRhYmxlQ2hlY2tib3g+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7XG4gICAgdGhpcy5jaGVja2JveENvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFRhYmxlQ2hlY2tib3gpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2JveENvbXBSZWYuc2V0SW5wdXQoJ3ZhbHVlJywgdGhpcy52YWx1ZSk7XG5cbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChcbiAgICAgIHRoaXMuY2hlY2tib3hDb21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2JveENvbXBSZWYuZGVzdHJveSgpO1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, Optional } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { CpsInputComponent } from '../../../cps-input/cps-input.component';
@@ -7,11 +7,12 @@ import { CpsAutocompleteComponent } from '../../../cps-autocomplete/cps-autocomp
7
7
  import { CpsButtonToggleComponent } from '../../../cps-button-toggle/cps-button-toggle.component';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "primeng/table";
10
- import * as i2 from "@angular/common";
10
+ import * as i2 from "primeng/treetable";
11
+ import * as i3 from "@angular/common";
11
12
  export class TableColumnFilterConstraintComponent {
12
- // eslint-disable-next-line no-useless-constructor
13
- constructor(dt) {
13
+ constructor(dt, tt) {
14
14
  this.dt = dt;
15
+ this.tt = tt;
15
16
  this.categoryOptions = [];
16
17
  this.placeholder = '';
17
18
  this.hasApplyButton = true;
@@ -20,6 +21,7 @@ export class TableColumnFilterConstraintComponent {
20
21
  { label: 'False', value: 'false' }
21
22
  ];
22
23
  this.categories = [];
24
+ this._tableInstance = dt || tt;
23
25
  }
24
26
  ngOnInit() {
25
27
  if (this.type === 'category') {
@@ -31,7 +33,8 @@ export class TableColumnFilterConstraintComponent {
31
33
  }
32
34
  else {
33
35
  this.categories =
34
- Array.from(new Set(this.dt.value?.map((v) => v[this.field]) || []))?.map((c) => ({
36
+ Array.from(new Set(this._tableInstance.value?.map((v) => v[this.field]) ||
37
+ []))?.map((c) => ({
35
38
  label: c,
36
39
  value: c
37
40
  })) || [];
@@ -41,16 +44,16 @@ export class TableColumnFilterConstraintComponent {
41
44
  onValueChange(value) {
42
45
  this.filterConstraint.value = value;
43
46
  if (value === '' || !this.hasApplyButton) {
44
- this.dt._filter();
47
+ this._tableInstance._filter();
45
48
  }
46
49
  }
47
50
  onEnterKeyDown(event) {
48
- this.dt._filter();
51
+ this._tableInstance._filter();
49
52
  event.preventDefault();
50
53
  }
51
54
  }
52
- TableColumnFilterConstraintComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterConstraintComponent, deps: [{ token: i1.Table }], target: i0.ɵɵFactoryTarget.Component });
53
- TableColumnFilterConstraintComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableColumnFilterConstraintComponent, isStandalone: true, selector: "table-column-filter-constraint", inputs: { type: "type", field: "field", filterConstraint: "filterConstraint", categoryOptions: "categoryOptions", placeholder: "placeholder", hasApplyButton: "hasApplyButton" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div class=\"cps-table-col-filter-constraint-boolean\">\n <cps-button-toggle\n *ngSwitchCase=\"'boolean'\"\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <cps-autocomplete\n class=\"cps-table-col-filter-category-autocomplete\"\n *ngSwitchCase=\"'category'\"\n [placeholder]=\"placeholder\"\n [options]=\"categories\"\n [hideDetails]=\"true\"\n [clearable]=\"true\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [returnObject]=\"false\"\n [multiple]=\"true\"></cps-autocomplete>\n</ng-container>\n", styles: [":host .cps-table-col-filter-constraint-boolean{display:flex;justify-content:center}:host .cps-table-col-filter-category-autocomplete{min-width:200px;max-width:400px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsDatepickerComponent, selector: "cps-datepicker", inputs: ["label", "disabled", "width", "placeholder", "hint", "clearable", "hideDetails", "persistentClear", "showTodayButton", "openOnInputFocus", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "minDate", "maxDate", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "chips", "closableChips", "clearable", "openOnClear", "options", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "emptyMessage", "virtualScroll", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "value"], outputs: ["valueChanged"] }] });
55
+ TableColumnFilterConstraintComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterConstraintComponent, deps: [{ token: i1.Table, optional: true }, { token: i2.TreeTable, optional: true }], target: i0.ɵɵFactoryTarget.Component });
56
+ TableColumnFilterConstraintComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableColumnFilterConstraintComponent, isStandalone: true, selector: "table-column-filter-constraint", inputs: { type: "type", field: "field", filterConstraint: "filterConstraint", categoryOptions: "categoryOptions", placeholder: "placeholder", hasApplyButton: "hasApplyButton" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div class=\"cps-table-col-filter-constraint-boolean\">\n <cps-button-toggle\n *ngSwitchCase=\"'boolean'\"\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <cps-autocomplete\n class=\"cps-table-col-filter-category-autocomplete\"\n *ngSwitchCase=\"'category'\"\n [placeholder]=\"placeholder\"\n [options]=\"categories\"\n [hideDetails]=\"true\"\n [clearable]=\"true\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [returnObject]=\"false\"\n [multiple]=\"true\"></cps-autocomplete>\n</ng-container>\n", styles: [":host .cps-table-col-filter-constraint-boolean{display:flex;justify-content:center}:host .cps-table-col-filter-category-autocomplete{min-width:200px;max-width:400px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsDatepickerComponent, selector: "cps-datepicker", inputs: ["label", "disabled", "width", "placeholder", "hint", "clearable", "hideDetails", "persistentClear", "showTodayButton", "openOnInputFocus", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "minDate", "maxDate", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "chips", "closableChips", "clearable", "openOnClear", "options", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "emptyMessage", "virtualScroll", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "value"], outputs: ["valueChanged"] }] });
54
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterConstraintComponent, decorators: [{
55
58
  type: Component,
56
59
  args: [{ selector: 'table-column-filter-constraint', standalone: true, imports: [
@@ -61,7 +64,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
61
64
  CpsButtonToggleComponent,
62
65
  CpsAutocompleteComponent
63
66
  ], template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div class=\"cps-table-col-filter-constraint-boolean\">\n <cps-button-toggle\n *ngSwitchCase=\"'boolean'\"\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <cps-autocomplete\n class=\"cps-table-col-filter-category-autocomplete\"\n *ngSwitchCase=\"'category'\"\n [placeholder]=\"placeholder\"\n [options]=\"categories\"\n [hideDetails]=\"true\"\n [clearable]=\"true\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [returnObject]=\"false\"\n [multiple]=\"true\"></cps-autocomplete>\n</ng-container>\n", styles: [":host .cps-table-col-filter-constraint-boolean{display:flex;justify-content:center}:host .cps-table-col-filter-category-autocomplete{min-width:200px;max-width:400px}\n"] }]
64
- }], ctorParameters: function () { return [{ type: i1.Table }]; }, propDecorators: { type: [{
67
+ }], ctorParameters: function () { return [{ type: i1.Table, decorators: [{
68
+ type: Optional
69
+ }] }, { type: i2.TreeTable, decorators: [{
70
+ type: Optional
71
+ }] }]; }, propDecorators: { type: [{
65
72
  type: Input
66
73
  }], field: [{
67
74
  type: Input
@@ -74,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
74
81
  }], hasApplyButton: [{
75
82
  type: Input
76
83
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFFTCx3QkFBd0IsRUFDekIsTUFBTSx3REFBd0QsQ0FBQzs7OztBQWdCaEUsTUFBTSxPQUFPLG9DQUFvQztJQWUvQyxrREFBa0Q7SUFDbEQsWUFBbUIsRUFBUztRQUFULE9BQUUsR0FBRixFQUFFLENBQU87UUFabkIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFL0IsbUJBQWMsR0FBRztZQUNmLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQ2QsQ0FBQztRQUV2QixlQUFVLEdBQXVDLEVBQUUsQ0FBQztJQUdyQixDQUFDO0lBRWhDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNqRCxLQUFLLEVBQUUsQ0FBQztvQkFDUixLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQUMsQ0FBQzthQUNMO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxVQUFVO29CQUNiLEtBQUssQ0FBQyxJQUFJLENBQ1IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQ2xFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNiLEtBQUssRUFBRSxDQUFDO3dCQUNSLEtBQUssRUFBRSxDQUFDO3FCQUNULENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLGdCQUFpQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFM0MsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2lJQWhEVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQyw0UUMzQmpELHNsREFtREEsZ09EbENJLFlBQVksME5BQ1osV0FBVywrQkFDWCxpQkFBaUIsdWVBQ2pCLHNCQUFzQixrWUFDdEIsd0JBQXdCLCtRQUN4Qix3QkFBd0I7MkZBS2Ysb0NBQW9DO2tCQWRoRCxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0Qix3QkFBd0I7d0JBQ3hCLHdCQUF3QjtxQkFDekI7NEZBS1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlck1ldGFkYXRhIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IENwc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3BzLWlucHV0L2Nwcy1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Nwcy1kYXRlcGlja2VyL2Nwcy1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jcHMtYXV0b2NvbXBsZXRlL2Nwcy1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEJ0blRvZ2dsZU9wdGlvbixcbiAgQ3BzQnV0dG9uVG9nZ2xlQ29tcG9uZW50XG59IGZyb20gJy4uLy4uLy4uL2Nwcy1idXR0b24tdG9nZ2xlL2Nwcy1idXR0b24tdG9nZ2xlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ3BzSW5wdXRDb21wb25lbnQsXG4gICAgQ3BzRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICBDcHNCdXR0b25Ub2dnbGVDb21wb25lbnQsXG4gICAgQ3BzQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkZpbHRlckNvbnN0cmFpbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGZpbHRlckNvbnN0cmFpbnQ6IEZpbHRlck1ldGFkYXRhIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBjYXRlZ29yeU9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGhhc0FwcGx5QnV0dG9uID0gdHJ1ZTtcblxuICBib29sZWFuT3B0aW9ucyA9IFtcbiAgICB7IGxhYmVsOiAnVHJ1ZScsIHZhbHVlOiAndHJ1ZScgfSxcbiAgICB7IGxhYmVsOiAnRmFsc2UnLCB2YWx1ZTogJ2ZhbHNlJyB9XG4gIF0gYXMgQnRuVG9nZ2xlT3B0aW9uW107XG5cbiAgY2F0ZWdvcmllczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkdDogVGFibGUpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2NhdGVnb3J5Jykge1xuICAgICAgaWYgKHRoaXMuY2F0ZWdvcnlPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gdGhpcy5jYXRlZ29yeU9wdGlvbnMubWFwKChvKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBvLFxuICAgICAgICAgIHZhbHVlOiBvXG4gICAgICAgIH0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9XG4gICAgICAgICAgQXJyYXkuZnJvbShcbiAgICAgICAgICAgIG5ldyBTZXQodGhpcy5kdC52YWx1ZT8ubWFwKCh2KSA9PiB2W3RoaXMuZmllbGQgYXMgc3RyaW5nXSkgfHwgW10pXG4gICAgICAgICAgKT8ubWFwKChjKSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IGMsXG4gICAgICAgICAgICB2YWx1ZTogY1xuICAgICAgICAgIH0pKSB8fCBbXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICAoPGFueT50aGlzLmZpbHRlckNvbnN0cmFpbnQpLnZhbHVlID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUgPT09ICcnIHx8ICF0aGlzLmhhc0FwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLmR0Ll9maWx0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBvbkVudGVyS2V5RG93bihldmVudDogYW55KSB7XG4gICAgdGhpcy5kdC5fZmlsdGVyKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuICA8Y3BzLWlucHV0XG4gICAgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cInRleHRcIj48L2Nwcy1pbnB1dD5cblxuICA8Y3BzLWlucHV0XG4gICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyS2V5RG93bigkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICB0eXBlPVwibnVtYmVyXCI+PC9jcHMtaW5wdXQ+XG5cbiAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLWNvbnN0cmFpbnQtYm9vbGVhblwiPlxuICAgIDxjcHMtYnV0dG9uLXRvZ2dsZVxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiXG4gICAgICBbb3B0aW9uc109XCJib29sZWFuT3B0aW9uc1wiXG4gICAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW21hbmRhdG9yeV09XCJmYWxzZVwiPlxuICAgIDwvY3BzLWJ1dHRvbi10b2dnbGU+XG4gIDwvZGl2PlxuXG4gIDxjcHMtZGF0ZXBpY2tlclxuICAgICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIlxuICAgIFtvcGVuT25JbnB1dEZvY3VzXT1cInRydWVcIlxuICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJDb25zdHJhaW50Py52YWx1ZVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgPC9jcHMtZGF0ZXBpY2tlcj5cblxuICA8Y3BzLWF1dG9jb21wbGV0ZVxuICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY2F0ZWdvcnktYXV0b2NvbXBsZXRlXCJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NhdGVnb3J5J1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbb3B0aW9uc109XCJjYXRlZ29yaWVzXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiPjwvY3BzLWF1dG9jb21wbGV0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBRUwsd0JBQXdCLEVBQ3pCLE1BQU0sd0RBQXdELENBQUM7Ozs7O0FBaUJoRSxNQUFNLE9BQU8sb0NBQW9DO0lBaUIvQyxZQUErQixFQUFTLEVBQXFCLEVBQWE7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBTztRQUFxQixPQUFFLEdBQUYsRUFBRSxDQUFXO1FBYmpFLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBRS9CLG1CQUFjLEdBQUc7WUFDZixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNoQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtTQUNkLENBQUM7UUFFdkIsZUFBVSxHQUF1QyxFQUFFLENBQUM7UUFLbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDakQsS0FBSyxFQUFFLENBQUM7b0JBQ1IsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUFDLENBQUM7YUFDTDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVTtvQkFDYixLQUFLLENBQUMsSUFBSSxDQUNSLElBQUksR0FBRyxDQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFlLENBQUMsQ0FBQzt3QkFDNUQsRUFBRSxDQUNMLENBQ0YsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ2IsS0FBSyxFQUFFLENBQUM7d0JBQ1IsS0FBSyxFQUFFLENBQUM7cUJBQ1QsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2I7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsZ0JBQWlCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUUzQyxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7aUlBdERVLG9DQUFvQztxSEFBcEMsb0NBQW9DLDRRQzVCakQsc2xEQW1EQSxnT0RqQ0ksWUFBWSwwTkFDWixXQUFXLCtCQUNYLGlCQUFpQix1ZUFDakIsc0JBQXNCLGtZQUN0Qix3QkFBd0IsK1FBQ3hCLHdCQUF3QjsyRkFLZixvQ0FBb0M7a0JBZGhELFNBQVM7K0JBQ0UsZ0NBQWdDLGNBQzlCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3FCQUN6Qjs7MEJBcUJZLFFBQVE7OzBCQUFzQixRQUFROzRDQWhCMUMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWx0ZXJNZXRhZGF0YSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBDcHNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Nwcy1pbnB1dC9jcHMtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0RhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jcHMtZGF0ZXBpY2tlci9jcHMtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3BzLWF1dG9jb21wbGV0ZS9jcHMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBCdG5Ub2dnbGVPcHRpb24sXG4gIENwc0J1dHRvblRvZ2dsZUNvbXBvbmVudFxufSBmcm9tICcuLi8uLi8uLi9jcHMtYnV0dG9uLXRvZ2dsZS9jcHMtYnV0dG9uLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlZVRhYmxlIH0gZnJvbSAncHJpbWVuZy90cmVldGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENwc0lucHV0Q29tcG9uZW50LFxuICAgIENwc0RhdGVwaWNrZXJDb21wb25lbnQsXG4gICAgQ3BzQnV0dG9uVG9nZ2xlQ29tcG9uZW50LFxuICAgIENwc0F1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmaWx0ZXJDb25zdHJhaW50OiBGaWx0ZXJNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY2F0ZWdvcnlPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBoYXNBcHBseUJ1dHRvbiA9IHRydWU7XG5cbiAgYm9vbGVhbk9wdGlvbnMgPSBbXG4gICAgeyBsYWJlbDogJ1RydWUnLCB2YWx1ZTogJ3RydWUnIH0sXG4gICAgeyBsYWJlbDogJ0ZhbHNlJywgdmFsdWU6ICdmYWxzZScgfVxuICBdIGFzIEJ0blRvZ2dsZU9wdGlvbltdO1xuXG4gIGNhdGVnb3JpZXM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcblxuICBfdGFibGVJbnN0YW5jZTogVGFibGUgfCBUcmVlVGFibGU7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIGR0OiBUYWJsZSwgQE9wdGlvbmFsKCkgcHVibGljIHR0OiBUcmVlVGFibGUpIHtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlID0gZHQgfHwgdHQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnY2F0ZWdvcnknKSB7XG4gICAgICBpZiAodGhpcy5jYXRlZ29yeU9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSB0aGlzLmNhdGVnb3J5T3B0aW9ucy5tYXAoKG8pID0+ICh7XG4gICAgICAgICAgbGFiZWw6IG8sXG4gICAgICAgICAgdmFsdWU6IG9cbiAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID1cbiAgICAgICAgICBBcnJheS5mcm9tKFxuICAgICAgICAgICAgbmV3IFNldChcbiAgICAgICAgICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS52YWx1ZT8ubWFwKCh2KSA9PiB2W3RoaXMuZmllbGQgYXMgc3RyaW5nXSkgfHxcbiAgICAgICAgICAgICAgICBbXVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk/Lm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBjLFxuICAgICAgICAgICAgdmFsdWU6IGNcbiAgICAgICAgICB9KSkgfHwgW107XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgKDxhbnk+dGhpcy5maWx0ZXJDb25zdHJhaW50KS52YWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCAhdGhpcy5oYXNBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25FbnRlcktleURvd24oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJDb25zdHJhaW50Py52YWx1ZVwiXG4gICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIHR5cGU9XCJ0ZXh0XCI+PC9jcHMtaW5wdXQ+XG5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cIm51bWJlclwiPjwvY3BzLWlucHV0PlxuXG4gIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1jb25zdHJhaW50LWJvb2xlYW5cIj5cbiAgICA8Y3BzLWJ1dHRvbi10b2dnbGVcbiAgICAgICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIlxuICAgICAgW29wdGlvbnNdPVwiYm9vbGVhbk9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICA8L2Nwcy1idXR0b24tdG9nZ2xlPlxuICA8L2Rpdj5cblxuICA8Y3BzLWRhdGVwaWNrZXJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICBbb3Blbk9uSW5wdXRGb2N1c109XCJ0cnVlXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3BzLWRhdGVwaWNrZXI+XG5cbiAgPGNwcy1hdXRvY29tcGxldGVcbiAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLWNhdGVnb3J5LWF1dG9jb21wbGV0ZVwiXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjYXRlZ29yeSdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW29wdGlvbnNdPVwiY2F0ZWdvcmllc1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3JldHVybk9iamVjdF09XCJmYWxzZVwiXG4gICAgW211bHRpcGxlXT1cInRydWVcIj48L2Nwcy1hdXRvY29tcGxldGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,7 +1,8 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
1
+ import { Component, HostListener, Input, Optional, ViewChild } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { FilterMatchMode, FilterOperator } from 'primeng/api';
5
+ import { Table } from 'primeng/table';
5
6
  import { CpsButtonComponent } from '../../cps-button/cps-button.component';
6
7
  import { CpsMenuComponent } from '../../cps-menu/cps-menu.component';
7
8
  import { CpsIconComponent } from '../../cps-icon/cps-icon.component';
@@ -9,13 +10,14 @@ import { CpsSelectComponent } from '../../cps-select/cps-select.component';
9
10
  import { TableColumnFilterConstraintComponent } from './table-column-filter-constraint/table-column-filter-constraint.component';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "primeng/table";
12
- import * as i2 from "@angular/common";
13
- import * as i3 from "@angular/forms";
13
+ import * as i2 from "primeng/treetable";
14
+ import * as i3 from "@angular/common";
15
+ import * as i4 from "@angular/forms";
14
16
  export class TableColumnFilterComponent {
15
- // eslint-disable-next-line no-useless-constructor
16
- constructor(elementRef, dt) {
17
+ constructor(elementRef, dt, tt) {
17
18
  this.elementRef = elementRef;
18
19
  this.dt = dt;
20
+ this.tt = tt;
19
21
  this.type = 'text';
20
22
  this.showClearButton = true;
21
23
  this.showApplyButton = true;
@@ -70,9 +72,10 @@ export class TableColumnFilterComponent {
70
72
  FilterMatchMode.DATE_AFTER
71
73
  ]
72
74
  };
75
+ this._tableInstance = dt || tt;
73
76
  }
74
77
  ngOnInit() {
75
- if (!this.dt.filters[this.field]) {
78
+ if (!this._tableInstance.filters[this.field]) {
76
79
  this.initFieldFilterConstraint();
77
80
  }
78
81
  if (this.maxConstraints > 1 && this.type !== 'category') {
@@ -87,38 +90,46 @@ export class TableColumnFilterComponent {
87
90
  }
88
91
  initFieldFilterConstraint() {
89
92
  const defaultMatchMode = this.getDefaultMatchMode();
90
- this.dt.filters[this.field] = [
91
- {
93
+ if (this._tableInstance instanceof Table) {
94
+ this._tableInstance.filters[this.field] = [
95
+ {
96
+ value: null,
97
+ matchMode: defaultMatchMode,
98
+ operator: this.operator
99
+ }
100
+ ];
101
+ }
102
+ else {
103
+ this._tableInstance.filters[this.field] = {
92
104
  value: null,
93
- matchMode: defaultMatchMode,
94
- operator: this.operator
95
- }
96
- ];
105
+ matchMode: defaultMatchMode
106
+ };
107
+ }
97
108
  }
98
109
  onMenuMatchModeChange(value, filterMeta) {
99
110
  filterMeta.matchMode = value;
100
111
  if (!this.showApplyButton) {
101
- this.dt._filter();
112
+ this._tableInstance._filter();
102
113
  }
103
114
  }
104
115
  addConstraint() {
105
- this.dt.filters[this.field].push({
116
+ this._tableInstance.filters[this.field].push({
106
117
  value: null,
107
118
  matchMode: this.getDefaultMatchMode(),
108
119
  operator: this.getDefaultOperator()
109
120
  });
110
121
  }
111
122
  removeConstraint(filterMeta) {
112
- this.dt.filters[this.field] = (this.dt.filters[this.field]).filter((meta) => meta !== filterMeta);
113
- this.dt._filter();
123
+ this._tableInstance.filters[this.field] = (this._tableInstance.filters[this.field]).filter((meta) => meta !== filterMeta);
124
+ this._tableInstance._filter();
114
125
  }
115
126
  onOperatorChange(value) {
116
- this.dt.filters[this.field].forEach((filterMeta) => {
127
+ this._tableInstance.filters[this.field].forEach((filterMeta) => {
117
128
  filterMeta.operator = value;
118
129
  this.operator = value;
119
130
  });
120
131
  if (!this.showApplyButton) {
121
- this.dt._filter();
132
+ this._tableInstance._filter();
122
133
  }
123
134
  }
124
135
  getDefaultMatchMode() {
@@ -134,15 +145,21 @@ export class TableColumnFilterComponent {
134
145
  return FilterMatchMode.CONTAINS;
135
146
  }
136
147
  getDefaultOperator() {
137
- return this.dt.filters
138
- ? this.dt.filters[this.field][0]
139
- .operator
148
+ return this._tableInstance.filters
149
+ ? (this._tableInstance.filters[this.field])[0].operator
140
150
  : this.operator;
141
151
  }
142
152
  get fieldConstraints() {
143
- return this.dt.filters
144
- ? this.dt.filters[this.field]
145
- : null;
153
+ if (this._tableInstance instanceof Table) {
154
+ return this._tableInstance.filters
155
+ ? this._tableInstance.filters[this.field]
156
+ : null;
157
+ }
158
+ else {
159
+ return this._tableInstance.filters
160
+ ? [this._tableInstance.filters[this.field]]
161
+ : null;
162
+ }
146
163
  }
147
164
  get showRemoveIcon() {
148
165
  return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;
@@ -158,12 +175,12 @@ export class TableColumnFilterComponent {
158
175
  this.fieldConstraints.length < this.maxConstraints);
159
176
  }
160
177
  hasFilter() {
161
- const fieldFilter = this.dt.filters[this.field];
178
+ const fieldFilter = this._tableInstance.filters[this.field];
162
179
  if (fieldFilter) {
163
180
  if (Array.isArray(fieldFilter))
164
- return !this.dt.isFilterBlank(fieldFilter[0].value);
181
+ return !this._tableInstance.isFilterBlank(fieldFilter[0].value);
165
182
  else
166
- return !this.dt.isFilterBlank(fieldFilter.value);
183
+ return !this._tableInstance.isFilterBlank(fieldFilter.value);
167
184
  }
168
185
  return false;
169
186
  }
@@ -172,12 +189,12 @@ export class TableColumnFilterComponent {
172
189
  }
173
190
  clearFilter() {
174
191
  this.initFieldFilterConstraint();
175
- this.dt._filter();
192
+ this._tableInstance._filter();
176
193
  if (this.hideOnClear)
177
194
  this.hide();
178
195
  }
179
196
  applyFilter() {
180
- this.dt._filter();
197
+ this._tableInstance._filter();
181
198
  this.hide();
182
199
  }
183
200
  onMenuShown() {
@@ -190,9 +207,12 @@ export class TableColumnFilterComponent {
190
207
  const className = 'cps-table-col-filter-menu-open';
191
208
  parent.classList.remove(className);
192
209
  }
210
+ onClick(event) {
211
+ event.stopPropagation();
212
+ }
193
213
  }
194
- TableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterComponent, deps: [{ token: i0.ElementRef }, { token: i1.Table }], target: i0.ɵɵFactoryTarget.Component });
195
- TableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableColumnFilterComponent, isStandalone: true, selector: "table-column-filter", inputs: { field: "field", type: "type", showClearButton: "showClearButton", showApplyButton: "showApplyButton", hideOnClear: "hideOnClear", maxConstraints: "maxConstraints", categoryOptions: "categoryOptions", placeholder: "placeholder" }, viewQueries: [{ propertyName: "columnFilterMenu", first: true, predicate: ["columnFilterMenu"], descendants: true }], ngImport: i0, template: "<div class=\"cps-table-col-filter\">\n <cps-menu\n #columnFilterMenu\n [withArrow]=\"false\"\n (menuShown)=\"onMenuShown()\"\n (menuHidden)=\"onMenuHidden()\">\n <div class=\"cps-table-col-filter-menu-content\">\n <div\n class=\"cps-table-col-filter-menu-content-operator\"\n *ngIf=\"isShowOperator\">\n <cps-select\n [hideDetails]=\"true\"\n [disabled]=\"!fieldConstraints || fieldConstraints.length < 2\"\n [returnObject]=\"false\"\n [options]=\"operatorOptions\"\n [ngModel]=\"operator\"\n (valueChanged)=\"onOperatorChange($event)\"></cps-select>\n </div>\n <div class=\"cps-table-col-filter-menu-content-constraints\">\n <div\n *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\"\n class=\"cps-table-col-filter-menu-content-constraint\">\n <cps-select\n *ngIf=\"showMatchModes && matchModes\"\n class=\"cps-table-col-filter-match-mode-select\"\n [hideDetails]=\"true\"\n [returnObject]=\"false\"\n [options]=\"matchModes\"\n [ngModel]=\"fieldConstraint.matchMode\"\n (valueChanged)=\"\n onMenuMatchModeChange($event, fieldConstraint)\n \"></cps-select>\n <table-column-filter-constraint\n [type]=\"type\"\n [field]=\"field\"\n [categoryOptions]=\"categoryOptions\"\n [filterConstraint]=\"fieldConstraint\"\n [hasApplyButton]=\"showApplyButton\"\n [placeholder]=\"placeholder\">\n </table-column-filter-constraint>\n <div\n class=\"cps-table-col-filter-remove-rule-btn\"\n *ngIf=\"showRemoveIcon\">\n <cps-button\n type=\"borderless\"\n width=\"100%\"\n size=\"small\"\n color=\"prepared\"\n icon=\"delete\"\n (clicked)=\"removeConstraint(fieldConstraint)\"\n label=\"Remove condition\">\n </cps-button>\n </div>\n </div>\n </div>\n <div\n class=\"cps-table-col-filter-add-rule-btn\"\n *ngIf=\"isShowAddConstraint\">\n <cps-button\n label=\"Add condition\"\n type=\"borderless\"\n width=\"100%\"\n size=\"small\"\n color=\"surprise\"\n icon=\"add\"\n (clicked)=\"addConstraint()\">\n </cps-button>\n </div>\n <div class=\"cps-table-col-filter-buttonbar\">\n <cps-button\n *ngIf=\"showClearButton\"\n (clicked)=\"clearFilter()\"\n type=\"borderless\"\n color=\"prepared\"\n size=\"small\"\n label=\"Clear\"></cps-button>\n <cps-button\n *ngIf=\"showApplyButton\"\n (clicked)=\"applyFilter()\"\n color=\"prepared\"\n size=\"small\"\n label=\"Apply\"></cps-button>\n </div>\n </div>\n </cps-menu>\n <cps-icon\n icon=\"filter-funnel\"\n size=\"13\"\n (click)=\"columnFilterMenu.toggle($event)\"\n class=\"cps-table-col-filter-menu-button\"\n [ngClass]=\"{\n 'cps-table-col-filter-menu-button-active': hasFilter()\n }\"\n >>\n </cps-icon>\n</div>\n", styles: [":host .cps-table-col-filter{display:inline-flex}:host .cps-table-col-filter .cps-table-col-filter-menu-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative;padding-left:12px;padding-right:4px}:host .cps-table-col-filter .cps-table-col-filter-menu-button:not(.cps-table-col-filter-menu-button-active):hover{color:var(--cps-color-text-dark)}:host .cps-table-col-filter .cps-table-col-filter-menu-button-active{color:var(--cps-color-calm)}.cps-table-col-filter-menu-content{padding-bottom:12px;min-width:200px;max-height:500px;overflow:auto}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-operator{padding:12px;border-bottom:1px solid var(--cps-color-line-mid);background:var(--cps-color-bg-light)}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint{border-bottom:1px solid var(--cps-color-line-mid);padding:12px}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint .cps-table-col-filter-match-mode-select{margin-bottom:8px}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint:last-child{border-bottom:none}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-remove-rule-btn{padding-top:8px}.cps-table-col-filter-menu-content .cps-table-col-filter-add-rule-btn{padding:8px 12px}.cps-table-col-filter-menu-content .cps-table-col-filter-buttonbar{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CpsButtonComponent, selector: "cps-button", inputs: ["color", "contentColor", "type", "label", "icon", "iconPosition", "size", "width", "height", "disabled", "loading"], outputs: ["clicked"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsSelectComponent, selector: "cps-select", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "chips", "closableChips", "clearable", "openOnClear", "options", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "virtualScroll", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "optionsClass", "appearance", "value"], outputs: ["valueChanged"] }, { kind: "component", type: TableColumnFilterConstraintComponent, selector: "table-column-filter-constraint", inputs: ["type", "field", "filterConstraint", "categoryOptions", "placeholder", "hasApplyButton"] }] });
214
+ TableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterComponent, deps: [{ token: i0.ElementRef }, { token: i1.Table, optional: true }, { token: i2.TreeTable, optional: true }], target: i0.ɵɵFactoryTarget.Component });
215
+ TableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableColumnFilterComponent, isStandalone: true, selector: "table-column-filter", inputs: { field: "field", type: "type", showClearButton: "showClearButton", showApplyButton: "showApplyButton", hideOnClear: "hideOnClear", maxConstraints: "maxConstraints", categoryOptions: "categoryOptions", placeholder: "placeholder" }, host: { listeners: { "click": "onClick($event)" } }, viewQueries: [{ propertyName: "columnFilterMenu", first: true, predicate: ["columnFilterMenu"], descendants: true }], ngImport: i0, template: "<div class=\"cps-table-col-filter\">\n <cps-menu\n #columnFilterMenu\n [withArrow]=\"false\"\n [persistent]=\"true\"\n (menuShown)=\"onMenuShown()\"\n (menuHidden)=\"onMenuHidden()\">\n <div class=\"cps-table-col-filter-menu-content\">\n <div\n class=\"cps-table-col-filter-menu-content-operator\"\n *ngIf=\"isShowOperator\">\n <cps-select\n [hideDetails]=\"true\"\n [disabled]=\"!fieldConstraints || fieldConstraints.length < 2\"\n [returnObject]=\"false\"\n [options]=\"operatorOptions\"\n [ngModel]=\"operator\"\n (valueChanged)=\"onOperatorChange($event)\"></cps-select>\n </div>\n <div class=\"cps-table-col-filter-menu-content-constraints\">\n <div\n *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\"\n class=\"cps-table-col-filter-menu-content-constraint\">\n <cps-select\n *ngIf=\"showMatchModes && matchModes\"\n class=\"cps-table-col-filter-match-mode-select\"\n [hideDetails]=\"true\"\n [returnObject]=\"false\"\n [options]=\"matchModes\"\n [ngModel]=\"fieldConstraint.matchMode\"\n (valueChanged)=\"\n onMenuMatchModeChange($event, fieldConstraint)\n \"></cps-select>\n <table-column-filter-constraint\n [type]=\"type\"\n [field]=\"field\"\n [categoryOptions]=\"categoryOptions\"\n [filterConstraint]=\"fieldConstraint\"\n [hasApplyButton]=\"showApplyButton\"\n [placeholder]=\"placeholder\">\n </table-column-filter-constraint>\n <div\n class=\"cps-table-col-filter-remove-rule-btn\"\n *ngIf=\"showRemoveIcon\">\n <cps-button\n type=\"borderless\"\n width=\"100%\"\n size=\"small\"\n color=\"prepared\"\n icon=\"delete\"\n (clicked)=\"removeConstraint(fieldConstraint)\"\n label=\"Remove condition\">\n </cps-button>\n </div>\n </div>\n </div>\n <div\n class=\"cps-table-col-filter-add-rule-btn\"\n *ngIf=\"isShowAddConstraint\">\n <cps-button\n label=\"Add condition\"\n type=\"borderless\"\n width=\"100%\"\n size=\"small\"\n color=\"surprise\"\n icon=\"add\"\n (clicked)=\"addConstraint()\">\n </cps-button>\n </div>\n <div class=\"cps-table-col-filter-buttonbar\">\n <cps-button\n *ngIf=\"showClearButton\"\n (clicked)=\"clearFilter()\"\n type=\"borderless\"\n color=\"prepared\"\n size=\"small\"\n label=\"Clear\"></cps-button>\n <cps-button\n *ngIf=\"showApplyButton\"\n (clicked)=\"applyFilter()\"\n color=\"prepared\"\n size=\"small\"\n label=\"Apply\"></cps-button>\n </div>\n </div>\n </cps-menu>\n <cps-icon\n icon=\"filter-funnel\"\n size=\"13\"\n (click)=\"columnFilterMenu.toggle($event)\"\n class=\"cps-table-col-filter-menu-button\"\n [ngClass]=\"{\n 'cps-table-col-filter-menu-button-active': hasFilter()\n }\"\n >>\n </cps-icon>\n</div>\n", styles: [":host .cps-table-col-filter{display:inline-flex}:host .cps-table-col-filter .cps-table-col-filter-menu-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative;padding-left:12px;padding-right:4px}:host .cps-table-col-filter .cps-table-col-filter-menu-button:not(.cps-table-col-filter-menu-button-active):hover{color:var(--cps-color-text-dark)}:host .cps-table-col-filter .cps-table-col-filter-menu-button-active{color:var(--cps-color-calm)}.cps-table-col-filter-menu-content{padding-bottom:12px;min-width:200px;max-height:500px;overflow:auto}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-operator{padding:12px;border-bottom:1px solid var(--cps-color-line-mid);background:var(--cps-color-bg-light)}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint{border-bottom:1px solid var(--cps-color-line-mid);padding:12px}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint .cps-table-col-filter-match-mode-select{margin-bottom:8px}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint:last-child{border-bottom:none}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-remove-rule-btn{padding-top:8px}.cps-table-col-filter-menu-content .cps-table-col-filter-add-rule-btn{padding:8px 12px}.cps-table-col-filter-menu-content .cps-table-col-filter-buttonbar{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CpsButtonComponent, selector: "cps-button", inputs: ["color", "contentColor", "type", "label", "icon", "iconPosition", "size", "width", "height", "disabled", "loading"], outputs: ["clicked"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "persistent", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsSelectComponent, selector: "cps-select", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "chips", "closableChips", "clearable", "openOnClear", "options", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "virtualScroll", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "optionsClass", "appearance", "value"], outputs: ["valueChanged"] }, { kind: "component", type: TableColumnFilterConstraintComponent, selector: "table-column-filter-constraint", inputs: ["type", "field", "filterConstraint", "categoryOptions", "placeholder", "hasApplyButton"] }] });
196
216
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterComponent, decorators: [{
197
217
  type: Component,
198
218
  args: [{ selector: 'table-column-filter', standalone: true, imports: [
@@ -203,8 +223,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
203
223
  CpsIconComponent,
204
224
  CpsSelectComponent,
205
225
  TableColumnFilterConstraintComponent
206
- ], template: "<div class=\"cps-table-col-filter\">\n <cps-menu\n #columnFilterMenu\n [withArrow]=\"false\"\n (menuShown)=\"onMenuShown()\"\n (menuHidden)=\"onMenuHidden()\">\n <div class=\"cps-table-col-filter-menu-content\">\n <div\n class=\"cps-table-col-filter-menu-content-operator\"\n *ngIf=\"isShowOperator\">\n <cps-select\n [hideDetails]=\"true\"\n [disabled]=\"!fieldConstraints || fieldConstraints.length < 2\"\n [returnObject]=\"false\"\n [options]=\"operatorOptions\"\n [ngModel]=\"operator\"\n (valueChanged)=\"onOperatorChange($event)\"></cps-select>\n </div>\n <div class=\"cps-table-col-filter-menu-content-constraints\">\n <div\n *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\"\n class=\"cps-table-col-filter-menu-content-constraint\">\n <cps-select\n *ngIf=\"showMatchModes && matchModes\"\n class=\"cps-table-col-filter-match-mode-select\"\n [hideDetails]=\"true\"\n [returnObject]=\"false\"\n [options]=\"matchModes\"\n [ngModel]=\"fieldConstraint.matchMode\"\n (valueChanged)=\"\n onMenuMatchModeChange($event, fieldConstraint)\n \"></cps-select>\n <table-column-filter-constraint\n [type]=\"type\"\n [field]=\"field\"\n [categoryOptions]=\"categoryOptions\"\n [filterConstraint]=\"fieldConstraint\"\n [hasApplyButton]=\"showApplyButton\"\n [placeholder]=\"placeholder\">\n </table-column-filter-constraint>\n <div\n class=\"cps-table-col-filter-remove-rule-btn\"\n *ngIf=\"showRemoveIcon\">\n <cps-button\n type=\"borderless\"\n width=\"100%\"\n size=\"small\"\n color=\"prepared\"\n icon=\"delete\"\n (clicked)=\"removeConstraint(fieldConstraint)\"\n label=\"Remove condition\">\n </cps-button>\n </div>\n </div>\n </div>\n <div\n class=\"cps-table-col-filter-add-rule-btn\"\n *ngIf=\"isShowAddConstraint\">\n <cps-button\n label=\"Add condition\"\n type=\"borderless\"\n width=\"100%\"\n size=\"small\"\n color=\"surprise\"\n icon=\"add\"\n (clicked)=\"addConstraint()\">\n </cps-button>\n </div>\n <div class=\"cps-table-col-filter-buttonbar\">\n <cps-button\n *ngIf=\"showClearButton\"\n (clicked)=\"clearFilter()\"\n type=\"borderless\"\n color=\"prepared\"\n size=\"small\"\n label=\"Clear\"></cps-button>\n <cps-button\n *ngIf=\"showApplyButton\"\n (clicked)=\"applyFilter()\"\n color=\"prepared\"\n size=\"small\"\n label=\"Apply\"></cps-button>\n </div>\n </div>\n </cps-menu>\n <cps-icon\n icon=\"filter-funnel\"\n size=\"13\"\n (click)=\"columnFilterMenu.toggle($event)\"\n class=\"cps-table-col-filter-menu-button\"\n [ngClass]=\"{\n 'cps-table-col-filter-menu-button-active': hasFilter()\n }\"\n >>\n </cps-icon>\n</div>\n", styles: [":host .cps-table-col-filter{display:inline-flex}:host .cps-table-col-filter .cps-table-col-filter-menu-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative;padding-left:12px;padding-right:4px}:host .cps-table-col-filter .cps-table-col-filter-menu-button:not(.cps-table-col-filter-menu-button-active):hover{color:var(--cps-color-text-dark)}:host .cps-table-col-filter .cps-table-col-filter-menu-button-active{color:var(--cps-color-calm)}.cps-table-col-filter-menu-content{padding-bottom:12px;min-width:200px;max-height:500px;overflow:auto}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-operator{padding:12px;border-bottom:1px solid var(--cps-color-line-mid);background:var(--cps-color-bg-light)}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint{border-bottom:1px solid var(--cps-color-line-mid);padding:12px}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint .cps-table-col-filter-match-mode-select{margin-bottom:8px}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint:last-child{border-bottom:none}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-remove-rule-btn{padding-top:8px}.cps-table-col-filter-menu-content .cps-table-col-filter-add-rule-btn{padding:8px 12px}.cps-table-col-filter-menu-content .cps-table-col-filter-buttonbar{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 0}\n"] }]
207
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Table }]; }, propDecorators: { field: [{
226
+ ], template: "<div class=\"cps-table-col-filter\">\n <cps-menu\n #columnFilterMenu\n [withArrow]=\"false\"\n [persistent]=\"true\"\n (menuShown)=\"onMenuShown()\"\n (menuHidden)=\"onMenuHidden()\">\n <div class=\"cps-table-col-filter-menu-content\">\n <div\n class=\"cps-table-col-filter-menu-content-operator\"\n *ngIf=\"isShowOperator\">\n <cps-select\n [hideDetails]=\"true\"\n [disabled]=\"!fieldConstraints || fieldConstraints.length < 2\"\n [returnObject]=\"false\"\n [options]=\"operatorOptions\"\n [ngModel]=\"operator\"\n (valueChanged)=\"onOperatorChange($event)\"></cps-select>\n </div>\n <div class=\"cps-table-col-filter-menu-content-constraints\">\n <div\n *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\"\n class=\"cps-table-col-filter-menu-content-constraint\">\n <cps-select\n *ngIf=\"showMatchModes && matchModes\"\n class=\"cps-table-col-filter-match-mode-select\"\n [hideDetails]=\"true\"\n [returnObject]=\"false\"\n [options]=\"matchModes\"\n [ngModel]=\"fieldConstraint.matchMode\"\n (valueChanged)=\"\n onMenuMatchModeChange($event, fieldConstraint)\n \"></cps-select>\n <table-column-filter-constraint\n [type]=\"type\"\n [field]=\"field\"\n [categoryOptions]=\"categoryOptions\"\n [filterConstraint]=\"fieldConstraint\"\n [hasApplyButton]=\"showApplyButton\"\n [placeholder]=\"placeholder\">\n </table-column-filter-constraint>\n <div\n class=\"cps-table-col-filter-remove-rule-btn\"\n *ngIf=\"showRemoveIcon\">\n <cps-button\n type=\"borderless\"\n width=\"100%\"\n size=\"small\"\n color=\"prepared\"\n icon=\"delete\"\n (clicked)=\"removeConstraint(fieldConstraint)\"\n label=\"Remove condition\">\n </cps-button>\n </div>\n </div>\n </div>\n <div\n class=\"cps-table-col-filter-add-rule-btn\"\n *ngIf=\"isShowAddConstraint\">\n <cps-button\n label=\"Add condition\"\n type=\"borderless\"\n width=\"100%\"\n size=\"small\"\n color=\"surprise\"\n icon=\"add\"\n (clicked)=\"addConstraint()\">\n </cps-button>\n </div>\n <div class=\"cps-table-col-filter-buttonbar\">\n <cps-button\n *ngIf=\"showClearButton\"\n (clicked)=\"clearFilter()\"\n type=\"borderless\"\n color=\"prepared\"\n size=\"small\"\n label=\"Clear\"></cps-button>\n <cps-button\n *ngIf=\"showApplyButton\"\n (clicked)=\"applyFilter()\"\n color=\"prepared\"\n size=\"small\"\n label=\"Apply\"></cps-button>\n </div>\n </div>\n </cps-menu>\n <cps-icon\n icon=\"filter-funnel\"\n size=\"13\"\n (click)=\"columnFilterMenu.toggle($event)\"\n class=\"cps-table-col-filter-menu-button\"\n [ngClass]=\"{\n 'cps-table-col-filter-menu-button-active': hasFilter()\n }\"\n >>\n </cps-icon>\n</div>\n", styles: [":host .cps-table-col-filter{display:inline-flex}:host .cps-table-col-filter .cps-table-col-filter-menu-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative;padding-left:12px;padding-right:4px}:host .cps-table-col-filter .cps-table-col-filter-menu-button:not(.cps-table-col-filter-menu-button-active):hover{color:var(--cps-color-text-dark)}:host .cps-table-col-filter .cps-table-col-filter-menu-button-active{color:var(--cps-color-calm)}.cps-table-col-filter-menu-content{padding-bottom:12px;min-width:200px;max-height:500px;overflow:auto}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-operator{padding:12px;border-bottom:1px solid var(--cps-color-line-mid);background:var(--cps-color-bg-light)}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint{border-bottom:1px solid var(--cps-color-line-mid);padding:12px}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint .cps-table-col-filter-match-mode-select{margin-bottom:8px}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-menu-content-constraint:last-child{border-bottom:none}.cps-table-col-filter-menu-content .cps-table-col-filter-menu-content-constraints .cps-table-col-filter-remove-rule-btn{padding-top:8px}.cps-table-col-filter-menu-content .cps-table-col-filter-add-rule-btn{padding:8px 12px}.cps-table-col-filter-menu-content .cps-table-col-filter-buttonbar{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 0}\n"] }]
227
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Table, decorators: [{
228
+ type: Optional
229
+ }] }, { type: i2.TreeTable, decorators: [{
230
+ type: Optional
231
+ }] }]; }, propDecorators: { field: [{
208
232
  type: Input
209
233
  }], type: [{
210
234
  type: Input
@@ -223,5 +247,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
223
247
  }], columnFilterMenu: [{
224
248
  type: ViewChild,
225
249
  args: ['columnFilterMenu']
250
+ }], onClick: [{
251
+ type: HostListener,
252
+ args: ['click', ['$event']]
226
253
  }] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvdGFibGUtY29sdW1uLWZpbHRlci90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGVBQWUsRUFFZixjQUFjLEVBRWYsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkVBQTJFLENBQUM7Ozs7O0FBaUJqSSxNQUFNLE9BQU8sMEJBQTBCO0lBa0VyQyxrREFBa0Q7SUFDbEQsWUFBbUIsVUFBc0IsRUFBUyxFQUFTO1FBQXhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFP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SUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQXdETixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEZpbHRlck1hdGNoTW9kZSxcbiAgRmlsdGVyTWV0YWRhdGEsXG4gIEZpbHRlck9wZXJhdG9yLFxuICBTZWxlY3RJdGVtXG59IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBDcHNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jcHMtYnV0dG9uL2Nwcy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc01lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jcHMtbWVudS9jcHMtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jcHMtc2VsZWN0L2Nwcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29sdW1uRmlsdGVyQ29uc3RyYWludENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YWJsZS1jb2x1bW4tZmlsdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDcHNCdXR0b25Db21wb25lbnQsXG4gICAgQ3BzTWVudUNvbXBvbmVudCxcbiAgICBDcHNJY29uQ29tcG9uZW50LFxuICAgIENwc1NlbGVjdENvbXBvbmVudCxcbiAgICBUYWJsZUNvbHVtbkZpbHRlckNvbnN0cmFpbnRDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSB0eXBlID0gJ3RleHQnO1xuICBASW5wdXQoKSBzaG93Q2xlYXJCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93QXBwbHlCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBoaWRlT25DbGVhciA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhDb25zdHJhaW50cyA9IDI7XG4gIEBJbnB1dCgpIGNhdGVnb3J5T3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuICBvcGVyYXRvcjogc3RyaW5nID0gRmlsdGVyT3BlcmF0b3IuQU5EO1xuICBzaG93TWF0Y2hNb2RlcyA9IHRydWU7XG4gIHNob3dPcGVyYXRvciA9IHRydWU7XG5cbiAgb3BlcmF0b3JPcHRpb25zID0gW1xuICAgIHsgbGFiZWw6ICdNYXRjaCBBbGwnLCB2YWx1ZTogRmlsdGVyT3BlcmF0b3IuQU5ELCBpbmZvOiAnQU5EJyB9LFxuICAgIHsgbGFiZWw6ICdNYXRjaCBBbnknLCB2YWx1ZTogRmlsdGVyT3BlcmF0b3IuT1IsIGluZm86ICdPUicgfVxuICBdO1xuXG4gIHByaXZhdGUgbWF0Y2hNb2RlTGFiZWxzID0ge1xuICAgIHN0YXJ0c1dpdGg6ICdTdGFydHMgd2l0aCcsXG4gICAgY29udGFpbnM6ICdDb250YWlucycsXG4gICAgbm90Q29udGFpbnM6ICdEb2VzIG5vdCBjb250YWluJyxcbiAgICBlbmRzV2l0aDogJ0VuZHMgd2l0aCcsXG4gICAgZXF1YWxzOiAnRXF1YWxzJyxcbiAgICBub3RFcXVhbHM6ICdEb2VzIG5vdCBlcXVhbCcsXG4gICAgbHQ6ICdMZXNzIHRoYW4nLFxuICAgIGx0ZTogJ0xlc3MgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgZ3Q6ICdHcmVhdGVyIHRoYW4nLFxuICAgIGd0ZTogJ0dyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgZGF0ZUlzOiAnRGF0ZSBpcycsXG4gICAgZGF0ZUlzTm90OiAnRGF0ZSBpcyBub3QnLFxuICAgIGRhdGVCZWZvcmU6ICdEYXRlIGlzIGJlZm9yZScsXG4gICAgZGF0ZUFmdGVyOiAnRGF0ZSBpcyBhZnRlcidcbiAgfSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIHByaXZhdGUgZmlsdGVyTWF0Y2hNb2RlT3B0aW9ucyA9IHtcbiAgICB0ZXh0OiBbXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEgsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuQ09OVEFJTlMsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuTk9UX0NPTlRBSU5TLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkVORFNfV0lUSCxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5FUVVBTFMsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuTk9UX0VRVUFMU1xuICAgIF0sXG4gICAgbnVtYmVyOiBbXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuRVFVQUxTLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLk5PVF9FUVVBTFMsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuTEVTU19USEFOLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkxFU1NfVEhBTl9PUl9FUVVBTF9UTyxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5HUkVBVEVSX1RIQU4sXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPXG4gICAgXSxcbiAgICBkYXRlOiBbXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuREFURV9JUyxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5EQVRFX0lTX05PVCxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5EQVRFX0JFRk9SRSxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5EQVRFX0FGVEVSXG4gICAgXVxuICB9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfTtcblxuICBtYXRjaE1vZGVzOiBTZWxlY3RJdGVtW10gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnY29sdW1uRmlsdGVyTWVudScpXG4gIGNvbHVtbkZpbHRlck1lbnUhOiBDcHNNZW51Q29tcG9uZW50O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwdWJsaWMgZHQ6IFRhYmxlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0pIHtcbiAgICAgIHRoaXMuaW5pdEZpZWxkRmlsdGVyQ29uc3RyYWludCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heENvbnN0cmFpbnRzID4gMSAmJiB0aGlzLnR5cGUgIT09ICdjYXRlZ29yeScpIHtcbiAgICAgIHRoaXMuc2hvd0FwcGx5QnV0dG9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuc2hvd0FwcGx5QnV0dG9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5tYXRjaE1vZGVzID0gdGhpcy5maWx0ZXJNYXRjaE1vZGVPcHRpb25zW3RoaXMudHlwZV0/Lm1hcChcbiAgICAgIChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4geyBsYWJlbDogdGhpcy5tYXRjaE1vZGVMYWJlbHNba2V5XSwgdmFsdWU6IGtleSB9O1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBpbml0RmllbGRGaWx0ZXJDb25zdHJhaW50KCkge1xuICAgIGNvbnN0IGRlZmF1bHRNYXRjaE1vZGUgPSB0aGlzLmdldERlZmF1bHRNYXRjaE1vZGUoKTtcbiAgICB0aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSA9IFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgIG1hdGNoTW9kZTogZGVmYXVsdE1hdGNoTW9kZSxcbiAgICAgICAgb3BlcmF0b3I6IHRoaXMub3BlcmF0b3JcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgb25NZW51TWF0Y2hNb2RlQ2hhbmdlKHZhbHVlOiBhbnksIGZpbHRlck1ldGE6IEZpbHRlck1ldGFkYXRhKSB7XG4gICAgZmlsdGVyTWV0YS5tYXRjaE1vZGUgPSB2YWx1ZTtcblxuICAgIGlmICghdGhpcy5zaG93QXBwbHlCdXR0b24pIHtcbiAgICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIGFkZENvbnN0cmFpbnQoKSB7XG4gICAgKDxGaWx0ZXJNZXRhZGF0YVtdPnRoaXMuZHQuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdKS5wdXNoKHtcbiAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgbWF0Y2hNb2RlOiB0aGlzLmdldERlZmF1bHRNYXRjaE1vZGUoKSxcbiAgICAgIG9wZXJhdG9yOiB0aGlzLmdldERlZmF1bHRPcGVyYXRvcigpXG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVDb25zdHJhaW50KGZpbHRlck1ldGE6IEZpbHRlck1ldGFkYXRhKSB7XG4gICAgdGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gPSAoPEZpbHRlck1ldGFkYXRhW10+KFxuICAgICAgdGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF1cbiAgICApKS5maWx0ZXIoKG1ldGEpID0+IG1ldGEgIT09IGZpbHRlck1ldGEpO1xuICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICB9XG5cbiAgb25PcGVyYXRvckNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgKDxGaWx0ZXJNZXRhZGF0YVtdPnRoaXMuZHQuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdKS5mb3JFYWNoKFxuICAgICAgKGZpbHRlck1ldGEpID0+IHtcbiAgICAgICAgZmlsdGVyTWV0YS5vcGVyYXRvciA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9wZXJhdG9yID0gdmFsdWU7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGlmICghdGhpcy5zaG93QXBwbHlCdXR0b24pIHtcbiAgICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIGdldERlZmF1bHRNYXRjaE1vZGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAndGV4dCcpIHJldHVybiBGaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEg7XG4gICAgZWxzZSBpZiAodGhpcy50eXBlID09PSAnbnVtYmVyJykgcmV0dXJuIEZpbHRlck1hdGNoTW9kZS5FUVVBTFM7XG4gICAgZWxzZSBpZiAodGhpcy50eXBlID09PSAnZGF0ZScpIHJldHVybiBGaWx0ZXJNYXRjaE1vZGUuREFURV9JUztcbiAgICBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdjYXRlZ29yeScpIHJldHVybiBGaWx0ZXJNYXRjaE1vZGUuSU47XG4gICAgZWxzZSByZXR1cm4gRmlsdGVyTWF0Y2hNb2RlLkNPTlRBSU5TO1xuICB9XG5cbiAgZ2V0RGVmYXVsdE9wZXJhdG9yKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZHQuZmlsdGVyc1xuICAgICAgPyAoPEZpbHRlck1ldGFkYXRhW10+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+KDxzdHJpbmc+dGhpcy5maWVsZCldKVswXVxuICAgICAgICAgIC5vcGVyYXRvclxuICAgICAgOiB0aGlzLm9wZXJhdG9yO1xuICB9XG5cbiAgZ2V0IGZpZWxkQ29uc3RyYWludHMoKTogRmlsdGVyTWV0YWRhdGFbXSB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmR0LmZpbHRlcnNcbiAgICAgID8gPEZpbHRlck1ldGFkYXRhW10+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIGdldCBzaG93UmVtb3ZlSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZENvbnN0cmFpbnRzID8gdGhpcy5maWVsZENvbnN0cmFpbnRzLmxlbmd0aCA+IDEgOiBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc1Nob3dPcGVyYXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zaG93T3BlcmF0b3IgJiZcbiAgICAgIHRoaXMubWF4Q29uc3RyYWludHMgPiAxICYmXG4gICAgICAhWydib29sZWFuJywgJ2NhdGVnb3J5J10uaW5jbHVkZXModGhpcy50eXBlKVxuICAgICk7XG4gIH1cblxuICBnZXQgaXNTaG93QWRkQ29uc3RyYWludCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgICFbJ2Jvb2xlYW4nLCAnY2F0ZWdvcnknXS5pbmNsdWRlcyh0aGlzLnR5cGUpICYmXG4gICAgICB0aGlzLmZpZWxkQ29uc3RyYWludHMgJiZcbiAgICAgIHRoaXMuZmllbGRDb25zdHJhaW50cy5sZW5ndGggPCB0aGlzLm1heENvbnN0cmFpbnRzXG4gICAgKTtcbiAgfVxuXG4gIGhhc0ZpbHRlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCBmaWVsZEZpbHRlciA9IHRoaXMuZHQuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdO1xuICAgIGlmIChmaWVsZEZpbHRlcikge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRGaWx0ZXIpKVxuICAgICAgICByZXR1cm4gIXRoaXMuZHQuaXNGaWx0ZXJCbGFuaygoPEZpbHRlck1ldGFkYXRhW10+ZmllbGRGaWx0ZXIpWzBdLnZhbHVlKTtcbiAgICAgIGVsc2UgcmV0dXJuICF0aGlzLmR0LmlzRmlsdGVyQmxhbmsoZmllbGRGaWx0ZXIudmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJNZW51LmhpZGUoKTtcbiAgfVxuXG4gIGNsZWFyRmlsdGVyKCkge1xuICAgIHRoaXMuaW5pdEZpZWxkRmlsdGVyQ29uc3RyYWludCgpO1xuICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgIGlmICh0aGlzLmhpZGVPbkNsZWFyKSB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVyKCkge1xuICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgb25NZW51U2hvd24oKSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9ICdjcHMtdGFibGUtY29sLWZpbHRlci1tZW51LW9wZW4nO1xuICAgIHBhcmVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gIH1cblxuICBvbk1lbnVIaWRkZW4oKSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9ICdjcHMtdGFibGUtY29sLWZpbHRlci1tZW51LW9wZW4nO1xuICAgIHBhcmVudC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlclwiPlxuICA8Y3BzLW1lbnVcbiAgICAjY29sdW1uRmlsdGVyTWVudVxuICAgIFt3aXRoQXJyb3ddPVwiZmFsc2VcIlxuICAgIChtZW51U2hvd24pPVwib25NZW51U2hvd24oKVwiXG4gICAgKG1lbnVIaWRkZW4pPVwib25NZW51SGlkZGVuKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LW9wZXJhdG9yXCJcbiAgICAgICAgKm5nSWY9XCJpc1Nob3dPcGVyYXRvclwiPlxuICAgICAgICA8Y3BzLXNlbGVjdFxuICAgICAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZpZWxkQ29uc3RyYWludHMgfHwgZmllbGRDb25zdHJhaW50cy5sZW5ndGggPCAyXCJcbiAgICAgICAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJvcGVyYXRvck9wdGlvbnNcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cIm9wZXJhdG9yXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uT3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiPjwvY3BzLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtY29udGVudC1jb25zdHJhaW50c1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkQ29uc3RyYWludCBvZiBmaWVsZENvbnN0cmFpbnRzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtY29udGVudC1jb25zdHJhaW50XCI+XG4gICAgICAgICAgPGNwcy1zZWxlY3RcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd01hdGNoTW9kZXMgJiYgbWF0Y2hNb2Rlc1wiXG4gICAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1hdGNoLW1vZGUtc2VsZWN0XCJcbiAgICAgICAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgICAgICAgIFtyZXR1cm5PYmplY3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwibWF0Y2hNb2Rlc1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJmaWVsZENvbnN0cmFpbnQubWF0Y2hNb2RlXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZWQpPVwiXG4gICAgICAgICAgICAgIG9uTWVudU1hdGNoTW9kZUNoYW5nZSgkZXZlbnQsIGZpZWxkQ29uc3RyYWludClcbiAgICAgICAgICAgIFwiPjwvY3BzLXNlbGVjdD5cbiAgICAgICAgICA8dGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50XG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICBbY2F0ZWdvcnlPcHRpb25zXT1cImNhdGVnb3J5T3B0aW9uc1wiXG4gICAgICAgICAgICBbZmlsdGVyQ29uc3RyYWludF09XCJmaWVsZENvbnN0cmFpbnRcIlxuICAgICAgICAgICAgW2hhc0FwcGx5QnV0dG9uXT1cInNob3dBcHBseUJ1dHRvblwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgICAgICA8L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludD5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLXJlbW92ZS1ydWxlLWJ0blwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dSZW1vdmVJY29uXCI+XG4gICAgICAgICAgICA8Y3BzLWJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYm9yZGVybGVzc1wiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgICAgKGNsaWNrZWQpPVwicmVtb3ZlQ29uc3RyYWludChmaWVsZENvbnN0cmFpbnQpXCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJSZW1vdmUgY29uZGl0aW9uXCI+XG4gICAgICAgICAgICA8L2Nwcy1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItYWRkLXJ1bGUtYnRuXCJcbiAgICAgICAgKm5nSWY9XCJpc1Nob3dBZGRDb25zdHJhaW50XCI+XG4gICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgbGFiZWw9XCJBZGQgY29uZGl0aW9uXCJcbiAgICAgICAgICB0eXBlPVwiYm9yZGVybGVzc1wiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIGNvbG9yPVwic3VycHJpc2VcIlxuICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgIChjbGlja2VkKT1cImFkZENvbnN0cmFpbnQoKVwiPlxuICAgICAgICA8L2Nwcy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1idXR0b25iYXJcIj5cbiAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dDbGVhckJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY2xlYXJGaWx0ZXIoKVwiXG4gICAgICAgICAgdHlwZT1cImJvcmRlcmxlc3NcIlxuICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgbGFiZWw9XCJDbGVhclwiPjwvY3BzLWJ1dHRvbj5cbiAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dBcHBseUJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiYXBwbHlGaWx0ZXIoKVwiXG4gICAgICAgICAgY29sb3I9XCJwcmVwYXJlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBsYWJlbD1cIkFwcGx5XCI+PC9jcHMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvY3BzLW1lbnU+XG4gIDxjcHMtaWNvblxuICAgIGljb249XCJmaWx0ZXItZnVubmVsXCJcbiAgICBzaXplPVwiMTNcIlxuICAgIChjbGljayk9XCJjb2x1bW5GaWx0ZXJNZW51LnRvZ2dsZSgkZXZlbnQpXCJcbiAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtYnV0dG9uXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1idXR0b24tYWN0aXZlJzogaGFzRmlsdGVyKClcbiAgICB9XCJcbiAgICA+PlxuICA8L2Nwcy1pY29uPlxuPC9kaXY+XG4iXX0=
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvdGFibGUtY29sdW1uLWZpbHRlci90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsZUFBZSxFQUVmLGNBQWMsRUFFZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7QUFrQmpJLE1BQU0sT0FBTywwQkFBMEI7SUFvRXJDLFlBQ1MsVUFBc0IsRUFDVixFQUFTLEVB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ZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBGaWx0ZXJNYXRjaE1vZGUsXG4gIEZpbHRlck1ldGFkYXRhLFxuICBGaWx0ZXJPcGVyYXRvcixcbiAgU2VsZWN0SXRlbVxufSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgQ3BzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY3BzLWJ1dHRvbi9jcHMtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY3BzLW1lbnUvY3BzLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY3BzLXNlbGVjdC9jcHMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbkZpbHRlckNvbnN0cmFpbnRDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZXRhYmxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtY29sdW1uLWZpbHRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ3BzQnV0dG9uQ29tcG9uZW50LFxuICAgIENwc01lbnVDb21wb25lbnQsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNTZWxlY3RDb21wb25lbnQsXG4gICAgVGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdHlwZSA9ICd0ZXh0JztcbiAgQElucHV0KCkgc2hvd0NsZWFyQnV0dG9uID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0FwcGx5QnV0dG9uID0gdHJ1ZTtcbiAgQElucHV0KCkgaGlkZU9uQ2xlYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4Q29uc3RyYWludHMgPSAyO1xuICBASW5wdXQoKSBjYXRlZ29yeU9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgb3BlcmF0b3I6IHN0cmluZyA9IEZpbHRlck9wZXJhdG9yLkFORDtcbiAgc2hvd01hdGNoTW9kZXMgPSB0cnVlO1xuICBzaG93T3BlcmF0b3IgPSB0cnVlO1xuXG4gIG9wZXJhdG9yT3B0aW9ucyA9IFtcbiAgICB7IGxhYmVsOiAnTWF0Y2ggQWxsJywgdmFsdWU6IEZpbHRlck9wZXJhdG9yLkFORCwgaW5mbzogJ0FORCcgfSxcbiAgICB7IGxhYmVsOiAnTWF0Y2ggQW55JywgdmFsdWU6IEZpbHRlck9wZXJhdG9yLk9SLCBpbmZvOiAnT1InIH1cbiAgXTtcblxuICBwcml2YXRlIG1hdGNoTW9kZUxhYmVscyA9IHtcbiAgICBzdGFydHNXaXRoOiAnU3RhcnRzIHdpdGgnLFxuICAgIGNvbnRhaW5zOiAnQ29udGFpbnMnLFxuICAgIG5vdENvbnRhaW5zOiAnRG9lcyBub3QgY29udGFpbicsXG4gICAgZW5kc1dpdGg6ICdFbmRzIHdpdGgnLFxuICAgIGVxdWFsczogJ0VxdWFscycsXG4gICAgbm90RXF1YWxzOiAnRG9lcyBub3QgZXF1YWwnLFxuICAgIGx0OiAnTGVzcyB0aGFuJyxcbiAgICBsdGU6ICdMZXNzIHRoYW4gb3IgZXF1YWwgdG8nLFxuICAgIGd0OiAnR3JlYXRlciB0aGFuJyxcbiAgICBndGU6ICdHcmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8nLFxuICAgIGRhdGVJczogJ0RhdGUgaXMnLFxuICAgIGRhdGVJc05vdDogJ0RhdGUgaXMgbm90JyxcbiAgICBkYXRlQmVmb3JlOiAnRGF0ZSBpcyBiZWZvcmUnLFxuICAgIGRhdGVBZnRlcjogJ0RhdGUgaXMgYWZ0ZXInXG4gIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBwcml2YXRlIGZpbHRlck1hdGNoTW9kZU9wdGlvbnMgPSB7XG4gICAgdGV4dDogW1xuICAgICAgRmlsdGVyTWF0Y2hNb2RlLlNUQVJUU19XSVRILFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkNPTlRBSU5TLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLk5PVF9DT05UQUlOUyxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5FTkRTX1dJVEgsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuRVFVQUxTLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLk5PVF9FUVVBTFNcbiAgICBdLFxuICAgIG51bWJlcjogW1xuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUyxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5OT1RfRVFVQUxTLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkxFU1NfVEhBTixcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU5fT1JfRVFVQUxfVE8sXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuR1JFQVRFUl9USEFOLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT1xuICAgIF0sXG4gICAgZGF0ZTogW1xuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVMsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuREFURV9JU19OT1QsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuREFURV9CRUZPUkUsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuREFURV9BRlRFUlxuICAgIF1cbiAgfSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG5cbiAgbWF0Y2hNb2RlczogU2VsZWN0SXRlbVtdIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbkZpbHRlck1lbnUnKVxuICBjb2x1bW5GaWx0ZXJNZW51ITogQ3BzTWVudUNvbXBvbmVudDtcblxuICBfdGFibGVJbnN0YW5jZTogVGFibGUgfCBUcmVlVGFibGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGR0OiBUYWJsZSxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgdHQ6IFRyZWVUYWJsZVxuICApIHtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlID0gZHQgfHwgdHQ7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdKSB7XG4gICAgICB0aGlzLmluaXRGaWVsZEZpbHRlckNvbnN0cmFpbnQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXhDb25zdHJhaW50cyA+IDEgJiYgdGhpcy50eXBlICE9PSAnY2F0ZWdvcnknKSB7XG4gICAgICB0aGlzLnNob3dBcHBseUJ1dHRvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLnNob3dBcHBseUJ1dHRvbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMubWF0Y2hNb2RlcyA9IHRoaXMuZmlsdGVyTWF0Y2hNb2RlT3B0aW9uc1t0aGlzLnR5cGVdPy5tYXAoXG4gICAgICAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgbGFiZWw6IHRoaXMubWF0Y2hNb2RlTGFiZWxzW2tleV0sIHZhbHVlOiBrZXkgfTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgaW5pdEZpZWxkRmlsdGVyQ29uc3RyYWludCgpIHtcbiAgICBjb25zdCBkZWZhdWx0TWF0Y2hNb2RlID0gdGhpcy5nZXREZWZhdWx0TWF0Y2hNb2RlKCk7XG4gICAgaWYgKHRoaXMuX3RhYmxlSW5zdGFuY2UgaW5zdGFuY2VvZiBUYWJsZSkge1xuICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICBtYXRjaE1vZGU6IGRlZmF1bHRNYXRjaE1vZGUsXG4gICAgICAgICAgb3BlcmF0b3I6IHRoaXMub3BlcmF0b3JcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gPSB7XG4gICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICBtYXRjaE1vZGU6IGRlZmF1bHRNYXRjaE1vZGVcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgb25NZW51TWF0Y2hNb2RlQ2hhbmdlKHZhbHVlOiBhbnksIGZpbHRlck1ldGE6IEZpbHRlck1ldGFkYXRhKSB7XG4gICAgZmlsdGVyTWV0YS5tYXRjaE1vZGUgPSB2YWx1ZTtcblxuICAgIGlmICghdGhpcy5zaG93QXBwbHlCdXR0b24pIHtcbiAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIGFkZENvbnN0cmFpbnQoKSB7XG4gICAgKDxGaWx0ZXJNZXRhZGF0YVtdPnRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdKS5wdXNoKHtcbiAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgbWF0Y2hNb2RlOiB0aGlzLmdldERlZmF1bHRNYXRjaE1vZGUoKSxcbiAgICAgIG9wZXJhdG9yOiB0aGlzLmdldERlZmF1bHRPcGVyYXRvcigpXG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVDb25zdHJhaW50KGZpbHRlck1ldGE6IEZpbHRlck1ldGFkYXRhKSB7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gPSAoPEZpbHRlck1ldGFkYXRhW10+KFxuICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF1cbiAgICApKS5maWx0ZXIoKG1ldGEpID0+IG1ldGEgIT09IGZpbHRlck1ldGEpO1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICB9XG5cbiAgb25PcGVyYXRvckNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgKDxGaWx0ZXJNZXRhZGF0YVtdPnRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdKS5mb3JFYWNoKFxuICAgICAgKGZpbHRlck1ldGEpID0+IHtcbiAgICAgICAgZmlsdGVyTWV0YS5vcGVyYXRvciA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9wZXJhdG9yID0gdmFsdWU7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGlmICghdGhpcy5zaG93QXBwbHlCdXR0b24pIHtcbiAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIGdldERlZmF1bHRNYXRjaE1vZGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAndGV4dCcpIHJldHVybiBGaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEg7XG4gICAgZWxzZSBpZiAodGhpcy50eXBlID09PSAnbnVtYmVyJykgcmV0dXJuIEZpbHRlck1hdGNoTW9kZS5FUVVBTFM7XG4gICAgZWxzZSBpZiAodGhpcy50eXBlID09PSAnZGF0ZScpIHJldHVybiBGaWx0ZXJNYXRjaE1vZGUuREFURV9JUztcbiAgICBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdjYXRlZ29yeScpIHJldHVybiBGaWx0ZXJNYXRjaE1vZGUuSU47XG4gICAgZWxzZSByZXR1cm4gRmlsdGVyTWF0Y2hNb2RlLkNPTlRBSU5TO1xuICB9XG5cbiAgZ2V0RGVmYXVsdE9wZXJhdG9yKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1xuICAgICAgPyAoPEZpbHRlck1ldGFkYXRhW10+KFxuICAgICAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuZmlsdGVyc1s8c3RyaW5nPig8c3RyaW5nPnRoaXMuZmllbGQpXVxuICAgICAgICApKVswXS5vcGVyYXRvclxuICAgICAgOiB0aGlzLm9wZXJhdG9yO1xuICB9XG5cbiAgZ2V0IGZpZWxkQ29uc3RyYWludHMoKTogRmlsdGVyTWV0YWRhdGFbXSB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIGlmICh0aGlzLl90YWJsZUluc3RhbmNlIGluc3RhbmNlb2YgVGFibGUpIHtcbiAgICAgIHJldHVybiB0aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNcbiAgICAgICAgPyA8RmlsdGVyTWV0YWRhdGFbXT50aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXVxuICAgICAgICA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNcbiAgICAgICAgPyA8RmlsdGVyTWV0YWRhdGFbXT5bdGhpcy5fdGFibGVJbnN0YW5jZS5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF1dXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd1JlbW92ZUljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRDb25zdHJhaW50cyA/IHRoaXMuZmllbGRDb25zdHJhaW50cy5sZW5ndGggPiAxIDogZmFsc2U7XG4gIH1cblxuICBnZXQgaXNTaG93T3BlcmF0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2hvd09wZXJhdG9yICYmXG4gICAgICB0aGlzLm1heENvbnN0cmFpbnRzID4gMSAmJlxuICAgICAgIVsnYm9vbGVhbicsICdjYXRlZ29yeSddLmluY2x1ZGVzKHRoaXMudHlwZSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzU2hvd0FkZENvbnN0cmFpbnQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiAoXG4gICAgICAhWydib29sZWFuJywgJ2NhdGVnb3J5J10uaW5jbHVkZXModGhpcy50eXBlKSAmJlxuICAgICAgdGhpcy5maWVsZENvbnN0cmFpbnRzICYmXG4gICAgICB0aGlzLmZpZWxkQ29uc3RyYWludHMubGVuZ3RoIDwgdGhpcy5tYXhDb25zdHJhaW50c1xuICAgICk7XG4gIH1cblxuICBoYXNGaWx0ZXIoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmllbGRGaWx0ZXIgPSB0aGlzLl90YWJsZUluc3RhbmNlLmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXTtcbiAgICBpZiAoZmllbGRGaWx0ZXIpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkRmlsdGVyKSlcbiAgICAgICAgcmV0dXJuICF0aGlzLl90YWJsZUluc3RhbmNlLmlzRmlsdGVyQmxhbmsoXG4gICAgICAgICAgKDxGaWx0ZXJNZXRhZGF0YVtdPmZpZWxkRmlsdGVyKVswXS52YWx1ZVxuICAgICAgICApO1xuICAgICAgZWxzZSByZXR1cm4gIXRoaXMuX3RhYmxlSW5zdGFuY2UuaXNGaWx0ZXJCbGFuayhmaWVsZEZpbHRlci52YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLmNvbHVtbkZpbHRlck1lbnUuaGlkZSgpO1xuICB9XG5cbiAgY2xlYXJGaWx0ZXIoKSB7XG4gICAgdGhpcy5pbml0RmllbGRGaWx0ZXJDb25zdHJhaW50KCk7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgaWYgKHRoaXMuaGlkZU9uQ2xlYXIpIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXIoKSB7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBvbk1lbnVTaG93bigpIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gJ2Nwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtb3Blbic7XG4gICAgcGFyZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIG9uTWVudUhpZGRlbigpIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gJ2Nwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtb3Blbic7XG4gICAgcGFyZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlclwiPlxuICA8Y3BzLW1lbnVcbiAgICAjY29sdW1uRmlsdGVyTWVudVxuICAgIFt3aXRoQXJyb3ddPVwiZmFsc2VcIlxuICAgIFtwZXJzaXN0ZW50XT1cInRydWVcIlxuICAgIChtZW51U2hvd24pPVwib25NZW51U2hvd24oKVwiXG4gICAgKG1lbnVIaWRkZW4pPVwib25NZW51SGlkZGVuKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LW9wZXJhdG9yXCJcbiAgICAgICAgKm5nSWY9XCJpc1Nob3dPcGVyYXRvclwiPlxuICAgICAgICA8Y3BzLXNlbGVjdFxuICAgICAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZpZWxkQ29uc3RyYWludHMgfHwgZmllbGRDb25zdHJhaW50cy5sZW5ndGggPCAyXCJcbiAgICAgICAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJvcGVyYXRvck9wdGlvbnNcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cIm9wZXJhdG9yXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uT3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiPjwvY3BzLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtY29udGVudC1jb25zdHJhaW50c1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkQ29uc3RyYWludCBvZiBmaWVsZENvbnN0cmFpbnRzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtY29udGVudC1jb25zdHJhaW50XCI+XG4gICAgICAgICAgPGNwcy1zZWxlY3RcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd01hdGNoTW9kZXMgJiYgbWF0Y2hNb2Rlc1wiXG4gICAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1hdGNoLW1vZGUtc2VsZWN0XCJcbiAgICAgICAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgICAgICAgIFtyZXR1cm5PYmplY3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwibWF0Y2hNb2Rlc1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJmaWVsZENvbnN0cmFpbnQubWF0Y2hNb2RlXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZWQpPVwiXG4gICAgICAgICAgICAgIG9uTWVudU1hdGNoTW9kZUNoYW5nZSgkZXZlbnQsIGZpZWxkQ29uc3RyYWludClcbiAgICAgICAgICAgIFwiPjwvY3BzLXNlbGVjdD5cbiAgICAgICAgICA8dGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50XG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICBbY2F0ZWdvcnlPcHRpb25zXT1cImNhdGVnb3J5T3B0aW9uc1wiXG4gICAgICAgICAgICBbZmlsdGVyQ29uc3RyYWludF09XCJmaWVsZENvbnN0cmFpbnRcIlxuICAgICAgICAgICAgW2hhc0FwcGx5QnV0dG9uXT1cInNob3dBcHBseUJ1dHRvblwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgICAgICA8L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludD5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLXJlbW92ZS1ydWxlLWJ0blwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dSZW1vdmVJY29uXCI+XG4gICAgICAgICAgICA8Y3BzLWJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYm9yZGVybGVzc1wiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgICAgKGNsaWNrZWQpPVwicmVtb3ZlQ29uc3RyYWludChmaWVsZENvbnN0cmFpbnQpXCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJSZW1vdmUgY29uZGl0aW9uXCI+XG4gICAgICAgICAgICA8L2Nwcy1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItYWRkLXJ1bGUtYnRuXCJcbiAgICAgICAgKm5nSWY9XCJpc1Nob3dBZGRDb25zdHJhaW50XCI+XG4gICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgbGFiZWw9XCJBZGQgY29uZGl0aW9uXCJcbiAgICAgICAgICB0eXBlPVwiYm9yZGVybGVzc1wiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIGNvbG9yPVwic3VycHJpc2VcIlxuICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgIChjbGlja2VkKT1cImFkZENvbnN0cmFpbnQoKVwiPlxuICAgICAgICA8L2Nwcy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1idXR0b25iYXJcIj5cbiAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dDbGVhckJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY2xlYXJGaWx0ZXIoKVwiXG4gICAgICAgICAgdHlwZT1cImJvcmRlcmxlc3NcIlxuICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgbGFiZWw9XCJDbGVhclwiPjwvY3BzLWJ1dHRvbj5cbiAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dBcHBseUJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiYXBwbHlGaWx0ZXIoKVwiXG4gICAgICAgICAgY29sb3I9XCJwcmVwYXJlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBsYWJlbD1cIkFwcGx5XCI+PC9jcHMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvY3BzLW1lbnU+XG4gIDxjcHMtaWNvblxuICAgIGljb249XCJmaWx0ZXItZnVubmVsXCJcbiAgICBzaXplPVwiMTNcIlxuICAgIChjbGljayk9XCJjb2x1bW5GaWx0ZXJNZW51LnRvZ2dsZSgkZXZlbnQpXCJcbiAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtYnV0dG9uXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1idXR0b24tYWN0aXZlJzogaGFzRmlsdGVyKClcbiAgICB9XCJcbiAgICA+PlxuICA8L2Nwcy1pY29uPlxuPC9kaXY+XG4iXX0=
@@ -25,7 +25,7 @@ export class TableRowMenuComponent {
25
25
  }
26
26
  }
27
27
  TableRowMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableRowMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- TableRowMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableRowMenuComponent, isStandalone: true, selector: "table-row-menu", outputs: { editRowBtnClicked: "editRowBtnClicked", removeRowBtnClicked: "removeRowBtnClicked" }, ngImport: i0, template: "<cps-menu #rowMenu [items]=\"items\" [compressed]=\"true\" [withArrow]=\"false\">\n</cps-menu>\n<cps-icon\n icon=\"dropdown-menu\"\n size=\"22\"\n (click)=\"rowMenu.toggle($event)\"\n class=\"cps-table-row-menu-icon\">\n</cps-icon>\n", styles: [":host{height:22px;display:block}:host .cps-table-row-menu-icon{cursor:pointer}:host .cps-table-row-menu-icon:hover{color:var(--cps-color-calm)}\n"], dependencies: [{ kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }] });
28
+ TableRowMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableRowMenuComponent, isStandalone: true, selector: "table-row-menu", outputs: { editRowBtnClicked: "editRowBtnClicked", removeRowBtnClicked: "removeRowBtnClicked" }, ngImport: i0, template: "<cps-menu #rowMenu [items]=\"items\" [compressed]=\"true\" [withArrow]=\"false\">\n</cps-menu>\n<cps-icon\n icon=\"dropdown-menu\"\n size=\"22\"\n (click)=\"rowMenu.toggle($event)\"\n class=\"cps-table-row-menu-icon\">\n</cps-icon>\n", styles: [":host{height:22px;display:block}:host .cps-table-row-menu-icon{cursor:pointer}:host .cps-table-row-menu-icon:hover{color:var(--cps-color-calm)}\n"], dependencies: [{ kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "persistent", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }] });
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableRowMenuComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ selector: 'table-row-menu', standalone: true, imports: [CpsIconComponent, CpsMenuComponent], template: "<cps-menu #rowMenu [items]=\"items\" [compressed]=\"true\" [withArrow]=\"false\">\n</cps-menu>\n<cps-icon\n icon=\"dropdown-menu\"\n size=\"22\"\n (click)=\"rowMenu.toggle($event)\"\n class=\"cps-table-row-menu-icon\">\n</cps-icon>\n", styles: [":host{height:22px;display:block}:host .cps-table-row-menu-icon{cursor:pointer}:host .cps-table-row-menu-icon:hover{color:var(--cps-color-calm)}\n"] }]