ngx-aur-mat-table 12.2.50 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/esm2020/lib/components/column-value/column-view.component.mjs +18 -0
  2. package/{esm2015/lib/data-property-getter-pipe/data-property-getter.pipe.js → esm2020/lib/data-property-getter-pipe/data-property-getter.pipe.mjs} +4 -4
  3. package/{esm2015/lib/directive/ngx-table-sub-footer-row.directive.js → esm2020/lib/directive/ngx-table-sub-footer-row.directive.mjs} +4 -4
  4. package/esm2020/lib/filters/NgxAurFilters.mjs +218 -0
  5. package/esm2020/lib/model/TableViewFactory.mjs +61 -0
  6. package/esm2020/lib/ngx-aur-mat-table.component.mjs +313 -0
  7. package/{esm2015/lib/ngx-aur-mat-table.module.js → esm2020/lib/ngx-aur-mat-table.module.mjs} +5 -5
  8. package/esm2020/lib/providers/IndexProvider.mjs +65 -0
  9. package/esm2020/lib/providers/SelectionProvider.mjs +77 -0
  10. package/esm2020/lib/providers/TotalRowProvider.mjs +42 -0
  11. package/fesm2015/{ngx-aur-mat-table.js → ngx-aur-mat-table.mjs} +22 -31
  12. package/fesm2015/ngx-aur-mat-table.mjs.map +1 -0
  13. package/fesm2020/ngx-aur-mat-table.mjs +1220 -0
  14. package/fesm2020/ngx-aur-mat-table.mjs.map +1 -0
  15. package/package.json +19 -6
  16. package/bundles/ngx-aur-mat-table.umd.js +0 -1955
  17. package/bundles/ngx-aur-mat-table.umd.js.map +0 -1
  18. package/esm2015/lib/components/column-value/column-view.component.js +0 -22
  19. package/esm2015/lib/filters/NgxAurFilters.js +0 -220
  20. package/esm2015/lib/model/TableViewFactory.js +0 -62
  21. package/esm2015/lib/ngx-aur-mat-table.component.js +0 -323
  22. package/esm2015/lib/providers/IndexProvider.js +0 -65
  23. package/esm2015/lib/providers/SelectionProvider.js +0 -77
  24. package/esm2015/lib/providers/TotalRowProvider.js +0 -43
  25. package/fesm2015/ngx-aur-mat-table.js.map +0 -1
  26. /package/{esm2015/lib/factories/ActionViewFactory.js → esm2020/lib/factories/ActionViewFactory.mjs} +0 -0
  27. /package/{esm2015/lib/factories/DisplayColumnsFactory.js → esm2020/lib/factories/DisplayColumnsFactory.mjs} +0 -0
  28. /package/{esm2015/lib/factories/MatTableDataSourceFactory.js → esm2020/lib/factories/MatTableDataSourceFactory.mjs} +0 -0
  29. /package/{esm2015/lib/factories/TableRowsFactory.js → esm2020/lib/factories/TableRowsFactory.mjs} +0 -0
  30. /package/{esm2015/lib/model/ColumnConfig.js → esm2020/lib/model/ColumnConfig.mjs} +0 -0
  31. /package/{esm2015/lib/model/EmptyValue.js → esm2020/lib/model/EmptyValue.mjs} +0 -0
  32. /package/{esm2015/lib/model/TableRow.js → esm2020/lib/model/TableRow.mjs} +0 -0
  33. /package/{esm2015/lib/ngx-aur-mat-table-filterable.js → esm2020/lib/ngx-aur-mat-table-filterable.mjs} +0 -0
  34. /package/{esm2015/lib/ngx-aur-mat-table-public.js → esm2020/lib/ngx-aur-mat-table-public.mjs} +0 -0
  35. /package/{esm2015/lib/ngx-aur-mat-table-selection-model.js → esm2020/lib/ngx-aur-mat-table-selection-model.mjs} +0 -0
  36. /package/{esm2015/lib/providers/AbstractProvider.js → esm2020/lib/providers/AbstractProvider.mjs} +0 -0
  37. /package/{esm2015/lib/providers/PaginationProvider.js → esm2020/lib/providers/PaginationProvider.mjs} +0 -0
  38. /package/{esm2015/lib/providers/RowActionProvider.js → esm2020/lib/providers/RowActionProvider.mjs} +0 -0
  39. /package/{esm2015/lib/style-builder/style-builder.js → esm2020/lib/style-builder/style-builder.mjs} +0 -0
  40. /package/{esm2015/lib/utils/ngx-aur-table-config.util.js → esm2020/lib/utils/ngx-aur-table-config.util.mjs} +0 -0
  41. /package/{esm2015/lib/utils/offset.util.js → esm2020/lib/utils/offset.util.mjs} +0 -0
  42. /package/{esm2015/ngx-aur-mat-table.js → esm2020/ngx-aur-mat-table.mjs} +0 -0
  43. /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
@@ -0,0 +1,18 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/icon";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/tooltip";
6
+ export class ColumnViewComponent {
7
+ }
8
+ ColumnViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ColumnViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ ColumnViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ColumnViewComponent, selector: "lib-column-view", inputs: { config: "config", value: "value" }, ngImport: i0, template: "<div class=\"align-container\">\n <div [ngClass]=\"{'circle': config?.icon?.wrapper}\"\n [style.background-color]=\"config?.icon?.wrapper?.color\"\n >\n <mat-icon *ngIf=\"config?.icon\"\n [matTooltip]=\"config?.icon?.tooltip?.toString() || ''\"\n [style.color]=\"config?.icon?.color\"\n >\n {{config?.icon?.name}}\n </mat-icon>\n </div>\n\n <img\n *ngIf=\"config?.image?.src\"\n [src]=\"config?.image?.src\"\n [style.height]=\"config?.image?.height\"\n [style.width]=\"config?.image?.width\"\n alt=\"img\"\n >\n\n <span *ngIf=\"config?.text?.show != false\"\n [matTooltip]=\"config?.text?.tooltip?.toString() || ''\"\n >\n {{value}}\n </span>\n</div>\n", styles: [".align-container{display:flex;align-items:center}span{margin-left:4px}.circle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ColumnViewComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'lib-column-view', template: "<div class=\"align-container\">\n <div [ngClass]=\"{'circle': config?.icon?.wrapper}\"\n [style.background-color]=\"config?.icon?.wrapper?.color\"\n >\n <mat-icon *ngIf=\"config?.icon\"\n [matTooltip]=\"config?.icon?.tooltip?.toString() || ''\"\n [style.color]=\"config?.icon?.color\"\n >\n {{config?.icon?.name}}\n </mat-icon>\n </div>\n\n <img\n *ngIf=\"config?.image?.src\"\n [src]=\"config?.image?.src\"\n [style.height]=\"config?.image?.height\"\n [style.width]=\"config?.image?.width\"\n alt=\"img\"\n >\n\n <span *ngIf=\"config?.text?.show != false\"\n [matTooltip]=\"config?.text?.tooltip?.toString() || ''\"\n >\n {{value}}\n </span>\n</div>\n", styles: [".align-container{display:flex;align-items:center}span{margin-left:4px}.circle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%}\n"] }]
13
+ }], propDecorators: { config: [{
14
+ type: Input
15
+ }], value: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvY29sdW1uLXZhbHVlL2NvbHVtbi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7OztBQVF2RCxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO29HQUFuQixtQkFBbUIscUdDUmhDLGt1QkEwQkE7MkZEbEJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OEJBS2xCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbHVtblZpZXd9IGZyb20gXCIuLi8uLi9tb2RlbC9Db2x1bW5Db25maWdcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNvbHVtbi12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXZpZXcuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtblZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBjb25maWc6IENvbHVtblZpZXc8c3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJhbGlnbi1jb250YWluZXJcIj5cbiAgPGRpdiAgW25nQ2xhc3NdPVwieydjaXJjbGUnOiBjb25maWc/Lmljb24/LndyYXBwZXJ9XCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY29uZmlnPy5pY29uPy53cmFwcGVyPy5jb2xvclwiXG4gID5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJjb25maWc/Lmljb25cIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJjb25maWc/Lmljb24/LnRvb2x0aXA/LnRvU3RyaW5nKCkgfHwgJydcIlxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY29uZmlnPy5pY29uPy5jb2xvclwiXG4gICAgPlxuICAgICAge3tjb25maWc/Lmljb24/Lm5hbWV9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuXG4gIDxpbWdcbiAgICAqbmdJZj1cImNvbmZpZz8uaW1hZ2U/LnNyY1wiXG4gICAgW3NyY109XCJjb25maWc/LmltYWdlPy5zcmNcIlxuICAgIFtzdHlsZS5oZWlnaHRdPVwiY29uZmlnPy5pbWFnZT8uaGVpZ2h0XCJcbiAgICBbc3R5bGUud2lkdGhdPVwiY29uZmlnPy5pbWFnZT8ud2lkdGhcIlxuICAgIGFsdD1cImltZ1wiXG4gID5cblxuICA8c3BhbiAqbmdJZj1cImNvbmZpZz8udGV4dD8uc2hvdyAhPSBmYWxzZVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cImNvbmZpZz8udGV4dD8udG9vbHRpcD8udG9TdHJpbmcoKSB8fCAnJ1wiXG4gID5cbiAgICAgICB7e3ZhbHVlfX1cbiAgPC9zcGFuPlxuPC9kaXY+XG4iXX0=
@@ -5,12 +5,12 @@ export class DataPropertyGetterPipe {
5
5
  return object[keyName];
6
6
  }
7
7
  }
8
- DataPropertyGetterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DataPropertyGetterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
- DataPropertyGetterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DataPropertyGetterPipe, name: "dataPropertyGetter" });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DataPropertyGetterPipe, decorators: [{
8
+ DataPropertyGetterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DataPropertyGetterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ DataPropertyGetterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DataPropertyGetterPipe, name: "dataPropertyGetter" });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DataPropertyGetterPipe, decorators: [{
11
11
  type: Pipe,
12
12
  args: [{
13
13
  name: 'dataPropertyGetter'
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm9wZXJ0eS1nZXR0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZGF0YS1wcm9wZXJ0eS1nZXR0ZXItcGlwZS9kYXRhLXByb3BlcnR5LWdldHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUtsRCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFNBQVMsQ0FBQyxNQUFXLEVBQUUsT0FBZSxFQUFFLEdBQUcsSUFBZTtRQUN4RCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDOztvSEFKVSxzQkFBc0I7a0hBQXRCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUhsQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxvQkFBb0I7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZGF0YVByb3BlcnR5R2V0dGVyJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVByb3BlcnR5R2V0dGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0ob2JqZWN0OiBhbnksIGtleU5hbWU6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdW5rbm93biB7XHJcbiAgICByZXR1cm4gb2JqZWN0W2tleU5hbWVdO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm9wZXJ0eS1nZXR0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZGF0YS1wcm9wZXJ0eS1nZXR0ZXItcGlwZS9kYXRhLXByb3BlcnR5LWdldHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUtsRCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFNBQVMsQ0FBQyxNQUFXLEVBQUUsT0FBZSxFQUFFLEdBQUcsSUFBZTtRQUN4RCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDOzttSEFKVSxzQkFBc0I7aUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUhsQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxvQkFBb0I7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZGF0YVByb3BlcnR5R2V0dGVyJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVByb3BlcnR5R2V0dGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0ob2JqZWN0OiBhbnksIGtleU5hbWU6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdW5rbm93biB7XHJcbiAgICByZXR1cm4gb2JqZWN0W2tleU5hbWVdO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -3,12 +3,12 @@ import * as i0 from "@angular/core";
3
3
  export class NgxTableSubFooterRowDirective {
4
4
  constructor() { }
5
5
  }
6
- NgxTableSubFooterRowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxTableSubFooterRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7
- NgxTableSubFooterRowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: NgxTableSubFooterRowDirective, selector: "[ngxAurTableSubFooterRow]", ngImport: i0 });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxTableSubFooterRowDirective, decorators: [{
6
+ NgxTableSubFooterRowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NgxTableSubFooterRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7
+ NgxTableSubFooterRowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: NgxTableSubFooterRowDirective, selector: "[ngxAurTableSubFooterRow]", ngImport: i0 });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NgxTableSubFooterRowDirective, decorators: [{
9
9
  type: Directive,
10
10
  args: [{
11
11
  selector: '[ngxAurTableSubFooterRow]'
12
12
  }]
13
13
  }], ctorParameters: function () { return []; } });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRhYmxlLXN1Yi1mb290ZXItcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZGlyZWN0aXZlL25neC10YWJsZS1zdWItZm9vdGVyLXJvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLeEMsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxnQkFBZSxDQUFDOzsySEFETCw2QkFBNkI7K0dBQTdCLDZCQUE2Qjs0RkFBN0IsNkJBQTZCO2tCQUh6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd4QXVyVGFibGVTdWJGb290ZXJSb3ddJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hUYWJsZVN1YkZvb3RlclJvd0RpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRhYmxlLXN1Yi1mb290ZXItcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZGlyZWN0aXZlL25neC10YWJsZS1zdWItZm9vdGVyLXJvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLeEMsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxnQkFBZSxDQUFDOzswSEFETCw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUh6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd4QXVyVGFibGVTdWJGb290ZXJSb3ddJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hUYWJsZVN1YkZvb3RlclJvd0RpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==
@@ -0,0 +1,218 @@
1
+ export var NgxAurFilters;
2
+ (function (NgxAurFilters) {
3
+ /**
4
+ * Base abstract class for filter.
5
+ * Defines a common interface for all filters.
6
+ * @template T The type of data to be filtered.
7
+ */
8
+ class Base {
9
+ constructor() {
10
+ }
11
+ }
12
+ NgxAurFilters.Base = Base;
13
+ class ExtractableProperty extends Base {
14
+ }
15
+ NgxAurFilters.ExtractableProperty = ExtractableProperty;
16
+ /**
17
+ * Class for filtering data based on a single value.
18
+ * @template T The type of data to be filtered.
19
+ * @template V The type of the value used for filtering.
20
+ */
21
+ class ValueSingle extends ExtractableProperty {
22
+ constructor(value) {
23
+ super();
24
+ this.value = value;
25
+ }
26
+ equals(other) {
27
+ return this.value === other.value;
28
+ }
29
+ }
30
+ NgxAurFilters.ValueSingle = ValueSingle;
31
+ /**
32
+ * Class for filtering data based on an array of values.
33
+ * @template T The type of data to be filtered.
34
+ * @template V The type of the values used for filtering.
35
+ */
36
+ class ValueArray extends ExtractableProperty {
37
+ constructor(values) {
38
+ super();
39
+ this.values = values;
40
+ }
41
+ }
42
+ NgxAurFilters.ValueArray = ValueArray;
43
+ /**
44
+ * Class for filtering data based on a set of values.
45
+ * @template T The type of data to be filtered.
46
+ * @template V The type of the values used for filtering.
47
+ */
48
+ class ValueSet extends ExtractableProperty {
49
+ constructor(values) {
50
+ super();
51
+ this.values = values;
52
+ }
53
+ }
54
+ NgxAurFilters.ValueSet = ValueSet;
55
+ /**
56
+ * Class for filtering data within a min-max range.
57
+ * @template T The type of data to be filtered.
58
+ * @template V The type of the values defining the range.
59
+ */
60
+ class ValueMinMax extends ExtractableProperty {
61
+ constructor(_min, _max) {
62
+ super();
63
+ this._min = _min;
64
+ this._max = _max;
65
+ }
66
+ get min() {
67
+ return this._min;
68
+ }
69
+ get max() {
70
+ return this._max;
71
+ }
72
+ equals(other) {
73
+ return this._min === other._min && this._max === other._max;
74
+ }
75
+ }
76
+ NgxAurFilters.ValueMinMax = ValueMinMax;
77
+ /**
78
+ * Class for filtering data within a min-max range.
79
+ * @template T The type of data to be filtered.
80
+ * @template V The type of the values defining the range.
81
+ */
82
+ class ValueMinMaxNumber extends ValueMinMax {
83
+ constructor(min, max) {
84
+ super(min, max);
85
+ }
86
+ get min() {
87
+ return this._min ?? Number.MIN_VALUE;
88
+ }
89
+ get max() {
90
+ return this._max ?? Number.MAX_VALUE;
91
+ }
92
+ }
93
+ NgxAurFilters.ValueMinMaxNumber = ValueMinMaxNumber;
94
+ /**
95
+ * Abstract class for filtering data based on whether a specific property
96
+ * of the data, when trimmed and converted to lower case, contains a specified
97
+ * substring, also trimmed and converted to lower case.
98
+ * @template T The type of data to be filtered.
99
+ */
100
+ class ContainsStringIgnoreCase extends ValueSingle {
101
+ filterFn() {
102
+ return (data) => {
103
+ const given = this.extractProperty(data);
104
+ return given?.toLowerCase().includes(this.value?.toLowerCase());
105
+ };
106
+ }
107
+ }
108
+ NgxAurFilters.ContainsStringIgnoreCase = ContainsStringIgnoreCase;
109
+ class EqualString extends ValueSingle {
110
+ filterFn() {
111
+ return (data) => {
112
+ const given = this.extractProperty(data);
113
+ return given === this.value;
114
+ };
115
+ }
116
+ }
117
+ NgxAurFilters.EqualString = EqualString;
118
+ class EqualNumber extends ValueSingle {
119
+ filterFn() {
120
+ return (data) => {
121
+ const given = this.extractProperty(data);
122
+ return given === this.value;
123
+ };
124
+ }
125
+ }
126
+ NgxAurFilters.EqualNumber = EqualNumber;
127
+ class LessNumber extends ValueSingle {
128
+ filterFn() {
129
+ return (data) => {
130
+ const given = this.extractProperty(data);
131
+ return given < this.value;
132
+ };
133
+ }
134
+ }
135
+ NgxAurFilters.LessNumber = LessNumber;
136
+ class LessOrEqualNumber extends ValueSingle {
137
+ filterFn() {
138
+ return (data) => {
139
+ const given = this.extractProperty(data);
140
+ return given <= this.value;
141
+ };
142
+ }
143
+ }
144
+ NgxAurFilters.LessOrEqualNumber = LessOrEqualNumber;
145
+ class MoreNumber extends ValueSingle {
146
+ filterFn() {
147
+ return (data) => {
148
+ const given = this.extractProperty(data);
149
+ return given > this.value;
150
+ };
151
+ }
152
+ }
153
+ NgxAurFilters.MoreNumber = MoreNumber;
154
+ class MoreOrEqualNumber extends ValueSingle {
155
+ filterFn() {
156
+ return (data) => {
157
+ const given = this.extractProperty(data);
158
+ return given >= this.value;
159
+ };
160
+ }
161
+ }
162
+ NgxAurFilters.MoreOrEqualNumber = MoreOrEqualNumber;
163
+ class NumberRangeInclMinExclMax extends ValueMinMaxNumber {
164
+ filterFn() {
165
+ return (data) => {
166
+ const given = this.extractProperty(data);
167
+ return given >= this.min && given < this.max;
168
+ };
169
+ }
170
+ }
171
+ NgxAurFilters.NumberRangeInclMinExclMax = NumberRangeInclMinExclMax;
172
+ class NumberRangeExclMinInclMax extends ValueMinMaxNumber {
173
+ filterFn() {
174
+ return (data) => {
175
+ const given = this.extractProperty(data);
176
+ return given > this.min && given <= this.max;
177
+ };
178
+ }
179
+ }
180
+ NgxAurFilters.NumberRangeExclMinInclMax = NumberRangeExclMinInclMax;
181
+ class NumberRangeInclMinInclMax extends ValueMinMaxNumber {
182
+ filterFn() {
183
+ return (data) => {
184
+ const given = this.extractProperty(data);
185
+ return given >= this.min && given <= this.max;
186
+ };
187
+ }
188
+ }
189
+ NgxAurFilters.NumberRangeInclMinInclMax = NumberRangeInclMinInclMax;
190
+ class NumberRangeExclMinExclMax extends ValueMinMaxNumber {
191
+ filterFn() {
192
+ return (data) => {
193
+ const given = this.extractProperty(data);
194
+ return given > this.min && given < this.max;
195
+ };
196
+ }
197
+ }
198
+ NgxAurFilters.NumberRangeExclMinExclMax = NumberRangeExclMinExclMax;
199
+ class hasInSet extends ValueSet {
200
+ filterFn() {
201
+ return (data) => {
202
+ const given = this.extractProperty(data);
203
+ return this.values.has(given);
204
+ };
205
+ }
206
+ }
207
+ NgxAurFilters.hasInSet = hasInSet;
208
+ class notHasInSet extends ValueSet {
209
+ filterFn() {
210
+ return (data) => {
211
+ const given = this.extractProperty(data);
212
+ return !this.values.has(given);
213
+ };
214
+ }
215
+ }
216
+ NgxAurFilters.notHasInSet = notHasInSet;
217
+ })(NgxAurFilters || (NgxAurFilters = {}));
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4QXVyRmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZmlsdGVycy9OZ3hBdXJGaWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sS0FBVyxhQUFhLENBOFE3QjtBQTlRRCxXQUFpQixhQUFhO0lBRTVCOzs7O09BSUc7SUFDSCxNQUFzQixJQUFJO1FBRXhCO1FBQ0EsQ0FBQztLQWdDRjtJQW5DcUIsa0JBQUksT0FtQ3pCLENBQUE7SUFFRCxNQUFzQixtQkFBMEIsU0FBUSxJQUFPO0tBRTlEO0lBRnFCLGlDQUFtQixzQkFFeEMsQ0FBQTtJQUdEOzs7O09BSUc7SUFDSCxNQUFzQixXQUFrQixTQUFRLG1CQUF5QjtRQUV2RSxZQUFtQixLQUFRO1lBQ3pCLEtBQUssRUFBRSxDQUFDO1lBRFMsVUFBSyxHQUFMLEtBQUssQ0FBRztRQUUzQixDQUFDO1FBRVEsTUFBTSxDQUFDLEtBQXdCO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BDLENBQUM7S0FDRjtJQVRxQix5QkFBVyxjQVNoQyxDQUFBO0lBRUQ7Ozs7T0FJRztJQUNILE1BQXNCLFVBQWlCLFNBQVEsbUJBQXlCO1FBRXRFLFlBQW1CLE1BQVc7WUFDNUIsS0FBSyxFQUFFLENBQUM7WUFEUyxXQUFNLEdBQU4sTUFBTSxDQUFLO1FBRTlCLENBQUM7S0FDRjtJQUxxQix3QkFBVSxhQUsvQixDQUFBO0lBRUQ7Ozs7T0FJRztJQUNILE1BQXNCLFFBQWUsU0FBUSxtQkFBeUI7UUFFcEUsWUFBbUIsTUFBYztZQUMvQixLQUFLLEVBQUUsQ0FBQztZQURTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFakMsQ0FBQztLQUNGO0lBTHFCLHNCQUFRLFdBSzdCLENBQUE7SUFFRDs7OztPQUlHO0lBQ0gsTUFBc0IsV0FBa0IsU0FBUSxtQkFB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T0FBTyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUM7UUFDSixDQUFDO0tBQ0Y7SUFScUIseUJBQVcsY0FRaEMsQ0FBQTtBQUVILENBQUMsRUE5UWdCLGFBQWEsS0FBYixhQUFhLFFBOFE3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGFibGVSb3d9IGZyb20gXCIuLi9tb2RlbC9UYWJsZVJvd1wiO1xyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBOZ3hBdXJGaWx0ZXJzIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgZmlsdGVyLlxyXG4gICAqIERlZmluZXMgYSBjb21tb24gaW50ZXJmYWNlIGZvciBhbGwgZmlsdGVycy5cclxuICAgKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiBkYXRhIHRvIGJlIGZpbHRlcmVkLlxyXG4gICAqL1xyXG4gIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlPFQ+IHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFic3RyYWN0IG1ldGhvZCB0byBjcmVhdGUgYSBmaWx0ZXIgZnVuY3Rpb24gZm9yIHVzZSB3aXRoIEFuZ3VsYXIgTWF0ZXJpYWwncyBNYXRUYWJsZS5cclxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBhcyB0aGUgZmlsdGVyaW5nIGxvZ2ljIGFwcGxpZWQgdG8gdGhlIGRhdGEgZGlzcGxheWVkIGluIHRoZSB0YWJsZS5cclxuICAgICAqIEl0IG11c3QgYmUgb3ZlcnJpZGRlbiBpbiBzdWJjbGFzc2VzIHRvIHByb3ZpZGUgY3VzdG9tIGZpbHRlciBjcml0ZXJpYS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBIGZpbHRlciBmdW5jdGlvbiB0aGF0IHRha2VzIGEgc2luZ2xlIHBhcmFtZXRlcjpcclxuICAgICAqICAgIC0gYGRhdGFgOiBBbiBpbmRpdmlkdWFsIGRhdGEgaXRlbSBmcm9tIHRoZSBNYXRUYWJsZSBkYXRhIHNvdXJjZS4gVGhpcyByZXByZXNlbnRzXHJcbiAgICAgKiAgICAgIGEgc2luZ2xlIHJvdyBvZiBkYXRhIGluIHRoZSB0YWJsZS4gVGhlIHR5cGUgb2YgYGRhdGFgIGlzIGRlZmluZWQgYnkgdGhlIGdlbmVyaWNcclxuICAgICAqICAgICAgdHlwZSBwYXJhbWV0ZXIgJ1QnLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGBkYXRhYCBpdGVtXHJcbiAgICAgKiBzYXRpc2ZpZXMgdGhlIGZpbHRlciBjcml0ZXJpYS4gVGhlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmaWx0ZXIgbG9naWNcclxuICAgICAqIHdpbGwgdmFyeSBkZXBlbmRpbmcgb24gdGhlIGFwcGxpY2F0aW9uJ3MgcmVxdWlyZW1lbnRzIGFuZCB0aGUgbmF0dXJlIG9mIHRoZSBkYXRhLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgZmlsdGVyRm4oKTogKGRhdGE6IFRhYmxlUm93PFQ+KSA9PiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjdXJyZW50IGZpbHRlciBpcyBlcXVpdmFsZW50IHRvIGFub3RoZXIgZmlsdGVyLlxyXG4gICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBjb21wYXJlIHRoZSBjdXJyZW50IGFwcGxpZWQgZmlsdGVyIHdpdGggYSBuZXcgZmlsdGVyLlxyXG4gICAgICogSWYgdGhlIGZpbHRlcnMgYXJlIGVxdWl2YWxlbnQsIHRoZSBtZXRob2Qgc2hvdWxkIHJldHVybiBgdHJ1ZWAsIGluZGljYXRpbmcgdGhhdFxyXG4gICAgICogdGhlIGRhdGEgdGFibGUgZG9lcyBub3QgbmVlZCB0byBiZSByZWJ1aWx0LiBJZiB0aGV5IGFyZSBub3QgZXF1aXZhbGVudCwgaXQgc2hvdWxkXHJcbiAgICAgKiByZXR1cm4gYGZhbHNlYCwgaW5kaWNhdGluZyB0aGF0IHRoZSB0YWJsZSBzaG91bGQgYmUgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBuZXcgZmlsdGVyLlxyXG4gICAgICpcclxuICAgICAqIEltcGxlbWVudGluZyB0aGlzIG1ldGhvZCBpbiBzdWJjbGFzc2VzIGFsbG93cyBmb3Igb3B0aW1pemVkIHJlbmRlcmluZyBieSBhdm9pZGluZ1xyXG4gICAgICogdW5uZWNlc3NhcnkgdGFibGUgdXBkYXRlcyB3aGVuIHRoZSBmaWx0ZXIgY3JpdGVyaWEgaGF2ZSBub3QgYWN0dWFsbHkgY2hhbmdlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGZpbHRlciB0byBjb21wYXJlIHdpdGggdGhlIGN1cnJlbnQgZmlsdGVyLlxyXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBjdXJyZW50IGZpbHRlciBhbmQgdGhlIGBvdGhlcmAgZmlsdGVyIGFyZSBlcXVpdmFsZW50LCBvdGhlcndpc2UgYGZhbHNlYC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IGVxdWFscyhvdGhlcjogQmFzZTxUPik6IGJvb2xlYW47XHJcbiAgfVxyXG5cclxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgRXh0cmFjdGFibGVQcm9wZXJ0eTxULCBWPiBleHRlbmRzIEJhc2U8VD4ge1xyXG4gICAgYWJzdHJhY3QgZXh0cmFjdFByb3BlcnR5KGRhdGE6IFRhYmxlUm93PFQ+KTogVjtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBDbGFzcyBmb3IgZmlsdGVyaW5nIGRhdGEgYmFzZWQgb24gYSBzaW5nbGUgdmFsdWUuXHJcbiAgICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgZGF0YSB0byBiZSBmaWx0ZXJlZC5cclxuICAgKiBAdGVtcGxhdGUgViBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdXNlZCBmb3IgZmlsdGVyaW5nLlxyXG4gICAqL1xyXG4gIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWYWx1ZVNpbmdsZTxULCBWPiBleHRlbmRzIEV4dHJhY3RhYmxlUHJvcGVydHk8VCwgVj4ge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZTogVikge1xyXG4gICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIGVxdWFscyhvdGhlcjogVmFsdWVTaW5nbGU8VCwgVj4pOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG90aGVyLnZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xhc3MgZm9yIGZpbHRlcmluZyBkYXRhIGJhc2VkIG9uIGFuIGFycmF5IG9mIHZhbHVlcy5cclxuICAgKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiBkYXRhIHRvIGJlIGZpbHRlcmVkLlxyXG4gICAqIEB0ZW1wbGF0ZSBWIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZXMgdXNlZCBmb3IgZmlsdGVyaW5nLlxyXG4gICAqL1xyXG4gIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWYWx1ZUFycmF5PFQsIFY+IGV4dGVuZHMgRXh0cmFjdGFibGVQcm9wZXJ0eTxULCBWPiB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIHZhbHVlczogVltdKSB7XHJcbiAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGFzcyBmb3IgZmlsdGVyaW5nIGRhdGEgYmFzZWQgb24gYSBzZXQgb2YgdmFsdWVzLlxyXG4gICAqIEB0ZW1wbGF0ZSBUIFRoZSB0eXBlIG9mIGRhdGEgdG8gYmUgZmlsdGVyZWQuXHJcbiAgICogQHRlbXBsYXRlIFYgVGhlIHR5cGUgb2YgdGhlIHZhbHVlcyB1c2VkIGZvciBmaWx0ZXJpbmcuXHJcbiAgICovXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZhbHVlU2V0PFQsIFY+IGV4dGVuZHMgRXh0cmFjdGFibGVQcm9wZXJ0eTxULCBWPiB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIHZhbHVlczogU2V0PFY+KSB7XHJcbiAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGFzcyBmb3IgZmlsdGVyaW5nIGRhdGEgd2l0aGluIGEgbWluLW1heCByYW5nZS5cclxuICAgKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiBkYXRhIHRvIGJlIGZpbHRlcmVkLlxyXG4gICAqIEB0ZW1wbGF0ZSBWIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZXMgZGVmaW5pbmcgdGhlIHJhbmdlLlxyXG4gICAqL1xyXG4gIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWYWx1ZU1pbk1heDxULCBWPiBleHRlbmRzIEV4dHJhY3RhYmxlUHJvcGVydHk8VCwgVj4ge1xyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9taW46IFYsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX21heDogVikge1xyXG4gICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtaW4oKTogViB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9taW47XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1heCgpOiBWIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX21heDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb3ZlcnJpZGUgZXF1YWxzKG90aGVyOiBWYWx1ZU1pbk1heDxULCBWPik6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbWluID09PSBvdGhlci5fbWluICYmIHRoaXMuX21heCA9PT0gb3RoZXIuX21heDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsYXNzIGZvciBmaWx0ZXJpbmcgZGF0YSB3aXRoaW4gYSBtaW4tbWF4IHJhbmdlLlxyXG4gICAqIEB0ZW1wbGF0ZSBUIFRoZSB0eXBlIG9mIGRhdGEgdG8gYmUgZmlsdGVyZWQuXHJcbiAgICogQHRlbXBsYXRlIFYgVGhlIHR5cGUgb2YgdGhlIHZhbHVlcyBkZWZpbmluZyB0aGUgcmFuZ2UuXHJcbiAgICovXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZhbHVlTWluTWF4TnVtYmVyPFQ+IGV4dGVuZHMgVmFsdWVNaW5NYXg8VCwgbnVtYmVyPiB7XHJcbiAgICBjb25zdHJ1Y3RvcihtaW46IG51bWJlcixcclxuICAgICAgICAgICAgICAgIG1heDogbnVtYmVyKSB7XHJcbiAgICAgIHN1cGVyKG1pbiwgbWF4KTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBnZXQgbWluKCk6IG51bWJlciB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9taW4gPz8gTnVtYmVyLk1JTl9WQUxVRTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBnZXQgbWF4KCk6IG51bWJlciB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tYXggPz8gTnVtYmVyLk1BWF9WQUxVRTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFic3RyYWN0IGNsYXNzIGZvciBmaWx0ZXJpbmcgZGF0YSBiYXNlZCBvbiB3aGV0aGVyIGEgc3BlY2lmaWMgcHJvcGVydHlcclxuICAgKiBvZiB0aGUgZGF0YSwgd2hlbiB0cmltbWVkIGFuZCBjb252ZXJ0ZWQgdG8gbG93ZXIgY2FzZSwgY29udGFpbnMgYSBzcGVjaWZpZWRcclxuICAgKiBzdWJzdHJpbmcsIGFsc28gdHJpbW1lZCBhbmQgY29udmVydGVkIHRvIGxvd2VyIGNhc2UuXHJcbiAgICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgZGF0YSB0byBiZSBmaWx0ZXJlZC5cclxuICAgKi9cclxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29udGFpbnNTdHJpbmdJZ25vcmVDYXNlPFQ+IGV4dGVuZHMgVmFsdWVTaW5nbGU8VCwgc3RyaW5nPiB7XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIGZpbHRlckZuKCk6IChkYXRhOiBUYWJsZVJvdzxUPikgPT4gYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdpdmVuID0gdGhpcy5leHRyYWN0UHJvcGVydHkoZGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIGdpdmVuPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMudmFsdWU/LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVxdWFsU3RyaW5nPFQ+IGV4dGVuZHMgVmFsdWVTaW5nbGU8VCwgc3RyaW5nPiB7XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIGZpbHRlckZuKCk6IChkYXRhOiBUYWJsZVJvdzxUPikgPT4gYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdpdmVuID0gdGhpcy5leHRyYWN0UHJvcGVydHkoZGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIGdpdmVuID09PSB0aGlzLnZhbHVlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVxdWFsTnVtYmVyPFQ+IGV4dGVuZHMgVmFsdWVTaW5nbGU8VCwgbnVtYmVyPiB7XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIGZpbHRlckZuKCk6IChkYXRhOiBUYWJsZVJvdzxUPikgPT4gYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdpdmVuID0gdGhpcy5leHRyYWN0UHJvcGVydHkoZGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIGdpdmVuID09PSB0aGlzLnZhbHVlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIExlc3NOdW1iZXI8VD4gZXh0ZW5kcyBWYWx1ZVNpbmdsZTxULCBudW1iZXI+IHtcclxuXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZmlsdGVyRm4oKTogKGRhdGE6IFRhYmxlUm93PFQ+KSA9PiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIChkYXRhKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ2l2ZW4gPSB0aGlzLmV4dHJhY3RQcm9wZXJ0eShkYXRhKTtcclxuICAgICAgICByZXR1cm4gZ2l2ZW4gPCB0aGlzLnZhbHVlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIExlc3NPckVxdWFsTnVtYmVyPFQ+IGV4dGVuZHMgVmFsdWVTaW5nbGU8VCwgbnVtYmVyPiB7XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIGZpbHRlckZuKCk6IChkYXRhOiBUYWJsZVJvdzxUPikgPT4gYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdpdmVuID0gdGhpcy5leHRyYWN0UHJvcGVydHkoZGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIGdpdmVuIDw9IHRoaXMudmFsdWU7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9yZU51bWJlcjxUPiBleHRlbmRzIFZhbHVlU2luZ2xlPFQsIG51bWJlcj4ge1xyXG5cclxuICAgIHB1YmxpYyBvdmVycmlkZSBmaWx0ZXJGbigpOiAoZGF0YTogVGFibGVSb3c8VD4pID0+IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gKGRhdGEpID0+IHtcclxuICAgICAgICBjb25zdCBnaXZlbiA9IHRoaXMuZXh0cmFjdFByb3BlcnR5KGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBnaXZlbiA+IHRoaXMudmFsdWU7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9yZU9yRXF1YWxOdW1iZXI8VD4gZXh0ZW5kcyBWYWx1ZVNpbmdsZTxULCBudW1iZXI+IHtcclxuXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZmlsdGVyRm4oKTogKGRhdGE6IFRhYmxlUm93PFQ+KSA9PiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIChkYXRhKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ2l2ZW4gPSB0aGlzLmV4dHJhY3RQcm9wZXJ0eShkYXRhKTtcclxuICAgICAgICByZXR1cm4gZ2l2ZW4gPj0gdGhpcy52YWx1ZTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOdW1iZXJSYW5nZUluY2xNaW5FeGNsTWF4PFQ+IGV4dGVuZHMgVmFsdWVNaW5NYXhOdW1iZXI8VD4ge1xyXG5cclxuICAgIHB1YmxpYyBvdmVycmlkZSBmaWx0ZXJGbigpOiAoZGF0YTogVGFibGVSb3c8VD4pID0+IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gKGRhdGEpID0+IHtcclxuICAgICAgICBjb25zdCBnaXZlbiA9IHRoaXMuZXh0cmFjdFByb3BlcnR5KGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBnaXZlbiA+PSB0aGlzLm1pbiAmJiBnaXZlbiA8IHRoaXMubWF4O1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIE51bWJlclJhbmdlRXhjbE1pbkluY2xNYXg8VD4gZXh0ZW5kcyBWYWx1ZU1pbk1heE51bWJlcjxUPiB7XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIGZpbHRlckZuKCk6IChkYXRhOiBUYWJsZVJvdzxUPikgPT4gYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdpdmVuID0gdGhpcy5leHRyYWN0UHJvcGVydHkoZGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIGdpdmVuID4gdGhpcy5taW4gJiYgZ2l2ZW4gPD0gdGhpcy5tYXg7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgTnVtYmVyUmFuZ2VJbmNsTWluSW5jbE1heDxUPiBleHRlbmRzIFZhbHVlTWluTWF4TnVtYmVyPFQ+IHtcclxuXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZmlsdGVyRm4oKTogKGRhdGE6IFRhYmxlUm93PFQ+KSA9PiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIChkYXRhKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ2l2ZW4gPSB0aGlzLmV4dHJhY3RQcm9wZXJ0eShkYXRhKTtcclxuICAgICAgICByZXR1cm4gZ2l2ZW4gPj0gdGhpcy5taW4gJiYgZ2l2ZW4gPD0gdGhpcy5tYXg7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgTnVtYmVyUmFuZ2VFeGNsTWluRXhjbE1heDxUPiBleHRlbmRzIFZhbHVlTWluTWF4TnVtYmVyPFQ+IHtcclxuXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZmlsdGVyRm4oKTogKGRhdGE6IFRhYmxlUm93PFQ+KSA9PiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIChkYXRhKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ2l2ZW4gPSB0aGlzLmV4dHJhY3RQcm9wZXJ0eShkYXRhKTtcclxuICAgICAgICByZXR1cm4gZ2l2ZW4gPiB0aGlzLm1pbiAmJiBnaXZlbiA8IHRoaXMubWF4O1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIGhhc0luU2V0PFQsIFY+IGV4dGVuZHMgVmFsdWVTZXQ8VCwgVj4ge1xyXG5cclxuICAgIHB1YmxpYyBvdmVycmlkZSBmaWx0ZXJGbigpOiAoZGF0YTogVGFibGVSb3c8VD4pID0+IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gKGRhdGEpID0+IHtcclxuICAgICAgICBjb25zdCBnaXZlbiA9IHRoaXMuZXh0cmFjdFByb3BlcnR5KGRhdGEpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5oYXMoZ2l2ZW4pO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIG5vdEhhc0luU2V0PFQsIFY+IGV4dGVuZHMgVmFsdWVTZXQ8VCwgVj4ge1xyXG5cclxuICAgIHB1YmxpYyBvdmVycmlkZSBmaWx0ZXJGbigpOiAoZGF0YTogVGFibGVSb3c8VD4pID0+IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gKGRhdGEpID0+IHtcclxuICAgICAgICBjb25zdCBnaXZlbiA9IHRoaXMuZXh0cmFjdFByb3BlcnR5KGRhdGEpO1xyXG4gICAgICAgIHJldHVybiAhdGhpcy52YWx1ZXMuaGFzKGdpdmVuKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,61 @@
1
+ export class TableViewFactory {
2
+ /**
3
+ * Converts rows into a view format based on table configuration.
4
+ * @param rows The rows of the table.
5
+ * @param tableConfig The configuration of the table.
6
+ * @returns An array of maps representing the view for each row.
7
+ */
8
+ static toView(rows, tableConfig) {
9
+ const columnViewMap = new Map();
10
+ tableConfig.columnsCfg.forEach(c => {
11
+ if (c.valueView) {
12
+ columnViewMap.set(c.key, c.valueView);
13
+ }
14
+ });
15
+ return TableViewFactory.toViewInternal(rows, columnViewMap);
16
+ }
17
+ static toViewInternal(rows, source) {
18
+ return rows.map(row => TableViewFactory.createColumnConfig(row, source));
19
+ }
20
+ static createColumnConfig(row, columnViewMap) {
21
+ const result = new Map();
22
+ columnViewMap.forEach((view, key) => {
23
+ result.set(key, {
24
+ icon: TableViewFactory.configureIcon(view.icon, row),
25
+ text: TableViewFactory.configureText(view.text, row),
26
+ image: TableViewFactory.configureImage(view.image, row),
27
+ });
28
+ });
29
+ return result;
30
+ }
31
+ static configureIcon(iconSource, row) {
32
+ if (!iconSource)
33
+ return undefined;
34
+ return {
35
+ name: iconSource.name(row),
36
+ color: iconSource.color ? iconSource.color(row) : undefined,
37
+ tooltip: iconSource.tooltip ? iconSource.tooltip(row) : undefined,
38
+ position: iconSource.position,
39
+ wrapper: iconSource.wrapper ? { color: iconSource.wrapper.color(row) } : undefined
40
+ };
41
+ }
42
+ static configureText(textSource, row) {
43
+ if (!textSource)
44
+ return undefined;
45
+ return {
46
+ show: textSource.show,
47
+ tooltip: textSource.tooltip?.(row),
48
+ color: textSource.color?.(row)
49
+ };
50
+ }
51
+ static configureImage(imageSource, row) {
52
+ if (!imageSource)
53
+ return undefined;
54
+ return {
55
+ src: imageSource.src(row),
56
+ width: imageSource.width || undefined,
57
+ height: imageSource.height || undefined
58
+ };
59
+ }
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVWaWV3RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvbW9kZWwvVGFibGVWaWV3RmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBSSxJQUFtQixFQUFFLFdBQTJCO1FBQ3RFLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFzRCxDQUFDO1FBQ3BGLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRTtnQkFDZixhQUFhLENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUksSUFBbUIsRUFBRSxNQUErRDtRQUNuSCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sTUFBTSxDQUFDLGtCQUFrQixDQUFJLEdBQWdCLEVBQUUsYUFBc0U7UUFDM0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDckQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO2dCQUNwRCxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO2dCQUNwRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO2FBQ3hELENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhLENBQUksVUFBZ0UsRUFBRSxHQUFnQjtRQUNoSCxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRWxDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDMUIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0QsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDakUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQzdCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFBLENBQUMsQ0FBQyxTQUFTO1NBQy9FLENBQUE7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBSSxVQUFnRSxFQUFFLEdBQWdCO1FBQ2hILElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFbEMsT0FBTztZQUNMLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUNsQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUMvQixDQUFBO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUksV0FBa0UsRUFBRSxHQUFnQjtRQUNuSCxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRW5DLE9BQU87WUFDTCxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDekIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLElBQUksU0FBUztZQUNyQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sSUFBSSxTQUFTO1NBQ3hDLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RhYmxlUm93fSBmcm9tIFwiLi9UYWJsZVJvd1wiO1xyXG5pbXBvcnQge0NvbHVtblZpZXcsIEljb25WaWV3LCBUZXh0VmlldywgVGFibGVDb25maWcsIEltYWdlVmlld30gZnJvbSBcIi4vQ29sdW1uQ29uZmlnXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVWaWV3RmFjdG9yeSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlcnRzIHJvd3MgaW50byBhIHZpZXcgZm9ybWF0IGJhc2VkIG9uIHRhYmxlIGNvbmZpZ3VyYXRpb24uXHJcbiAgICogQHBhcmFtIHJvd3MgVGhlIHJvd3Mgb2YgdGhlIHRhYmxlLlxyXG4gICAqIEBwYXJhbSB0YWJsZUNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgdGFibGUuXHJcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgbWFwcyByZXByZXNlbnRpbmcgdGhlIHZpZXcgZm9yIGVhY2ggcm93LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgdG9WaWV3PFQ+KHJvd3M6IFRhYmxlUm93PFQ+W10sIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZzxUPik6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj5bXSB7XHJcbiAgICBjb25zdCBjb2x1bW5WaWV3TWFwID0gbmV3IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8KHZhbHVlOiBUYWJsZVJvdzxUPikgPT4gc3RyaW5nPj4oKTtcclxuICAgIHRhYmxlQ29uZmlnLmNvbHVtbnNDZmcuZm9yRWFjaChjID0+IHtcclxuICAgICAgaWYgKGMudmFsdWVWaWV3KSB7XHJcbiAgICAgICAgY29sdW1uVmlld01hcCAuc2V0KGMua2V5LCBjLnZhbHVlVmlldylcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBUYWJsZVZpZXdGYWN0b3J5LnRvVmlld0ludGVybmFsKHJvd3MsIGNvbHVtblZpZXdNYXAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIHRvVmlld0ludGVybmFsPFQ+KHJvd3M6IFRhYmxlUm93PFQ+W10sIHNvdXJjZTogTWFwPHN0cmluZywgQ29sdW1uVmlldzwodmFsdWU6IFRhYmxlUm93PFQ+KSA9PiBzdHJpbmc+Pik6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj5bXSB7XHJcbiAgICByZXR1cm4gcm93cy5tYXAocm93ID0+IFRhYmxlVmlld0ZhY3RvcnkuY3JlYXRlQ29sdW1uQ29uZmlnKHJvdywgc291cmNlKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVDb2x1bW5Db25maWc8VD4ocm93OiBUYWJsZVJvdzxUPiwgY29sdW1uVmlld01hcDogTWFwPHN0cmluZywgQ29sdW1uVmlldzwodmFsdWU6IFRhYmxlUm93PFQ+KSA9PiBzdHJpbmc+Pik6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj4ge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj4oKTtcclxuICAgIGNvbHVtblZpZXdNYXAuZm9yRWFjaCgodmlldywga2V5KSA9PiB7XHJcbiAgICAgIHJlc3VsdC5zZXQoa2V5LCB7XHJcbiAgICAgICAgaWNvbjogVGFibGVWaWV3RmFjdG9yeS5jb25maWd1cmVJY29uKHZpZXcuaWNvbiwgcm93KSxcclxuICAgICAgICB0ZXh0OiBUYWJsZVZpZXdGYWN0b3J5LmNvbmZpZ3VyZVRleHQodmlldy50ZXh0LCByb3cpLFxyXG4gICAgICAgIGltYWdlOiBUYWJsZVZpZXdGYWN0b3J5LmNvbmZpZ3VyZUltYWdlKHZpZXcuaW1hZ2UsIHJvdyksXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY29uZmlndXJlSWNvbjxUPihpY29uU291cmNlOiBJY29uVmlldzwodmFsdWU6IFRhYmxlUm93PFQ+KSA9PiBzdHJpbmc+IHwgdW5kZWZpbmVkLCByb3c6IFRhYmxlUm93PFQ+KTogSWNvblZpZXc8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAoIWljb25Tb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmFtZTogaWNvblNvdXJjZS5uYW1lKHJvdyksXHJcbiAgICAgIGNvbG9yOiBpY29uU291cmNlLmNvbG9yID8gaWNvblNvdXJjZS5jb2xvcihyb3cpIDogdW5kZWZpbmVkLFxyXG4gICAgICB0b29sdGlwOiBpY29uU291cmNlLnRvb2x0aXAgPyBpY29uU291cmNlLnRvb2x0aXAocm93KSA6IHVuZGVmaW5lZCxcclxuICAgICAgcG9zaXRpb246IGljb25Tb3VyY2UucG9zaXRpb24sXHJcbiAgICAgIHdyYXBwZXI6IGljb25Tb3VyY2Uud3JhcHBlcj8ge2NvbG9yOiBpY29uU291cmNlLndyYXBwZXIuY29sb3Iocm93KX06IHVuZGVmaW5lZFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY29uZmlndXJlVGV4dDxUPih0ZXh0U291cmNlOiBUZXh0VmlldzwodmFsdWU6IFRhYmxlUm93PFQ+KSA9PiBzdHJpbmc+IHwgdW5kZWZpbmVkLCByb3c6IFRhYmxlUm93PFQ+KTogVGV4dFZpZXc8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAoIXRleHRTb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2hvdzogdGV4dFNvdXJjZS5zaG93LFxyXG4gICAgICB0b29sdGlwOiB0ZXh0U291cmNlLnRvb2x0aXA/Lihyb3cpLFxyXG4gICAgICBjb2xvcjogdGV4dFNvdXJjZS5jb2xvcj8uKHJvdylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNvbmZpZ3VyZUltYWdlPFQ+KGltYWdlU291cmNlOiBJbWFnZVZpZXc8KHZhbHVlOiBUYWJsZVJvdzxUPikgPT4gc3RyaW5nPiB8IHVuZGVmaW5lZCwgcm93OiBUYWJsZVJvdzxUPik6IEltYWdlVmlldzxzdHJpbmc+IHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICghaW1hZ2VTb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc3JjOiBpbWFnZVNvdXJjZS5zcmMocm93KSxcclxuICAgICAgd2lkdGg6IGltYWdlU291cmNlLndpZHRoIHx8IHVuZGVmaW5lZCxcclxuICAgICAgaGVpZ2h0OiBpbWFnZVNvdXJjZS5oZWlnaHQgfHwgdW5kZWZpbmVkXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==