@one-paragon/angular-utilities 0.3.2 → 0.3.3

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 (34) hide show
  1. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +4 -4
  2. package/esm2022/table-builder/classes/filter-info.mjs +1 -1
  3. package/esm2022/table-builder/components/array-column.component.mjs +37 -29
  4. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +7 -6
  5. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +4 -5
  6. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +4 -5
  7. package/esm2022/table-builder/components/filter/filter.component.mjs +7 -8
  8. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +21 -15
  9. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +5 -5
  10. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +5 -5
  11. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +15 -11
  12. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +4 -5
  13. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +5 -5
  14. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +5 -6
  15. package/esm2022/table-builder/components/link-column.component.mjs +20 -19
  16. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +4 -5
  17. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +6 -6
  18. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +4 -3
  19. package/esm2022/table-builder/components/table-container/table-container.mjs +3 -3
  20. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +6 -6
  21. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +5 -5
  22. package/esm2022/table-builder/enums/filterTypes.mjs +30 -30
  23. package/esm2022/utilities/pipes/function.pipe.mjs +1 -1
  24. package/fesm2022/one-paragon-angular-utilities.mjs +169 -147
  25. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
  26. package/package.json +1 -1
  27. package/table-builder/classes/filter-info.d.ts +94 -7
  28. package/table-builder/components/array-column.component.d.ts +1 -1
  29. package/table-builder/components/column-builder/column-builder.component.d.ts +1 -1
  30. package/table-builder/components/filter/filter.component.d.ts +93 -352
  31. package/table-builder/components/in-filter/in-filter.component.d.ts +1 -1
  32. package/table-builder/components/table-container/table-container-imports.d.ts +3 -2
  33. package/table-builder/enums/filterTypes.d.ts +47 -7
  34. package/utilities/pipes/function.pipe.d.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { serverStatusTypes } from '../ngrx';
3
3
  import { delayOn } from '../../rxjs';
4
- import { AsyncPipe, NgIf } from '@angular/common';
4
+ import { AsyncPipe } from '@angular/common';
5
5
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/material/progress-spinner";
@@ -13,12 +13,12 @@ export class ActionStateSpinnerComponent {
13
13
  this.serverActionStatus$ = this.status$.pipe(delayOn(a => a.status === serverStatusTypes.inProgress, 500));
14
14
  }
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ActionStateSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: ActionStateSpinnerComponent, isStandalone: true, selector: "lib-action-state-spinner", inputs: { status$: "status$" }, ngImport: i0, template: "<div id=\"blocker\" *ngIf=\"(serverActionStatus$ | async)?.status === serverStatusTypes.inProgress\">\r\n <mat-spinner class=\"spinner\" [diameter]=\"200\" />\r\n</div>\r\n", styles: ["#blocker{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0e0d0d69;z-index:999999}.spinner{position:absolute;top:50%;left:40%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: ActionStateSpinnerComponent, isStandalone: true, selector: "lib-action-state-spinner", inputs: { status$: "status$" }, ngImport: i0, template: "@if((serverActionStatus$ | async)?.status === serverStatusTypes.inProgress){\r\n <div id=\"blocker\">\r\n <mat-spinner class=\"spinner\" [diameter]=\"200\" />\r\n </div>\r\n}\r\n\r\n", styles: ["#blocker{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0e0d0d69;z-index:999999}.spinner{position:absolute;top:50%;left:40%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ActionStateSpinnerComponent, decorators: [{
19
19
  type: Component,
20
- args: [{ selector: 'lib-action-state-spinner', standalone: true, imports: [NgIf, AsyncPipe, MatProgressSpinnerModule], template: "<div id=\"blocker\" *ngIf=\"(serverActionStatus$ | async)?.status === serverStatusTypes.inProgress\">\r\n <mat-spinner class=\"spinner\" [diameter]=\"200\" />\r\n</div>\r\n", styles: ["#blocker{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0e0d0d69;z-index:999999}.spinner{position:absolute;top:50%;left:40%;transform:translate(-50%,-50%)}\n"] }]
20
+ args: [{ selector: 'lib-action-state-spinner', standalone: true, imports: [AsyncPipe, MatProgressSpinnerModule], template: "@if((serverActionStatus$ | async)?.status === serverStatusTypes.inProgress){\r\n <div id=\"blocker\">\r\n <mat-spinner class=\"spinner\" [diameter]=\"200\" />\r\n </div>\r\n}\r\n\r\n", styles: ["#blocker{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0e0d0d69;z-index:999999}.spinner{position:absolute;top:50%;left:40%;transform:translate(-50%,-50%)}\n"] }]
21
21
  }], propDecorators: { status$: [{
22
22
  type: Input
23
23
  }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXRlLXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2FjdGlvbi1zdGF0ZS9hY3Rpb24tc3RhdGUtc3Bpbm5lci9hY3Rpb24tc3RhdGUtc3Bpbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvYWN0aW9uLXN0YXRlL2FjdGlvbi1zdGF0ZS1zcGlubmVyL2FjdGlvbi1zdGF0ZS1zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFTOUUsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQVdFLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO0tBT3ZDO0lBTEMsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDMUMsT0FBTyxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUcsR0FBRyxDQUFDLENBQy9ELENBQUM7SUFDSixDQUFDOzhHQVZVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLG9IQ2R4QywrS0FHQSw2T0RTWSxJQUFJLHdGQUFFLFNBQVMsNkNBQUUsd0JBQXdCOzsyRkFFeEMsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixDQUFDOzhCQUkzQyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBY3Rpb25TdGF0dXMsIHNlcnZlclN0YXR1c1R5cGVzIH0gZnJvbSAnLi4vbmdyeCc7XHJcbmltcG9ydCB7IGRlbGF5T24gfSBmcm9tICcuLi8uLi9yeGpzJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hY3Rpb24tc3RhdGUtc3Bpbm5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1zdGF0ZS1zcGlubmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tc3RhdGUtc3Bpbm5lci5jb21wb25lbnQuY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdJZiwgQXN5bmNQaXBlLCBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25TdGF0ZVNwaW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBzdGF0dXMkITogT2JzZXJ2YWJsZTxBY3Rpb25TdGF0dXM+O1xyXG4gIHNlcnZlckFjdGlvblN0YXR1cyQhOiBPYnNlcnZhYmxlPEFjdGlvblN0YXR1cz47XHJcbiAgc2VydmVyU3RhdHVzVHlwZXMgPSBzZXJ2ZXJTdGF0dXNUeXBlcztcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNlcnZlckFjdGlvblN0YXR1cyQgPSB0aGlzLnN0YXR1cyQucGlwZShcclxuICAgICAgZGVsYXlPbiggYSA9PiBhLnN0YXR1cyA9PT0gc2VydmVyU3RhdHVzVHlwZXMuaW5Qcm9ncmVzcyAsIDUwMClcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJibG9ja2VyXCIgKm5nSWY9XCIoc2VydmVyQWN0aW9uU3RhdHVzJCB8IGFzeW5jKT8uc3RhdHVzID09PSBzZXJ2ZXJTdGF0dXNUeXBlcy5pblByb2dyZXNzXCI+XHJcbiAgPG1hdC1zcGlubmVyIGNsYXNzPVwic3Bpbm5lclwiIFtkaWFtZXRlcl09XCIyMDBcIiAvPlxyXG48L2Rpdj5cclxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXRlLXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2FjdGlvbi1zdGF0ZS9hY3Rpb24tc3RhdGUtc3Bpbm5lci9hY3Rpb24tc3RhdGUtc3Bpbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvYWN0aW9uLXN0YXRlL2FjdGlvbi1zdGF0ZS1zcGlubmVyL2FjdGlvbi1zdGF0ZS1zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVM5RSxNQUFNLE9BQU8sMkJBQTJCO0lBUHhDO1FBV0Usc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7S0FPdkM7SUFMQyxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUMxQyxPQUFPLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLFVBQVUsRUFBRyxHQUFHLENBQUMsQ0FDL0QsQ0FBQztJQUNKLENBQUM7OEdBVlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsb0hDZHhDLDZMQU1BLHdPRE1ZLFNBQVMsNkNBQUUsd0JBQXdCOzsyRkFFbEMsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUM7OEJBSXJDLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFjdGlvblN0YXR1cywgc2VydmVyU3RhdHVzVHlwZXMgfSBmcm9tICcuLi9uZ3J4JztcclxuaW1wb3J0IHsgZGVsYXlPbiB9IGZyb20gJy4uLy4uL3J4anMnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGlvbi1zdGF0ZS1zcGlubmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLXN0YXRlLXNwaW5uZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1zdGF0ZS1zcGlubmVyLmNvbXBvbmVudC5jc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGlvblN0YXRlU3Bpbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHN0YXR1cyQhOiBPYnNlcnZhYmxlPEFjdGlvblN0YXR1cz47XHJcbiAgc2VydmVyQWN0aW9uU3RhdHVzJCE6IE9ic2VydmFibGU8QWN0aW9uU3RhdHVzPjtcclxuICBzZXJ2ZXJTdGF0dXNUeXBlcyA9IHNlcnZlclN0YXR1c1R5cGVzO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2VydmVyQWN0aW9uU3RhdHVzJCA9IHRoaXMuc3RhdHVzJC5waXBlKFxyXG4gICAgICBkZWxheU9uKCBhID0+IGEuc3RhdHVzID09PSBzZXJ2ZXJTdGF0dXNUeXBlcy5pblByb2dyZXNzICwgNTAwKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQGlmKChzZXJ2ZXJBY3Rpb25TdGF0dXMkIHwgYXN5bmMpPy5zdGF0dXMgPT09IHNlcnZlclN0YXR1c1R5cGVzLmluUHJvZ3Jlc3Mpe1xyXG4gIDxkaXYgaWQ9XCJibG9ja2VyXCI+XHJcbiAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJzcGlubmVyXCIgW2RpYW1ldGVyXT1cIjIwMFwiIC8+XHJcbiAgPC9kaXY+XHJcbn1cclxuXHJcbiJdfQ==
@@ -70,4 +70,4 @@ export function createFilterFunc(filter) {
70
70
  };
71
71
  }
72
72
  const FalseyValueCanBeIncludedFilterTypes = [FilterType.IsNull, FilterType.NumberNotEqual, FilterType.DateIsNotOn, FilterType.StringDoesNotContain];
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL2ZpbHRlci1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQXNCLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNLLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFxQjdCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBMkM7SUFDbkUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUcsZUFBZTtJQUNyQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRyxhQUFhO0lBQ2hDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGlCQUFpQjtJQUN2QyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRyxlQUFlO0lBQ3RDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFHLGVBQWU7SUFDbkMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUcsZUFBZTtJQUNwQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRyxlQUFlO0lBQ3BDLENBQUMsU0FB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QztJQUM1RSxJQUFHLENBQUMsSUFBSSxFQUFFO1FBQ1IsSUFBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUM7WUFDckMsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckQ7S0FDRjtJQUVELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQyxDQUFDO0lBQzlGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNoQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksbUJBQW1CLENBQUM7WUFDbEQsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQztBQUNKLENBQUM7QUFLRCxNQUFNLG1DQUFtQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBQyxVQUFVLENBQUMsY0FBYyxFQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdHJpbmdGaWx0ZXJNYXAsIERhdGVGaWx0ZXJNYXAsIE51bWJlckZpbHRlck1hcCwgQm9vbGVhbkZpbHRlck1hcCwgRmlsdGVyVHlwZSwgRmlsdGVyVG9GaWx0ZXJzTWFwLCBFbnVtRmlsdGVyTWFwLCBEYXRlVGltZUZpbHRlck1hcCB9IGZyb20gJy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgRW51bUZpbHRlckZ1bmNzLCBTdHJpbmdGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9zdHJpbmctZmlsdGVyLWZ1bmN0aW9uJztcclxuaW1wb3J0IHsgTnVtYmVyRmlsdGVyRnVuY3MgfSBmcm9tICcuLi9mdW5jdGlvbnMvbnVtYmVyLWZpbHRlci1mdW5jdGlvbic7XHJcbmltcG9ydCB7IERhdGVGaWx0ZXJGdW5jcywgRGF0ZVRpbWVGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kYXRlLWZpbHRlci1mdW5jdGlvbic7XHJcbmltcG9ydCB7IEJvb2xlYW5GaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9ib29sZWFuLWZpbHRlci1mdW5jdGlvbic7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xyXG5pbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbnR5cGUgRmlsdGVyVHlwZU1hcFR5cGUgPSB7IFtrZXkgaW4gRmllbGRUeXBlXTogRmlsdGVyVG9GaWx0ZXJzTWFwfTtcclxuZXhwb3J0IHR5cGUgVW5tYXBwZWRUeXBlcyA9IEZpZWxkVHlwZS5FeHByZXNzaW9uIHxcclxuICBGaWVsZFR5cGUuSGlkZGVuIHxcclxuICBGaWVsZFR5cGUuSW1hZ2VVcmw7XHJcblxyXG5cclxuZXhwb3J0IHR5cGUgbWFwcGVkRmllbGRUeXBlcyA9XHJcbiAgRmllbGRUeXBlLlVua25vd24gfFxyXG4gIEZpZWxkVHlwZS5EYXRlIHxcclxuICBGaWVsZFR5cGUuRGF0ZVRpbWUgfFxyXG4gIEZpZWxkVHlwZS5DdXJyZW5jeSB8XHJcbiAgRmllbGRUeXBlLkFycmF5IHxcclxuICBGaWVsZFR5cGUuTnVtYmVyIHxcclxuICBGaWVsZFR5cGUuU3RyaW5nIHxcclxuICBGaWVsZFR5cGUuQm9vbGVhbiB8XHJcbiAgRmllbGRUeXBlLlBob25lTnVtYmVyIHxcclxuICBGaWVsZFR5cGUuTGluayB8XHJcbiAgRmllbGRUeXBlLkVudW07XHJcblxyXG5leHBvcnQgY29uc3QgZmlsdGVyVHlwZU1hcDogT21pdDxGaWx0ZXJUeXBlTWFwVHlwZSwgVW5tYXBwZWRUeXBlcz4gPSB7XHJcbiAgW0ZpZWxkVHlwZS5Vbmtub3duXSA6IFN0cmluZ0ZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLkRhdGVdIDogRGF0ZUZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLkRhdGVUaW1lXTogRGF0ZVRpbWVGaWx0ZXJNYXAsXHJcbiAgW0ZpZWxkVHlwZS5DdXJyZW5jeV0gOiBOdW1iZXJGaWx0ZXJNYXAsXHJcbiAgW0ZpZWxkVHlwZS5BcnJheV0gOiBTdHJpbmdGaWx0ZXJNYXAsXHJcbiAgW0ZpZWxkVHlwZS5OdW1iZXJdIDogTnVtYmVyRmlsdGVyTWFwLFxyXG4gIFtGaWVsZFR5cGUuU3RyaW5nXSA6IFN0cmluZ0ZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLkJvb2xlYW5dIDogQm9vbGVhbkZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLlBob25lTnVtYmVyXSA6IFN0cmluZ0ZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLkxpbmtdIDogU3RyaW5nRmlsdGVyTWFwLFxyXG4gIFtGaWVsZFR5cGUuRW51bV0gOiBFbnVtRmlsdGVyTWFwLFxyXG59O1xyXG5cclxuY29uc3QgZmlsdGVyRmFjdG9yeU1hcDogRGljdGlvbmFyeTxGaWx0ZXJGdW5jPGFueSxhbnk+PiA9IHtcclxuICBbRmlsdGVyVHlwZS5BbmRdIDogKGZpbHRlcjogRmlsdGVySW5mbyApOiAoKG9iajogYW55KSA9PiBib29sZWFuKSA9PiAge1xyXG4gICAgY29uc3QgZmlsdGVycyA9IChmaWx0ZXIuZmlsdGVyVmFsdWUgYXMgRmlsdGVySW5mb1tdKS5tYXAoY3JlYXRlRmlsdGVyRnVuYyk7XHJcbiAgICByZXR1cm4gKG9iajogYW55KSA6IGJvb2xlYW4gPT4gZmlsdGVycy5ldmVyeSggZiA9PiBmKG9iaikpO1xyXG4gIH0sXHJcbiAgW0ZpbHRlclR5cGUuSW5dIDogKGZpbHRlcjogRmlsdGVySW5mbyApOiAob2JqOiBhbnkpID0+IGJvb2xlYW4gPT4gIHtcclxuICAgIGNvbnN0IGZpbHRlcnMgPSAoZmlsdGVyLmZpbHRlclZhbHVlIGFzIEZpbHRlckluZm9bXSkubWFwKGNyZWF0ZUZpbHRlckZ1bmMpO1xyXG4gICAgcmV0dXJuIChvYmo6IGFueSkgOiBib29sZWFuID0+IGZpbHRlcnMuc29tZSggZiA9PiBmKG9iaikpO1xyXG4gIH0sXHJcbn07XHJcblxyXG5jb25zdCBmaWx0ZXJUeXBlRnVuY01hcCA6IERpY3Rpb25hcnk8RGljdGlvbmFyeTxGaWx0ZXJGdW5jPGFueSxhbnk+Pj4gPSB7XHJcbiAgW0ZpZWxkVHlwZS5TdHJpbmddIDogU3RyaW5nRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5BcnJheV0gOiBTdHJpbmdGaWx0ZXJGdW5jcyxcclxuICBbRmllbGRUeXBlLkN1cnJlbmN5XSA6IE51bWJlckZpbHRlckZ1bmNzLFxyXG4gIFtGaWVsZFR5cGUuUGhvbmVOdW1iZXJdIDogU3RyaW5nRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5EYXRlXSA6IERhdGVGaWx0ZXJGdW5jcyxcclxuICBbRmllbGRUeXBlLkRhdGVUaW1lXSA6IERhdGVUaW1lRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5OdW1iZXJdIDogTnVtYmVyRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5Cb29sZWFuXSA6IEJvb2xlYW5GaWx0ZXJGdW5jcyxcclxuICBbRmllbGRUeXBlLlVua25vd25dIDogU3RyaW5nRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5FbnVtXSA6IEVudW1GaWx0ZXJGdW5jcyAsXHJcbiAgW0ZpZWxkVHlwZS5MaW5rXSA6IFN0cmluZ0ZpbHRlckZ1bmNzLFxyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJTdGF0ZSB7XHJcbiAgZmlsdGVySWQ6IHN0cmluZztcclxuICBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlO1xyXG4gIGZpbHRlclZhbHVlPzogYW55O1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckluZm88VCBleHRlbmRzIEZpZWxkVHlwZSA9IGFueT4gZXh0ZW5kcyBGaWx0ZXJTdGF0ZSB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIGZpZWxkVHlwZTogVDtcclxuICAgIF9pc0V4dGVybmFseU1hbmFnZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxGaWx0ZXI8VCBleHRlbmRzIEZpZWxkVHlwZSA9IGFueT4ge1xyXG4gIGZpbHRlcklkPzogc3RyaW5nO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGZpZWxkVHlwZTogVDtcclxuICBmaWx0ZXJUeXBlPzogRmlsdGVyVHlwZTtcclxuICBmaWx0ZXJWYWx1ZT86IGFueTtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUZpbHRlcjxUIGV4dGVuZHMgRmllbGRUeXBlID0gYW55PiAgZXh0ZW5kcyBGaWx0ZXJTdGF0ZSB7XHJcbiAgcHJlZGljYXRlOiBQcmVkaWNhdGU8VD47XHJcbiAgZmlsdGVyVHlwZTogRmlsdGVyVHlwZS5DdXN0b207XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0N1c3RvbUZpbHRlcihmaWx0ZXIgOiBGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyKSA6ICBmaWx0ZXIgaXMgQ3VzdG9tRmlsdGVyIHtcclxuICByZXR1cm4gZmlsdGVyICYmIGZpbHRlci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkN1c3RvbTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsdGVySW5mbyhmaWx0ZXIgOiBGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyKSA6ICBmaWx0ZXIgaXMgRmlsdGVySW5mbyB7XHJcbiAgcmV0dXJuICBmaWx0ZXIgJiYgdHlwZW9mIChmaWx0ZXIgYXMgRmlsdGVySW5mbykua2V5ID09PSAnc3RyaW5nJyAmJiBmaWx0ZXIuZmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5DdXN0b207XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQcmVkaWNhdGU6IFByZWRpY2F0ZTxhbnk+ID0gKCkgPT4gdHJ1ZTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWx0ZXJGdW5jKGZpbHRlcjogRmlsdGVySW5mbyB8IEN1c3RvbUZpbHRlcik6IFByZWRpY2F0ZTxhbnk+ICB7XHJcbiAgaWYoaXNDdXN0b21GaWx0ZXIoZmlsdGVyKSkge1xyXG4gICAgcmV0dXJuIGZpbHRlci5hY3RpdmUgPyBmaWx0ZXIucHJlZGljYXRlIDogZGVmYXVsdFByZWRpY2F0ZTtcclxuICB9XHJcbiAgaWYgKGZpbHRlci5maWx0ZXJWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gZGVmYXVsdFByZWRpY2F0ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGZ1bmMgPSBmaWx0ZXJUeXBlRnVuY01hcFtmaWx0ZXIuZmllbGRUeXBlXVtmaWx0ZXIuZmlsdGVyVHlwZV0oZmlsdGVyKTtcclxuICBpZighZnVuYykge1xyXG4gICAgaWYoZmlsdGVyRmFjdG9yeU1hcFtmaWx0ZXIuZmlsdGVyVHlwZV0pe1xyXG4gICAgICByZXR1cm4gZmlsdGVyRmFjdG9yeU1hcFtmaWx0ZXIuZmlsdGVyVHlwZSFdKGZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYW5ub3RCZVRydWVGb3JOdWxsID0gIUZhbHNleVZhbHVlQ2FuQmVJbmNsdWRlZEZpbHRlclR5cGVzLmluY2x1ZGVzKGZpbHRlci5maWx0ZXJUeXBlISk7XHJcbiAgcmV0dXJuIChyb3dPYmopID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gZ2V0KHJvd09iaiwgZmlsdGVyLmtleSk7XHJcbiAgICByZXR1cm4gKCh2YWx1ZSA9PSB1bmRlZmluZWQpICYmIGNhbm5vdEJlVHJ1ZUZvck51bGwpXHJcbiAgICAgID8gZmFsc2VcclxuICAgICAgOiBmdW5jKCB2YWx1ZSk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRmlsdGVyRnVuYzxULFYgPSBUPiA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8pID0+ICh2YWw6VikgPT4gYm9vbGVhbjtcclxuZXhwb3J0IHR5cGUgUmFuZ2U8VD4gPSB7U3RhcnQ6VCxFbmQ6VH07XHJcblxyXG5jb25zdCBGYWxzZXlWYWx1ZUNhbkJlSW5jbHVkZWRGaWx0ZXJUeXBlcyA9IFtGaWx0ZXJUeXBlLklzTnVsbCxGaWx0ZXJUeXBlLk51bWJlck5vdEVxdWFsLEZpbHRlclR5cGUuRGF0ZUlzTm90T24sRmlsdGVyVHlwZS5TdHJpbmdEb2VzTm90Q29udGFpbl07XHJcbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL2ZpbHRlci1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQXNCLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNLLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFpQjdCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBSTtJQUM1QixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRyxlQUFlO0lBQ3JDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFHLGFBQWE7SUFDaEMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsaUJBQWlCO0lBQ3ZDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFHLGVBQWU7SUFDdEMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUcsZUFBZTtJQUNuQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRyxlQUFlO0lBQ3BDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFHLGVBQWU7SUFDcEMsQ0FBQyxTQUFT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QztJQUM1RSxJQUFHLENBQUMsSUFBSSxFQUFFO1FBQ1IsSUFBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUM7WUFDckMsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckQ7S0FDRjtJQUVELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQyxDQUFDO0lBQzlGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNoQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksbUJBQW1CLENBQUM7WUFDbEQsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQztBQUNKLENBQUM7QUFLRCxNQUFNLG1DQUFtQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBQyxVQUFVLENBQUMsY0FBYyxFQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdHJpbmdGaWx0ZXJNYXAsIERhdGVGaWx0ZXJNYXAsIE51bWJlckZpbHRlck1hcCwgQm9vbGVhbkZpbHRlck1hcCwgRmlsdGVyVHlwZSwgRmlsdGVyVG9GaWx0ZXJzTWFwLCBFbnVtRmlsdGVyTWFwLCBEYXRlVGltZUZpbHRlck1hcCB9IGZyb20gJy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgRW51bUZpbHRlckZ1bmNzLCBTdHJpbmdGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9zdHJpbmctZmlsdGVyLWZ1bmN0aW9uJztcclxuaW1wb3J0IHsgTnVtYmVyRmlsdGVyRnVuY3MgfSBmcm9tICcuLi9mdW5jdGlvbnMvbnVtYmVyLWZpbHRlci1mdW5jdGlvbic7XHJcbmltcG9ydCB7IERhdGVGaWx0ZXJGdW5jcywgRGF0ZVRpbWVGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kYXRlLWZpbHRlci1mdW5jdGlvbic7XHJcbmltcG9ydCB7IEJvb2xlYW5GaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9ib29sZWFuLWZpbHRlci1mdW5jdGlvbic7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xyXG5pbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbmV4cG9ydCB0eXBlIG1hcHBlZEZpZWxkVHlwZXMgPVxyXG4gIEZpZWxkVHlwZS5Vbmtub3duIHxcclxuICBGaWVsZFR5cGUuRGF0ZSB8XHJcbiAgRmllbGRUeXBlLkRhdGVUaW1lIHxcclxuICBGaWVsZFR5cGUuQ3VycmVuY3kgfFxyXG4gIEZpZWxkVHlwZS5BcnJheSB8XHJcbiAgRmllbGRUeXBlLk51bWJlciB8XHJcbiAgRmllbGRUeXBlLlN0cmluZyB8XHJcbiAgRmllbGRUeXBlLkJvb2xlYW4gfFxyXG4gIEZpZWxkVHlwZS5QaG9uZU51bWJlciB8XHJcbiAgRmllbGRUeXBlLkxpbmsgfFxyXG4gIEZpZWxkVHlwZS5FbnVtO1xyXG5cclxudHlwZSBNYXBwZWRUeXBlcyA9IEV4Y2x1ZGU8dHlwZW9mIEZpZWxkVHlwZVtrZXlvZiB0eXBlb2YgRmllbGRUeXBlXSxGaWVsZFR5cGUuRXhwcmVzc2lvbiB8IEZpZWxkVHlwZS5IaWRkZW4gfCBGaWVsZFR5cGUuSW1hZ2VVcmw+XHJcblxyXG5leHBvcnQgY29uc3QgZmlsdGVyVHlwZU1hcCAgPSB7XHJcbiAgW0ZpZWxkVHlwZS5Vbmtub3duXSA6IFN0cmluZ0ZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLkRhdGVdIDogRGF0ZUZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLkRhdGVUaW1lXTogRGF0ZVRpbWVGaWx0ZXJNYXAsXHJcbiAgW0ZpZWxkVHlwZS5DdXJyZW5jeV0gOiBOdW1iZXJGaWx0ZXJNYXAsXHJcbiAgW0ZpZWxkVHlwZS5BcnJheV0gOiBTdHJpbmdGaWx0ZXJNYXAsXHJcbiAgW0ZpZWxkVHlwZS5OdW1iZXJdIDogTnVtYmVyRmlsdGVyTWFwLFxyXG4gIFtGaWVsZFR5cGUuU3RyaW5nXSA6IFN0cmluZ0ZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLkJvb2xlYW5dIDogQm9vbGVhbkZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLlBob25lTnVtYmVyXSA6IFN0cmluZ0ZpbHRlck1hcCxcclxuICBbRmllbGRUeXBlLkxpbmtdIDogU3RyaW5nRmlsdGVyTWFwLFxyXG4gIFtGaWVsZFR5cGUuRW51bV0gOiBFbnVtRmlsdGVyTWFwLFxyXG59IGFzIGNvbnN0IHNhdGlzZmllcyAge1trZXkgaW4gTWFwcGVkVHlwZXNdOiBGaWx0ZXJUb0ZpbHRlcnNNYXB9O1xyXG5cclxuY29uc3QgZmlsdGVyRmFjdG9yeU1hcDogRGljdGlvbmFyeTxGaWx0ZXJGdW5jPGFueSxhbnk+PiA9IHtcclxuICBbRmlsdGVyVHlwZS5BbmRdIDogKGZpbHRlcjogRmlsdGVySW5mbyApOiAoKG9iajogYW55KSA9PiBib29sZWFuKSA9PiAge1xyXG4gICAgY29uc3QgZmlsdGVycyA9IChmaWx0ZXIuZmlsdGVyVmFsdWUgYXMgRmlsdGVySW5mb1tdKS5tYXAoY3JlYXRlRmlsdGVyRnVuYyk7XHJcbiAgICByZXR1cm4gKG9iajogYW55KSA6IGJvb2xlYW4gPT4gZmlsdGVycy5ldmVyeSggZiA9PiBmKG9iaikpO1xyXG4gIH0sXHJcbiAgW0ZpbHRlclR5cGUuSW5dIDogKGZpbHRlcjogRmlsdGVySW5mbyApOiAob2JqOiBhbnkpID0+IGJvb2xlYW4gPT4gIHtcclxuICAgIGNvbnN0IGZpbHRlcnMgPSAoZmlsdGVyLmZpbHRlclZhbHVlIGFzIEZpbHRlckluZm9bXSkubWFwKGNyZWF0ZUZpbHRlckZ1bmMpO1xyXG4gICAgcmV0dXJuIChvYmo6IGFueSkgOiBib29sZWFuID0+IGZpbHRlcnMuc29tZSggZiA9PiBmKG9iaikpO1xyXG4gIH0sXHJcbn07XHJcblxyXG5jb25zdCBmaWx0ZXJUeXBlRnVuY01hcCA6IERpY3Rpb25hcnk8RGljdGlvbmFyeTxGaWx0ZXJGdW5jPGFueSxhbnk+Pj4gPSB7XHJcbiAgW0ZpZWxkVHlwZS5TdHJpbmddIDogU3RyaW5nRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5BcnJheV0gOiBTdHJpbmdGaWx0ZXJGdW5jcyxcclxuICBbRmllbGRUeXBlLkN1cnJlbmN5XSA6IE51bWJlckZpbHRlckZ1bmNzLFxyXG4gIFtGaWVsZFR5cGUuUGhvbmVOdW1iZXJdIDogU3RyaW5nRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5EYXRlXSA6IERhdGVGaWx0ZXJGdW5jcyxcclxuICBbRmllbGRUeXBlLkRhdGVUaW1lXSA6IERhdGVUaW1lRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5OdW1iZXJdIDogTnVtYmVyRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5Cb29sZWFuXSA6IEJvb2xlYW5GaWx0ZXJGdW5jcyxcclxuICBbRmllbGRUeXBlLlVua25vd25dIDogU3RyaW5nRmlsdGVyRnVuY3MsXHJcbiAgW0ZpZWxkVHlwZS5FbnVtXSA6IEVudW1GaWx0ZXJGdW5jcyAsXHJcbiAgW0ZpZWxkVHlwZS5MaW5rXSA6IFN0cmluZ0ZpbHRlckZ1bmNzLFxyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJTdGF0ZSB7XHJcbiAgZmlsdGVySWQ6IHN0cmluZztcclxuICBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlO1xyXG4gIGZpbHRlclZhbHVlPzogYW55O1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckluZm88VCBleHRlbmRzIEZpZWxkVHlwZSA9IGFueT4gZXh0ZW5kcyBGaWx0ZXJTdGF0ZSB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIGZpZWxkVHlwZTogVDtcclxuICAgIF9pc0V4dGVybmFseU1hbmFnZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxGaWx0ZXI8VCBleHRlbmRzIEZpZWxkVHlwZSA9IGFueT4ge1xyXG4gIGZpbHRlcklkPzogc3RyaW5nO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGZpZWxkVHlwZTogVDtcclxuICBmaWx0ZXJUeXBlPzogRmlsdGVyVHlwZTtcclxuICBmaWx0ZXJWYWx1ZT86IGFueTtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUZpbHRlcjxUIGV4dGVuZHMgRmllbGRUeXBlID0gYW55PiAgZXh0ZW5kcyBGaWx0ZXJTdGF0ZSB7XHJcbiAgcHJlZGljYXRlOiBQcmVkaWNhdGU8VD47XHJcbiAgZmlsdGVyVHlwZTogRmlsdGVyVHlwZS5DdXN0b207XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0N1c3RvbUZpbHRlcihmaWx0ZXIgOiBGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyKSA6ICBmaWx0ZXIgaXMgQ3VzdG9tRmlsdGVyIHtcclxuICByZXR1cm4gZmlsdGVyICYmIGZpbHRlci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkN1c3RvbTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsdGVySW5mbyhmaWx0ZXIgOiBGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyKSA6ICBmaWx0ZXIgaXMgRmlsdGVySW5mbyB7XHJcbiAgcmV0dXJuICBmaWx0ZXIgJiYgdHlwZW9mIChmaWx0ZXIgYXMgRmlsdGVySW5mbykua2V5ID09PSAnc3RyaW5nJyAmJiBmaWx0ZXIuZmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5DdXN0b207XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQcmVkaWNhdGU6IFByZWRpY2F0ZTxhbnk+ID0gKCkgPT4gdHJ1ZTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWx0ZXJGdW5jKGZpbHRlcjogRmlsdGVySW5mbyB8IEN1c3RvbUZpbHRlcik6IFByZWRpY2F0ZTxhbnk+ICB7XHJcbiAgaWYoaXNDdXN0b21GaWx0ZXIoZmlsdGVyKSkge1xyXG4gICAgcmV0dXJuIGZpbHRlci5hY3RpdmUgPyBmaWx0ZXIucHJlZGljYXRlIDogZGVmYXVsdFByZWRpY2F0ZTtcclxuICB9XHJcbiAgaWYgKGZpbHRlci5maWx0ZXJWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gZGVmYXVsdFByZWRpY2F0ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGZ1bmMgPSBmaWx0ZXJUeXBlRnVuY01hcFtmaWx0ZXIuZmllbGRUeXBlXVtmaWx0ZXIuZmlsdGVyVHlwZV0oZmlsdGVyKTtcclxuICBpZighZnVuYykge1xyXG4gICAgaWYoZmlsdGVyRmFjdG9yeU1hcFtmaWx0ZXIuZmlsdGVyVHlwZV0pe1xyXG4gICAgICByZXR1cm4gZmlsdGVyRmFjdG9yeU1hcFtmaWx0ZXIuZmlsdGVyVHlwZSFdKGZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYW5ub3RCZVRydWVGb3JOdWxsID0gIUZhbHNleVZhbHVlQ2FuQmVJbmNsdWRlZEZpbHRlclR5cGVzLmluY2x1ZGVzKGZpbHRlci5maWx0ZXJUeXBlISk7XHJcbiAgcmV0dXJuIChyb3dPYmopID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gZ2V0KHJvd09iaiwgZmlsdGVyLmtleSk7XHJcbiAgICByZXR1cm4gKCh2YWx1ZSA9PSB1bmRlZmluZWQpICYmIGNhbm5vdEJlVHJ1ZUZvck51bGwpXHJcbiAgICAgID8gZmFsc2VcclxuICAgICAgOiBmdW5jKCB2YWx1ZSk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRmlsdGVyRnVuYzxULFYgPSBUPiA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8pID0+ICh2YWw6VikgPT4gYm9vbGVhbjtcclxuZXhwb3J0IHR5cGUgUmFuZ2U8VD4gPSB7U3RhcnQ6VCxFbmQ6VH07XHJcblxyXG5jb25zdCBGYWxzZXlWYWx1ZUNhbkJlSW5jbHVkZWRGaWx0ZXJUeXBlcyA9IFtGaWx0ZXJUeXBlLklzTnVsbCxGaWx0ZXJUeXBlLk51bWJlck5vdEVxdWFsLEZpbHRlclR5cGUuRGF0ZUlzTm90T24sRmlsdGVyVHlwZS5TdHJpbmdEb2VzTm90Q29udGFpbl07XHJcbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, Inject } from '@angular/core';
2
2
  import { ArrayStyle } from '../interfaces/report-def';
3
3
  import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
4
- import { NgFor, NgIf, NgSwitch, NgSwitchCase } from '@angular/common';
5
4
  import * as i0 from "@angular/core";
6
5
  export class ArrayColumnComponent {
7
6
  constructor(config) {
@@ -13,40 +12,49 @@ export class ArrayColumnComponent {
13
12
  this.array = (this.array ?? []).slice(0, this.additional.limit);
14
13
  }
15
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ArrayColumnComponent, deps: [{ token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: ArrayColumnComponent, isStandalone: true, selector: "tb-array-column", inputs: { array: "array", metaData: "metaData" }, ngImport: i0, template: `
17
- <ng-container *ngIf="array.length === 0; else hasVals">-</ng-container>
18
- <ng-template #hasVals>
19
- <ng-container [ngSwitch]="additional.arrayStyle">
20
- <ng-container *ngSwitchCase="ArrayStyle.CommaDelimited">
21
- <span *ngFor="let val of array; last as isLast">{{val}}<ng-container *ngIf="!isLast">, </ng-container> </span>
22
- </ng-container>
23
- <ng-container *ngSwitchCase="ArrayStyle.NewLine">
24
- <span *ngFor="let val of array; last as isLast">{{val}}<ng-container *ngIf="!isLast"><br /></ng-container> </span>
25
- </ng-container>
26
- </ng-container>
27
- </ng-template>
28
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: ArrayColumnComponent, isStandalone: true, selector: "tb-array-column", inputs: { array: "array", metaData: "metaData" }, ngImport: i0, template: `
16
+ @if(!array.length){
17
+ -
18
+ } @else {
19
+ @switch (additional.arrayStyle) {
20
+ @case (ArrayStyle.CommaDelimited) {
21
+ @for(val of array; track $index){
22
+ {{val + (!$last ? ',' : '')}}
23
+ }
24
+ }
25
+ @case(ArrayStyle.NewLine){
26
+ @for(val of array; track $index){
27
+ {{val}}
28
+ @if(!$last){ <br/> }
29
+ }
30
+ }
31
+ }
32
+ }
33
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
34
  }
30
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ArrayColumnComponent, decorators: [{
31
36
  type: Component,
32
37
  args: [{
33
38
  selector: 'tb-array-column',
34
39
  standalone: true,
35
- imports: [
36
- NgIf, NgSwitch, NgSwitchCase, NgFor
37
- ],
38
40
  template: `
39
- <ng-container *ngIf="array.length === 0; else hasVals">-</ng-container>
40
- <ng-template #hasVals>
41
- <ng-container [ngSwitch]="additional.arrayStyle">
42
- <ng-container *ngSwitchCase="ArrayStyle.CommaDelimited">
43
- <span *ngFor="let val of array; last as isLast">{{val}}<ng-container *ngIf="!isLast">, </ng-container> </span>
44
- </ng-container>
45
- <ng-container *ngSwitchCase="ArrayStyle.NewLine">
46
- <span *ngFor="let val of array; last as isLast">{{val}}<ng-container *ngIf="!isLast"><br /></ng-container> </span>
47
- </ng-container>
48
- </ng-container>
49
- </ng-template>
41
+ @if(!array.length){
42
+ -
43
+ } @else {
44
+ @switch (additional.arrayStyle) {
45
+ @case (ArrayStyle.CommaDelimited) {
46
+ @for(val of array; track $index){
47
+ {{val + (!$last ? ',' : '')}}
48
+ }
49
+ }
50
+ @case(ArrayStyle.NewLine){
51
+ @for(val of array; track $index){
52
+ {{val}}
53
+ @if(!$last){ <br/> }
54
+ }
55
+ }
56
+ }
57
+ }
50
58
  `,
51
59
  changeDetection: ChangeDetectionStrategy.OnPush
52
60
  }]
@@ -58,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
58
66
  }], metaData: [{
59
67
  type: Input
60
68
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvYXJyYXktY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQXNCLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQXdCdEUsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUFzRCxNQUEwQjtRQUExQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUxoRixlQUFVLEdBQUcsVUFBVSxDQUFDO0lBUXhCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQXFCLENBQUM7UUFDekksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBRSxDQUFDO0lBRW5FLENBQUM7OEdBZlUsb0JBQW9CLGtCQU1WLHVCQUF1QjtrR0FOakMsb0JBQW9CLDZIQWZyQjs7Ozs7Ozs7Ozs7O0dBWVQsNERBZEMsSUFBSSw2RkFBRSxRQUFRLDZFQUFFLFlBQVkscUZBQUUsS0FBSzs7MkZBaUIxQixvQkFBb0I7a0JBckJoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSztxQkFDcEM7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7R0FZVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQU9lLE1BQU07MkJBQUMsdUJBQXVCO3lDQUhuQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXJyYXlTdHlsZSwgQXJyYXlBZGRpdGlvbmFsLCBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuLCBUYWJsZUJ1aWxkZXJDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IE5nRm9yLCBOZ0lmLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWFycmF5LWNvbHVtbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0lmLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ0ZvclxyXG4gIF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8bmctY29udGFpbmVyICAqbmdJZj1cImFycmF5Lmxlbmd0aCA9PT0gMDsgZWxzZSBoYXNWYWxzXCI+LTwvbmctY29udGFpbmVyPlxyXG4gIDxuZy10ZW1wbGF0ZSAjaGFzVmFscz5cclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFkZGl0aW9uYWwuYXJyYXlTdHlsZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJBcnJheVN0eWxlLkNvbW1hRGVsaW1pdGVkXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHZhbCBvZiBhcnJheTsgbGFzdCBhcyBpc0xhc3RcIj57e3ZhbH19PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xhc3RcIj4sIDwvbmctY29udGFpbmVyPiA8L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJBcnJheVN0eWxlLk5ld0xpbmVcIj5cclxuICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgdmFsIG9mIGFycmF5OyBsYXN0IGFzIGlzTGFzdFwiPnt7dmFsfX08bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTGFzdFwiPjxiciAvPjwvbmctY29udGFpbmVyPiA8L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcnJheUNvbHVtbkNvbXBvbmVudCB7XHJcbiAgQXJyYXlTdHlsZSA9IEFycmF5U3R5bGU7XHJcbiAgYWRkaXRpb25hbCE6IEFycmF5QWRkaXRpb25hbDtcclxuICBASW5wdXQoKSBhcnJheSE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIG1ldGFEYXRhITogTWV0YURhdGE7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCBASW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKSBwcml2YXRlIGNvbmZpZzogVGFibGVCdWlsZGVyQ29uZmlnXHJcbiAgICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYWRkaXRpb25hbCA9IHRoaXMubWV0YURhdGE/LmFkZGl0aW9uYWwgPz8gIHRoaXMuY29uZmlnLmFycmF5SW5mbyA/PyB7IGxpbWl0OiAzLCBhcnJheVN0eWxlOiBBcnJheVN0eWxlLk5ld0xpbmUgfSBhcyBBcnJheUFkZGl0aW9uYWw7XHJcbiAgICB0aGlzLmFycmF5ID0gKHRoaXMuYXJyYXkgPz8gW10pLnNsaWNlKDAsIHRoaXMuYWRkaXRpb25hbC5saW1pdCApO1xyXG5cclxuICB9XHJcbn1cclxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvYXJyYXktY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQXNCLE1BQU0sK0JBQStCLENBQUM7O0FBMkI1RixNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLFlBQXNELE1BQTBCO1FBQTFCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBTGhGLGVBQVUsR0FBRyxVQUFVLENBQUM7SUFReEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxJQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBcUIsQ0FBQztRQUN6SSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFFLENBQUM7SUFFbkUsQ0FBQzs4R0FmVSxvQkFBb0Isa0JBTVYsdUJBQXVCO2tHQU5qQyxvQkFBb0IsNkhBckJyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JUOzsyRkFHVSxvQkFBb0I7a0JBeEJoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQU9lLE1BQU07MkJBQUMsdUJBQXVCO3lDQUhuQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXJyYXlTdHlsZSwgQXJyYXlBZGRpdGlvbmFsLCBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuLCBUYWJsZUJ1aWxkZXJDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1hcnJheS1jb2x1bW4nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgdGVtcGxhdGU6IGBcclxuICBAaWYoIWFycmF5Lmxlbmd0aCl7XHJcbiAgICAtXHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAc3dpdGNoIChhZGRpdGlvbmFsLmFycmF5U3R5bGUpIHtcclxuICAgICAgQGNhc2UgKEFycmF5U3R5bGUuQ29tbWFEZWxpbWl0ZWQpIHtcclxuICAgICAgICBAZm9yKHZhbCBvZiBhcnJheTsgdHJhY2sgJGluZGV4KXtcclxuICAgICAgICAgIHt7dmFsICsgKCEkbGFzdCA/ICcsJyA6ICcnKX19XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlKEFycmF5U3R5bGUuTmV3TGluZSl7XHJcbiAgICAgICAgQGZvcih2YWwgb2YgYXJyYXk7IHRyYWNrICRpbmRleCl7XHJcbiAgICAgICAgICB7e3ZhbH19XHJcbiAgICAgICAgICBAaWYoISRsYXN0KXsgPGJyLz4gfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcnJheUNvbHVtbkNvbXBvbmVudCB7XHJcbiAgQXJyYXlTdHlsZSA9IEFycmF5U3R5bGU7XHJcbiAgYWRkaXRpb25hbCE6IEFycmF5QWRkaXRpb25hbDtcclxuICBASW5wdXQoKSBhcnJheSE6IChzdHJpbmcgfCBudW1iZXIpW107XHJcbiAgQElucHV0KCkgbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuXHJcbiAgY29uc3RydWN0b3IoIEBJbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pIHByaXZhdGUgY29uZmlnOiBUYWJsZUJ1aWxkZXJDb25maWdcclxuICAgICkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsID0gdGhpcy5tZXRhRGF0YT8uYWRkaXRpb25hbCA/PyAgdGhpcy5jb25maWcuYXJyYXlJbmZvID8/IHsgbGltaXQ6IDMsIGFycmF5U3R5bGU6IEFycmF5U3R5bGUuTmV3TGluZSB9IGFzIEFycmF5QWRkaXRpb25hbDtcclxuICAgIHRoaXMuYXJyYXkgPSAodGhpcy5hcnJheSA/PyBbXSkuc2xpY2UoMCwgdGhpcy5hZGRpdGlvbmFsLmxpbWl0ICk7XHJcblxyXG4gIH1cclxufVxyXG4iXX0=
@@ -5,7 +5,7 @@ import { ResizeColumnDirective } from '../../directives';
5
5
  import { map } from 'rxjs/operators';
6
6
  import { previousAndCurrent } from '../../../rxjs/rxjs-operators';
7
7
  import { CdkDropList, CDK_DROP_LIST, DragDropModule } from '@angular/cdk/drag-drop';
8
- import { AsyncPipe, CurrencyPipe, DecimalPipe, NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';
8
+ import { AsyncPipe, CurrencyPipe, DecimalPipe, NgTemplateOutlet } from '@angular/common';
9
9
  import { ConditionalClassesDirective, SpaceCasePipe, StylerDirective } from '../../../utilities';
10
10
  import { MatSortModule } from '@angular/material/sort';
11
11
  import { HeaderMenuComponent } from '../header-menu/header-menu.component';
@@ -28,6 +28,7 @@ export class ColumnBuilderComponent {
28
28
  this.templateService = templateService;
29
29
  this.injector = injector;
30
30
  this.FieldType = FieldType;
31
+ this.customCell = undefined;
31
32
  this.mapWidth = ([previousUserDefinedWidth, currentUserDefinedWidth]) => {
32
33
  const baseWidth = !!this.metaData.width ? { flex: `0 0 ${this.metaData.width}`, maxWidth: 'none' } : { flex: '1' };
33
34
  if (currentUserDefinedWidth) {
@@ -87,7 +88,7 @@ export class ColumnBuilderComponent {
87
88
  }
88
89
  }
89
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ColumnBuilderComponent, deps: [{ token: i1.TransformCreator }, { token: i2.MatTable }, { token: i3.TableStore }, { token: i4.TableTemplateService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: ColumnBuilderComponent, isStandalone: true, selector: "tb-column-builder", inputs: { metaData: "metaData", customCell: "customCell", data$: "data$" }, viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\r\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \"/>\r\n </ng-container>\r\n\r\n <ng-template #header>\r\n <mat-header-cell cdkDrag [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head drag-header\" #headref \r\n [conditionalClasses]='metaData.additional?.columnPartClasses?.header' >\r\n <div class=\"header-container\" cdkDragHandle>\r\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n <ng-template #headerWithoutMenu >\r\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n </ng-template>\r\n <tb-header-menu\r\n *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (showfilters$ | async);\" #menu [metaData]='metaData' [filter]='filter' >\r\n </tb-header-menu>\r\n </div>\r\n </mat-header-cell>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ?? ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' [class.group-footer]=\"element.isGroupFooter\" (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n \r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n </ng-container>\r\n\r\n <ng-template #footer>\r\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\" [conditionalClasses]='metaData.additional?.columnPartClasses?.footer'>\r\n <span *ngIf=\"!!data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\r\n <span *ngSwitchCase=\"FieldType.Currency\">\r\n {{ data | columnTotal: metaData | currency }}\r\n </span>\r\n <span *ngSwitchCase=\"FieldType.Number\">\r\n {{ data | columnTotal: metaData | number }}\r\n </span>\r\n </span>\r\n </mat-footer-cell>\r\n </ng-template>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:white;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i2.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: StylerDirective, selector: "[styler]", inputs: ["styler"] }, { kind: "directive", type: ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { kind: "directive", type: ConditionalClassesDirective, selector: "[conditionalClasses]", inputs: ["element", "conditionalClasses"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }, { kind: "component", type: HeaderMenuComponent, selector: "tb-header-menu", inputs: ["filter", "metaData"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: ColumnTotalPipe, name: "columnTotal" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DecimalPipe, name: "number" }], viewProviders: [
91
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: ColumnBuilderComponent, isStandalone: true, selector: "tb-column-builder", inputs: { metaData: "metaData", customCell: "customCell", data$: "data$" }, viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n @if(customCell?.columnDef?.headerCell){\r\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \"/>\r\n } @else {\r\n <mat-header-cell cdkDrag [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head drag-header\" #headref \r\n [conditionalClasses]='metaData.additional?.columnPartClasses?.header' >\r\n <div class=\"header-container\" cdkDragHandle>\r\n @if(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell){\r\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n } @else if(metaData._internalNotUserDefined) {\r\n <div style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n }\r\n @if((!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (showfilters$ | async)){\r\n <tb-header-menu #menu [metaData]='metaData' [filter]='filter' />\r\n }\r\n \r\n </div>\r\n </mat-header-cell>\r\n }\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ?? ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' [class.group-footer]=\"element.isGroupFooter\" (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n \r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n @if(customCell?.columnDef?.footerCell){\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell!.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n } @else {\r\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\" [conditionalClasses]='metaData.additional?.columnPartClasses?.footer'>\r\n @if(!!data?.length && metaData.additional?.footer){\r\n <span class=\"bold\">\r\n @switch (metaData.fieldType) {\r\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\r\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\r\n }\r\n </span>\r\n }\r\n \r\n </mat-footer-cell>\r\n }\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:white;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i2.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: StylerDirective, selector: "[styler]", inputs: ["styler"] }, { kind: "directive", type: ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { kind: "directive", type: ConditionalClassesDirective, selector: "[conditionalClasses]", inputs: ["element", "conditionalClasses"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }, { kind: "component", type: HeaderMenuComponent, selector: "tb-header-menu", inputs: ["filter", "metaData"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "pipe", type: ColumnTotalPipe, name: "columnTotal" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DecimalPipe, name: "number" }], viewProviders: [
91
92
  { provide: CDK_DROP_LIST, useExisting: CdkDropList },
92
93
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
94
  }
@@ -96,10 +97,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
96
97
  args: [{ selector: 'tb-column-builder', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
97
98
  { provide: CDK_DROP_LIST, useExisting: CdkDropList },
98
99
  ], standalone: true, imports: [
99
- MatTableModule, NgIf, NgTemplateOutlet, StylerDirective, ResizeColumnDirective,
100
+ MatTableModule, NgTemplateOutlet, StylerDirective, ResizeColumnDirective,
100
101
  ConditionalClassesDirective, DragDropModule, MatSortModule, SpaceCasePipe, HeaderMenuComponent,
101
- AsyncPipe, MatTooltipModule, LetDirective, NgSwitch, NgSwitchCase, ColumnTotalPipe, CurrencyPipe, DecimalPipe
102
- ], template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\r\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \"/>\r\n </ng-container>\r\n\r\n <ng-template #header>\r\n <mat-header-cell cdkDrag [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head drag-header\" #headref \r\n [conditionalClasses]='metaData.additional?.columnPartClasses?.header' >\r\n <div class=\"header-container\" cdkDragHandle>\r\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n <ng-template #headerWithoutMenu >\r\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n </ng-template>\r\n <tb-header-menu\r\n *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (showfilters$ | async);\" #menu [metaData]='metaData' [filter]='filter' >\r\n </tb-header-menu>\r\n </div>\r\n </mat-header-cell>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ?? ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' [class.group-footer]=\"element.isGroupFooter\" (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n \r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n </ng-container>\r\n\r\n <ng-template #footer>\r\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\" [conditionalClasses]='metaData.additional?.columnPartClasses?.footer'>\r\n <span *ngIf=\"!!data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\r\n <span *ngSwitchCase=\"FieldType.Currency\">\r\n {{ data | columnTotal: metaData | currency }}\r\n </span>\r\n <span *ngSwitchCase=\"FieldType.Number\">\r\n {{ data | columnTotal: metaData | number }}\r\n </span>\r\n </span>\r\n </mat-footer-cell>\r\n </ng-template>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:white;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"] }]
102
+ AsyncPipe, MatTooltipModule, LetDirective, ColumnTotalPipe, CurrencyPipe, DecimalPipe
103
+ ], template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n @if(customCell?.columnDef?.headerCell){\r\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \"/>\r\n } @else {\r\n <mat-header-cell cdkDrag [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head drag-header\" #headref \r\n [conditionalClasses]='metaData.additional?.columnPartClasses?.header' >\r\n <div class=\"header-container\" cdkDragHandle>\r\n @if(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell){\r\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n } @else if(metaData._internalNotUserDefined) {\r\n <div style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n }\r\n @if((!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (showfilters$ | async)){\r\n <tb-header-menu #menu [metaData]='metaData' [filter]='filter' />\r\n }\r\n \r\n </div>\r\n </mat-header-cell>\r\n }\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ?? ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' [class.group-footer]=\"element.isGroupFooter\" (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n \r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n @if(customCell?.columnDef?.footerCell){\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell!.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n } @else {\r\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\" [conditionalClasses]='metaData.additional?.columnPartClasses?.footer'>\r\n @if(!!data?.length && metaData.additional?.footer){\r\n <span class=\"bold\">\r\n @switch (metaData.fieldType) {\r\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\r\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\r\n }\r\n </span>\r\n }\r\n \r\n </mat-footer-cell>\r\n }\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:white;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"] }]
103
104
  }], ctorParameters: () => [{ type: i1.TransformCreator }, { type: i2.MatTable }, { type: i3.TableStore }, { type: i4.TableTemplateService }, { type: i0.Injector }], propDecorators: { metaData: [{
104
105
  type: Input
105
106
  }], customCell: [{
@@ -113,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
113
114
  type: ViewChild,
114
115
  args: ['body']
115
116
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFlLFNBQVMsRUFBMkUsTUFBTSxlQUFlLENBQUM7QUFDM0ssT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQVksY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakYsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTlFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVB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Y0FBYyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUscUJBQXFCO3dCQUM5RSwyQkFBMkIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUI7d0JBQzlGLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVc7cUJBQzlHOytMQUtRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRW1CLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWTtnQkFLSixZQUFZO3NCQUE5QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgT25Jbml0LCBIb3N0QmluZGluZywgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIFByZWRpY2F0ZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IE1hdENvbHVtbkRlZiwgTWF0VGFibGUsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1c3RvbUNlbGxEaXJlY3RpdmUsIFJlc2l6ZUNvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IFRyYW5zZm9ybUNyZWF0b3IgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2Zvcm0tY3JlYXRvcic7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUYWJsZVRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYmxlLXRlbXBsYXRlLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBwcmV2aW91c0FuZEN1cnJlbnQgfSBmcm9tICcuLi8uLi8uLi9yeGpzL3J4anMtb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ2RrRHJvcExpc3QsIENES19EUk9QX0xJU1QsIERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIEN1cnJlbmN5UGlwZSwgRGVjaW1hbFBpcGUsIE5nSWYsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2UsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25kaXRpb25hbENsYXNzZXNEaXJlY3RpdmUsIFNwYWNlQ2FzZVBpcGUsIFN0eWxlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgSGVhZGVyTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uVG90YWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29sdW1uLXRvdGFsLnBpcGUnO1xyXG5cclxuXHJcbmludGVyZmFjZSB3aWR0aFN0eWxlIHtcclxuICAgIGZsZXg/OiBzdHJpbmc7XHJcbiAgICBtYXhXaWR0aD86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIGFsbFN0eWxlcyB7XHJcbiAgYm9keTogd2lkdGhTdHlsZTtcclxuICBoZWFkZXI6IHdpZHRoU3R5bGU7XHJcbiAgZm9vdGVyOiB3aWR0aFN0eWxlO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWNvbHVtbi1idWlsZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAgeyBwcm92aWRlOiBDREtfRFJPUF9MSVNULCB1c2VFeGlzdGluZzogQ2RrRHJvcExpc3QgfSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0VGFibGVNb2R1bGUsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIFN0eWxlckRpcmVjdGl2ZSwgUmVzaXplQ29sdW1uRGlyZWN0aXZlLFxyXG4gICAgQ29uZGl0aW9uYWxDbGFzc2VzRGlyZWN0aXZlLCBEcmFnRHJvcE1vZHVsZSwgTWF0U29ydE1vZHVsZSwgU3BhY2VDYXNlUGlwZSwgSGVhZGVyTWVudUNvbXBvbmVudCxcclxuICAgIEFzeW5jUGlwZSwgTWF0VG9vbHRpcE1vZHVsZSwgTGV0RGlyZWN0aXZlLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBDb2x1bW5Ub3RhbFBpcGUsIEN1cnJlbmN5UGlwZSwgRGVjaW1hbFBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5CdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XHJcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcclxuICBASW5wdXQoKSBtZXRhRGF0YSE6IE1ldGFEYXRhO1xyXG5cclxuICBASW5wdXQoKSBjdXN0b21DZWxsITogQ3VzdG9tQ2VsbERpcmVjdGl2ZTtcclxuICBASW5wdXQoKSBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBAVmlld0NoaWxkKE1hdENvbHVtbkRlZikgY29sdW1uRGVmITogTWF0Q29sdW1uRGVmO1xyXG4gIG91dGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGlubmVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHRyYW5zZm9ybSE6IChvOiBhbnksIC4uLmFyZ3M6IGFueVtdKT0+IGFueSA7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2JvZHknKSBib2R5VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRyYW5zZm9ybUNyZWF0b3I6IFRyYW5zZm9ybUNyZWF0b3IsXHJcbiAgICBwcml2YXRlIHRhYmxlOiBNYXRUYWJsZTxhbnk+LFxyXG4gICAgcHVibGljIHN0YXRlOiBUYWJsZVN0b3JlLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2U6IFRhYmxlVGVtcGxhdGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICkgeyB9XHJcblxyXG4gIGdldElubmVyVGVtcGxhdGUoKSA6VGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhLnRlbXBsYXRlKSByZXR1cm4gdGhpcy5tZXRhRGF0YS50ZW1wbGF0ZTtcclxuICAgIGlmICh0aGlzLmN1c3RvbUNlbGw/LlRlbXBsYXRlUmVmKSAgcmV0dXJuIHRoaXMuY3VzdG9tQ2VsbC5UZW1wbGF0ZVJlZjtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlU2VydmljZS5nZXRUZW1wbGF0ZSh0aGlzLm1ldGFEYXRhKTtcclxuICB9XHJcbiAgc2hvd2ZpbHRlcnMkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICBnZXRPdXRlclRlbXBsYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5jZWxsPy50ZW1wbGF0ZSA/PyB0aGlzLmJvZHlUZW1wbGF0ZTtcclxuICB9XHJcbiAgY2xhc3Nlcz86IERpY3Rpb25hcnk8UHJlZGljYXRlPGFueT4+O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmKHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ3VycmVuY3kpIHtcclxuICAgICAgdGhpcy5jbGFzc2VzID0ge1xyXG4gICAgICAgIFsnbmVnYXRpdmUtY3VycmVuY3knXTogKGVsZW1lbnQpID0+IGVsZW1lbnRbdGhpcy5tZXRhRGF0YS5rZXldIDwgMCxcclxuICAgICAgICAuLi50aGlzLm1ldGFEYXRhLmNsYXNzZXNcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xhc3NlcyA9IHRoaXMubWV0YURhdGEuY2xhc3NlcztcclxuICAgIH1cclxuICAgIHRoaXMuZmlsdGVyID0ge2tleTogdGhpcy5tZXRhRGF0YS5rZXksIGZpZWxkVHlwZTogdGhpcy5tZXRhRGF0YS5maWVsZFR5cGV9O1xyXG4gICAgY29uc3Qgd2lkdGgkID0gdGhpcy5zdGF0ZS5nZXRVc2VyRGVmaW5lZFdpZHRoJCh0aGlzLm1ldGFEYXRhLmtleSkucGlwZShcclxuICAgICAgcHJldmlvdXNBbmRDdXJyZW50KDApLFxyXG4gICAgICBtYXAodGhpcy5tYXBXaWR0aCksXHJcbiAgICApO1xyXG4gICAgY29uc3QgZnVsbE1ldGFTdHlsZXMgPSB0aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LnN0eWxlcyA/PyB7fTtcclxuICAgIHRoaXMuc3R5bGVzJCA9IHdpZHRoJC5waXBlKG1hcCh3aWR0aCA9PiB7XHJcbiAgICAgIGNvbnN0IHN0eWxlczogYWxsU3R5bGVzID0ge1xyXG4gICAgICAgIGhlYWRlciA6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi50aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmhlYWRlciwgLi4ud2lkdGh9LFxyXG4gICAgICAgIGZvb3Rlcjogey4uLmZ1bGxNZXRhU3R5bGVzLC4uLnRoaXMubWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydFN0eWxlcz8uZm9vdGVyLCAuLi53aWR0aH0sXHJcbiAgICAgICAgYm9keTogey4uLmZ1bGxNZXRhU3R5bGVzLC4uLnRoaXMubWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydFN0eWxlcz8uYm9keSwgLi4ud2lkdGh9LFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gc3R5bGVzO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5zaG93ZmlsdGVycyQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgfHwgdGhpcy5tZXRhRGF0YS5ub0ZpbHRlcikpKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMub3V0ZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0T3V0ZXJUZW1wbGF0ZSgpO1xyXG4gICAgdGhpcy5pbm5lclRlbXBsYXRlID0gdGhpcy5nZXRJbm5lclRlbXBsYXRlKCk7XHJcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ3JlYXRvci5jcmVhdGVUcmFuc2Zvcm1lcih0aGlzLm1ldGFEYXRhKTtcclxuICAgIHRoaXMudGFibGUuYWRkQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKTtcclxuICB9XHJcblxyXG4gIGNlbGxDbGlja2VkKGVsZW1lbnQ6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAgIGlmKHRoaXMubWV0YURhdGEuY2xpY2spIHtcclxuICAgICAgdGhpcy5tZXRhRGF0YS5jbGljayhlbGVtZW50LGtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYXBXaWR0aCA9IChbcHJldmlvdXNVc2VyRGVmaW5lZFdpZHRoLCBjdXJyZW50VXNlckRlZmluZWRXaWR0aF0gOiBbbnVtYmVyLCBudW1iZXJdKSA6IHdpZHRoU3R5bGUgPT4ge1xyXG4gICAgY29uc3QgYmFzZVdpZHRoID0gISF0aGlzLm1ldGFEYXRhLndpZHRoID8ge2ZsZXg6YDAgMCAke3RoaXMubWV0YURhdGEud2lkdGh9YCwgbWF4V2lkdGg6J25vbmUnfSA6IHtmbGV4OicxJ307XHJcbiAgICBpZiggY3VycmVudFVzZXJEZWZpbmVkV2lkdGggKXtcclxuICAgICAgcmV0dXJuICh7ZmxleDpgMCAwICR7Y3VycmVudFVzZXJEZWZpbmVkV2lkdGh9cHhgLCBtYXhXaWR0aDonbm9uZSd9KTtcclxuICAgIH0gaWYoIHdhc1Jlc2V0KCkgKXtcclxuICAgICAgcmV0dXJuIChiYXNlV2lkdGgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICh7fSk7XHJcbiAgICBmdW5jdGlvbiB3YXNSZXNldCgpe1xyXG4gICAgICByZXR1cm4gcHJldmlvdXNVc2VyRGVmaW5lZFdpZHRoID49IDAgJiYgY3VycmVudFVzZXJEZWZpbmVkV2lkdGggPT0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0eWxlcyQhOk9ic2VydmFibGU8YWxsU3R5bGVzPlxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwibWV0YURhdGEua2V5XCIgKm5ncnhMZXQ9XCJzdHlsZXMkIGFzIHN0eWxlc1wiID5cclxuXHJcbiAgPCEtLSBoZWFkZXIgLS0+XHJcbiAgPG5nLXRlbXBsYXRlIG1hdEhlYWRlckNlbGxEZWYgI215SGVhZGVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uaGVhZGVyQ2VsbDtlbHNlIGhlYWRlcjtcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNlbGwuY29sdW1uRGVmLmhlYWRlckNlbGwudGVtcGxhdGU7IGNvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIHN0eWxlczogIHN0eWxlcy5oZWFkZXJ9IFwiLz5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICA8bWF0LWhlYWRlci1jZWxsICBjZGtEcmFnIFtzdHlsZXJdPSdzdHlsZXMuaGVhZGVyJyBbcmVzaXplQ29sdW1uXT1cInRydWVcIiBba2V5XT1cIm1ldGFEYXRhLmtleVwiICAgY2xhc3M9XCJjb2x1bW4taGVhZCBkcmFnLWhlYWRlclwiICNoZWFkcmVmIFxyXG4gICAgICAgIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0Q2xhc3Nlcz8uaGVhZGVyJyA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFtZXRhRGF0YS5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZCB8fCAhY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5jZWxsIDsgZWxzZSBoZWFkZXJXaXRob3V0TWVudVwiIG1hdC1zb3J0LWhlYWRlciBbZGlzYWJsZWRdPVwibWV0YURhdGEubm9Tb3J0XCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJXaXRob3V0TWVudSA+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXRhRGF0YS5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZDtcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAge3sgbWV0YURhdGEuZGlzcGxheU5hbWUgPyAgbWV0YURhdGEuZGlzcGxheU5hbWUgOiAoIG1ldGFEYXRhLmtleSB8IHNwYWNlQ2FzZSApIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDx0Yi1oZWFkZXItbWVudVxyXG4gICAgICAgICAgICAqbmdJZj1cIighbWV0YURhdGEuX2ludGVybmFsTm90VXNlckRlZmluZWQgfHwgIWN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbCkgJiYgKHNob3dmaWx0ZXJzJCB8IGFzeW5jKTtcIiAjbWVudSBbbWV0YURhdGFdPSdtZXRhRGF0YScgW2ZpbHRlcl09J2ZpbHRlcicgPlxyXG4gICAgICAgICAgPC90Yi1oZWFkZXItbWVudT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gYm9keSAtLT5cclxuICA8bmctY29udGFpbmVyICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib3V0ZXJUZW1wbGF0ZTsgY29udGV4dDoge21ldGFEYXRhOiBtZXRhRGF0YSwgZWxlbWVudDogZWxlbWVudCAsIHN0eWxlczogc3R5bGVzLmJvZHkgfVwiLz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctdGVtcGxhdGUgI2JvZHkgbGV0LWVsZW1lbnQ9J2VsZW1lbnQnID5cclxuICAgIDxtYXQtY2VsbCAgW21hdFRvb2x0aXBdPVwibWV0YURhdGEudG9vbFRpcCA/PyAnJ1wiICBbY29uZGl0aW9uYWxDbGFzc2VzXT0nbWV0YURhdGEuY2xhc3NlcycgW2VsZW1lbnRdPSdlbGVtZW50JyBbc3R5bGVyXT0nc3R5bGVzLmJvZHknIFtjbGFzcy5ncm91cC1mb290ZXJdPVwiZWxlbWVudC5pc0dyb3VwRm9vdGVyXCIgKGNsaWNrKT0nY2VsbENsaWNrZWQoZWxlbWVudCwgbWV0YURhdGEua2V5KScgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZTtjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBlbGVtZW50OiBlbGVtZW50LCB0cmFuc2Zvcm06IHRyYW5zZm9ybSB9OyBJbmplY3RvcjogaW5qZWN0b3JcIiAvPlxyXG4gICAgPC9tYXQtY2VsbD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIFxyXG4gIDwhLS0gZm9vdGVyIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBtYXRGb290ZXJDZWxsRGVmPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbDtlbHNlIGZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21DZWxsLmNvbHVtbkRlZi5mb290ZXJDZWxsLnRlbXBsYXRlO2NvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIGRhdGE6IGRhdGEkLCBzdHlsZXMgOiBzdHlsZXMuZm9vdGVyIH1cIi8+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2Zvb3Rlcj5cclxuICAgICAgPG1hdC1mb290ZXItY2VsbCAgW3N0eWxlcl09J3N0eWxlcy5mb290ZXInICpuZ3J4TGV0PVwiZGF0YSQgYXMgZGF0YVwiIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0Q2xhc3Nlcz8uZm9vdGVyJz5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiEhZGF0YT8ubGVuZ3RoICYmIG1ldGFEYXRhLmFkZGl0aW9uYWw/LmZvb3RlclwiIFtuZ1N3aXRjaF09XCJtZXRhRGF0YS5maWVsZFR5cGVcIiBjbGFzcz1cImJvbGRcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuQ3VycmVuY3lcIj5cclxuICAgICAgICAgICAge3sgZGF0YSB8IGNvbHVtblRvdGFsOiBtZXRhRGF0YSB8IGN1cnJlbmN5IH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLk51bWJlclwiPlxyXG4gICAgICAgICAgICB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgbnVtYmVyIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L21hdC1mb290ZXItY2VsbD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFlLFNBQVMsRUFBMkUsTUFBTSxlQUFlLENBQUM7QUFDM0ssT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQVksY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakYsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTlFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFP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O3dCQUN4RSwyQkFBMkIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUI7d0JBQzlGLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXO3FCQUN0RjsrTEFLUSxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVtQixTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBS0osWUFBWTtzQkFBOUIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLCBQcmVkaWNhdGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBNYXRDb2x1bW5EZWYsIE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDdXN0b21DZWxsRGlyZWN0aXZlLCBSZXNpemVDb2x1bW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgRmlsdGVySW5mbyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBUcmFuc2Zvcm1DcmVhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNmb3JtLWNyZWF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS10ZW1wbGF0ZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgcHJldmlvdXNBbmRDdXJyZW50IH0gZnJvbSAnLi4vLi4vLi4vcnhqcy9yeGpzLW9wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENka0Ryb3BMaXN0LCBDREtfRFJPUF9MSVNULCBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBDdXJyZW5jeVBpcGUsIERlY2ltYWxQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZGl0aW9uYWxDbGFzc2VzRGlyZWN0aXZlLCBTcGFjZUNhc2VQaXBlLCBTdHlsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IEhlYWRlck1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IExldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtblRvdGFsUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NvbHVtbi10b3RhbC5waXBlJztcclxuXHJcblxyXG5pbnRlcmZhY2Ugd2lkdGhTdHlsZSB7XHJcbiAgICBmbGV4Pzogc3RyaW5nO1xyXG4gICAgbWF4V2lkdGg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBhbGxTdHlsZXMge1xyXG4gIGJvZHk6IHdpZHRoU3R5bGU7XHJcbiAgaGVhZGVyOiB3aWR0aFN0eWxlO1xyXG4gIGZvb3Rlcjogd2lkdGhTdHlsZTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1jb2x1bW4tYnVpbGRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogQ0RLX0RST1BfTElTVCwgdXNlRXhpc3Rpbmc6IENka0Ryb3BMaXN0IH0sXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdFRhYmxlTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LCBTdHlsZXJEaXJlY3RpdmUsIFJlc2l6ZUNvbHVtbkRpcmVjdGl2ZSxcclxuICAgIENvbmRpdGlvbmFsQ2xhc3Nlc0RpcmVjdGl2ZSwgRHJhZ0Ryb3BNb2R1bGUsIE1hdFNvcnRNb2R1bGUsIFNwYWNlQ2FzZVBpcGUsIEhlYWRlck1lbnVDb21wb25lbnQsXHJcbiAgICBBc3luY1BpcGUsIE1hdFRvb2x0aXBNb2R1bGUsIExldERpcmVjdGl2ZSwgQ29sdW1uVG90YWxQaXBlLCBDdXJyZW5jeVBpcGUsIERlY2ltYWxQaXBlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgRmllbGRUeXBlID0gRmllbGRUeXBlO1xyXG4gIGZpbHRlciE6IFBhcnRpYWw8RmlsdGVySW5mbz47XHJcbiAgQElucHV0KCkgbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuXHJcbiAgQElucHV0KCkgY3VzdG9tQ2VsbD86IEN1c3RvbUNlbGxEaXJlY3RpdmUgPSB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHJcbiAgQFZpZXdDaGlsZChNYXRDb2x1bW5EZWYpIGNvbHVtbkRlZiE6IE1hdENvbHVtbkRlZjtcclxuICBvdXRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBpbm5lclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICB0cmFuc2Zvcm0hOiAobzogYW55LCAuLi5hcmdzOiBhbnlbXSk9PiBhbnkgO1xyXG5cclxuICBAVmlld0NoaWxkKCdib2R5JykgYm9keVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1DcmVhdG9yOiBUcmFuc2Zvcm1DcmVhdG9yLFxyXG4gICAgcHJpdmF0ZSB0YWJsZTogTWF0VGFibGU8YW55PixcclxuICAgIHB1YmxpYyBzdGF0ZTogVGFibGVTdG9yZSxcclxuICAgIHByaXZhdGUgdGVtcGxhdGVTZXJ2aWNlOiBUYWJsZVRlbXBsYXRlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICApIHsgfVxyXG5cclxuICBnZXRJbm5lclRlbXBsYXRlKCkgOlRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS50ZW1wbGF0ZSkgcmV0dXJuIHRoaXMubWV0YURhdGEudGVtcGxhdGU7XHJcbiAgICBpZiAodGhpcy5jdXN0b21DZWxsPy5UZW1wbGF0ZVJlZikgIHJldHVybiB0aGlzLmN1c3RvbUNlbGwuVGVtcGxhdGVSZWY7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0VGVtcGxhdGUodGhpcy5tZXRhRGF0YSk7XHJcbiAgfVxyXG4gIHNob3dmaWx0ZXJzJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgZ2V0T3V0ZXJUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbD8udGVtcGxhdGUgPz8gdGhpcy5ib2R5VGVtcGxhdGU7XHJcbiAgfVxyXG4gIGNsYXNzZXM/OiBEaWN0aW9uYXJ5PFByZWRpY2F0ZTxhbnk+PjtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkN1cnJlbmN5KSB7XHJcbiAgICAgIHRoaXMuY2xhc3NlcyA9IHtcclxuICAgICAgICBbJ25lZ2F0aXZlLWN1cnJlbmN5J106IChlbGVtZW50KSA9PiBlbGVtZW50W3RoaXMubWV0YURhdGEua2V5XSA8IDAsXHJcbiAgICAgICAgLi4udGhpcy5tZXRhRGF0YS5jbGFzc2VzXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNsYXNzZXMgPSB0aGlzLm1ldGFEYXRhLmNsYXNzZXM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbHRlciA9IHtrZXk6IHRoaXMubWV0YURhdGEua2V5LCBmaWVsZFR5cGU6IHRoaXMubWV0YURhdGEuZmllbGRUeXBlfTtcclxuICAgIGNvbnN0IHdpZHRoJCA9IHRoaXMuc3RhdGUuZ2V0VXNlckRlZmluZWRXaWR0aCQodGhpcy5tZXRhRGF0YS5rZXkpLnBpcGUoXHJcbiAgICAgIHByZXZpb3VzQW5kQ3VycmVudCgwKSxcclxuICAgICAgbWFwKHRoaXMubWFwV2lkdGgpLFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGZ1bGxNZXRhU3R5bGVzID0gdGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsPy5zdHlsZXMgPz8ge307XHJcbiAgICB0aGlzLnN0eWxlcyQgPSB3aWR0aCQucGlwZShtYXAod2lkdGggPT4ge1xyXG4gICAgICBjb25zdCBzdHlsZXM6IGFsbFN0eWxlcyA9IHtcclxuICAgICAgICBoZWFkZXIgOiB7Li4uZnVsbE1ldGFTdHlsZXMsLi4udGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0U3R5bGVzPy5oZWFkZXIsIC4uLndpZHRofSxcclxuICAgICAgICBmb290ZXI6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi50aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmZvb3RlciwgLi4ud2lkdGh9LFxyXG4gICAgICAgIGJvZHk6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi50aGlzLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmJvZHksIC4uLndpZHRofSxcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0eWxlcztcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc2hvd2ZpbHRlcnMkID0gdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzJC5waXBlKG1hcChzZXR0aW5ncyA9PiAhKHNldHRpbmdzLmhpZGVDb2x1bW5IZWFkZXJGaWx0ZXJzIHx8IHRoaXMubWV0YURhdGEubm9GaWx0ZXIpKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLm91dGVyVGVtcGxhdGUgPSB0aGlzLmdldE91dGVyVGVtcGxhdGUoKTtcclxuICAgIHRoaXMuaW5uZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0SW5uZXJUZW1wbGF0ZSgpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybUNyZWF0b3IuY3JlYXRlVHJhbnNmb3JtZXIodGhpcy5tZXRhRGF0YSk7XHJcbiAgICB0aGlzLnRhYmxlLmFkZENvbHVtbkRlZih0aGlzLmNvbHVtbkRlZik7XHJcbiAgfVxyXG5cclxuICBjZWxsQ2xpY2tlZChlbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhLmNsaWNrKSB7XHJcbiAgICAgIHRoaXMubWV0YURhdGEuY2xpY2soZWxlbWVudCxrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFwV2lkdGggPSAoW3ByZXZpb3VzVXNlckRlZmluZWRXaWR0aCwgY3VycmVudFVzZXJEZWZpbmVkV2lkdGhdIDogW251bWJlciwgbnVtYmVyXSkgOiB3aWR0aFN0eWxlID0+IHtcclxuICAgIGNvbnN0IGJhc2VXaWR0aCA9ICEhdGhpcy5tZXRhRGF0YS53aWR0aCA/IHtmbGV4OmAwIDAgJHt0aGlzLm1ldGFEYXRhLndpZHRofWAsIG1heFdpZHRoOidub25lJ30gOiB7ZmxleDonMSd9O1xyXG4gICAgaWYoIGN1cnJlbnRVc2VyRGVmaW5lZFdpZHRoICl7XHJcbiAgICAgIHJldHVybiAoe2ZsZXg6YDAgMCAke2N1cnJlbnRVc2VyRGVmaW5lZFdpZHRofXB4YCwgbWF4V2lkdGg6J25vbmUnfSk7XHJcbiAgICB9IGlmKCB3YXNSZXNldCgpICl7XHJcbiAgICAgIHJldHVybiAoYmFzZVdpZHRoKTtcclxuICAgIH1cclxuICAgIHJldHVybiAoe30pO1xyXG4gICAgZnVuY3Rpb24gd2FzUmVzZXQoKXtcclxuICAgICAgcmV0dXJuIHByZXZpb3VzVXNlckRlZmluZWRXaWR0aCA+PSAwICYmIGN1cnJlbnRVc2VyRGVmaW5lZFdpZHRoID09IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdHlsZXMkITpPYnNlcnZhYmxlPGFsbFN0eWxlcz5cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIm1ldGFEYXRhLmtleVwiICpuZ3J4TGV0PVwic3R5bGVzJCBhcyBzdHlsZXNcIiA+XHJcblxyXG4gIDwhLS0gaGVhZGVyIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBtYXRIZWFkZXJDZWxsRGVmICNteUhlYWRlcj5cclxuICAgIEBpZihjdXN0b21DZWxsPy5jb2x1bW5EZWY/LmhlYWRlckNlbGwpe1xyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ2VsbCEuY29sdW1uRGVmLmhlYWRlckNlbGwudGVtcGxhdGU7IGNvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIHN0eWxlczogIHN0eWxlcy5oZWFkZXJ9IFwiLz5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICA8bWF0LWhlYWRlci1jZWxsICBjZGtEcmFnIFtzdHlsZXJdPSdzdHlsZXMuaGVhZGVyJyBbcmVzaXplQ29sdW1uXT1cInRydWVcIiBba2V5XT1cIm1ldGFEYXRhLmtleVwiICAgY2xhc3M9XCJjb2x1bW4taGVhZCBkcmFnLWhlYWRlclwiICNoZWFkcmVmIFxyXG4gICAgICAgIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0Q2xhc3Nlcz8uaGVhZGVyJyA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgICAgQGlmKCFtZXRhRGF0YS5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZCB8fCAhY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5jZWxsKXtcclxuICAgICAgICAgICAgPGRpdiBtYXQtc29ydC1oZWFkZXIgW2Rpc2FibGVkXT1cIm1ldGFEYXRhLm5vU29ydFwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9IEBlbHNlIGlmKG1ldGFEYXRhLl9pbnRlcm5hbE5vdFVzZXJEZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICAgIHt7IG1ldGFEYXRhLmRpc3BsYXlOYW1lID8gIG1ldGFEYXRhLmRpc3BsYXlOYW1lIDogKCBtZXRhRGF0YS5rZXkgfCBzcGFjZUNhc2UgKSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZigoIW1ldGFEYXRhLl9pbnRlcm5hbE5vdFVzZXJEZWZpbmVkIHx8ICFjdXN0b21DZWxsPy5jb2x1bW5EZWY/LmNlbGwpICYmIChzaG93ZmlsdGVycyQgfCBhc3luYykpe1xyXG4gICAgICAgICAgICA8dGItaGVhZGVyLW1lbnUgI21lbnUgW21ldGFEYXRhXT0nbWV0YURhdGEnIFtmaWx0ZXJdPSdmaWx0ZXInIC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICB9XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPCEtLSBib2R5IC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvdXRlclRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBlbGVtZW50OiBlbGVtZW50ICwgc3R5bGVzOiBzdHlsZXMuYm9keSB9XCIvPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYm9keSBsZXQtZWxlbWVudD0nZWxlbWVudCcgPlxyXG4gICAgPG1hdC1jZWxsICBbbWF0VG9vbHRpcF09XCJtZXRhRGF0YS50b29sVGlwID8/ICcnXCIgIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5jbGFzc2VzJyBbZWxlbWVudF09J2VsZW1lbnQnIFtzdHlsZXJdPSdzdHlsZXMuYm9keScgW2NsYXNzLmdyb3VwLWZvb3Rlcl09XCJlbGVtZW50LmlzR3JvdXBGb290ZXJcIiAoY2xpY2spPSdjZWxsQ2xpY2tlZChlbGVtZW50LCBtZXRhRGF0YS5rZXkpJyA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lclRlbXBsYXRlO2NvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIGVsZW1lbnQ6IGVsZW1lbnQsIHRyYW5zZm9ybTogdHJhbnNmb3JtIH07IEluamVjdG9yOiBpbmplY3RvclwiIC8+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgPCEtLSBmb290ZXIgLS0+XHJcbiAgPG5nLXRlbXBsYXRlIG1hdEZvb3RlckNlbGxEZWY+XHJcbiAgICBAaWYoY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5mb290ZXJDZWxsKXtcclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNlbGwhLmNvbHVtbkRlZi5mb290ZXJDZWxsLnRlbXBsYXRlO2NvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIGRhdGE6IGRhdGEkLCBzdHlsZXMgOiBzdHlsZXMuZm9vdGVyIH1cIi8+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPG1hdC1mb290ZXItY2VsbCAgW3N0eWxlcl09J3N0eWxlcy5mb290ZXInICpuZ3J4TGV0PVwiZGF0YSQgYXMgZGF0YVwiIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0Q2xhc3Nlcz8uZm9vdGVyJz5cclxuICAgICAgICBAaWYoISFkYXRhPy5sZW5ndGggJiYgbWV0YURhdGEuYWRkaXRpb25hbD8uZm9vdGVyKXtcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9sZFwiPlxyXG4gICAgICAgICAgICBAc3dpdGNoIChtZXRhRGF0YS5maWVsZFR5cGUpIHtcclxuICAgICAgICAgICAgICBAY2FzZSAoRmllbGRUeXBlLkN1cnJlbmN5KSB7IHt7IGRhdGEgfCBjb2x1bW5Ub3RhbDogbWV0YURhdGEgfCBjdXJyZW5jeSB9fSB9XHJcbiAgICAgICAgICAgICAgQGNhc2UgKEZpZWxkVHlwZS5OdW1iZXIpIHsge3sgZGF0YSB8IGNvbHVtblRvdGFsOiBtZXRhRGF0YSB8IG51bWJlciB9fSB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIDwvbWF0LWZvb3Rlci1jZWxsPlxyXG4gICAgfVxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -1,7 +1,6 @@
1
1
  import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
2
2
  import { FilterType } from '../../enums/filterTypes';
3
3
  import { ControlContainer, FormsModule, NgForm } from '@angular/forms';
4
- import { NgIf } from '@angular/common';
5
4
  import { MatInputModule } from '@angular/material/input';
6
5
  import { MatDatepickerModule } from '@angular/material/datepicker';
7
6
  import { PreventEnterDirective } from '../../../utilities';
@@ -15,16 +14,16 @@ export class DateFilterComponent {
15
14
  this.FilterType = FilterType;
16
15
  }
17
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: DateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: DateFilterComponent, isStandalone: true, selector: "tb-date-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull\">\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"CurrentFilterType === FilterType.DateBetween\">\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n</ng-container>\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:-moz-fit-content;width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: DateFilterComponent, isStandalone: true, selector: "tb-date-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:-moz-fit-content;width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
18
  }
20
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: DateFilterComponent, decorators: [{
21
20
  type: Component,
22
21
  args: [{ selector: 'tb-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
23
- NgIf, MatInputModule, FormsModule, MatDatepickerModule, PreventEnterDirective
24
- ], template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull\">\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"CurrentFilterType === FilterType.DateBetween\">\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n</ng-container>\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:-moz-fit-content;width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
22
+ MatInputModule, FormsModule, MatDatepickerModule, PreventEnterDirective
23
+ ], template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:-moz-fit-content;width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
25
24
  }], propDecorators: { info: [{
26
25
  type: Input
27
26
  }], CurrentFilterType: [{
28
27
  type: Input
29
28
  }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9kYXRlLWZpbHRlci9kYXRlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQWEzRCxNQUFNLE9BQU8sbUJBQW1CO0lBWGhDO1FBWUksZUFBVSxHQUFHLFVBQVUsQ0FBQztLQUczQjs4R0FKWSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw0SUNwQmhDLDB6Q0F3QkEsczBCRFBRLElBQUksNEZBQUUsY0FBYyxzckJBQUUsV0FBVywwNEJBQUUsbUJBQW1CLHVmQUgzQyxDQUFDLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQzs7MkZBTXhELG1CQUFtQjtrQkFYL0IsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBRVQsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUMsY0FDckQsSUFBSSxXQUNQO3dCQUNMLElBQUksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQjtxQkFDaEY7OEJBSVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcnRpYWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybXNNb2R1bGUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IFByZXZlbnRFbnRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGItZGF0ZS1maWx0ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4uL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7cHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybX1dLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBOZ0lmLCBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdERhdGVwaWNrZXJNb2R1bGUsIFByZXZlbnRFbnRlckRpcmVjdGl2ZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUZpbHRlckNvbXBvbmVudCB7XHJcbiAgICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZTtcclxuICAgIEBJbnB1dCgpIGluZm8hOiBQYXJ0aWFsRmlsdGVyO1xyXG4gICAgQElucHV0KCkgQ3VycmVudEZpbHRlclR5cGUhOiBGaWx0ZXJUeXBlO1xyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5EYXRlQmV0d2VlbiAmJiBDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jc051bGxcIj5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgW21hdERhdGVwaWNrZXJdPVwiY2FsXCIvPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIGNsYXNzPVwic21hbGwtYnV0dG9uIGRhdGUtdG9nZ2xlXCIgbWF0U3VmZml4IFtmb3JdPVwiY2FsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjY2FsIC8+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiQ3VycmVudEZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuRGF0ZUJldHdlZW5cIj5cclxuICA8bmctY29udGFpbmVyIG5nTW9kZWxHcm91cD1cImZpbHRlclZhbHVlXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJteS1maWx0ZXJcIiA+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiU3RhcnRcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5TdGFydFwiICBwbGFjZWhvbGRlcj1cIkZyb21cIiBbbWF0RGF0ZXBpY2tlcl09XCJmcm9tVmFsXCJcclxuICAgICAgICAgIChjbGljayk9XCJmcm9tVmFsLm9wZW4oKVwiLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggY2xhc3M9XCJzbWFsbC1idXR0b24gZGF0ZS10b2dnbGVcIiBbZm9yXT1cImZyb21WYWxcIiBwcmV2ZW50RW50ZXIgLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyICNmcm9tVmFsPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cIkVuZFwiIFtuZ01vZGVsXT1cImluZm8uZmlsdGVyVmFsdWU/LkVuZFwiICBwbGFjZWhvbGRlcj1cIlRvXCIgW21hdERhdGVwaWNrZXJdPVwidG9WYWxcIiAoY2xpY2spPVwidG9WYWwub3BlbigpXCIvPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBjbGFzcz1cInNtYWxsLWJ1dHRvbiBkYXRlLXRvZ2dsZVwiIFtmb3JdPVwidG9WYWxcIiBwcmV2ZW50RW50ZXIgLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyICN0b1ZhbCAvPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9kYXRlLWZpbHRlci9kYXRlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBYTNELE1BQU0sT0FBTyxtQkFBbUI7SUFYaEM7UUFZSSxlQUFVLEdBQUcsVUFBVSxDQUFDO0tBRzNCOzhHQUpZLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDRJQ25CaEMsZ3ZDQXVCQSxxMEJEUFEsY0FBYyxzckJBQUUsV0FBVywwNEJBQUUsbUJBQW1CLHVmQUhyQyxDQUFDLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQzs7MkZBTXhELG1CQUFtQjtrQkFYL0IsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBRVQsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUMsY0FDckQsSUFBSSxXQUNQO3dCQUNMLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCO3FCQUMxRTs4QkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFydGlhbEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBQcmV2ZW50RW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RiLWRhdGUtZmlsdGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0eWxlVXJsczogWycuLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbe3Byb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm19XSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXREYXRlcGlja2VyTW9kdWxlLCBQcmV2ZW50RW50ZXJEaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVGaWx0ZXJDb21wb25lbnQge1xyXG4gICAgRmlsdGVyVHlwZSA9IEZpbHRlclR5cGU7XHJcbiAgICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICAgIEBJbnB1dCgpIEN1cnJlbnRGaWx0ZXJUeXBlITogRmlsdGVyVHlwZTtcclxufVxyXG4iLCJAaWYgKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVCZXR3ZWVuICYmIEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbCkge1xyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgW21hdERhdGVwaWNrZXJdPVwiY2FsXCIvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBjbGFzcz1cInNtYWxsLWJ1dHRvbiBkYXRlLXRvZ2dsZVwiIG1hdFN1ZmZpeCBbZm9yXT1cImNhbFwiIHByZXZlbnRFbnRlciAvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNjYWwgLz5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlQmV0d2Vlbil7XHJcbiAgPG5nLWNvbnRhaW5lciBuZ01vZGVsR3JvdXA9XCJmaWx0ZXJWYWx1ZVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCIgPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cIlN0YXJ0XCIgW25nTW9kZWxdPVwiaW5mby5maWx0ZXJWYWx1ZT8uU3RhcnRcIiAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgW21hdERhdGVwaWNrZXJdPVwiZnJvbVZhbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZnJvbVZhbC5vcGVuKClcIi8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IGNsYXNzPVwic21hbGwtYnV0dG9uIGRhdGUtdG9nZ2xlXCIgW2Zvcl09XCJmcm9tVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZnJvbVZhbD48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IG5hbWU9XCJFbmRcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiAgcGxhY2Vob2xkZXI9XCJUb1wiIFttYXREYXRlcGlja2VyXT1cInRvVmFsXCIgKGNsaWNrKT1cInRvVmFsLm9wZW4oKVwiLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggY2xhc3M9XCJzbWFsbC1idXR0b24gZGF0ZS10b2dnbGVcIiBbZm9yXT1cInRvVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdG9WYWwgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
2
2
  import { FilterType } from '../../enums/filterTypes';
3
3
  import { ControlContainer, FormsModule, NgForm } from '@angular/forms';
4
- import { NgIf } from '@angular/common';
5
4
  import { PreventEnterDirective } from '../../../utilities';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "@angular/forms";
@@ -10,16 +9,16 @@ export class DateTimeFilterComponent {
10
9
  this.FilterType = FilterType;
11
10
  }
12
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: DateTimeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: DateTimeFilterComponent, isStandalone: true, selector: "tb-date-time-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"CurrentFilterType === FilterType.DateTimeBetween\" ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n</ng-container>", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:-moz-fit-content;width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: DateTimeFilterComponent, isStandalone: true, selector: "tb-date-time-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:-moz-fit-content;width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
13
  }
15
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: DateTimeFilterComponent, decorators: [{
16
15
  type: Component,
17
16
  args: [{ selector: 'tb-date-time-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
18
- NgIf, FormsModule, PreventEnterDirective
19
- ], template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"CurrentFilterType === FilterType.DateTimeBetween\" ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n</ng-container>", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:-moz-fit-content;width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
17
+ FormsModule, PreventEnterDirective
18
+ ], template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:-moz-fit-content;width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
20
19
  }], propDecorators: { info: [{
21
20
  type: Input
22
21
  }], CurrentFilterType: [{
23
22
  type: Input
24
23
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQWEzRCxNQUFNLE9BQU8sdUJBQXVCO0lBWHBDO1FBWUUsZUFBVSxHQUFHLFVBQVUsQ0FBQztLQUd6Qjs4R0FKWSx1QkFBdUI7a0dBQXZCLHVCQUF1QixpSkNsQnBDLG9wQkFPZSxzMEJEUVgsSUFBSSw0RkFBRSxXQUFXLGc0QkFISixDQUFDLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQzs7MkZBTXRELHVCQUF1QjtrQkFYbkMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUMsY0FDckQsSUFBSSxXQUNQO3dCQUNQLElBQUksRUFBRSxXQUFXLEVBQUUscUJBQXFCO3FCQUN6Qzs4QkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFydGlhbEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUHJldmVudEVudGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItZGF0ZS10aW1lLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdGltZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0eWxlVXJsczogWycuLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdmlld1Byb3ZpZGVyczogW3twcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0lmLCBGb3Jtc01vZHVsZSwgUHJldmVudEVudGVyRGlyZWN0aXZlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVGaWx0ZXJDb21wb25lbnQge1xyXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlO1xyXG4gIEBJbnB1dCgpIGluZm8hOiBQYXJ0aWFsRmlsdGVyO1xyXG4gIEBJbnB1dCgpIEN1cnJlbnRGaWx0ZXJUeXBlITogRmlsdGVyVHlwZTtcclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiQ3VycmVudEZpbHRlclR5cGUgIT09IEZpbHRlclR5cGUuRGF0ZVRpbWVCZXR3ZWVuICYmIEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbFwiPlxyXG4gIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgcHJldmVudEVudGVyIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlVGltZUJldHdlZW5cIiBuZ01vZGVsR3JvdXA9XCJmaWx0ZXJWYWx1ZVwiPlxyXG4gIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5TdGFydFwiIHByZXZlbnRFbnRlciBuYW1lPVwiU3RhcnRcIiBjbGFzcz1cIm9wLWRhdGUtdGltZS1pbnB1dFwiLz5cclxuICA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgW25nTW9kZWxdPVwiaW5mby5maWx0ZXJWYWx1ZT8uRW5kXCIgcHJldmVudEVudGVyIG5hbWU9XCJFbmRcIiBjbGFzcz1cIm9wLWRhdGUtdGltZS1pbnB1dFwiLz5cclxuPC9uZy1jb250YWluZXI+Il19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBYTNELE1BQU0sT0FBTyx1QkFBdUI7SUFYcEM7UUFZRSxlQUFVLEdBQUcsVUFBVSxDQUFDO0tBR3pCOzhHQUpZLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGlKQ2pCcEMsMm5CQVFDLHEwQkRNRyxXQUFXLGc0QkFIRSxDQUFDLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQzs7MkZBTXRELHVCQUF1QjtrQkFYbkMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUMsY0FDckQsSUFBSSxXQUNQO3dCQUNQLFdBQVcsRUFBRSxxQkFBcUI7cUJBQ25DOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXJ0aWFsRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFByZXZlbnRFbnRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWRhdGUtdGltZS1maWx0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXRpbWUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdHlsZVVybHM6IFsnLi4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHZpZXdQcm92aWRlcnM6IFt7cHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybX1dLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsIFByZXZlbnRFbnRlckRpcmVjdGl2ZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lRmlsdGVyQ29tcG9uZW50IHtcclxuICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZTtcclxuICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICBASW5wdXQoKSBDdXJyZW50RmlsdGVyVHlwZSE6IEZpbHRlclR5cGU7XHJcbn1cclxuIiwiQGlmKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVUaW1lQmV0d2VlbiAmJiBDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jc051bGwpe1xyXG4gIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgcHJldmVudEVudGVyIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlVGltZUJldHdlZW4pe1xyXG4gIDxuZy1jb250YWluZXIgbmdNb2RlbEdyb3VwPVwiZmlsdGVyVmFsdWVcIj5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5TdGFydFwiIHByZXZlbnRFbnRlciBuYW1lPVwiU3RhcnRcIiBjbGFzcz1cIm9wLWRhdGUtdGltZS1pbnB1dFwiLz5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiBwcmV2ZW50RW50ZXIgbmFtZT1cIkVuZFwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59Il19