cps-ui-kit 0.46.0 → 0.48.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 (30) hide show
  1. package/assets/icons.svg +4 -0
  2. package/esm2020/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +12 -3
  3. package/esm2020/lib/components/cps-datepicker/cps-datepicker.component.mjs +5 -2
  4. package/esm2020/lib/components/cps-icon/cps-icon.component.mjs +2 -1
  5. package/esm2020/lib/components/cps-menu/cps-menu.component.mjs +35 -5
  6. package/esm2020/lib/components/cps-table/cps-table.component.mjs +12 -8
  7. package/esm2020/lib/components/cps-table/directives/cps-table-column-filter.directive.mjs +59 -0
  8. package/esm2020/lib/components/cps-table/directives/cps-table-column-sortable.directive.mjs +42 -0
  9. package/esm2020/lib/components/cps-table/directives/internal/table-unsort.directive.mjs +85 -0
  10. package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.mjs +77 -0
  11. package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter.component.mjs +227 -0
  12. package/esm2020/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +12 -3
  13. package/esm2020/public-api.mjs +3 -2
  14. package/fesm2015/cps-ui-kit.mjs +909 -507
  15. package/fesm2015/cps-ui-kit.mjs.map +1 -1
  16. package/fesm2020/cps-ui-kit.mjs +906 -509
  17. package/fesm2020/cps-ui-kit.mjs.map +1 -1
  18. package/lib/components/cps-autocomplete/cps-autocomplete.component.d.ts +1 -0
  19. package/lib/components/cps-menu/cps-menu.component.d.ts +6 -3
  20. package/lib/components/cps-table/cps-table.component.d.ts +2 -1
  21. package/lib/components/cps-table/directives/cps-table-column-filter.directive.d.ts +22 -0
  22. package/lib/components/cps-table/{cps-table-column-sortable.directive.d.ts → directives/cps-table-column-sortable.directive.d.ts} +1 -0
  23. package/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.d.ts +25 -0
  24. package/lib/components/cps-table/table-column-filter/table-column-filter.component.d.ts +50 -0
  25. package/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.d.ts +1 -0
  26. package/package.json +1 -1
  27. package/public-api.d.ts +2 -1
  28. package/esm2020/lib/components/cps-table/cps-table-column-sortable.directive.mjs +0 -37
  29. package/esm2020/lib/components/cps-table/table-unsort.directive.mjs +0 -85
  30. /package/lib/components/cps-table/{table-unsort.directive.d.ts → directives/internal/table-unsort.directive.d.ts} +0 -0
@@ -0,0 +1,59 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { TableColumnFilterComponent } from '../table-column-filter/table-column-filter.component';
3
+ import * as i0 from "@angular/core";
4
+ export class CpsTableColumnFilterDirective {
5
+ constructor(elementRef, viewContainerRef) {
6
+ this.elementRef = elementRef;
7
+ this.viewContainerRef = viewContainerRef;
8
+ this.filterType = 'text';
9
+ this.filterShowClearButton = true;
10
+ this.filterShowApplyButton = true;
11
+ this.filterHideOnClear = false;
12
+ this.filterMaxConstraints = 2;
13
+ this.filterCategoryOptions = [];
14
+ this.filterPlaceholder = '';
15
+ this.filterCompRef = this.viewContainerRef.createComponent(TableColumnFilterComponent);
16
+ }
17
+ ngOnInit() {
18
+ this.filterCompRef.setInput('field', this.field);
19
+ this.filterCompRef.setInput('type', this.filterType);
20
+ this.filterCompRef.setInput('showClearButton', this.filterShowClearButton);
21
+ this.filterCompRef.setInput('showApplyButton', this.filterShowApplyButton);
22
+ this.filterCompRef.setInput('hideOnClear', this.filterHideOnClear);
23
+ this.filterCompRef.setInput('maxConstraints', this.filterMaxConstraints);
24
+ this.filterCompRef.setInput('categoryOptions', this.filterCategoryOptions);
25
+ this.filterCompRef.setInput('placeholder', this.filterPlaceholder);
26
+ this.elementRef.nativeElement.firstChild.after(this.filterCompRef.location.nativeElement);
27
+ }
28
+ ngOnDestroy() {
29
+ this.filterCompRef.destroy();
30
+ this.viewContainerRef.clear();
31
+ }
32
+ }
33
+ CpsTableColumnFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableColumnFilterDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
34
+ CpsTableColumnFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CpsTableColumnFilterDirective, isStandalone: true, selector: "[cpsColFilter]", inputs: { field: ["cpsColFilter", "field"], filterType: "filterType", filterShowClearButton: "filterShowClearButton", filterShowApplyButton: "filterShowApplyButton", filterHideOnClear: "filterHideOnClear", filterMaxConstraints: "filterMaxConstraints", filterCategoryOptions: "filterCategoryOptions", filterPlaceholder: "filterPlaceholder" }, ngImport: i0 });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableColumnFilterDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ standalone: true,
39
+ selector: '[cpsColFilter]'
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { field: [{
42
+ type: Input,
43
+ args: ['cpsColFilter']
44
+ }], filterType: [{
45
+ type: Input
46
+ }], filterShowClearButton: [{
47
+ type: Input
48
+ }], filterShowApplyButton: [{
49
+ type: Input
50
+ }], filterHideOnClear: [{
51
+ type: Input
52
+ }], filterMaxConstraints: [{
53
+ type: Input
54
+ }], filterCategoryOptions: [{
55
+ type: Input
56
+ }], filterPlaceholder: [{
57
+ type: Input
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYmxlLWNvbHVtbi1maWx0ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2RpcmVjdGl2ZXMvY3BzLXRhYmxlLWNvbHVtbi1maWx0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUlOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOztBQWFsRyxNQUFNLE9BQU8sNkJBQTZCO0lBWXhDLFlBQ1UsVUFBc0IsRUFDdEIsZ0JBQWtDO1FBRGxDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVpuQyxlQUFVLEdBQTZCLE1BQU0sQ0FBQztRQUM5QywwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIsMEJBQXFCLEdBQWEsRUFBRSxDQUFDO1FBQ3JDLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQVE5QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQ3hELDBCQUEwQixDQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7OzBIQXZDVSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjtnSUFFd0IsS0FBSztzQkFBM0IsS0FBSzt1QkFBQyxjQUFjO2dCQUNaLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQ3BzVGFibGVDb2x1bW5GaWx0ZXJUeXBlID1cbiAgfCAndGV4dCdcbiAgfCAnbnVtYmVyJ1xuICB8ICdkYXRlJ1xuICB8ICdib29sZWFuJ1xuICB8ICdjYXRlZ29yeSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tjcHNDb2xGaWx0ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBDcHNUYWJsZUNvbHVtbkZpbHRlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCdjcHNDb2xGaWx0ZXInKSBmaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmaWx0ZXJUeXBlOiBDcHNUYWJsZUNvbHVtbkZpbHRlclR5cGUgPSAndGV4dCc7XG4gIEBJbnB1dCgpIGZpbHRlclNob3dDbGVhckJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIGZpbHRlclNob3dBcHBseUJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIGZpbHRlckhpZGVPbkNsZWFyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpbHRlck1heENvbnN0cmFpbnRzID0gMjtcbiAgQElucHV0KCkgZmlsdGVyQ2F0ZWdvcnlPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBmaWx0ZXJQbGFjZWhvbGRlciA9ICcnO1xuXG4gIGZpbHRlckNvbXBSZWY6IENvbXBvbmVudFJlZjxUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnRcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdmaWVsZCcsIHRoaXMuZmllbGQpO1xuICAgIHRoaXMuZmlsdGVyQ29tcFJlZi5zZXRJbnB1dCgndHlwZScsIHRoaXMuZmlsdGVyVHlwZSk7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdzaG93Q2xlYXJCdXR0b24nLCB0aGlzLmZpbHRlclNob3dDbGVhckJ1dHRvbik7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdzaG93QXBwbHlCdXR0b24nLCB0aGlzLmZpbHRlclNob3dBcHBseUJ1dHRvbik7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdoaWRlT25DbGVhcicsIHRoaXMuZmlsdGVySGlkZU9uQ2xlYXIpO1xuICAgIHRoaXMuZmlsdGVyQ29tcFJlZi5zZXRJbnB1dCgnbWF4Q29uc3RyYWludHMnLCB0aGlzLmZpbHRlck1heENvbnN0cmFpbnRzKTtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWYuc2V0SW5wdXQoJ2NhdGVnb3J5T3B0aW9ucycsIHRoaXMuZmlsdGVyQ2F0ZWdvcnlPcHRpb25zKTtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWYuc2V0SW5wdXQoJ3BsYWNlaG9sZGVyJywgdGhpcy5maWx0ZXJQbGFjZWhvbGRlcik7XG5cbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkLmFmdGVyKFxuICAgICAgdGhpcy5maWx0ZXJDb21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLmRlc3Ryb3koKTtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { SortIcon, SortableColumn } from 'primeng/table';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "primeng/table";
5
+ export class CpsTableColumnSortableDirective extends SortableColumn {
6
+ constructor(elementRef, viewContainerRef, dt) {
7
+ super(dt);
8
+ this.elementRef = elementRef;
9
+ this.viewContainerRef = viewContainerRef;
10
+ this.dt = dt;
11
+ this.field = '';
12
+ this.sortIconRef = this.viewContainerRef.createComponent(SortIcon);
13
+ }
14
+ ngOnInit() {
15
+ super.ngOnInit();
16
+ this.sortIconRef.setInput('field', this.field);
17
+ this.elementRef.nativeElement.appendChild(this.sortIconRef.location.nativeElement);
18
+ }
19
+ ngOnDestroy() {
20
+ super.ngOnDestroy();
21
+ this.sortIconRef.destroy();
22
+ this.viewContainerRef.clear();
23
+ }
24
+ onClick(event) {
25
+ if (!this.elementRef?.nativeElement?.classList?.contains('cps-table-col-filter-menu-open')) {
26
+ super.onClick(event);
27
+ }
28
+ }
29
+ }
30
+ 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
+ CpsTableColumnSortableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CpsTableColumnSortableDirective, isStandalone: true, selector: "[cpsColSortable]", inputs: { field: ["cpsColSortable", "field"] }, usesInheritance: true, ngImport: i0 });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableColumnSortableDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ standalone: true,
36
+ selector: '[cpsColSortable]'
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.Table }]; }, propDecorators: { field: [{
39
+ type: Input,
40
+ args: ['cpsColSortable']
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYmxlLWNvbHVtbi1zb3J0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvZGlyZWN0aXZlcy9jcHMtdGFibGUtY29sdW1uLXNvcnRhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBUyxNQUFNLGVBQWUsQ0FBQzs7O0FBTWhFLE1BQU0sT0FBTywrQkFDWCxTQUFRLGNBQWM7SUFNdEIsWUFDVSxVQUFzQixFQUN0QixnQkFBa0MsRUFDMUIsRUFBUztRQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFKRixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBTztRQU5PLFVBQUssR0FBRyxFQUFFLENBQUM7UUFTM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQ3hDLENBQUM7SUFDSixDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVRLE9BQU8sQ0FBQyxLQUFpQjtRQUNoQyxJQUNFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FDbEQsZ0NBQWdDLENBQ2pDLEVBQ0Q7WUFDQSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7NEhBdENVLCtCQUErQjtnSEFBL0IsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCO29KQUttQyxLQUFLO3NCQUF0QyxLQUFLO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb3J0SWNvbiwgU29ydGFibGVDb2x1bW4sIFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tjcHNDb2xTb3J0YWJsZV0nXG59KVxuZXhwb3J0IGNsYXNzIENwc1RhYmxlQ29sdW1uU29ydGFibGVEaXJlY3RpdmVcbiAgZXh0ZW5kcyBTb3J0YWJsZUNvbHVtblxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgnY3BzQ29sU29ydGFibGUnKSBvdmVycmlkZSBmaWVsZCA9ICcnO1xuICBzb3J0SWNvblJlZjogQ29tcG9uZW50UmVmPFNvcnRJY29uPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHB1YmxpYyBvdmVycmlkZSBkdDogVGFibGVcbiAgKSB7XG4gICAgc3VwZXIoZHQpO1xuICAgIHRoaXMuc29ydEljb25SZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFNvcnRJY29uKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5zb3J0SWNvblJlZi5zZXRJbnB1dCgnZmllbGQnLCB0aGlzLmZpZWxkKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChcbiAgICAgIHRoaXMuc29ydEljb25SZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudFxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuc29ydEljb25SZWYuZGVzdHJveSgpO1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdD8uY29udGFpbnMoXG4gICAgICAgICdjcHMtdGFibGUtY29sLWZpbHRlci1tZW51LW9wZW4nXG4gICAgICApXG4gICAgKSB7XG4gICAgICBzdXBlci5vbkNsaWNrKGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,85 @@
1
+ import { Directive, Host, Self, Optional } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "primeng/table";
4
+ export class TableUnsortDirective {
5
+ constructor(pTable) {
6
+ this.pTable = pTable;
7
+ this.defaultSortOrderInitialized = false;
8
+ pTable.tableService.valueSource$.subscribe((val) => {
9
+ if (val != null && val.length > 0 && !this.defaultSortOrderInitialized) {
10
+ let i = 0;
11
+ val.forEach((v) => {
12
+ v._defaultSortOrder = i++;
13
+ });
14
+ this.defaultSortOrderInitialized = true;
15
+ }
16
+ });
17
+ pTable.sort = (event) => {
18
+ if (pTable.sortMode === 'single') {
19
+ if (pTable.sortField === event.field && pTable.sortOrder === -1) {
20
+ event.field = '_defaultSortOrder';
21
+ }
22
+ pTable._sortOrder =
23
+ pTable.sortField === event.field
24
+ ? pTable.sortOrder * -1
25
+ : pTable.defaultSortOrder;
26
+ pTable._sortField = event.field;
27
+ pTable.sortSingle();
28
+ }
29
+ if (pTable.sortMode === 'multiple') {
30
+ let resetIndex = false;
31
+ const sortMeta = pTable.getSortMeta(event.field);
32
+ if (sortMeta) {
33
+ for (let i = 0; i < pTable._multiSortMeta.length; i++) {
34
+ if (pTable._multiSortMeta[i].field === sortMeta.field) {
35
+ pTable._multiSortMeta.splice(i, 1);
36
+ }
37
+ }
38
+ if (sortMeta.order === 1) {
39
+ sortMeta.order = sortMeta.order * -1;
40
+ pTable.multiSortMeta.push(sortMeta);
41
+ }
42
+ if (pTable._multiSortMeta?.length === 0) {
43
+ pTable.multiSortMeta.push({
44
+ field: '_defaultSortOrder',
45
+ order: pTable.defaultSortOrder
46
+ });
47
+ resetIndex = true;
48
+ }
49
+ }
50
+ else {
51
+ if (!pTable.multiSortMeta) {
52
+ pTable._multiSortMeta = [];
53
+ }
54
+ pTable.multiSortMeta.push({
55
+ field: event.field,
56
+ order: pTable.defaultSortOrder
57
+ });
58
+ }
59
+ pTable.sortMultiple();
60
+ if (resetIndex)
61
+ pTable._multiSortMeta = [];
62
+ }
63
+ if (pTable.isStateful()) {
64
+ pTable.saveState();
65
+ }
66
+ pTable.anchorRowIndex = 0;
67
+ };
68
+ }
69
+ }
70
+ TableUnsortDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableUnsortDirective, deps: [{ token: i1.Table, host: true, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
71
+ TableUnsortDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TableUnsortDirective, isStandalone: true, selector: "[withUnsort]", ngImport: i0 });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableUnsortDirective, decorators: [{
73
+ type: Directive,
74
+ args: [{
75
+ standalone: true,
76
+ selector: '[withUnsort]'
77
+ }]
78
+ }], ctorParameters: function () { return [{ type: i1.Table, decorators: [{
79
+ type: Host
80
+ }, {
81
+ type: Self
82
+ }, {
83
+ type: Optional
84
+ }] }]; } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdW5zb3J0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS9kaXJlY3RpdmVzL2ludGVybmFsL3RhYmxlLXVuc29ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBK0MsTUFBYTtRQUFiLFdBQU0sR0FBTixNQUFNLENBQU87UUFGNUQsZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBR2xDLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVUsRUFBRSxFQUFFO1lBQ3hELElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtnQkFDdEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNWLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDaEIsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDO2FBQ3pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDaEMsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDL0QsS0FBSyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQztpQkFDbkM7Z0JBRUQsTUFBTSxDQUFDLFVBQVU7b0JBQ2YsTUFBTSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsS0FBSzt3QkFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO3dCQUN2QixDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM5QixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUU7Z0JBQ2xDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWpELElBQUksUUFBUSxFQUFFO29CQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDckQsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsS0FBSyxFQUFFOzRCQUNyRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7eUJBQ3BDO3FCQUNGO29CQUNELElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7d0JBQ3hCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDckMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ3JDO29CQUNELElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFO3dCQUN2QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQzs0QkFDeEIsS0FBSyxFQUFFLG1CQUFtQjs0QkFDMUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7eUJBQy9CLENBQUMsQ0FBQzt3QkFDSCxVQUFVLEdBQUcsSUFBSSxDQUFDO3FCQUNuQjtpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTt3QkFDekIsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7cUJBQzVCO29CQUNELE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO3dCQUN4QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7d0JBQ2xCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCO3FCQUMvQixDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0QixJQUFJLFVBQVU7b0JBQUUsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7YUFDNUM7WUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ3BCO1lBRUQsTUFBTSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7aUhBcEVVLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs7MEJBSWMsSUFBSTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgU2VsZiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1t3aXRoVW5zb3J0XSdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVVbnNvcnREaXJlY3RpdmUge1xuICBkZWZhdWx0U29ydE9yZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIHBUYWJsZTogVGFibGUpIHtcbiAgICBwVGFibGUudGFibGVTZXJ2aWNlLnZhbHVlU291cmNlJC5zdWJzY3JpYmUoKHZhbDogYW55W10pID0+IHtcbiAgICAgIGlmICh2YWwgIT0gbnVsbCAmJiB2YWwubGVuZ3RoID4gMCAmJiAhdGhpcy5kZWZhdWx0U29ydE9yZGVySW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICB2YWwuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgIHYuX2RlZmF1bHRTb3J0T3JkZXIgPSBpKys7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRlZmF1bHRTb3J0T3JkZXJJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBwVGFibGUuc29ydCA9IChldmVudDogYW55KSA9PiB7XG4gICAgICBpZiAocFRhYmxlLnNvcnRNb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICBpZiAocFRhYmxlLnNvcnRGaWVsZCA9PT0gZXZlbnQuZmllbGQgJiYgcFRhYmxlLnNvcnRPcmRlciA9PT0gLTEpIHtcbiAgICAgICAgICBldmVudC5maWVsZCA9ICdfZGVmYXVsdFNvcnRPcmRlcic7XG4gICAgICAgIH1cblxuICAgICAgICBwVGFibGUuX3NvcnRPcmRlciA9XG4gICAgICAgICAgcFRhYmxlLnNvcnRGaWVsZCA9PT0gZXZlbnQuZmllbGRcbiAgICAgICAgICAgID8gcFRhYmxlLnNvcnRPcmRlciAqIC0xXG4gICAgICAgICAgICA6IHBUYWJsZS5kZWZhdWx0U29ydE9yZGVyO1xuICAgICAgICBwVGFibGUuX3NvcnRGaWVsZCA9IGV2ZW50LmZpZWxkO1xuICAgICAgICBwVGFibGUuc29ydFNpbmdsZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHBUYWJsZS5zb3J0TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgICBsZXQgcmVzZXRJbmRleCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBzb3J0TWV0YSA9IHBUYWJsZS5nZXRTb3J0TWV0YShldmVudC5maWVsZCk7XG5cbiAgICAgICAgaWYgKHNvcnRNZXRhKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwVGFibGUuX211bHRpU29ydE1ldGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwVGFibGUuX211bHRpU29ydE1ldGFbaV0uZmllbGQgPT09IHNvcnRNZXRhLmZpZWxkKSB7XG4gICAgICAgICAgICAgIHBUYWJsZS5fbXVsdGlTb3J0TWV0YS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzb3J0TWV0YS5vcmRlciA9PT0gMSkge1xuICAgICAgICAgICAgc29ydE1ldGEub3JkZXIgPSBzb3J0TWV0YS5vcmRlciAqIC0xO1xuICAgICAgICAgICAgcFRhYmxlLm11bHRpU29ydE1ldGEucHVzaChzb3J0TWV0YSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwVGFibGUuX211bHRpU29ydE1ldGE/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcFRhYmxlLm11bHRpU29ydE1ldGEucHVzaCh7XG4gICAgICAgICAgICAgIGZpZWxkOiAnX2RlZmF1bHRTb3J0T3JkZXInLFxuICAgICAgICAgICAgICBvcmRlcjogcFRhYmxlLmRlZmF1bHRTb3J0T3JkZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzZXRJbmRleCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghcFRhYmxlLm11bHRpU29ydE1ldGEpIHtcbiAgICAgICAgICAgIHBUYWJsZS5fbXVsdGlTb3J0TWV0YSA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwVGFibGUubXVsdGlTb3J0TWV0YS5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiBldmVudC5maWVsZCxcbiAgICAgICAgICAgIG9yZGVyOiBwVGFibGUuZGVmYXVsdFNvcnRPcmRlclxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcFRhYmxlLnNvcnRNdWx0aXBsZSgpO1xuICAgICAgICBpZiAocmVzZXRJbmRleCkgcFRhYmxlLl9tdWx0aVNvcnRNZXRhID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmIChwVGFibGUuaXNTdGF0ZWZ1bCgpKSB7XG4gICAgICAgIHBUYWJsZS5zYXZlU3RhdGUoKTtcbiAgICAgIH1cblxuICAgICAgcFRhYmxlLmFuY2hvclJvd0luZGV4ID0gMDtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,77 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { CpsInputComponent } from '../../../cps-input/cps-input.component';
5
+ import { CpsDatepickerComponent } from '../../../cps-datepicker/cps-datepicker.component';
6
+ import { CpsAutocompleteComponent } from '../../../cps-autocomplete/cps-autocomplete.component';
7
+ import { CpsButtonToggleComponent } from '../../../cps-button-toggle/cps-button-toggle.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "primeng/table";
10
+ import * as i2 from "@angular/common";
11
+ export class TableColumnFilterConstraintComponent {
12
+ // eslint-disable-next-line no-useless-constructor
13
+ constructor(dt) {
14
+ this.dt = dt;
15
+ this.categoryOptions = [];
16
+ this.placeholder = '';
17
+ this.hasApplyButton = true;
18
+ this.booleanOptions = [
19
+ { label: 'True', value: 'true' },
20
+ { label: 'False', value: 'false' }
21
+ ];
22
+ this.categories = [];
23
+ }
24
+ ngOnInit() {
25
+ if (this.type === 'category') {
26
+ if (this.categoryOptions.length > 0) {
27
+ this.categories = this.categoryOptions.map((o) => ({
28
+ label: o,
29
+ value: o
30
+ }));
31
+ }
32
+ else {
33
+ this.categories =
34
+ Array.from(new Set(this.dt.value?.map((v) => v[this.field]) || []))?.map((c) => ({
35
+ label: c,
36
+ value: c
37
+ })) || [];
38
+ }
39
+ }
40
+ }
41
+ onValueChange(value) {
42
+ this.filterConstraint.value = value;
43
+ if (value === '' || !this.hasApplyButton) {
44
+ this.dt._filter();
45
+ }
46
+ }
47
+ onInputEnterKeyDown(event) {
48
+ this.dt._filter();
49
+ event.preventDefault();
50
+ }
51
+ }
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)=\"onInputEnterKeyDown($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)=\"onInputEnterKeyDown($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)=\"onInputEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <cps-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}\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", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred"] }, { kind: "component", type: CpsDatepickerComponent, selector: "cps-datepicker", inputs: ["label", "disabled", "width", "placeholder", "hint", "clearable", "hideDetails", "persistentClear", "showTodayButton", "openOnInputFocus", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "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", "value"], outputs: ["valueChanged"] }] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterConstraintComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'table-column-filter-constraint', standalone: true, imports: [
57
+ CommonModule,
58
+ FormsModule,
59
+ CpsInputComponent,
60
+ CpsDatepickerComponent,
61
+ CpsButtonToggleComponent,
62
+ CpsAutocompleteComponent
63
+ ], template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onInputEnterKeyDown($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)=\"onInputEnterKeyDown($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)=\"onInputEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <cps-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}\n"] }]
64
+ }], ctorParameters: function () { return [{ type: i1.Table }]; }, propDecorators: { type: [{
65
+ type: Input
66
+ }], field: [{
67
+ type: Input
68
+ }], filterConstraint: [{
69
+ type: Input
70
+ }], categoryOptions: [{
71
+ type: Input
72
+ }], placeholder: [{
73
+ type: Input
74
+ }], hasApplyButton: [{
75
+ type: Input
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFFTCx3QkFBd0IsRUFDekIsTUFBTSx3REFBd0QsQ0FBQzs7OztBQWdCaEUsTUFBTSxPQUFPLG9DQUFvQztJQWUvQyxrREFBa0Q7SUFDbEQsWUFBbUIsRUFBUztRQUFULE9BQUUsR0FBRixFQUFFLENBQU87UUFabkIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFL0IsbUJBQWMsR0FBRztZQUNmLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQ2QsQ0FBQztRQUV2QixlQUFVLEdBQXVDLEVBQUUsQ0FBQztJQUdyQixDQUFDO0lBRWhDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNqRCxLQUFLLEVBQUUsQ0FBQztvQkFDUixLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQUMsQ0FBQzthQUNMO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxVQUFVO29CQUNiLEtBQUssQ0FBQyxJQUFJLENBQ1IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQ2xFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNiLEtBQUssRUFBRSxDQUFDO3dCQUNSLEtBQUssRUFBRSxDQUFDO3FCQUNULENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLGdCQUFpQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFM0MsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQVU7UUFDNUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7aUlBaERVLG9DQUFvQztxSEFBcEMsb0NBQW9DLDRRQzNCakQsMmlEQWtEQSw4SURqQ0ksWUFBWSwwTkFDWixXQUFXLCtCQUNYLGlCQUFpQiw4YkFDakIsc0JBQXNCLG9YQUN0Qix3QkFBd0IsK1FBQ3hCLHdCQUF3QjsyRkFLZixvQ0FBb0M7a0JBZGhELFNBQVM7K0JBQ0UsZ0NBQWdDLGNBQzlCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3FCQUN6Qjs0RkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsdGVyTWV0YWRhdGEgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgQ3BzSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jcHMtaW5wdXQvY3BzLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3BzLWRhdGVwaWNrZXIvY3BzLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0F1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Nwcy1hdXRvY29tcGxldGUvY3BzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQnRuVG9nZ2xlT3B0aW9uLFxuICBDcHNCdXR0b25Ub2dnbGVDb21wb25lbnRcbn0gZnJvbSAnLi4vLi4vLi4vY3BzLWJ1dHRvbi10b2dnbGUvY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDcHNJbnB1dENvbXBvbmVudCxcbiAgICBDcHNEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgIENwc0J1dHRvblRvZ2dsZUNvbXBvbmVudCxcbiAgICBDcHNBdXRvY29tcGxldGVDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uRmlsdGVyQ29uc3RyYWludENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmlsdGVyQ29uc3RyYWludDogRmlsdGVyTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNhdGVnb3J5T3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgaGFzQXBwbHlCdXR0b24gPSB0cnVlO1xuXG4gIGJvb2xlYW5PcHRpb25zID0gW1xuICAgIHsgbGFiZWw6ICdUcnVlJywgdmFsdWU6ICd0cnVlJyB9LFxuICAgIHsgbGFiZWw6ICdGYWxzZScsIHZhbHVlOiAnZmFsc2UnIH1cbiAgXSBhcyBCdG5Ub2dnbGVPcHRpb25bXTtcblxuICBjYXRlZ29yaWVzOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IocHVibGljIGR0OiBUYWJsZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnY2F0ZWdvcnknKSB7XG4gICAgICBpZiAodGhpcy5jYXRlZ29yeU9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSB0aGlzLmNhdGVnb3J5T3B0aW9ucy5tYXAoKG8pID0+ICh7XG4gICAgICAgICAgbGFiZWw6IG8sXG4gICAgICAgICAgdmFsdWU6IG9cbiAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID1cbiAgICAgICAgICBBcnJheS5mcm9tKFxuICAgICAgICAgICAgbmV3IFNldCh0aGlzLmR0LnZhbHVlPy5tYXAoKHYpID0+IHZbdGhpcy5maWVsZCBhcyBzdHJpbmddKSB8fCBbXSlcbiAgICAgICAgICApPy5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICBsYWJlbDogYyxcbiAgICAgICAgICAgIHZhbHVlOiBjXG4gICAgICAgICAgfSkpIHx8IFtdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgICg8YW55PnRoaXMuZmlsdGVyQ29uc3RyYWludCkudmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgIXRoaXMuaGFzQXBwbHlCdXR0b24pIHtcbiAgICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRFbnRlcktleURvd24oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uSW5wdXRFbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cInRleHRcIj48L2Nwcy1pbnB1dD5cblxuICA8Y3BzLWlucHV0XG4gICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJvbklucHV0RW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJDb25zdHJhaW50Py52YWx1ZVwiXG4gICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIHR5cGU9XCJudW1iZXJcIj48L2Nwcy1pbnB1dD5cblxuICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY29uc3RyYWludC1ib29sZWFuXCI+XG4gICAgPGNwcy1idXR0b24tdG9nZ2xlXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCJcbiAgICAgIFtvcHRpb25zXT1cImJvb2xlYW5PcHRpb25zXCJcbiAgICAgIFt2YWx1ZV09XCJmaWx0ZXJDb25zdHJhaW50Py52YWx1ZVwiXG4gICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbbWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgPC9jcHMtYnV0dG9uLXRvZ2dsZT5cbiAgPC9kaXY+XG5cbiAgPGNwcy1kYXRlcGlja2VyXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiXG4gICAgW29wZW5PbklucHV0Rm9jdXNdPVwidHJ1ZVwiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJvbklucHV0RW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3BzLWRhdGVwaWNrZXI+XG5cbiAgPGNwcy1hdXRvY29tcGxldGVcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NhdGVnb3J5J1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbb3B0aW9uc109XCJjYXRlZ29yaWVzXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiPjwvY3BzLWF1dG9jb21wbGV0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,227 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { FilterMatchMode, FilterOperator } from 'primeng/api';
5
+ import { CpsButtonComponent } from '../../cps-button/cps-button.component';
6
+ import { CpsMenuComponent } from '../../cps-menu/cps-menu.component';
7
+ import { CpsIconComponent } from '../../cps-icon/cps-icon.component';
8
+ import { CpsSelectComponent } from '../../cps-select/cps-select.component';
9
+ import { TableColumnFilterConstraintComponent } from './table-column-filter-constraint/table-column-filter-constraint.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "primeng/table";
12
+ import * as i2 from "@angular/common";
13
+ import * as i3 from "@angular/forms";
14
+ export class TableColumnFilterComponent {
15
+ // eslint-disable-next-line no-useless-constructor
16
+ constructor(elementRef, dt) {
17
+ this.elementRef = elementRef;
18
+ this.dt = dt;
19
+ this.type = 'text';
20
+ this.showClearButton = true;
21
+ this.showApplyButton = true;
22
+ this.hideOnClear = false;
23
+ this.maxConstraints = 2;
24
+ this.categoryOptions = [];
25
+ this.placeholder = '';
26
+ this.operator = FilterOperator.AND;
27
+ this.showMatchModes = true;
28
+ this.showOperator = true;
29
+ this.operatorOptions = [
30
+ { label: 'Match All', value: FilterOperator.AND, info: 'AND' },
31
+ { label: 'Match Any', value: FilterOperator.OR, info: 'OR' }
32
+ ];
33
+ this.matchModeLabels = {
34
+ startsWith: 'Starts with',
35
+ contains: 'Contains',
36
+ notContains: 'Does not contain',
37
+ endsWith: 'Ends with',
38
+ equals: 'Equals',
39
+ notEquals: 'Does not equal',
40
+ lt: 'Less than',
41
+ lte: 'Less than or equal to',
42
+ gt: 'Greater than',
43
+ gte: 'Greater than or equal to',
44
+ dateIs: 'Date is',
45
+ dateIsNot: 'Date is not',
46
+ dateBefore: 'Date is before',
47
+ dateAfter: 'Date is after'
48
+ };
49
+ this.filterMatchModeOptions = {
50
+ text: [
51
+ FilterMatchMode.STARTS_WITH,
52
+ FilterMatchMode.CONTAINS,
53
+ FilterMatchMode.NOT_CONTAINS,
54
+ FilterMatchMode.ENDS_WITH,
55
+ FilterMatchMode.EQUALS,
56
+ FilterMatchMode.NOT_EQUALS
57
+ ],
58
+ number: [
59
+ FilterMatchMode.EQUALS,
60
+ FilterMatchMode.NOT_EQUALS,
61
+ FilterMatchMode.LESS_THAN,
62
+ FilterMatchMode.LESS_THAN_OR_EQUAL_TO,
63
+ FilterMatchMode.GREATER_THAN,
64
+ FilterMatchMode.GREATER_THAN_OR_EQUAL_TO
65
+ ],
66
+ date: [
67
+ FilterMatchMode.DATE_IS,
68
+ FilterMatchMode.DATE_IS_NOT,
69
+ FilterMatchMode.DATE_BEFORE,
70
+ FilterMatchMode.DATE_AFTER
71
+ ]
72
+ };
73
+ }
74
+ ngOnInit() {
75
+ if (!this.dt.filters[this.field]) {
76
+ this.initFieldFilterConstraint();
77
+ }
78
+ if (this.maxConstraints > 1 && this.type !== 'category') {
79
+ this.showApplyButton = true;
80
+ }
81
+ if (this.type === 'boolean') {
82
+ this.showApplyButton = false;
83
+ }
84
+ this.matchModes = this.filterMatchModeOptions[this.type]?.map((key) => {
85
+ return { label: this.matchModeLabels[key], value: key };
86
+ });
87
+ }
88
+ initFieldFilterConstraint() {
89
+ const defaultMatchMode = this.getDefaultMatchMode();
90
+ this.dt.filters[this.field] = [
91
+ {
92
+ value: null,
93
+ matchMode: defaultMatchMode,
94
+ operator: this.operator
95
+ }
96
+ ];
97
+ }
98
+ onMenuMatchModeChange(value, filterMeta) {
99
+ filterMeta.matchMode = value;
100
+ if (!this.showApplyButton) {
101
+ this.dt._filter();
102
+ }
103
+ }
104
+ addConstraint() {
105
+ this.dt.filters[this.field].push({
106
+ value: null,
107
+ matchMode: this.getDefaultMatchMode(),
108
+ operator: this.getDefaultOperator()
109
+ });
110
+ }
111
+ removeConstraint(filterMeta) {
112
+ this.dt.filters[this.field] = (this.dt.filters[this.field]).filter((meta) => meta !== filterMeta);
113
+ this.dt._filter();
114
+ }
115
+ onOperatorChange(value) {
116
+ this.dt.filters[this.field].forEach((filterMeta) => {
117
+ filterMeta.operator = value;
118
+ this.operator = value;
119
+ });
120
+ if (!this.showApplyButton) {
121
+ this.dt._filter();
122
+ }
123
+ }
124
+ getDefaultMatchMode() {
125
+ if (this.type === 'text')
126
+ return FilterMatchMode.STARTS_WITH;
127
+ else if (this.type === 'number')
128
+ return FilterMatchMode.EQUALS;
129
+ else if (this.type === 'date')
130
+ return FilterMatchMode.DATE_IS;
131
+ else if (this.type === 'category')
132
+ return FilterMatchMode.IN;
133
+ else
134
+ return FilterMatchMode.CONTAINS;
135
+ }
136
+ getDefaultOperator() {
137
+ return this.dt.filters
138
+ ? this.dt.filters[this.field][0]
139
+ .operator
140
+ : this.operator;
141
+ }
142
+ get fieldConstraints() {
143
+ return this.dt.filters
144
+ ? this.dt.filters[this.field]
145
+ : null;
146
+ }
147
+ get showRemoveIcon() {
148
+ return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;
149
+ }
150
+ get isShowOperator() {
151
+ return (this.showOperator &&
152
+ this.maxConstraints > 1 &&
153
+ !['boolean', 'category'].includes(this.type));
154
+ }
155
+ get isShowAddConstraint() {
156
+ return (!['boolean', 'category'].includes(this.type) &&
157
+ this.fieldConstraints &&
158
+ this.fieldConstraints.length < this.maxConstraints);
159
+ }
160
+ hasFilter() {
161
+ const fieldFilter = this.dt.filters[this.field];
162
+ if (fieldFilter) {
163
+ if (Array.isArray(fieldFilter))
164
+ return !this.dt.isFilterBlank(fieldFilter[0].value);
165
+ else
166
+ return !this.dt.isFilterBlank(fieldFilter.value);
167
+ }
168
+ return false;
169
+ }
170
+ hide() {
171
+ this.columnFilterMenu.hide();
172
+ }
173
+ clearFilter() {
174
+ this.initFieldFilterConstraint();
175
+ this.dt._filter();
176
+ if (this.hideOnClear)
177
+ this.hide();
178
+ }
179
+ applyFilter() {
180
+ this.dt._filter();
181
+ this.hide();
182
+ }
183
+ onMenuShown() {
184
+ const parent = this.elementRef?.nativeElement?.parentElement;
185
+ const className = 'cps-table-col-filter-menu-open';
186
+ parent.classList.add(className);
187
+ }
188
+ onMenuHidden() {
189
+ const parent = this.elementRef?.nativeElement?.parentElement;
190
+ const className = 'cps-table-col-filter-menu-open';
191
+ parent.classList.remove(className);
192
+ }
193
+ }
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}.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"], outputs: ["menuShown", "menuHidden"] }, { 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", "value"], outputs: ["valueChanged"] }, { kind: "component", type: TableColumnFilterConstraintComponent, selector: "table-column-filter-constraint", inputs: ["type", "field", "filterConstraint", "categoryOptions", "placeholder", "hasApplyButton"] }] });
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterComponent, decorators: [{
197
+ type: Component,
198
+ args: [{ selector: 'table-column-filter', standalone: true, imports: [
199
+ CommonModule,
200
+ FormsModule,
201
+ CpsButtonComponent,
202
+ CpsMenuComponent,
203
+ CpsIconComponent,
204
+ CpsSelectComponent,
205
+ 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}.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: [{
208
+ type: Input
209
+ }], type: [{
210
+ type: Input
211
+ }], showClearButton: [{
212
+ type: Input
213
+ }], showApplyButton: [{
214
+ type: Input
215
+ }], hideOnClear: [{
216
+ type: Input
217
+ }], maxConstraints: [{
218
+ type: Input
219
+ }], categoryOptions: [{
220
+ type: Input
221
+ }], placeholder: [{
222
+ type: Input
223
+ }], columnFilterMenu: [{
224
+ type: ViewChild,
225
+ args: ['columnFilterMenu']
226
+ }] } });
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvdGFibGUtY29sdW1uLWZpbHRlci90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGVBQWUsRUFFZixjQUFjLEVBRWYsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkVBQTJFLENBQUM7Ozs7O0FBaUJqSSxNQUFNLE9BQU8sMEJBQTBCO0lBa0VyQyxrREFBa0Q7SUFDbEQsWUFBbUIsVUFBc0IsRUFBUyxFQUFTO1FBQXhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFP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QUFJO3NCQUFaLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBd0ROLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgRmlsdGVyTWF0Y2hNb2RlLFxuICBGaWx0ZXJNZXRhZGF0YSxcbiAgRmlsdGVyT3BlcmF0b3IsXG4gIFNlbGVjdEl0ZW1cbn0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IENwc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Nwcy1idXR0b24vY3BzLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzTWVudUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Nwcy1tZW51L2Nwcy1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY3BzLWljb24vY3BzLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Nwcy1zZWxlY3QvY3BzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RhYmxlLWNvbHVtbi1maWx0ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENwc0J1dHRvbkNvbXBvbmVudCxcbiAgICBDcHNNZW51Q29tcG9uZW50LFxuICAgIENwc0ljb25Db21wb25lbnQsXG4gICAgQ3BzU2VsZWN0Q29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uRmlsdGVyQ29uc3RyYWludENvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHR5cGUgPSAndGV4dCc7XG4gIEBJbnB1dCgpIHNob3dDbGVhckJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dBcHBseUJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIGhpZGVPbkNsZWFyID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heENvbnN0cmFpbnRzID0gMjtcbiAgQElucHV0KCkgY2F0ZWdvcnlPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIG9wZXJhdG9yOiBzdHJpbmcgPSBGaWx0ZXJPcGVyYXRvci5BTkQ7XG4gIHNob3dNYXRjaE1vZGVzID0gdHJ1ZTtcbiAgc2hvd09wZXJhdG9yID0gdHJ1ZTtcblxuICBvcGVyYXRvck9wdGlvbnMgPSBbXG4gICAgeyBsYWJlbDogJ01hdGNoIEFsbCcsIHZhbHVlOiBGaWx0ZXJPcGVyYXRvci5BTkQsIGluZm86ICdBTkQnIH0sXG4gICAgeyBsYWJlbDogJ01hdGNoIEFueScsIHZhbHVlOiBGaWx0ZXJPcGVyYXRvci5PUiwgaW5mbzogJ09SJyB9XG4gIF07XG5cbiAgcHJpdmF0ZSBtYXRjaE1vZGVMYWJlbHMgPSB7XG4gICAgc3RhcnRzV2l0aDogJ1N0YXJ0cyB3aXRoJyxcbiAgICBjb250YWluczogJ0NvbnRhaW5zJyxcbiAgICBub3RDb250YWluczogJ0RvZXMgbm90IGNvbnRhaW4nLFxuICAgIGVuZHNXaXRoOiAnRW5kcyB3aXRoJyxcbiAgICBlcXVhbHM6ICdFcXVhbHMnLFxuICAgIG5vdEVxdWFsczogJ0RvZXMgbm90IGVxdWFsJyxcbiAgICBsdDogJ0xlc3MgdGhhbicsXG4gICAgbHRlOiAnTGVzcyB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICBndDogJ0dyZWF0ZXIgdGhhbicsXG4gICAgZ3RlOiAnR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICBkYXRlSXM6ICdEYXRlIGlzJyxcbiAgICBkYXRlSXNOb3Q6ICdEYXRlIGlzIG5vdCcsXG4gICAgZGF0ZUJlZm9yZTogJ0RhdGUgaXMgYmVmb3JlJyxcbiAgICBkYXRlQWZ0ZXI6ICdEYXRlIGlzIGFmdGVyJ1xuICB9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgcHJpdmF0ZSBmaWx0ZXJNYXRjaE1vZGVPcHRpb25zID0ge1xuICAgIHRleHQ6IFtcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5TVEFSVFNfV0lUSCxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5DT05UQUlOUyxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5OT1RfQ09OVEFJTlMsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuRU5EU19XSVRILFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUyxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5OT1RfRVFVQUxTXG4gICAgXSxcbiAgICBudW1iZXI6IFtcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5FUVVBTFMsXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuTk9UX0VRVUFMUyxcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU4sXG4gICAgICBGaWx0ZXJNYXRjaE1vZGUuTEVTU19USEFOX09SX0VRVUFMX1RPLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkdSRUFURVJfVEhBTixcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9cbiAgICBdLFxuICAgIGRhdGU6IFtcbiAgICAgIEZpbHRlck1hdGNoTW9kZS5EQVRFX0lTLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVNfTk9ULFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkRBVEVfQkVGT1JFLFxuICAgICAgRmlsdGVyTWF0Y2hNb2RlLkRBVEVfQUZURVJcbiAgICBdXG4gIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xuXG4gIG1hdGNoTW9kZXM6IFNlbGVjdEl0ZW1bXSB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdjb2x1bW5GaWx0ZXJNZW51JylcbiAgY29sdW1uRmlsdGVyTWVudSE6IENwc01lbnVDb21wb25lbnQ7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHB1YmxpYyBkdDogVGFibGUpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkge1xuICAgICAgdGhpcy5pbml0RmllbGRGaWx0ZXJDb25zdHJhaW50KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWF4Q29uc3RyYWludHMgPiAxICYmIHRoaXMudHlwZSAhPT0gJ2NhdGVnb3J5Jykge1xuICAgICAgdGhpcy5zaG93QXBwbHlCdXR0b24gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5zaG93QXBwbHlCdXR0b24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLm1hdGNoTW9kZXMgPSB0aGlzLmZpbHRlck1hdGNoTW9kZU9wdGlvbnNbdGhpcy50eXBlXT8ubWFwKFxuICAgICAgKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGxhYmVsOiB0aGlzLm1hdGNoTW9kZUxhYmVsc1trZXldLCB2YWx1ZToga2V5IH07XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGluaXRGaWVsZEZpbHRlckNvbnN0cmFpbnQoKSB7XG4gICAgY29uc3QgZGVmYXVsdE1hdGNoTW9kZSA9IHRoaXMuZ2V0RGVmYXVsdE1hdGNoTW9kZSgpO1xuICAgIHRoaXMuZHQuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdID0gW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgbWF0Y2hNb2RlOiBkZWZhdWx0TWF0Y2hNb2RlLFxuICAgICAgICBvcGVyYXRvcjogdGhpcy5vcGVyYXRvclxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBvbk1lbnVNYXRjaE1vZGVDaGFuZ2UodmFsdWU6IGFueSwgZmlsdGVyTWV0YTogRmlsdGVyTWV0YWRhdGEpIHtcbiAgICBmaWx0ZXJNZXRhLm1hdGNoTW9kZSA9IHZhbHVlO1xuXG4gICAgaWYgKCF0aGlzLnNob3dBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5kdC5fZmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkQ29uc3RyYWludCgpIHtcbiAgICAoPEZpbHRlck1ldGFkYXRhW10+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0pLnB1c2goe1xuICAgICAgdmFsdWU6IG51bGwsXG4gICAgICBtYXRjaE1vZGU6IHRoaXMuZ2V0RGVmYXVsdE1hdGNoTW9kZSgpLFxuICAgICAgb3BlcmF0b3I6IHRoaXMuZ2V0RGVmYXVsdE9wZXJhdG9yKClcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUNvbnN0cmFpbnQoZmlsdGVyTWV0YTogRmlsdGVyTWV0YWRhdGEpIHtcbiAgICB0aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSA9ICg8RmlsdGVyTWV0YWRhdGFbXT4oXG4gICAgICB0aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXVxuICAgICkpLmZpbHRlcigobWV0YSkgPT4gbWV0YSAhPT0gZmlsdGVyTWV0YSk7XG4gICAgdGhpcy5kdC5fZmlsdGVyKCk7XG4gIH1cblxuICBvbk9wZXJhdG9yQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICAoPEZpbHRlck1ldGFkYXRhW10+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0pLmZvckVhY2goXG4gICAgICAoZmlsdGVyTWV0YSkgPT4ge1xuICAgICAgICBmaWx0ZXJNZXRhLm9wZXJhdG9yID0gdmFsdWU7XG4gICAgICAgIHRoaXMub3BlcmF0b3IgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKCF0aGlzLnNob3dBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5kdC5fZmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGVmYXVsdE1hdGNoTW9kZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZXh0JykgcmV0dXJuIEZpbHRlck1hdGNoTW9kZS5TVEFSVFNfV0lUSDtcbiAgICBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdudW1iZXInKSByZXR1cm4gRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUztcbiAgICBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlJykgcmV0dXJuIEZpbHRlck1hdGNoTW9kZS5EQVRFX0lTO1xuICAgIGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2NhdGVnb3J5JykgcmV0dXJuIEZpbHRlck1hdGNoTW9kZS5JTjtcbiAgICBlbHNlIHJldHVybiBGaWx0ZXJNYXRjaE1vZGUuQ09OVEFJTlM7XG4gIH1cblxuICBnZXREZWZhdWx0T3BlcmF0b3IoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kdC5maWx0ZXJzXG4gICAgICA/ICg8RmlsdGVyTWV0YWRhdGFbXT50aGlzLmR0LmZpbHRlcnNbPHN0cmluZz4oPHN0cmluZz50aGlzLmZpZWxkKV0pWzBdXG4gICAgICAgICAgLm9wZXJhdG9yXG4gICAgICA6IHRoaXMub3BlcmF0b3I7XG4gIH1cblxuICBnZXQgZmllbGRDb25zdHJhaW50cygpOiBGaWx0ZXJNZXRhZGF0YVtdIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZHQuZmlsdGVyc1xuICAgICAgPyA8RmlsdGVyTWV0YWRhdGFbXT50aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgZ2V0IHNob3dSZW1vdmVJY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkQ29uc3RyYWludHMgPyB0aGlzLmZpZWxkQ29uc3RyYWludHMubGVuZ3RoID4gMSA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGlzU2hvd09wZXJhdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNob3dPcGVyYXRvciAmJlxuICAgICAgdGhpcy5tYXhDb25zdHJhaW50cyA+IDEgJiZcbiAgICAgICFbJ2Jvb2xlYW4nLCAnY2F0ZWdvcnknXS5pbmNsdWRlcyh0aGlzLnR5cGUpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc1Nob3dBZGRDb25zdHJhaW50KCk6IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgIVsnYm9vbGVhbicsICdjYXRlZ29yeSddLmluY2x1ZGVzKHRoaXMudHlwZSkgJiZcbiAgICAgIHRoaXMuZmllbGRDb25zdHJhaW50cyAmJlxuICAgICAgdGhpcy5maWVsZENvbnN0cmFpbnRzLmxlbmd0aCA8IHRoaXMubWF4Q29uc3RyYWludHNcbiAgICApO1xuICB9XG5cbiAgaGFzRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZpZWxkRmlsdGVyID0gdGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF07XG4gICAgaWYgKGZpZWxkRmlsdGVyKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZEZpbHRlcikpXG4gICAgICAgIHJldHVybiAhdGhpcy5kdC5pc0ZpbHRlckJsYW5rKCg8RmlsdGVyTWV0YWRhdGFbXT5maWVsZEZpbHRlcilbMF0udmFsdWUpO1xuICAgICAgZWxzZSByZXR1cm4gIXRoaXMuZHQuaXNGaWx0ZXJCbGFuayhmaWVsZEZpbHRlci52YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLmNvbHVtbkZpbHRlck1lbnUuaGlkZSgpO1xuICB9XG5cbiAgY2xlYXJGaWx0ZXIoKSB7XG4gICAgdGhpcy5pbml0RmllbGRGaWx0ZXJDb25zdHJhaW50KCk7XG4gICAgdGhpcy5kdC5fZmlsdGVyKCk7XG4gICAgaWYgKHRoaXMuaGlkZU9uQ2xlYXIpIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXIoKSB7XG4gICAgdGhpcy5kdC5fZmlsdGVyKCk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBvbk1lbnVTaG93bigpIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gJ2Nwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtb3Blbic7XG4gICAgcGFyZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIG9uTWVudUhpZGRlbigpIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gJ2Nwcy10YWJsZS1jb2wtZmlsdGVyLW1lbnUtb3Blbic7XG4gICAgcGFyZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyXCI+XG4gIDxjcHMtbWVudVxuICAgICNjb2x1bW5GaWx0ZXJNZW51XG4gICAgW3dpdGhBcnJvd109XCJmYWxzZVwiXG4gICAgKG1lbnVTaG93bik9XCJvbk1lbnVTaG93bigpXCJcbiAgICAobWVudUhpZGRlbik9XCJvbk1lbnVIaWRkZW4oKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1tZW51LWNvbnRlbnRcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1tZW51LWNvbnRlbnQtb3BlcmF0b3JcIlxuICAgICAgICAqbmdJZj1cImlzU2hvd09wZXJhdG9yXCI+XG4gICAgICAgIDxjcHMtc2VsZWN0XG4gICAgICAgICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZmllbGRDb25zdHJhaW50cyB8fCBmaWVsZENvbnN0cmFpbnRzLmxlbmd0aCA8IDJcIlxuICAgICAgICAgIFtyZXR1cm5PYmplY3RdPVwiZmFsc2VcIlxuICAgICAgICAgIFtvcHRpb25zXT1cIm9wZXJhdG9yT3B0aW9uc1wiXG4gICAgICAgICAgW25nTW9kZWxdPVwib3BlcmF0b3JcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25PcGVyYXRvckNoYW5nZSgkZXZlbnQpXCI+PC9jcHMtc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LWNvbnN0cmFpbnRzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGRDb25zdHJhaW50IG9mIGZpZWxkQ29uc3RyYWludHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1jb250ZW50LWNvbnN0cmFpbnRcIj5cbiAgICAgICAgICA8Y3BzLXNlbGVjdFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93TWF0Y2hNb2RlcyAmJiBtYXRjaE1vZGVzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWF0Y2gtbW9kZS1zZWxlY3RcIlxuICAgICAgICAgICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgICAgICAgICAgW3JldHVybk9iamVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJtYXRjaE1vZGVzXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImZpZWxkQ29uc3RyYWludC5tYXRjaE1vZGVcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJcbiAgICAgICAgICAgICAgb25NZW51TWF0Y2hNb2RlQ2hhbmdlKCRldmVudCwgZmllbGRDb25zdHJhaW50KVxuICAgICAgICAgICAgXCI+PC9jcHMtc2VsZWN0PlxuICAgICAgICAgIDx0YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnRcbiAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgIFtjYXRlZ29yeU9wdGlvbnNdPVwiY2F0ZWdvcnlPcHRpb25zXCJcbiAgICAgICAgICAgIFtmaWx0ZXJDb25zdHJhaW50XT1cImZpZWxkQ29uc3RyYWludFwiXG4gICAgICAgICAgICBbaGFzQXBwbHlCdXR0b25dPVwic2hvd0FwcGx5QnV0dG9uXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiPlxuICAgICAgICAgIDwvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItcmVtb3ZlLXJ1bGUtYnRuXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd1JlbW92ZUljb25cIj5cbiAgICAgICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJib3JkZXJsZXNzXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmVwYXJlZFwiXG4gICAgICAgICAgICAgIGljb249XCJkZWxldGVcIlxuICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJyZW1vdmVDb25zdHJhaW50KGZpZWxkQ29uc3RyYWludClcIlxuICAgICAgICAgICAgICBsYWJlbD1cIlJlbW92ZSBjb25kaXRpb25cIj5cbiAgICAgICAgICAgIDwvY3BzLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1hZGQtcnVsZS1idG5cIlxuICAgICAgICAqbmdJZj1cImlzU2hvd0FkZENvbnN0cmFpbnRcIj5cbiAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICBsYWJlbD1cIkFkZCBjb25kaXRpb25cIlxuICAgICAgICAgIHR5cGU9XCJib3JkZXJsZXNzXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgY29sb3I9XCJzdXJwcmlzZVwiXG4gICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiYWRkQ29uc3RyYWludCgpXCI+XG4gICAgICAgIDwvY3BzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLWJ1dHRvbmJhclwiPlxuICAgICAgICA8Y3BzLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwic2hvd0NsZWFyQnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJjbGVhckZpbHRlcigpXCJcbiAgICAgICAgICB0eXBlPVwiYm9yZGVybGVzc1wiXG4gICAgICAgICAgY29sb3I9XCJwcmVwYXJlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBsYWJlbD1cIkNsZWFyXCI+PC9jcHMtYnV0dG9uPlxuICAgICAgICA8Y3BzLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwic2hvd0FwcGx5QnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJhcHBseUZpbHRlcigpXCJcbiAgICAgICAgICBjb2xvcj1cInByZXBhcmVkXCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIGxhYmVsPVwiQXBwbHlcIj48L2Nwcy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9jcHMtbWVudT5cbiAgPGNwcy1pY29uXG4gICAgaWNvbj1cImZpbHRlci1mdW5uZWxcIlxuICAgIHNpemU9XCIxM1wiXG4gICAgKGNsaWNrKT1cImNvbHVtbkZpbHRlck1lbnUudG9nZ2xlKCRldmVudClcIlxuICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItbWVudS1idXR0b25cIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdjcHMtdGFibGUtY29sLWZpbHRlci1tZW51LWJ1dHRvbi1hY3RpdmUnOiBoYXNGaWx0ZXIoKVxuICAgIH1cIlxuICAgID4+XG4gIDwvY3BzLWljb24+XG48L2Rpdj5cbiJdfQ==