@coolon/angular-ui-powerups 13.1.7 → 13.2.1

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 (102) hide show
  1. package/assets/table.scss +2 -2
  2. package/esm2020/lib/components/components.module.mjs +22 -19
  3. package/esm2020/lib/components/exports.mjs +28 -21
  4. package/esm2020/lib/components/tables/abstract-table-model.mjs +70 -29
  5. package/esm2020/lib/components/tables/abstract-table.component.mjs +12 -10
  6. package/esm2020/lib/components/tables/column/column-list-model.mjs +39 -0
  7. package/esm2020/lib/components/tables/column/column-model.mjs +180 -0
  8. package/esm2020/lib/components/tables/column/column-template/column-template.directive.mjs +35 -0
  9. package/esm2020/lib/components/tables/column/column-text-properties.mjs +2 -0
  10. package/esm2020/lib/components/tables/column/custom-template-column-model.mjs +16 -0
  11. package/esm2020/lib/components/tables/column/custom-value-column-model.mjs +37 -0
  12. package/esm2020/lib/components/tables/column/editor-controls-column-model.mjs +21 -0
  13. package/esm2020/lib/components/tables/column/list-propery-column-model.mjs +48 -0
  14. package/esm2020/lib/components/tables/column/property-column-model.mjs +92 -0
  15. package/esm2020/lib/components/tables/column/selection-column-model.mjs +40 -0
  16. package/esm2020/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +55 -0
  17. package/esm2020/lib/components/tables/editor/edit-session.mjs +23 -0
  18. package/esm2020/lib/components/tables/editor/editable-cell-renderer.mjs +2 -0
  19. package/esm2020/lib/components/tables/{table/paginator → paginator}/paginator.component.mjs +4 -4
  20. package/esm2020/lib/components/tables/renderer/cell-editors.mjs +2 -0
  21. package/esm2020/lib/components/tables/renderer/cell-portal-ref.mjs +93 -0
  22. package/esm2020/lib/components/tables/renderer/cell-renderer.mjs +2 -0
  23. package/esm2020/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +30 -0
  24. package/esm2020/lib/components/tables/{table → renderer}/default-header-cell-renderer/default-header-cell-renderer.component.mjs +1 -1
  25. package/esm2020/lib/components/tables/renderer/default-list-cell-renderer/default-list-cell-renderer.component.mjs +40 -0
  26. package/esm2020/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +31 -0
  27. package/esm2020/lib/components/tables/renderer/selection-cell/selection-cell.component.mjs +26 -0
  28. package/esm2020/lib/components/tables/renderer/table-cell/table-cell.component.mjs +93 -0
  29. package/esm2020/lib/components/tables/renderer/table-header-cell/table-header-cell.component.mjs +32 -0
  30. package/esm2020/lib/components/tables/search/column-text-search-formatter.mjs +52 -0
  31. package/esm2020/lib/components/tables/search/enable-cell-text-search.decorator.mjs +30 -0
  32. package/esm2020/lib/components/tables/table/table-model.mjs +2 -10
  33. package/esm2020/lib/components/tables/table/table.component.mjs +12 -12
  34. package/esm2020/lib/components/tables/table-row-menu/table-row-menu.component.mjs +84 -0
  35. package/esm2020/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
  36. package/esm2020/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  37. package/esm2020/lib/components/tables/tree-table/tree-table-component.mjs +10 -10
  38. package/esm2020/lib/components/tables/tree-table/tree-table-model.mjs +1 -1
  39. package/fesm2015/coolon-angular-ui-powerups.mjs +608 -446
  40. package/fesm2015/coolon-angular-ui-powerups.mjs.map +1 -1
  41. package/fesm2020/coolon-angular-ui-powerups.mjs +740 -580
  42. package/fesm2020/coolon-angular-ui-powerups.mjs.map +1 -1
  43. package/lib/components/components.module.d.ts +55 -54
  44. package/lib/components/exports.d.ts +27 -20
  45. package/lib/components/tables/abstract-table-model.d.ts +24 -13
  46. package/lib/components/tables/abstract-table.component.d.ts +6 -5
  47. package/lib/components/tables/{column-list-model.d.ts → column/column-list-model.d.ts} +4 -4
  48. package/lib/components/tables/column/column-model.d.ts +77 -0
  49. package/lib/components/tables/column/custom-template-column-model.d.ts +8 -0
  50. package/lib/components/tables/column/custom-value-column-model.d.ts +10 -0
  51. package/lib/components/tables/column/editor-controls-column-model.d.ts +13 -0
  52. package/lib/components/tables/column/list-propery-column-model.d.ts +15 -0
  53. package/lib/components/tables/column/property-column-model.d.ts +24 -0
  54. package/lib/components/tables/column/selection-column-model.d.ts +12 -0
  55. package/lib/components/tables/{table → editor}/edit-row-controls/edit-row-controls.component.d.ts +1 -1
  56. package/lib/components/tables/{edit-session.d.ts → editor/edit-session.d.ts} +2 -2
  57. package/lib/components/tables/{table/mutable-cell-renderer.d.ts → editor/editable-cell-renderer.d.ts} +2 -2
  58. package/lib/components/tables/{table/paginator → paginator}/paginator.component.d.ts +1 -1
  59. package/lib/components/tables/{table → renderer}/cell-portal-ref.d.ts +18 -18
  60. package/lib/components/tables/renderer/cell-renderer.d.ts +3 -0
  61. package/lib/components/tables/{table → renderer}/default-cell-renderer/default-cell-renderer.component.d.ts +1 -1
  62. package/lib/components/tables/renderer/default-list-cell-renderer/default-list-cell-renderer.component.d.ts +12 -0
  63. package/lib/components/tables/{table/select-header-cell-renderer/select-header-cell-renderer.component.d.ts → renderer/select-header-cell/selection-header-cell.component.d.ts} +3 -3
  64. package/lib/components/tables/{table/select-cell-renderer/select-cell-renderer.component.d.ts → renderer/selection-cell/selection-cell.component.d.ts} +3 -3
  65. package/lib/components/tables/{table/table-cell-renderer/table-cell-renderer.component.d.ts → renderer/table-cell/table-cell.component.d.ts} +5 -5
  66. package/lib/components/tables/{table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts → renderer/table-header-cell/table-header-cell.component.d.ts} +4 -4
  67. package/lib/components/tables/search/column-text-search-formatter.d.ts +28 -0
  68. package/lib/components/tables/search/enable-cell-text-search.decorator.d.ts +25 -0
  69. package/lib/components/tables/table/table-model.d.ts +3 -9
  70. package/lib/components/tables/table/table.component.d.ts +4 -4
  71. package/lib/components/tables/{table/table-row-menu → table-row-menu}/table-row-menu.component.d.ts +3 -3
  72. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  73. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +1 -1
  74. package/lib/components/tables/tree-table/tree-table-component.d.ts +2 -2
  75. package/lib/components/tables/tree-table/tree-table-model.d.ts +1 -1
  76. package/package.json +2 -1
  77. package/esm2020/lib/components/tables/column-list-model.mjs +0 -39
  78. package/esm2020/lib/components/tables/edit-session.mjs +0 -23
  79. package/esm2020/lib/components/tables/table/cell-editors.mjs +0 -2
  80. package/esm2020/lib/components/tables/table/cell-portal-ref.mjs +0 -93
  81. package/esm2020/lib/components/tables/table/cell-renderer.mjs +0 -2
  82. package/esm2020/lib/components/tables/table/column-model.mjs +0 -392
  83. package/esm2020/lib/components/tables/table/column-template/column-template.directive.mjs +0 -35
  84. package/esm2020/lib/components/tables/table/column-text-properties.mjs +0 -2
  85. package/esm2020/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.mjs +0 -22
  86. package/esm2020/lib/components/tables/table/edit-row-controls/edit-row-controls.component.mjs +0 -55
  87. package/esm2020/lib/components/tables/table/mutable-cell-renderer.mjs +0 -2
  88. package/esm2020/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.mjs +0 -26
  89. package/esm2020/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.mjs +0 -31
  90. package/esm2020/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.mjs +0 -93
  91. package/esm2020/lib/components/tables/table/table-def.mjs +0 -2
  92. package/esm2020/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.mjs +0 -32
  93. package/esm2020/lib/components/tables/table/table-row-menu/table-row-menu.component.mjs +0 -84
  94. package/esm2020/lib/components/tables/table/text-search-predicate.mjs +0 -2
  95. package/lib/components/tables/table/cell-renderer.d.ts +0 -5
  96. package/lib/components/tables/table/column-model.d.ts +0 -145
  97. package/lib/components/tables/table/table-def.d.ts +0 -7
  98. package/lib/components/tables/table/text-search-predicate.d.ts +0 -1
  99. /package/lib/components/tables/{table → column}/column-template/column-template.directive.d.ts +0 -0
  100. /package/lib/components/tables/{table → column}/column-text-properties.d.ts +0 -0
  101. /package/lib/components/tables/{table → renderer}/cell-editors.d.ts +0 -0
  102. /package/lib/components/tables/{table → renderer}/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +0 -0
@@ -0,0 +1,93 @@
1
+ import { Component, ComponentRef, HostBinding, Input } from '@angular/core';
2
+ import { Command, Dsl } from '@coolon/pectin';
3
+ import { DisposableComponent } from '../../../disposable-component';
4
+ import { AbstractTableModel } from '../../abstract-table-model';
5
+ import { ColumnModel } from '../../column/column-model';
6
+ import { EditSession } from '../../editor/edit-session';
7
+ import { CELL_RENDERER_PORTAL, CELL_EDITOR_PORTAL } from '../cell-portal-ref';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@angular/cdk/portal";
11
+ export class TableCellComponent extends DisposableComponent {
12
+ constructor() {
13
+ super();
14
+ this.defaultClassNames = 'aup-cell-renderer';
15
+ this.fillCell = false;
16
+ this.padChild = false;
17
+ this.editRowCommand = Command.create(() => {
18
+ this.tableModel.startEditSession(this.row);
19
+ });
20
+ }
21
+ ngOnInit() {
22
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
23
+ this.firstEditableColumn = chain(this.tableModel.firstEditableColumn$).equals(this.column); // this would break if the column changed.
24
+ this.column.attachCell(this);
25
+ }
26
+ hasActiveEditor() {
27
+ return !!this.editSession && !!this.column.hasEditorPortal();
28
+ }
29
+ initialiseRenderer(ref) {
30
+ this.column.onRendererAttached(this, ref);
31
+ }
32
+ initialiseEditor(ref) {
33
+ this.column.onEditorAttached(this, ref);
34
+ if (this.firstEditableColumn.value) {
35
+ // @see https://github.com/angular/components/issues/12070
36
+ setTimeout(() => this.tryAndFocusEditor(ref));
37
+ }
38
+ }
39
+ tryAndFocusEditor(ref) {
40
+ if (ref instanceof ComponentRef) {
41
+ const editor = ref.instance;
42
+ // CellEditorComponent<Row> | CellListEditorComponent<Row>
43
+ if (editor.requestFocus) {
44
+ editor.requestFocus();
45
+ }
46
+ else {
47
+ const model = (editor['valueModel'] || editor['listModel']);
48
+ model?.focusContext?.requestFocus();
49
+ }
50
+ }
51
+ }
52
+ // @Trace()
53
+ ngOnChanges(changes) {
54
+ this.column.updatePortalContent(this);
55
+ }
56
+ getRendererPortal() {
57
+ return this[CELL_RENDERER_PORTAL];
58
+ }
59
+ getEditorPortal() {
60
+ return this[CELL_EDITOR_PORTAL];
61
+ }
62
+ getRowData() {
63
+ return {
64
+ row: this.row,
65
+ editSession: this.editSession,
66
+ editRowCommand: this.editRowCommand
67
+ };
68
+ }
69
+ }
70
+ TableCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
+ TableCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableCellComponent, selector: "aup-table-cell", inputs: { row: "row", column: "column", editSession: "editSession", tableModel: "tableModel" }, host: { properties: { "class": "this.defaultClassNames", "class.fillCell": "this.fillCell", "class.padChild": "this.padChild" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!hasActiveEditor()\" [cdkPortalOutlet]=\"getRendererPortal()\" (attached)=\"initialiseRenderer($event)\"></ng-container>\n<ng-container *ngIf=\"hasActiveEditor()\" [cdkPortalOutlet]=\"getEditorPortal()\" (attached)=\"initialiseEditor($event)\"></ng-container>\n", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableCellComponent, decorators: [{
73
+ type: Component,
74
+ args: [{ selector: 'aup-table-cell', template: "<ng-container *ngIf=\"!hasActiveEditor()\" [cdkPortalOutlet]=\"getRendererPortal()\" (attached)=\"initialiseRenderer($event)\"></ng-container>\n<ng-container *ngIf=\"hasActiveEditor()\" [cdkPortalOutlet]=\"getEditorPortal()\" (attached)=\"initialiseEditor($event)\"></ng-container>\n", styles: [""] }]
75
+ }], ctorParameters: function () { return []; }, propDecorators: { row: [{
76
+ type: Input
77
+ }], column: [{
78
+ type: Input
79
+ }], editSession: [{
80
+ type: Input
81
+ }], tableModel: [{
82
+ type: Input
83
+ }], defaultClassNames: [{
84
+ type: HostBinding,
85
+ args: ['class']
86
+ }], fillCell: [{
87
+ type: HostBinding,
88
+ args: ['class.fillCell']
89
+ }], padChild: [{
90
+ type: HostBinding,
91
+ args: ['class.padChild']
92
+ }] } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtY2VsbC90YWJsZS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBMEIsT0FBTyxFQUFFLEdBQUcsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsV0FBVyxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTzlFLE1BQU0sT0FBTyxrQkFBd0IsU0FBUSxtQkFBbUI7SUE4QjlEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFYVixzQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztRQUd4QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNZixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FB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QkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsL3BvcnRhbC1kaXJlY3RpdmVzXCI7XG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sIENvbW1hbmQsIERzbCwgSGFzRm9jdXNDb250ZXh0LCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IFN0cmluZ3kgfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi9hYnN0cmFjdC10YWJsZS1tb2RlbCc7XG5pbXBvcnQgeyBDZWxsRWRpdG9yQ29tcG9uZW50LCBDZWxsTGlzdEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2NlbGwtZWRpdG9ycyc7XG5pbXBvcnQgeyBDb2x1bW5Nb2RlbCwgUm93RGF0YSB9IGZyb20gJy4uLy4uL2NvbHVtbi9jb2x1bW4tbW9kZWwnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi8uLi9lZGl0b3IvZWRpdC1zZXNzaW9uJztcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi90YWJsZS90YWJsZS1tb2RlbCc7XG5pbXBvcnQgeyBDRUxMX1JFTkRFUkVSX1BPUlRBTCwgQ0VMTF9FRElUT1JfUE9SVEFMIH0gZnJvbSAnLi4vY2VsbC1wb3J0YWwtcmVmJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRhYmxlLWNlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWNlbGwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNlbGxDb21wb25lbnQ8Um93PiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KClcbiAgcm93OiBSb3c7XG5cbiAgQElucHV0KClcbiAgY29sdW1uOiBDb2x1bW5Nb2RlbDxSb3c+O1xuXG4gIEBJbnB1dCgpXG4gIGVkaXRTZXNzaW9uOiBFZGl0U2Vzc2lvbjxSb3c+O1xuXG4gIEBJbnB1dCgpXG4gIHRhYmxlTW9kZWw6IEFic3RyYWN0VGFibGVNb2RlbDxSb3c+O1xuXG4gIHByaXZhdGUgZWRpdFJvd0NvbW1hbmQ6IENvbW1hbmQ8dm9pZD47XG5cbiAgW0NFTExfUkVOREVSRVJfUE9SVEFMXTogUG9ydGFsPGFueT47XG4gIFtDRUxMX0VESVRPUl9QT1JUQUxdOiBQb3J0YWw8YW55PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZGVmYXVsdENsYXNzTmFtZXMgPSAnYXVwLWNlbGwtcmVuZGVyZXInO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsbENlbGwnKVxuICBmaWxsQ2VsbCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucGFkQ2hpbGQnKVxuICBwYWRDaGlsZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZmlyc3RFZGl0YWJsZUNvbHVtbjogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZWRpdFJvd0NvbW1hbmQgPSBDb21tYW5kLmNyZWF0ZSgoKSA9PiB7XG4gICAgICB0aGlzLnRhYmxlTW9kZWwuc3RhcnRFZGl0U2Vzc2lvbih0aGlzLnJvdyk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuZmlyc3RFZGl0YWJsZUNvbHVtbiA9IGNoYWluKHRoaXMudGFibGVNb2RlbC5maXJzdEVkaXRhYmxlQ29sdW1uJCkuZXF1YWxzKHRoaXMuY29sdW1uKTsgLy8gdGhpcyB3b3VsZCBicmVhayBpZiB0aGUgY29sdW1uIGNoYW5nZWQuXG4gICAgdGhpcy5jb2x1bW4uYXR0YWNoQ2VsbCh0aGlzKTtcbiAgfVxuXG4gIGhhc0FjdGl2ZUVkaXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmVkaXRTZXNzaW9uICYmICEhdGhpcy5jb2x1bW4uaGFzRWRpdG9yUG9ydGFsKCk7XG4gIH1cblxuICBpbml0aWFsaXNlUmVuZGVyZXIocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHRoaXMuY29sdW1uLm9uUmVuZGVyZXJBdHRhY2hlZCh0aGlzLCByZWYpO1xuICB9XG5cbiAgaW5pdGlhbGlzZUVkaXRvcihyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgdGhpcy5jb2x1bW4ub25FZGl0b3JBdHRhY2hlZCh0aGlzLCByZWYpO1xuICAgIGlmICh0aGlzLmZpcnN0RWRpdGFibGVDb2x1bW4udmFsdWUpIHtcbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMTIwNzBcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50cnlBbmRGb2N1c0VkaXRvcihyZWYpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyeUFuZEZvY3VzRWRpdG9yKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICBjb25zdCBlZGl0b3IgPSByZWYuaW5zdGFuY2U7XG4gICAgICAvLyBDZWxsRWRpdG9yQ29tcG9uZW50PFJvdz4gfCBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxSb3c+XG4gICAgICBpZiAoZWRpdG9yLnJlcXVlc3RGb2N1cykge1xuICAgICAgICBlZGl0b3IucmVxdWVzdEZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtb2RlbCA9IChlZGl0b3JbJ3ZhbHVlTW9kZWwnXSB8fCBlZGl0b3JbJ2xpc3RNb2RlbCddKSBhcyBIYXNGb2N1c0NvbnRleHQ7XG4gICAgICAgIG1vZGVsPy5mb2N1c0NvbnRleHQ/LnJlcXVlc3RGb2N1cygpO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uLnVwZGF0ZVBvcnRhbENvbnRlbnQodGhpcyk7XG4gIH1cblxuICBnZXRSZW5kZXJlclBvcnRhbCgpIHtcbiAgICByZXR1cm4gdGhpc1tDRUxMX1JFTkRFUkVSX1BPUlRBTF07XG4gIH1cblxuICBnZXRFZGl0b3JQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXNbQ0VMTF9FRElUT1JfUE9SVEFMXTtcbiAgfVxuXG4gIGdldFJvd0RhdGEoKTogUm93RGF0YTxSb3c+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcm93OiB0aGlzLnJvdyxcbiAgICAgIGVkaXRTZXNzaW9uOiB0aGlzLmVkaXRTZXNzaW9uLFxuICAgICAgZWRpdFJvd0NvbW1hbmQ6IHRoaXMuZWRpdFJvd0NvbW1hbmRcbiAgICB9O1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0FjdGl2ZUVkaXRvcigpXCIgW2Nka1BvcnRhbE91dGxldF09XCJnZXRSZW5kZXJlclBvcnRhbCgpXCIgKGF0dGFjaGVkKT1cImluaXRpYWxpc2VSZW5kZXJlcigkZXZlbnQpXCI+PC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQWN0aXZlRWRpdG9yKClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cImdldEVkaXRvclBvcnRhbCgpXCIgKGF0dGFjaGVkKT1cImluaXRpYWxpc2VFZGl0b3IoJGV2ZW50KVwiPjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,32 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import { ColumnModel } from '../../column/column-model';
3
+ import { HEADER_CELL_RENDERER_PORTAL } from '../cell-portal-ref';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/portal";
6
+ export class TableHeaderCellComponent {
7
+ constructor() {
8
+ this.defaultClassNames = 'aup-header-cell-renderer';
9
+ }
10
+ ngOnInit() {
11
+ this.column.attachHeaderCell(this);
12
+ }
13
+ // @Trace()
14
+ initialiseHeader(ref) {
15
+ this.column.onHeaderAttached(this, ref);
16
+ }
17
+ getPortal() {
18
+ return this[HEADER_CELL_RENDERER_PORTAL];
19
+ }
20
+ }
21
+ TableHeaderCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ TableHeaderCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: { column: "column" }, host: { properties: { "class": "this.defaultClassNames" } }, ngImport: i0, template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"], directives: [{ type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableHeaderCellComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'aup-table-header-cell', template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"] }]
26
+ }], ctorParameters: function () { return []; }, propDecorators: { column: [{
27
+ type: Input
28
+ }], defaultClassNames: [{
29
+ type: HostBinding,
30
+ args: ['class']
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFNBQVMsRUFBZ0IsV0FBVyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQU9qRSxNQUFNLE9BQU8sd0JBQXdCO0lBVW5DO1FBSkEsc0JBQWlCLEdBQUcsMEJBQTBCLENBQUM7SUFLL0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXO0lBQ1gsZ0JBQWdCLENBQUMsR0FBK0I7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7O3FIQXhCVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix3SkNackMsMkdBQ0E7MkZEV2Esd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QjswRUFPakMsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge0Nka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbC9wb3J0YWwtZGlyZWN0aXZlc1wiO1xuaW1wb3J0IHtDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtsYW5nfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgQ29sdW1uTW9kZWwgfSBmcm9tICcuLi8uLi9jb2x1bW4vY29sdW1uLW1vZGVsJztcbmltcG9ydCB7IEhFQURFUl9DRUxMX1JFTkRFUkVSX1BPUlRBTCB9IGZyb20gJy4uL2NlbGwtcG9ydGFsLXJlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC10YWJsZS1oZWFkZXItY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBjb2x1bW46IENvbHVtbk1vZGVsPGFueT47XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGRlZmF1bHRDbGFzc05hbWVzID0gJ2F1cC1oZWFkZXItY2VsbC1yZW5kZXJlcic7XG5cbiAgW0hFQURFUl9DRUxMX1JFTkRFUkVSX1BPUlRBTF06IFBvcnRhbDxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW4uYXR0YWNoSGVhZGVyQ2VsbCh0aGlzKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGluaXRpYWxpc2VIZWFkZXIocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHRoaXMuY29sdW1uLm9uSGVhZGVyQXR0YWNoZWQodGhpcywgcmVmKTtcbiAgfVxuXG4gIGdldFBvcnRhbCgpIHtcbiAgICByZXR1cm4gdGhpc1tIRUFERVJfQ0VMTF9SRU5ERVJFUl9QT1JUQUxdO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtjZGtQb3J0YWxPdXRsZXRdPVwiZ2V0UG9ydGFsKClcIiAoYXR0YWNoZWQpPVwiaW5pdGlhbGlzZUhlYWRlcigkZXZlbnQpXCI+PC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,52 @@
1
+ export class ColumnTextSearchFormatter {
2
+ }
3
+ (function (ColumnTextSearchFormatter) {
4
+ class Delegate extends ColumnTextSearchFormatter {
5
+ }
6
+ ColumnTextSearchFormatter.Delegate = Delegate;
7
+ class Delegating extends ColumnTextSearchFormatter.Delegate {
8
+ constructor(delegateClass) {
9
+ super();
10
+ this.delegateClass = delegateClass;
11
+ }
12
+ initialise(injector) {
13
+ this._delegate = injector.get(this.delegateClass);
14
+ if (this._delegate instanceof Delegating) {
15
+ this._delegate.initialise(injector);
16
+ }
17
+ }
18
+ format(row) {
19
+ return this._delegate ? this._delegate.format(row) : "";
20
+ }
21
+ }
22
+ ColumnTextSearchFormatter.Delegating = Delegating;
23
+ function forFormatter(formatter) {
24
+ return new class extends ColumnTextSearchFormatter {
25
+ format(value) {
26
+ return formatter(value);
27
+ }
28
+ };
29
+ }
30
+ ColumnTextSearchFormatter.forFormatter = forFormatter;
31
+ class Null extends ColumnTextSearchFormatter {
32
+ format(value) {
33
+ return "";
34
+ }
35
+ }
36
+ ColumnTextSearchFormatter.Null = Null;
37
+ class DefaultValueFormatter extends ColumnTextSearchFormatter {
38
+ format(value) {
39
+ let s = value?.toString() ?? "";
40
+ console.log("DefaultValueFormatter", { value, text: s });
41
+ return s;
42
+ }
43
+ }
44
+ ColumnTextSearchFormatter.DefaultValueFormatter = DefaultValueFormatter;
45
+ class DefaultArrayFormatter extends ColumnTextSearchFormatter {
46
+ format(value) {
47
+ return value ? value.map(it => it?.toString()).join(",") : "";
48
+ }
49
+ }
50
+ ColumnTextSearchFormatter.DefaultArrayFormatter = DefaultArrayFormatter;
51
+ })(ColumnTextSearchFormatter || (ColumnTextSearchFormatter = {}));
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXRleHQtc2VhcmNoLWZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3NlYXJjaC9jb2x1bW4tdGV4dC1zZWFyY2gtZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBZ0IseUJBQXlCO0NBRTlDO0FBRUQsV0FBaUIseUJBQXlCO0lBRXhDLE1BQXNCLFFBQVksU0FBUSx5QkFBNEI7S0FFckU7SUFGcUIsa0NBQVEsV0FFN0IsQ0FBQTtJQUVELE1BQWEsVUFBZ0IsU0FBUSx5QkFBeUIsQ0FBQyxRQUFhO1FBRzFFLFlBQTZCLGFBQTBEO1lBQ3JGLEtBQUssRUFBRSxDQUFDO1lBRG1CLGtCQUFhLEdBQWIsYUFBYSxDQUE2QztRQUV2RixDQUFDO1FBRUQsVUFBVSxDQUFDLFFBQWtCO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEQsSUFBSSxJQUFJLENBQUMsU0FBUyxZQUFZLFVBQVUsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQVE7WUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsQ0FBQztLQUNGO0lBakJZLG9DQUFVLGFBaUJ0QixDQUFBO0lBSUQsU0FBZ0IsWUFBWSxDQUFNLFNBQWdDO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEseUJBQThCO1lBQ3JELE1BQU0sQ0FBQyxLQUFVO2dCQUNmLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQU5lLHNDQUFZLGVBTTNCLENBQUE7SUFFRCxNQUFhLElBQUssU0FBUSx5QkFBOEI7UUFDdEQsTUFBTSxDQUFDLEtBQVU7WUFDZixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7S0FDRjtJQUpZLDhCQUFJLE9BSWhCLENBQUE7SUFFRCxNQUFhLHFCQUFzQixTQUFRLHlCQUE4QjtRQUN2RSxNQUFNLENBQUMsS0FBVTtZQUNmLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN4RCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7S0FDRjtJQU5ZLCtDQUFxQix3QkFNakMsQ0FBQTtJQUVELE1BQWEscUJBQXNCLFNBQVEseUJBQWdDO1FBQ3pFLE1BQU0sQ0FBQyxLQUFZO1lBQ2pCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEUsQ0FBQztLQUNGO0lBSlksK0NBQXFCLHdCQUlqQyxDQUFBO0FBQ0gsQ0FBQyxFQXREZ0IseUJBQXlCLEtBQXpCLHlCQUF5QixRQXNEekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPFQ+IHtcbiAgYWJzdHJhY3QgZm9ybWF0KHZhbHVlOlQpOnN0cmluZztcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyIHtcblxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgRGVsZWdhdGU8VD4gZXh0ZW5kcyBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPFQ+IHtcbiAgICBhYnN0cmFjdCBpbml0aWFsaXNlKGluamVjdG9yOkluamVjdG9yKTtcbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBEZWxlZ2F0aW5nPFJvdz4gZXh0ZW5kcyBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyLkRlbGVnYXRlPFJvdz4ge1xuICAgIHByaXZhdGUgX2RlbGVnYXRlOiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPFJvdz47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRlbGVnYXRlQ2xhc3M6IENvbnN0cnVjdG9yPENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXI8Um93Pj4pIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGlzZShpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgIHRoaXMuX2RlbGVnYXRlID0gaW5qZWN0b3IuZ2V0KHRoaXMuZGVsZWdhdGVDbGFzcyk7XG4gICAgICBpZiAodGhpcy5fZGVsZWdhdGUgaW5zdGFuY2VvZiBEZWxlZ2F0aW5nKSB7XG4gICAgICAgIHRoaXMuX2RlbGVnYXRlLmluaXRpYWxpc2UoaW5qZWN0b3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvcm1hdChyb3c6IFJvdyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUgPyB0aGlzLl9kZWxlZ2F0ZS5mb3JtYXQocm93KSA6IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IHR5cGUgRm9ybWF0PFQ+ID0gKGl0ZW06VCkgPT4gc3RyaW5nO1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBmb3JGb3JtYXR0ZXI8Um93Pihmb3JtYXR0ZXI6IChpdGVtOiBSb3cpID0+IHN0cmluZyk6Q29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxSb3c+IHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxSb3c+IHtcbiAgICAgIGZvcm1hdCh2YWx1ZTogUm93KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlcih2YWx1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBOdWxsIGV4dGVuZHMgQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnk+IHtcbiAgICBmb3JtYXQodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRGVmYXVsdFZhbHVlRm9ybWF0dGVyIGV4dGVuZHMgQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnk+IHtcbiAgICBmb3JtYXQodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICBsZXQgcyA9IHZhbHVlPy50b1N0cmluZygpID8/IFwiXCI7XG4gICAgICBjb25zb2xlLmxvZyhcIkRlZmF1bHRWYWx1ZUZvcm1hdHRlclwiLCB7IHZhbHVlLCB0ZXh0OiBzIH0pXG4gICAgICByZXR1cm4gcztcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRGVmYXVsdEFycmF5Rm9ybWF0dGVyIGV4dGVuZHMgQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnlbXT4ge1xuICAgIGZvcm1hdCh2YWx1ZTogYW55W10pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUubWFwKGl0ID0+IGl0Py50b1N0cmluZygpKS5qb2luKFwiLFwiKSA6IFwiXCI7XG4gICAgfVxuICB9XG59XG5cblxuIl19
@@ -0,0 +1,30 @@
1
+ import { Klass, assert } from "@coolon/typescript-utilities";
2
+ import { Enum } from "typescript-string-enums";
3
+ import { ColumnTextSearchFormatter } from "./column-text-search-formatter";
4
+ const TEXT_SEARCH_FORMATTER_KEY = `aup:table:textSearchFormatter`;
5
+ export const Keys = Enum("useFunction", "useInstance", "useClass");
6
+ export function EnableCellTextSearch(options) {
7
+ assert.notNil(options);
8
+ return (constructor) => {
9
+ const klass = Klass.get(constructor);
10
+ assert.isFalsey(klass.hasOwnMetadata(TEXT_SEARCH_FORMATTER_KEY), "class already decorated with @EnableCellTextSearch");
11
+ klass.defineMetadata(TEXT_SEARCH_FORMATTER_KEY, options);
12
+ };
13
+ }
14
+ (function (EnableCellTextSearch) {
15
+ function getFormatter(renderer, useDefault) {
16
+ const options = Klass.get(renderer).getMetadata(TEXT_SEARCH_FORMATTER_KEY) ?? {};
17
+ if (options[Keys.useFunction]) {
18
+ return ColumnTextSearchFormatter.forFormatter(options[Keys.useFunction]);
19
+ }
20
+ if (options[Keys.useInstance]) {
21
+ return options[Keys.useInstance];
22
+ }
23
+ if (options[Keys.useClass]) {
24
+ return new ColumnTextSearchFormatter.Delegating(options[Keys.useClass]);
25
+ }
26
+ return useDefault();
27
+ }
28
+ EnableCellTextSearch.getFormatter = getFormatter;
29
+ })(EnableCellTextSearch || (EnableCellTextSearch = {}));
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5hYmxlLWNlbGwtdGV4dC1zZWFyY2guZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvc2VhcmNoL2VuYWJsZS1jZWxsLXRleHQtc2VhcmNoLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBdUIsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJM0UsTUFBTSx5QkFBeUIsR0FBRywrQkFBK0IsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFlbkUsTUFBTSxVQUFVLG9CQUFvQixDQUFNLE9BQTREO0lBQ3BHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsT0FBTyxDQUFDLFdBQXFCLEVBQUUsRUFBRTtRQUMvQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLG9EQUFvRCxDQUFDLENBQUM7UUFDdkgsS0FBSyxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsV0FBaUIsb0JBQW9CO0lBQ25DLFNBQWdCLFlBQVksQ0FBQyxRQUEwQyxFQUFFLFVBQWdEO1FBQ3ZILE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pGLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QixPQUFPLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDMUU7UUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsT0FBTyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBWmUsaUNBQVksZUFZM0IsQ0FBQTtBQUNILENBQUMsRUFkZ0Isb0JBQW9CLEtBQXBCLG9CQUFvQixRQWNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IEtsYXNzLCBhc3NlcnQsIGxhbmcsIENvbnN0cnVjdGFibGUgfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgRW51bSB9IGZyb20gXCJ0eXBlc2NyaXB0LXN0cmluZy1lbnVtc1wiO1xuaW1wb3J0IHsgQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlciB9IGZyb20gXCIuL2NvbHVtbi10ZXh0LXNlYXJjaC1mb3JtYXR0ZXJcIjtcbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgQ2VsbFJlbmRlcmVyIH0gZnJvbSBcIi4uL3JlbmRlcmVyL2NlbGwtcmVuZGVyZXJcIjtcblxuY29uc3QgVEVYVF9TRUFSQ0hfRk9STUFUVEVSX0tFWSA9IGBhdXA6dGFibGU6dGV4dFNlYXJjaEZvcm1hdHRlcmA7XG5leHBvcnQgY29uc3QgS2V5cyA9IEVudW0oXCJ1c2VGdW5jdGlvblwiLCBcInVzZUluc3RhbmNlXCIsIFwidXNlQ2xhc3NcIik7XG5leHBvcnQgdHlwZSBLZXlzID0gRW51bTx0eXBlb2YgS2V5cz47XG5cbmludGVyZmFjZSBVc2VGdW5jdGlvbjxSb3c+IHtcbiAgW0tleXMudXNlRnVuY3Rpb25dOiAocm93OiBSb3cpID0+IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFVzZUluc3RhbmNlPFJvdz4ge1xuICBbS2V5cy51c2VJbnN0YW5jZV06IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXI8Um93Pjtcbn1cblxuaW50ZXJmYWNlIFVzZUNsYXNzPFJvdz4ge1xuICBbS2V5cy51c2VDbGFzc106IENvbnN0cnVjdGFibGU8Q29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxSb3c+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEVuYWJsZUNlbGxUZXh0U2VhcmNoPFJvdz4ob3B0aW9uczogVXNlRnVuY3Rpb248Um93PiB8IFVzZUluc3RhbmNlPFJvdz4gfCBVc2VDbGFzczxSb3c+KTogQ2xhc3NEZWNvcmF0b3Ige1xuICBhc3NlcnQubm90TmlsKG9wdGlvbnMpO1xuICByZXR1cm4gKGNvbnN0cnVjdG9yOiBGdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGtsYXNzID0gS2xhc3MuZ2V0KGNvbnN0cnVjdG9yKTtcbiAgICBhc3NlcnQuaXNGYWxzZXkoa2xhc3MuaGFzT3duTWV0YWRhdGEoVEVYVF9TRUFSQ0hfRk9STUFUVEVSX0tFWSksIFwiY2xhc3MgYWxyZWFkeSBkZWNvcmF0ZWQgd2l0aCBARW5hYmxlQ2VsbFRleHRTZWFyY2hcIik7XG4gICAga2xhc3MuZGVmaW5lTWV0YWRhdGEoVEVYVF9TRUFSQ0hfRk9STUFUVEVSX0tFWSwgb3B0aW9ucyk7XG4gIH07XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRW5hYmxlQ2VsbFRleHRTZWFyY2gge1xuICBleHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVyKHJlbmRlcmVyOiBDb21wb25lbnRUeXBlPENlbGxSZW5kZXJlcjxhbnk+PiwgdXNlRGVmYXVsdDogKCkgPT4gQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnk+KTogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnk+IHtcbiAgICBjb25zdCBvcHRpb25zID0gS2xhc3MuZ2V0KHJlbmRlcmVyKS5nZXRNZXRhZGF0YShURVhUX1NFQVJDSF9GT1JNQVRURVJfS0VZKSA/PyB7fTtcbiAgICBpZiAob3B0aW9uc1tLZXlzLnVzZUZ1bmN0aW9uXSkge1xuICAgICAgcmV0dXJuIENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXIuZm9yRm9ybWF0dGVyKG9wdGlvbnNbS2V5cy51c2VGdW5jdGlvbl0pO1xuICAgIH1cbiAgICBpZiAob3B0aW9uc1tLZXlzLnVzZUluc3RhbmNlXSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnNbS2V5cy51c2VJbnN0YW5jZV07XG4gICAgfVxuICAgIGlmIChvcHRpb25zW0tleXMudXNlQ2xhc3NdKSB7XG4gICAgICByZXR1cm4gbmV3IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXIuRGVsZWdhdGluZyhvcHRpb25zW0tleXMudXNlQ2xhc3NdKTtcbiAgICB9XG4gICAgcmV0dXJuIHVzZURlZmF1bHQoKTtcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { AbstractTableModel } from '../abstract-table-model';
1
+ import { AbstractTableModel } from "../abstract-table-model";
2
2
  /**
3
3
  * Example:
4
4
  * @example
@@ -86,16 +86,8 @@ export class TableModel extends AbstractTableModel {
86
86
  }
87
87
  this.setDataSource(sourceOfTruth);
88
88
  }
89
- /**
90
- * @deprecated use new TableModel(sourceOfTruth, table => {...}); instead.
91
- * @param sourceOfTruth
92
- * @param builder
93
- */
94
- static fromList(sourceOfTruth, builder) {
95
- return new TableModel(sourceOfTruth, builder);
96
- }
97
89
  addSelectionColumn(selectionModel, showSelectionColumn) {
98
90
  return this._addSelectionColumn(selectionModel, showSelectionColumn);
99
91
  }
100
92
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90YWJsZS90YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVHO0FBQ0gsTUFBTSxPQUFPLFVBQWdCLFNBQVEsa0JBQXVCO0lBRTFELFlBQVksYUFBNkIsRUFBRSxPQUEwQztRQUNuRixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBTSxhQUE2QixFQUFFLE9BQStDO1FBQ2pHLE9BQU8sSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxjQUFvQyxFQUFFLG1CQUFtRDtRQUMxRyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3RhYmxlLCBMaXN0TW9kZWwsIFNlbGVjdGlvbk1vZGVsLCBWYWx1ZU1vZGVsIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RUYWJsZU1vZGVsIH0gZnJvbSAnLi4vYWJzdHJhY3QtdGFibGUtbW9kZWwnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ29sdW1uTW9kZWwgfSBmcm9tICcuL2NvbHVtbi1tb2RlbCc7XG5cbi8qKlxuICogRXhhbXBsZTpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpO1xuICogICB0YWJsZS5wbHVjayhcImxhc3ROYW1lXCIpO1xuICogICB0YWJsZS5hZGRDdXN0b21Db2x1bW4oXCJmdWxsTmFtZVwiLCBoZXJvID0+IGAke2hlcm8uZmlyc3ROYW1lfSAke2hlcm8ubGFzdE5hbWV9YCk7XG4gKiB9KTtcbiAqXG4gKiBFZGl0YWJsZSB0YWJsZXNcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzYXZlQ29tbWFuZCA9IFVuYXJ5Q29tbWFuZC5jcmVhdGUoKGZvcm06IEZvcm08SGVybz4pID0+IHtcbiAqICAgaWYgKGZvcm0udmFsaWRhdGUoKSkge1xuICogICAgIC8vIG5vcm1hbCBmb3JtIHNhdmUgc3R1ZmZcbiAqICAgICByZXR1cm4gdHJ1ZTsgLy8gZmluaXNoIGVkaXRpbmdcbiAqICAgfVxuICogICByZXR1cm4gZmFsc2U7IC8vIGNvbnRpbnVlIGVkaXRpaW5nXG4gKiB9XG4gKiBjb25zdCBjb2xvcnNOYW1lczogTGlzdE1vZGVsPHN0cmluZz4gPSAuLi47XG4gKiBjb25zdCBtb2RlbCA9IFRhYmxlTW9kZWwuZnJvbUxpc3QoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmaXJzdE5hbWVcIikuY2VsbEVkaXRvcihTdHJpbmdJbnB1dENvbXBvbmVudCk7IDwtLSBpbnRlcmZhY2UgQ2VsbEVkaXRvciB7IHZhbHVlTW9kZWw6ICBEaXJ0eVRyYWNraW5nRm9ybS5WYWx1ZU1vZGVsPHN0cmluZz4gfCBWYWx1ZU1vZGVsPHN0cmluZz47IH1cbiAqICAgdGFibGUucGx1Y2soXCJsYXN0TmFtZVwiKS5jZWxsRWRpdG9yKFN0cmluZ0lucHV0Q29tcG9uZW50LCB7XG4gKiAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvci5wcmVzZW50KFwiV2UgbmVlZCBhIGxhc3QgbmFtZVwiKV1cbiAqICAgfSk7XG4gKiAgIHRhYmxlLnBsdWNrKFwiYWdlXCIpLmNlbGxFZGl0b3IoTnVtYmVySW5wdXRDb21wb25lbnQpO1xuICogICB0YWJsZS5wbHVjayhcImZhdm9yaXRlQ29sb3JcIikuY2VsbEVkaXRvcihTZWxlY3RJbnB1dENvbXBvbmVudCwge1xuICogICAgIGluaXRpYWxpc2VDb21wb25lbnQoY29tcG9uZW50OiBTZWxlY3RJbnB1dENvbXBvbmVudCkge1xuICogICAgICAgc2VsZWN0SW5wdXQub3B0aW9uc01vZGVsID0gY29sb3JzTmFtZXM7IC8vIDwtIGluaXRpYWxpc2Ugb3VyIGNvbXBvbmVudFxuICogICAgIH1cbiAqICAgfSk7XG4gKiAgIHRhYmxlLmFkZEVkaXRDb250cm9scyhzYXZlQ29tbWFuZCk7IC8vIDwtIHJlcXVpcmVkIHRvIGVuYWJsZSBlZGl0aW5nXG4gKiB9KTtcbiAqXG4gKiBTZWxlY3Rpb24gbW9kZWxzXG4gKiBAZXhhbXBsZVxuICogY29uc3QgbW9kZWwgPSBuZXcgVGFibGVNb2RlbChoZXJvTGlzdCwgdGFibGUgPT4ge1xuICogICB0YWJsZS5hZGRTZWxlY3Rpb25Db2x1bW4oc2VsZWN0aW9uTW9kZWwpOyAvLyA8LSBjYW4gYmUgc2luZ2xlIG9yIG11bHRpcGxlIHNlbGVjdGlvbiBtb2RlbFxuICogICB0YWJsZS5wbHVjayhcImZpcnN0TmFtZVwiKTtcbiAqICAgdGFibGUucGx1Y2soXCJsYXN0TmFtZVwiKTtcbiAqIH0pO1xuICpcbiAqIEN1c3RvbSBjZWxsIHJlbmRlcmVycyBhbmQgZWRpdG9yc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IG1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmYXZvcml0ZUNvbG9yXCIpXG4gKiAgICAgIC5jZWxsSGVhZGVyUmVuZGVyZXIoQ2VsbEhlYWRlclJlbmRlcmVyQ29tcG9uZW50LCAoY29tcG9uZW50LCBjb2x1bW4pID0+IHtcbiAqICAgICAgICAvLyBjb25maWd1cmUgeW91ciBjb21wb25lbnQgd2l0aCB3aGF0IGV2ZXIgeW91IG5lZWQuXG4gKiAgICAgIH0pO1xuICogICAgICAuY2VsbFJlbmRlcmVyKENlbGxSZW5kZXJlckNvbXBvbmVudCkgLy8gPC0tIGludGVyZmFjZSBDZWxsRWRpdG9yIHsgdmFsdWU6IHN0cmluZzsgfVxuICogICAgICAuY2VsbEVkaXRvcihDZWxsRWRpdG9yQ29tcG9uZW50Lik7IC8vIDwtLSBpbnRlcmZhY2UgQ2VsbEVkaXRvciB7IHZhbHVlTW9kZWw6ICBEaXJ0eVRyYWNraW5nRm9ybS5WYWx1ZU1vZGVsPHN0cmluZz4gfCBWYWx1ZU1vZGVsPHN0cmluZz47IH1cbiAqICAgdGFibGUuYWRkQ3VzdG9tQ29sdW1uKFwiZnVsbE5hbWVcIiwgaGVybyA9PiBgJHtoZXJvLmZpcnN0TmFtZX0gJHtoZXJvLmxhc3ROYW1lfWApO1xuICogfSk7XG4gKlxuICogVGVtcGxhdGUgY29sdW1uc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IG1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUuYWRkU2VsZWN0aW9uQ29sdW1uKHNlbGVjdGlvbk1vZGVsKTsgLy8gPC0gY2FuIGJlIHNpbmdsZSBvciBtdWx0aXBsZSBzZWxlY3Rpb24gbW9kZWxcbiAqICAgdGFibGUuYWRkVGVtcGxhdGVDb2x1bW4oXCJteVRlbXBsYXRlXCIpO1xuICogfSk7XG4gKlxuICogPGRpdiAqYXVwQ29sdW1uVGVtcGxhdGU9XCJsZXQgaGVybzsgY29sdW1uSWQ6ICdteVRlbXBsYXRlJ1wiPnt7aGVyby5hZ2V9fTwvZGl2PlxuICpcbiAqIEkxOG5cbiAqIEBleGFtcGxlXG4gKiBbdGFibGUueW1sXVxuICogdGFibGU6XG4gKiAgIGNvbHVtbnMoQ29sdW1uVGV4dFByb3BlcnRpZXNbXSk6XG4gKiAgICAgIGZpcnN0TmFtZTpcbiAqICAgICAgICAgaGVhZGVyVGV4dDogXCJGaXJzdCBOYW1lXCJcbiAqICAgICAgZnVsbE5hbWU6XG4gKiAgICAgICAgIGhlYWRlclRleHQ6IFwiRnVsbCBOYW1lXCJcbiAqXG4gKiBjb25zdCBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmF2b3JpdGVDb2xvclwiKS5jZWxsUmVuZGVyZXIoLi4uKS5jZWxsRWRpdG9yKC4uLik7XG4gKiAgIHRhYmxlLmFkZEN1c3RvbUNvbHVtbihcImZ1bGxOYW1lXCIsIGhlcm8gPT4gYCR7aGVyby5maXJzdE5hbWV9ICR7aGVyby5sYXN0TmFtZX1gKTtcbiAqXG4gKiAgIHRhYmxlLmNvbHVtblRleHRQcm9wZXJ0aWVzKEkxOG4udGFibGUuY29sdW1ucyk7IC8vIDwtIGNvbmZpZ3VyZXMgYWxsIGNvbHVtbnNcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgVGFibGVNb2RlbDxSb3c+IGV4dGVuZHMgQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4ge1xuXG4gIGNvbnN0cnVjdG9yKHNvdXJjZU9mVHJ1dGg6IExpc3RNb2RlbDxSb3c+LCBidWlsZGVyPzogKHRhYmxlOiBUYWJsZU1vZGVsPFJvdz4pID0+IHZvaWQpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmIChidWlsZGVyKSB7XG4gICAgICBidWlsZGVyKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnNldERhdGFTb3VyY2Uoc291cmNlT2ZUcnV0aCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIG5ldyBUYWJsZU1vZGVsKHNvdXJjZU9mVHJ1dGgsIHRhYmxlID0+IHsuLi59KTsgaW5zdGVhZC5cbiAgICogQHBhcmFtIHNvdXJjZU9mVHJ1dGhcbiAgICogQHBhcmFtIGJ1aWxkZXJcbiAgICovXG4gIHN0YXRpYyBmcm9tTGlzdDxSb3c+KHNvdXJjZU9mVHJ1dGg6IExpc3RNb2RlbDxSb3c+LCBidWlsZGVyPzogKHRhYmxlTW9kZWw6IFRhYmxlTW9kZWw8Um93PikgPT4gdm9pZCk6IFRhYmxlTW9kZWw8Um93PiB7XG4gICAgcmV0dXJuIG5ldyBUYWJsZU1vZGVsKHNvdXJjZU9mVHJ1dGgsIGJ1aWxkZXIpO1xuICB9XG5cblxuICBhZGRTZWxlY3Rpb25Db2x1bW4oc2VsZWN0aW9uTW9kZWw/OiBTZWxlY3Rpb25Nb2RlbDxSb3c+LCBzaG93U2VsZWN0aW9uQ29sdW1uPzogVmFsdWVNb2RlbDxib29sZWFuPiB8IGJvb2xlYW4pOiBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkU2VsZWN0aW9uQ29sdW1uKHNlbGVjdGlvbk1vZGVsLCBzaG93U2VsZWN0aW9uQ29sdW1uKTtcbiAgfVxufVxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90YWJsZS90YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVHO0FBQ0gsTUFBTSxPQUFPLFVBQWdCLFNBQVEsa0JBQXVCO0lBRTFELFlBQVksYUFBNkIsRUFBRSxPQUEwQztRQUNuRixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxjQUFvQyxFQUFFLG1CQUFtRDtRQUMxRyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0TW9kZWwsIFNlbGVjdGlvbk1vZGVsLCBWYWx1ZU1vZGVsIH0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQgeyBBYnN0cmFjdFRhYmxlTW9kZWwgfSBmcm9tIFwiLi4vYWJzdHJhY3QtdGFibGUtbW9kZWxcIjtcbmltcG9ydCB7IFNlbGVjdGlvbkNvbHVtbk1vZGVsIH0gZnJvbSBcIi4uL2NvbHVtbi9zZWxlY3Rpb24tY29sdW1uLW1vZGVsXCI7XG5cbi8qKlxuICogRXhhbXBsZTpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpO1xuICogICB0YWJsZS5wbHVjayhcImxhc3ROYW1lXCIpO1xuICogICB0YWJsZS5hZGRDdXN0b21Db2x1bW4oXCJmdWxsTmFtZVwiLCBoZXJvID0+IGAke2hlcm8uZmlyc3ROYW1lfSAke2hlcm8ubGFzdE5hbWV9YCk7XG4gKiB9KTtcbiAqXG4gKiBFZGl0YWJsZSB0YWJsZXNcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzYXZlQ29tbWFuZCA9IFVuYXJ5Q29tbWFuZC5jcmVhdGUoKGZvcm06IEZvcm08SGVybz4pID0+IHtcbiAqICAgaWYgKGZvcm0udmFsaWRhdGUoKSkge1xuICogICAgIC8vIG5vcm1hbCBmb3JtIHNhdmUgc3R1ZmZcbiAqICAgICByZXR1cm4gdHJ1ZTsgLy8gZmluaXNoIGVkaXRpbmdcbiAqICAgfVxuICogICByZXR1cm4gZmFsc2U7IC8vIGNvbnRpbnVlIGVkaXRpaW5nXG4gKiB9XG4gKiBjb25zdCBjb2xvcnNOYW1lczogTGlzdE1vZGVsPHN0cmluZz4gPSAuLi47XG4gKiBjb25zdCBtb2RlbCA9IFRhYmxlTW9kZWwuZnJvbUxpc3QoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmaXJzdE5hbWVcIikuY2VsbEVkaXRvcihTdHJpbmdJbnB1dENvbXBvbmVudCk7IDwtLSBpbnRlcmZhY2UgQ2VsbEVkaXRvciB7IHZhbHVlTW9kZWw6ICBEaXJ0eVRyYWNraW5nRm9ybS5WYWx1ZU1vZGVsPHN0cmluZz4gfCBWYWx1ZU1vZGVsPHN0cmluZz47IH1cbiAqICAgdGFibGUucGx1Y2soXCJsYXN0TmFtZVwiKS5jZWxsRWRpdG9yKFN0cmluZ0lucHV0Q29tcG9uZW50LCB7XG4gKiAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvci5wcmVzZW50KFwiV2UgbmVlZCBhIGxhc3QgbmFtZVwiKV1cbiAqICAgfSk7XG4gKiAgIHRhYmxlLnBsdWNrKFwiYWdlXCIpLmNlbGxFZGl0b3IoTnVtYmVySW5wdXRDb21wb25lbnQpO1xuICogICB0YWJsZS5wbHVjayhcImZhdm9yaXRlQ29sb3JcIikuY2VsbEVkaXRvcihTZWxlY3RJbnB1dENvbXBvbmVudCwge1xuICogICAgIGluaXRpYWxpc2VDb21wb25lbnQoY29tcG9uZW50OiBTZWxlY3RJbnB1dENvbXBvbmVudCkge1xuICogICAgICAgc2VsZWN0SW5wdXQub3B0aW9uc01vZGVsID0gY29sb3JzTmFtZXM7IC8vIDwtIGluaXRpYWxpc2Ugb3VyIGNvbXBvbmVudFxuICogICAgIH1cbiAqICAgfSk7XG4gKiAgIHRhYmxlLmFkZEVkaXRDb250cm9scyhzYXZlQ29tbWFuZCk7IC8vIDwtIHJlcXVpcmVkIHRvIGVuYWJsZSBlZGl0aW5nXG4gKiB9KTtcbiAqXG4gKiBTZWxlY3Rpb24gbW9kZWxzXG4gKiBAZXhhbXBsZVxuICogY29uc3QgbW9kZWwgPSBuZXcgVGFibGVNb2RlbChoZXJvTGlzdCwgdGFibGUgPT4ge1xuICogICB0YWJsZS5hZGRTZWxlY3Rpb25Db2x1bW4oc2VsZWN0aW9uTW9kZWwpOyAvLyA8LSBjYW4gYmUgc2luZ2xlIG9yIG11bHRpcGxlIHNlbGVjdGlvbiBtb2RlbFxuICogICB0YWJsZS5wbHVjayhcImZpcnN0TmFtZVwiKTtcbiAqICAgdGFibGUucGx1Y2soXCJsYXN0TmFtZVwiKTtcbiAqIH0pO1xuICpcbiAqIEN1c3RvbSBjZWxsIHJlbmRlcmVycyBhbmQgZWRpdG9yc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IG1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmYXZvcml0ZUNvbG9yXCIpXG4gKiAgICAgIC5jZWxsSGVhZGVyUmVuZGVyZXIoQ2VsbEhlYWRlclJlbmRlcmVyQ29tcG9uZW50LCAoY29tcG9uZW50LCBjb2x1bW4pID0+IHtcbiAqICAgICAgICAvLyBjb25maWd1cmUgeW91ciBjb21wb25lbnQgd2l0aCB3aGF0IGV2ZXIgeW91IG5lZWQuXG4gKiAgICAgIH0pO1xuICogICAgICAuY2VsbFJlbmRlcmVyKENlbGxSZW5kZXJlckNvbXBvbmVudCkgLy8gPC0tIGludGVyZmFjZSBDZWxsRWRpdG9yIHsgdmFsdWU6IHN0cmluZzsgfVxuICogICAgICAuY2VsbEVkaXRvcihDZWxsRWRpdG9yQ29tcG9uZW50Lik7IC8vIDwtLSBpbnRlcmZhY2UgQ2VsbEVkaXRvciB7IHZhbHVlTW9kZWw6ICBEaXJ0eVRyYWNraW5nRm9ybS5WYWx1ZU1vZGVsPHN0cmluZz4gfCBWYWx1ZU1vZGVsPHN0cmluZz47IH1cbiAqICAgdGFibGUuYWRkQ3VzdG9tQ29sdW1uKFwiZnVsbE5hbWVcIiwgaGVybyA9PiBgJHtoZXJvLmZpcnN0TmFtZX0gJHtoZXJvLmxhc3ROYW1lfWApO1xuICogfSk7XG4gKlxuICogVGVtcGxhdGUgY29sdW1uc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IG1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUuYWRkU2VsZWN0aW9uQ29sdW1uKHNlbGVjdGlvbk1vZGVsKTsgLy8gPC0gY2FuIGJlIHNpbmdsZSBvciBtdWx0aXBsZSBzZWxlY3Rpb24gbW9kZWxcbiAqICAgdGFibGUuYWRkVGVtcGxhdGVDb2x1bW4oXCJteVRlbXBsYXRlXCIpO1xuICogfSk7XG4gKlxuICogPGRpdiAqYXVwQ29sdW1uVGVtcGxhdGU9XCJsZXQgaGVybzsgY29sdW1uSWQ6ICdteVRlbXBsYXRlJ1wiPnt7aGVyby5hZ2V9fTwvZGl2PlxuICpcbiAqIEkxOG5cbiAqIEBleGFtcGxlXG4gKiBbdGFibGUueW1sXVxuICogdGFibGU6XG4gKiAgIGNvbHVtbnMoQ29sdW1uVGV4dFByb3BlcnRpZXNbXSk6XG4gKiAgICAgIGZpcnN0TmFtZTpcbiAqICAgICAgICAgaGVhZGVyVGV4dDogXCJGaXJzdCBOYW1lXCJcbiAqICAgICAgZnVsbE5hbWU6XG4gKiAgICAgICAgIGhlYWRlclRleHQ6IFwiRnVsbCBOYW1lXCJcbiAqXG4gKiBjb25zdCBtb2RlbCA9IG5ldyBUYWJsZU1vZGVsKGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmF2b3JpdGVDb2xvclwiKS5jZWxsUmVuZGVyZXIoLi4uKS5jZWxsRWRpdG9yKC4uLik7XG4gKiAgIHRhYmxlLmFkZEN1c3RvbUNvbHVtbihcImZ1bGxOYW1lXCIsIGhlcm8gPT4gYCR7aGVyby5maXJzdE5hbWV9ICR7aGVyby5sYXN0TmFtZX1gKTtcbiAqXG4gKiAgIHRhYmxlLmNvbHVtblRleHRQcm9wZXJ0aWVzKEkxOG4udGFibGUuY29sdW1ucyk7IC8vIDwtIGNvbmZpZ3VyZXMgYWxsIGNvbHVtbnNcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgVGFibGVNb2RlbDxSb3c+IGV4dGVuZHMgQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4ge1xuXG4gIGNvbnN0cnVjdG9yKHNvdXJjZU9mVHJ1dGg6IExpc3RNb2RlbDxSb3c+LCBidWlsZGVyPzogKHRhYmxlOiBUYWJsZU1vZGVsPFJvdz4pID0+IHZvaWQpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmIChidWlsZGVyKSB7XG4gICAgICBidWlsZGVyKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnNldERhdGFTb3VyY2Uoc291cmNlT2ZUcnV0aCk7XG4gIH1cblxuICBhZGRTZWxlY3Rpb25Db2x1bW4oc2VsZWN0aW9uTW9kZWw/OiBTZWxlY3Rpb25Nb2RlbDxSb3c+LCBzaG93U2VsZWN0aW9uQ29sdW1uPzogVmFsdWVNb2RlbDxib29sZWFuPiB8IGJvb2xlYW4pOiBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5fYWRkU2VsZWN0aW9uQ29sdW1uKHNlbGVjdGlvbk1vZGVsLCBzaG93U2VsZWN0aW9uQ29sdW1uKTtcbiAgfVxufVxuIl19
@@ -1,17 +1,17 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Component, ElementRef, Input, NgZone } from '@angular/core';
2
+ import { Component, ElementRef, Injector, Input, NgZone } from "@angular/core";
3
3
  import { TrackExternal } from '@coolon/pectin';
4
4
  import { AbstractTableModel } from '../abstract-table-model';
5
5
  import { AbstractTableComponent } from '../abstract-table.component';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/material/table";
8
- import * as i2 from "./table-header-cell-renderer/table-header-cell-renderer.component";
9
- import * as i3 from "./table-cell-renderer/table-cell-renderer.component";
8
+ import * as i2 from "../renderer/table-header-cell/table-header-cell.component";
9
+ import * as i3 from "../renderer/table-cell/table-cell.component";
10
10
  import * as i4 from "@angular/common";
11
11
  /**
12
12
  * Create your model:
13
13
  * @example
14
- * this.heroTableModel = TableModel.fromList(heroList, table => {
14
+ * this.heroTableModel = new TableModel(heroList, table => {
15
15
  * table.pluck("firstName");
16
16
  * table.pluck("lastName");
17
17
  * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
@@ -23,7 +23,7 @@ import * as i4 from "@angular/common";
23
23
  *
24
24
  * Column templates
25
25
  * @example
26
- * this.heroTableModel = TableModel.fromList(heroList, table => {
26
+ * this.heroTableModel = new TableModel(heroList, table => {
27
27
  * table.pluck("firstName");
28
28
  * table.pluck("lastName");
29
29
  * table.addTemplateColumn("specialColumn");
@@ -69,17 +69,17 @@ import * as i4 from "@angular/common";
69
69
  * }
70
70
  */
71
71
  export class TableComponent extends AbstractTableComponent {
72
- constructor(elementRef, ngZone) {
73
- super(elementRef, ngZone);
72
+ constructor(elementRef, ngZone, injector) {
73
+ super(elementRef, ngZone, injector);
74
74
  }
75
75
  getModel() {
76
76
  return this.tableModel;
77
77
  }
78
78
  }
79
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
79
+ TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
80
80
  TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel" }, providers: [
81
81
  { provide: AbstractTableComponent, useExisting: TableComponent }
82
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.aup-row-id]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"], components: [{ type: i1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i2.TableHeaderCellRendererComponent, selector: "aup-table-header-cell-renderer", inputs: ["column"] }, { type: i3.TableCellRendererComponent, selector: "aup-table-cell-renderer", inputs: ["row", "column", "editSession", "tableModel"] }, { type: i1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i1.MatCellDef, selector: "[matCellDef]" }, { type: i1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
82
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.aup-row-id]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"], components: [{ type: i1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i2.TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: ["column"] }, { type: i3.TableCellComponent, selector: "aup-table-cell", inputs: ["row", "column", "editSession", "tableModel"] }, { type: i1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i1.MatCellDef, selector: "[matCellDef]" }, { type: i1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
83
83
  __decorate([
84
84
  TrackExternal(),
85
85
  __metadata("design:type", AbstractTableModel)
@@ -88,8 +88,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
88
88
  type: Component,
89
89
  args: [{ selector: 'aup-table', providers: [
90
90
  { provide: AbstractTableComponent, useExisting: TableComponent }
91
- ], template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.aup-row-id]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"] }]
92
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { tableModel: [{
91
+ ], template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.aup-row-id]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"] }]
92
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { tableModel: [{
93
93
  type: Input
94
94
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7QUFFckU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkRHO0FBU0gsTUFBTSxPQUFPLGNBQW9CLFNBQVEsc0JBQTJCO0lBTWxFLFlBQVksVUFBc0IsRUFBRSxNQUFjO1FBQ2hELEtBQUssQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7MkdBWlUsY0FBYzsrRkFBZCxjQUFjLDBFQUpkO1FBQ1QsRUFBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQztLQUMvRCxpREN2RUgsdzNEQW9DQTtBRHlDRTtJQURDLGFBQWEsRUFBRTs4QkFDSixrQkFBa0I7a0RBQU07MkZBSnpCLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWO3dCQUNULEVBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsZ0JBQWdCLEVBQUM7cUJBQy9EO3NIQU1ELFVBQVU7c0JBRlQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhY2tFeHRlcm5hbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEFic3RyYWN0VGFibGVNb2RlbCB9IGZyb20gJy4uL2Fic3RyYWN0LXRhYmxlLW1vZGVsJztcbmltcG9ydCB7IEFic3RyYWN0VGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC10YWJsZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIENyZWF0ZSB5b3VyIG1vZGVsOlxuICogQGV4YW1wbGVcbiAqIHRoaXMuaGVyb1RhYmxlTW9kZWwgPSBUYWJsZU1vZGVsLmZyb21MaXN0KGhlcm9MaXN0LCB0YWJsZSA9PiB7XG4gKiAgIHRhYmxlLnBsdWNrKFwiZmlyc3ROYW1lXCIpO1xuICogICB0YWJsZS5wbHVjayhcImxhc3ROYW1lXCIpO1xuICogICB0YWJsZS5hZGRDdXN0b21Db2x1bW4oXCJmdWxsTmFtZVwiLCBoZXJvID0+IGAke2hlcm8uZmlyc3ROYW1lfSAke2hlcm8ubGFzdE5hbWV9YCk7XG4gKiB9KTtcbiAqXG4gKiBDcmVhdGUgeW91ciB0YWJsZVxuICogQGV4YW1wbGVcbiAqIDxhdXAtdGFibGUgW3RhYmxlTW9kZWxdPVwiaGVyb1RhYmxlTW9kZWxcIj48L2F1cC10YWJsZT5cbiAqXG4gKiBDb2x1bW4gdGVtcGxhdGVzXG4gKiBAZXhhbXBsZVxuICogdGhpcy5oZXJvVGFibGVNb2RlbCA9IFRhYmxlTW9kZWwuZnJvbUxpc3QoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmaXJzdE5hbWVcIik7XG4gKiAgIHRhYmxlLnBsdWNrKFwibGFzdE5hbWVcIik7XG4gKiAgIHRhYmxlLmFkZFRlbXBsYXRlQ29sdW1uKFwic3BlY2lhbENvbHVtblwiKTtcbiAqIH0pO1xuICogPGF1cC10YWJsZSBbdGFibGVNb2RlbF09XCJoZXJvVGFibGVNb2RlbFwiPlxuICogICA8ZGl2ICphdXBDb2x1bW5UZW1wbGF0ZT1cImxldCBoZXJvOyBjb2x1bW5JZDogJ3NwZWNpYWxDb2x1bW4nOyBmaWxsQ2VsbDogdHJ1ZTsgcGFkQ2hpbGQ6ZmFsc2VcIj5cbiAqICAgICB7e2hlcm8ubmFtZX19XG4gKiAgIDwvZGl2PlxuICogPC9hdXAtdGFibGU+XG4gKlxuICogU3R5bGluZ1xuICogQGV4YW1wbGVcbiAqICAvLyBnbG9iYWwgc2V0dGluZ3NcbiAqIDpyb290IHtcbiAqICAgLS1hdXAtdGFibGUtY29sdW1uLWdhcDogMTBweDsgLy8gZGVmYXVsdHMgdG8gMjRweFxuICogICAtLWF1cC10YWJsZS1yb3ctaG92ZXItYmFja2dyb3VuZC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA1KVxuICogICAtLWF1cC10YWJsZS1yb3ctc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvcjogcmViZWNjYXB1cnBsZTsgLy8gZGVmYXVsdHMgdG8gdHJhbnNwYXJlbnRcbiAqICAgLS1hdXAtdGFibGUtZmlyc3QtY29sdW1uLXBhZGRpbmctbGVmdDogMThweCAvLyBkZWZhdWx0cyB0byAtLWNvbHVtbi1nYXBcbiAqICAgLS1hdXAtdGFibGUtbGFzdC1jb2x1bW4tcGFkZGluZy1yaWdodDogMThweCAvLyBkZWZhdWx0cyB0byAtLWNvbHVtbi1nYXBcbiAqIH1cbiAqXG4gKiAvLyBwZXIgdGFibGUgc2V0dGluZ3MuXG4gKiBhdXAtdGFibGUge1xuICogICAtLWNvbHVtbi1nYXA6IDEwcHg7IC8vIGRlZmF1bHRzIHRvIDI0cHhcbiAqICAgLS1yb3ctaG92ZXItYmFja2dyb3VuZC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA1KVxuICogICAtLXJvdy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiByZWJlY2NhcHVycGxlOyAvLyBkZWZhdWx0cyB0byB0cmFuc3BhcmVudFxuICogICAtLWZpcnN0LWNvbHVtbi1wYWRkaW5nLWxlZnQ6IDE4cHggLy8gZGVmYXVsdHMgdG8gLS1jb2x1bW4tZ2FwXG4gKiAgIC0tbGFzdC1jb2x1bW4tcGFkZGluZy1yaWdodDogMThweCAvLyBkZWZhdWx0cyB0byAtLWNvbHVtbi1nYXBcbiAqICAgOjpuZy1kZWVwIHtcbiAqICAgICAgYXVwLXRhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyLFxuICogICAgICBhdXAtdGFibGUtY2VsbC1yZW5kZXJlciB7XG4gKiAgICAgICAgJi5hdXAtY29sLW15LWRhc2hlcmlzZWQtY29sdW1uLWlkIHtcbiAqICAgICAgICAgIC8vIGRvIHN0dWZmXG4gKiAgICAgICAgfVxuICogICAgICAgICYuZmlyc3QtdmlzaWJsZS1jb2x1bW4ge1xuICogICAgICAgICAgLy8gZG8gc3R1ZmZcbiAqICAgICAgICB9XG4gKiAgICAgICAgJi5sYXN0LXZpc2libGUtY29sdW1uIHtcbiAqICAgICAgICAgIC8vIGRvIHN0dWZmXG4gKiAgICAgICAgfVxuICogICAgICB9XG4gKiAgIH1cbiAqIH1cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogQWJzdHJhY3RUYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFRhYmxlQ29tcG9uZW50fVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50PFJvdz4gZXh0ZW5kcyBBYnN0cmFjdFRhYmxlQ29tcG9uZW50PFJvdz4ge1xuXG4gIEBJbnB1dCgpXG4gIEBUcmFja0V4dGVybmFsKClcbiAgdGFibGVNb2RlbDogQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz47XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgbmdab25lOiBOZ1pvbmUpIHtcbiAgICBzdXBlcihlbGVtZW50UmVmLCBuZ1pvbmUpO1xuICB9XG5cbiAgZ2V0TW9kZWwoKTogQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWw7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNjcm9sbC1jb250YWluZXJcIj5cbiAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJnZXRNb2RlbCgpLmRhdGFTb3VyY2UudmFsdWVcIiBbdHJhY2tCeV09XCJnZXRNb2RlbCgpLnRyYWNrQnlcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zLnZhbHVlOyBpbmRleCBhcyBpbmRleDsgZmlyc3QgYXMgZmlyc3Q7IGxhc3QgYXMgbGFzdFwiXG4gICAgICAgICAgICAgICAgICBtYXRDb2x1bW5EZWY9XCJ7e2NvbHVtbi5jb2x1bW5JZH19XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiIFtjbGFzcy5oaWRlXT1cIiFjb2x1bW4uaXNWaXNpYmxlKClcIj5cbiAgICAgICAgPGF1cC10YWJsZS1oZWFkZXItY2VsbC1yZW5kZXJlciBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW4uY29sdW1uSWQpXCJcbiAgICAgICAgPjwvYXVwLXRhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiAoY2xpY2spPVwibm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICBbY2xhc3MuZW5hYmxlLWN1cnNvcl09XCJnZXRNb2RlbCgpLmlzQ3Vyc29yRW5hYmxlZChjb2x1bW4pXCJcbiAgICAgICAgICBbY2xhc3MuZmxleF09XCJjb2x1bW4uaXNGbGV4KClcIlxuICAgICAgICAgIFtjbGFzcy5oaWRlXT1cIiFjb2x1bW4uaXNWaXNpYmxlKClcIlxuICAgICAgPlxuICAgICAgICA8YXVwLXRhYmxlLWNlbGwtcmVuZGVyZXIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlTW9kZWxdPVwiZ2V0TW9kZWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdFNlc3Npb25dPVwiZ2V0TW9kZWwoKS5nZXRFZGl0U2Vzc2lvbkZvcihyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbi5jb2x1bW5JZClcIlxuICAgICAgICA+PC9hdXAtdGFibGUtY2VsbC1yZW5kZXJlcj5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbklkcy52YWx1ZVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbklkcy52YWx1ZTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImdldE1vZGVsKCkuZ2V0Um93Q2xhc3Nlcyhyb3cpXCIgW2NsYXNzLmVuYWJsZS1ob3Zlcl09XCJnZXRNb2RlbCgpLmlzSG92ZXJFbmFibGVkKClcIlxuICAgICAgICBbYXR0ci5hdXAtcm93LWlkXT1cImdldE1vZGVsKCkudHJhY2tCeShpLCByb3cpXCJcbiAgICA+PC90cj5cblxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBRXJFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJERztBQVNILE1BQU0sT0FBTyxjQUFvQixTQUFRLHNCQUEyQjtJQU1sRSxZQUFZLFVBQXNCLEVBQUUsTUFBYyxFQUFFLFFBQWtCO1FBQ3BFLEtBQUssQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7OzJHQVpVLGNBQWM7K0ZBQWQsY0FBYywwRUFKZDtRQUNULEVBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUM7S0FDL0QsaURDdkVILG13REFvQ0E7QUR5Q0U7SUFEQyxhQUFhLEVBQUU7OEJBQ0osa0JBQWtCO2tEQUFNOzJGQUp6QixjQUFjO2tCQVIxQixTQUFTOytCQUNFLFdBQVcsYUFHVjt3QkFDVCxFQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLGdCQUFnQixFQUFDO3FCQUMvRDs2SUFNRCxVQUFVO3NCQUZULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBJbnB1dCwgTmdab25lIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYWNrRXh0ZXJuYWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBBYnN0cmFjdFRhYmxlTW9kZWwgfSBmcm9tICcuLi9hYnN0cmFjdC10YWJsZS1tb2RlbCc7XG5pbXBvcnQgeyBBYnN0cmFjdFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtdGFibGUuY29tcG9uZW50JztcblxuLyoqXG4gKiBDcmVhdGUgeW91ciBtb2RlbDpcbiAqIEBleGFtcGxlXG4gKiB0aGlzLmhlcm9UYWJsZU1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmaXJzdE5hbWVcIik7XG4gKiAgIHRhYmxlLnBsdWNrKFwibGFzdE5hbWVcIik7XG4gKiAgIHRhYmxlLmFkZEN1c3RvbUNvbHVtbihcImZ1bGxOYW1lXCIsIGhlcm8gPT4gYCR7aGVyby5maXJzdE5hbWV9ICR7aGVyby5sYXN0TmFtZX1gKTtcbiAqIH0pO1xuICpcbiAqIENyZWF0ZSB5b3VyIHRhYmxlXG4gKiBAZXhhbXBsZVxuICogPGF1cC10YWJsZSBbdGFibGVNb2RlbF09XCJoZXJvVGFibGVNb2RlbFwiPjwvYXVwLXRhYmxlPlxuICpcbiAqIENvbHVtbiB0ZW1wbGF0ZXNcbiAqIEBleGFtcGxlXG4gKiB0aGlzLmhlcm9UYWJsZU1vZGVsID0gbmV3IFRhYmxlTW9kZWwoaGVyb0xpc3QsIHRhYmxlID0+IHtcbiAqICAgdGFibGUucGx1Y2soXCJmaXJzdE5hbWVcIik7XG4gKiAgIHRhYmxlLnBsdWNrKFwibGFzdE5hbWVcIik7XG4gKiAgIHRhYmxlLmFkZFRlbXBsYXRlQ29sdW1uKFwic3BlY2lhbENvbHVtblwiKTtcbiAqIH0pO1xuICogPGF1cC10YWJsZSBbdGFibGVNb2RlbF09XCJoZXJvVGFibGVNb2RlbFwiPlxuICogICA8ZGl2ICphdXBDb2x1bW5UZW1wbGF0ZT1cImxldCBoZXJvOyBjb2x1bW5JZDogJ3NwZWNpYWxDb2x1bW4nOyBmaWxsQ2VsbDogdHJ1ZTsgcGFkQ2hpbGQ6ZmFsc2VcIj5cbiAqICAgICB7e2hlcm8ubmFtZX19XG4gKiAgIDwvZGl2PlxuICogPC9hdXAtdGFibGU+XG4gKlxuICogU3R5bGluZ1xuICogQGV4YW1wbGVcbiAqICAvLyBnbG9iYWwgc2V0dGluZ3NcbiAqIDpyb290IHtcbiAqICAgLS1hdXAtdGFibGUtY29sdW1uLWdhcDogMTBweDsgLy8gZGVmYXVsdHMgdG8gMjRweFxuICogICAtLWF1cC10YWJsZS1yb3ctaG92ZXItYmFja2dyb3VuZC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA1KVxuICogICAtLWF1cC10YWJsZS1yb3ctc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvcjogcmViZWNjYXB1cnBsZTsgLy8gZGVmYXVsdHMgdG8gdHJhbnNwYXJlbnRcbiAqICAgLS1hdXAtdGFibGUtZmlyc3QtY29sdW1uLXBhZGRpbmctbGVmdDogMThweCAvLyBkZWZhdWx0cyB0byAtLWNvbHVtbi1nYXBcbiAqICAgLS1hdXAtdGFibGUtbGFzdC1jb2x1bW4tcGFkZGluZy1yaWdodDogMThweCAvLyBkZWZhdWx0cyB0byAtLWNvbHVtbi1nYXBcbiAqIH1cbiAqXG4gKiAvLyBwZXIgdGFibGUgc2V0dGluZ3MuXG4gKiBhdXAtdGFibGUge1xuICogICAtLWNvbHVtbi1nYXA6IDEwcHg7IC8vIGRlZmF1bHRzIHRvIDI0cHhcbiAqICAgLS1yb3ctaG92ZXItYmFja2dyb3VuZC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA1KVxuICogICAtLXJvdy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiByZWJlY2NhcHVycGxlOyAvLyBkZWZhdWx0cyB0byB0cmFuc3BhcmVudFxuICogICAtLWZpcnN0LWNvbHVtbi1wYWRkaW5nLWxlZnQ6IDE4cHggLy8gZGVmYXVsdHMgdG8gLS1jb2x1bW4tZ2FwXG4gKiAgIC0tbGFzdC1jb2x1bW4tcGFkZGluZy1yaWdodDogMThweCAvLyBkZWZhdWx0cyB0byAtLWNvbHVtbi1nYXBcbiAqICAgOjpuZy1kZWVwIHtcbiAqICAgICAgYXVwLXRhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyLFxuICogICAgICBhdXAtdGFibGUtY2VsbC1yZW5kZXJlciB7XG4gKiAgICAgICAgJi5hdXAtY29sLW15LWRhc2hlcmlzZWQtY29sdW1uLWlkIHtcbiAqICAgICAgICAgIC8vIGRvIHN0dWZmXG4gKiAgICAgICAgfVxuICogICAgICAgICYuZmlyc3QtdmlzaWJsZS1jb2x1bW4ge1xuICogICAgICAgICAgLy8gZG8gc3R1ZmZcbiAqICAgICAgICB9XG4gKiAgICAgICAgJi5sYXN0LXZpc2libGUtY29sdW1uIHtcbiAqICAgICAgICAgIC8vIGRvIHN0dWZmXG4gKiAgICAgICAgfVxuICogICAgICB9XG4gKiAgIH1cbiAqIH1cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogQWJzdHJhY3RUYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFRhYmxlQ29tcG9uZW50fVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50PFJvdz4gZXh0ZW5kcyBBYnN0cmFjdFRhYmxlQ29tcG9uZW50PFJvdz4ge1xuXG4gIEBJbnB1dCgpXG4gIEBUcmFja0V4dGVybmFsKClcbiAgdGFibGVNb2RlbDogQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz47XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgbmdab25lOiBOZ1pvbmUsIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIG5nWm9uZSwgaW5qZWN0b3IpO1xuICB9XG5cbiAgZ2V0TW9kZWwoKTogQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWw7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNjcm9sbC1jb250YWluZXJcIj5cbiAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJnZXRNb2RlbCgpLmRhdGFTb3VyY2UudmFsdWVcIiBbdHJhY2tCeV09XCJnZXRNb2RlbCgpLnRyYWNrQnlcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zLnZhbHVlOyBpbmRleCBhcyBpbmRleDsgZmlyc3QgYXMgZmlyc3Q7IGxhc3QgYXMgbGFzdFwiXG4gICAgICAgICAgICAgICAgICBtYXRDb2x1bW5EZWY9XCJ7e2NvbHVtbi5jb2x1bW5JZH19XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiIFtjbGFzcy5oaWRlXT1cIiFjb2x1bW4uaXNWaXNpYmxlKClcIj5cbiAgICAgICAgPGF1cC10YWJsZS1oZWFkZXItY2VsbCBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW4uY29sdW1uSWQpXCJcbiAgICAgICAgPjwvYXVwLXRhYmxlLWhlYWRlci1jZWxsPlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiAoY2xpY2spPVwibm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICBbY2xhc3MuZW5hYmxlLWN1cnNvcl09XCJnZXRNb2RlbCgpLmlzQ3Vyc29yRW5hYmxlZChjb2x1bW4pXCJcbiAgICAgICAgICBbY2xhc3MuZmxleF09XCJjb2x1bW4uaXNGbGV4KClcIlxuICAgICAgICAgIFtjbGFzcy5oaWRlXT1cIiFjb2x1bW4uaXNWaXNpYmxlKClcIlxuICAgICAgPlxuICAgICAgICA8YXVwLXRhYmxlLWNlbGwgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlTW9kZWxdPVwiZ2V0TW9kZWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZWRpdFNlc3Npb25dPVwiZ2V0TW9kZWwoKS5nZXRFZGl0U2Vzc2lvbkZvcihyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbi5jb2x1bW5JZClcIlxuICAgICAgICA+PC9hdXAtdGFibGUtY2VsbD5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbklkcy52YWx1ZVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbklkcy52YWx1ZTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImdldE1vZGVsKCkuZ2V0Um93Q2xhc3Nlcyhyb3cpXCIgW2NsYXNzLmVuYWJsZS1ob3Zlcl09XCJnZXRNb2RlbCgpLmlzSG92ZXJFbmFibGVkKClcIlxuICAgICAgICBbYXR0ci5hdXAtcm93LWlkXT1cImdldE1vZGVsKCkudHJhY2tCeShpLCByb3cpXCJcbiAgICA+PC90cj5cblxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,84 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { MatMenuTrigger } from '@angular/material/menu';
3
+ import { Dsl } from '@coolon/pectin';
4
+ import { DisposableComponent } from '../../disposable-component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../commands/group/tool-bar/tool-bar.component";
7
+ import * as i2 from "../../commands/command/command.component";
8
+ import * as i3 from "../../commands/group/popup-menu/more-menu.component";
9
+ import * as i4 from "@angular/common";
10
+ class MenuItemData {
11
+ constructor(factory, face) {
12
+ this.factory = factory;
13
+ this.face = face;
14
+ }
15
+ }
16
+ /**
17
+ *
18
+ */
19
+ export class TableRowMenuComponent extends DisposableComponent {
20
+ constructor() {
21
+ super();
22
+ this.actions = [];
23
+ this.moreActions = [];
24
+ }
25
+ registerAction(commandFactory, properties) {
26
+ this.actions.push(new MenuItemData(commandFactory, properties));
27
+ }
28
+ registerMoreAction(commandFactory, properties) {
29
+ this.moreActions.push(new MenuItemData(commandFactory, properties));
30
+ }
31
+ createMoreMenuCommand(item, value) {
32
+ const { when } = Dsl.disposeWith(this);
33
+ const command = item.factory.create(value);
34
+ when(command.busy).becomesFalsey(() => {
35
+ this.closeMoreMenu();
36
+ });
37
+ return command;
38
+ }
39
+ closeMoreMenu() {
40
+ this.menu.closeMenu();
41
+ }
42
+ }
43
+ TableRowMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableRowMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
+ TableRowMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TableRowMenuComponent, selector: "aup-table-row-menu", inputs: { value: "value" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: `
45
+ <aup-tool-bar>
46
+ <aup-command *ngFor="let action of actions" [command]="action.factory.create(value)"
47
+ [face]="action.face"></aup-command>
48
+ </aup-tool-bar>
49
+ <ng-container *ngIf="moreActions.length > 0">
50
+ <aup-more-menu>
51
+ <aup-command *ngFor="let action of moreActions" [command]="action.factory.create(value)"
52
+ [face]="action.face"></aup-command>
53
+ </aup-more-menu>
54
+ </ng-container>
55
+ `, isInline: true, styles: [":host{display:inline-flex;flex-direction:row;align-items:center}\n"], components: [{ type: i1.ToolBarComponent, selector: "aup-tool-bar" }, { type: i2.CommandComponent, selector: "aup-command", inputs: ["command", "faceModel", "face", "busyFaceModel", "busyFace", "alignFace"] }, { type: i3.MoreMenuComponent, selector: "aup-more-menu", inputs: ["tooltip"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TableRowMenuComponent, decorators: [{
57
+ type: Component,
58
+ args: [{
59
+ selector: 'aup-table-row-menu',
60
+ template: `
61
+ <aup-tool-bar>
62
+ <aup-command *ngFor="let action of actions" [command]="action.factory.create(value)"
63
+ [face]="action.face"></aup-command>
64
+ </aup-tool-bar>
65
+ <ng-container *ngIf="moreActions.length > 0">
66
+ <aup-more-menu>
67
+ <aup-command *ngFor="let action of moreActions" [command]="action.factory.create(value)"
68
+ [face]="action.face"></aup-command>
69
+ </aup-more-menu>
70
+ </ng-container>
71
+ `,
72
+ styles: [`:host {
73
+ display: inline-flex;
74
+ flex-direction: row;
75
+ align-items: center;
76
+ }`]
77
+ }]
78
+ }], ctorParameters: function () { return []; }, propDecorators: { value: [{
79
+ type: Input
80
+ }], menu: [{
81
+ type: ViewChild,
82
+ args: [MatMenuTrigger]
83
+ }] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFXLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFJakUsTUFBTSxZQUFZO0lBQ2hCLFlBQXFCLE9BQWlDLEVBQVcsSUFBaUI7UUFBN0QsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFBVyxTQUFJLEdBQUosSUFBSSxDQUFhO0lBQ2xGLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBcUJILE1BQU0sT0FBTyxxQkFBeUIsU0FBUSxtQkFBbUI7SUFtQi9EO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFaRCxZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUNoQyxnQkFBVyxHQUFzQixFQUFFLENBQUM7SUFZN0MsQ0FBQztJQVZELGNBQWMsQ0FBQyxjQUF3QyxFQUFFLFVBQXVCO1FBQzlFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxjQUF3QyxFQUFFLFVBQXVCO1FBQ2xGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFNRCxxQkFBcUIsQ0FBQyxJQUFxQixFQUFFLEtBQVE7UUFDbkQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7a0hBbENVLHFCQUFxQjtzR0FBckIscUJBQXFCLDRIQUtyQixjQUFjLHVFQXZCZjs7Ozs7Ozs7Ozs7R0FXVDsyRkFPVSxxQkFBcUI7a0JBcEJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQzs7OztJQUlQLENBQUM7aUJBQ0o7MEVBSUMsS0FBSztzQkFESixLQUFLO2dCQUlOLElBQUk7c0JBREgsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbmltcG9ydCB7IENvbW1hbmQsIERzbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IENvbW1hbmRGYWNlIH0gZnJvbSAnLi4vLi4vY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsUmVuZGVyZXIgfSBmcm9tICcuLi9yZW5kZXJlci9jZWxsLXJlbmRlcmVyJztcblxuXG5jbGFzcyBNZW51SXRlbURhdGE8VD4gIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmFjdG9yeTogQ29tbWFuZC5GYWN0b3J5PFQsIHZvaWQ+LCByZWFkb25seSBmYWNlOiBDb21tYW5kRmFjZSkge1xuICB9XG59XG5cbi8qKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRhYmxlLXJvdy1tZW51JyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxhdXAtdG9vbC1iYXI+XG4gICAgICAgICAgPGF1cC1jb21tYW5kICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiIFtjb21tYW5kXT1cImFjdGlvbi5mYWN0b3J5LmNyZWF0ZSh2YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICBbZmFjZV09XCJhY3Rpb24uZmFjZVwiPjwvYXVwLWNvbW1hbmQ+XG4gICAgICA8L2F1cC10b29sLWJhcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb3JlQWN0aW9ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPGF1cC1tb3JlLW1lbnU+XG4gICAgICAgICAgICAgIDxhdXAtY29tbWFuZCAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIG1vcmVBY3Rpb25zXCIgW2NvbW1hbmRdPVwiYWN0aW9uLmZhY3RvcnkuY3JlYXRlKHZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZmFjZV09XCJhY3Rpb24uZmFjZVwiPjwvYXVwLWNvbW1hbmQ+XG4gICAgICAgICAgPC9hdXAtbW9yZS1tZW51PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIHN0eWxlczogW2A6aG9zdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9YF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dNZW51Q29tcG9uZW50PFQ+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIENlbGxSZW5kZXJlcjxUPiB7XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IFQ7XG5cbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcilcbiAgbWVudTogTWF0TWVudVRyaWdnZXI7XG5cbiAgcmVhZG9ubHkgYWN0aW9uczogTWVudUl0ZW1EYXRhPFQ+W10gPSBbXTtcbiAgcmVhZG9ubHkgbW9yZUFjdGlvbnM6IE1lbnVJdGVtRGF0YTxUPltdID0gW107XG5cbiAgcmVnaXN0ZXJBY3Rpb24oY29tbWFuZEZhY3Rvcnk6IENvbW1hbmQuRmFjdG9yeTxULCB2b2lkPiwgcHJvcGVydGllczogQ29tbWFuZEZhY2UpIHtcbiAgICB0aGlzLmFjdGlvbnMucHVzaChuZXcgTWVudUl0ZW1EYXRhKGNvbW1hbmRGYWN0b3J5LCBwcm9wZXJ0aWVzKSk7XG4gIH1cblxuICByZWdpc3Rlck1vcmVBY3Rpb24oY29tbWFuZEZhY3Rvcnk6IENvbW1hbmQuRmFjdG9yeTxULCB2b2lkPiwgcHJvcGVydGllczogQ29tbWFuZEZhY2UpIHtcbiAgICB0aGlzLm1vcmVBY3Rpb25zLnB1c2gobmV3IE1lbnVJdGVtRGF0YShjb21tYW5kRmFjdG9yeSwgcHJvcGVydGllcykpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGNyZWF0ZU1vcmVNZW51Q29tbWFuZChpdGVtOiBNZW51SXRlbURhdGE8VD4sIHZhbHVlOiBUKTogQ29tbWFuZDx2b2lkPiB7XG4gICAgY29uc3QgeyB3aGVuIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgY29uc3QgY29tbWFuZCA9IGl0ZW0uZmFjdG9yeS5jcmVhdGUodmFsdWUpO1xuICAgIHdoZW4oY29tbWFuZC5idXN5KS5iZWNvbWVzRmFsc2V5KCgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2VNb3JlTWVudSgpO1xuICAgIH0pO1xuICAgIHJldHVybiBjb21tYW5kO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZU1vcmVNZW51KCkge1xuICAgIHRoaXMubWVudS5jbG9zZU1lbnUoKTtcbiAgfVxufVxuIl19
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
88
88
  'mat:chevron_right';
89
89
  };
90
90
  })(TreeLabelCellRendererComponent || (TreeLabelCellRendererComponent = {}));
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RyZWUtdGFibGUvdHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsR0FBRyxFQUFrQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT3JELE1BQU0sT0FBTyw4QkFBa0MsU0FBUSxtQkFBbUI7SUF3QnhFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF2QkYsY0FBUyxHQUFHLElBQUksaUJBQWlCLEVBQUssQ0FBQztRQXdCN0MsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3RCxPQUFPLE1BQU0sQ0FBQyxDQUFDO1lBQ2IsU0FBUyxDQUFDLENBQUM7WUFDWCxRQUFRLENBQUMsQ0FBQztnQkFDUixpQkFBaUIsQ0FBQyxDQUFDO2dCQUNuQixtQkFBbUIsQ0FBQztJQUMxQixDQUFDLENBQUM7QUFDSixDQUFDLEVBVGdCLDhCQUE4QixLQUE5Qiw4QkFBOEIsUUFTOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEc2wsIExpc3RNb2RlbENoYWluLCBNdXRhYmxlVmFsdWVNb2RlbCwgU3RvcmVJblZhbHVlTW9kZWwsIFZhbHVlTW9kZWxDaGFpbiB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsUmVuZGVyZXIgfSBmcm9tICcuLi8uLi90YWJsZS9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IERlY29yYXRlZFRyZWVOb2RlIH0gZnJvbSAnLi4vZGVjb3JhdGVkLXRyZWUtbm9kZSc7XG5pbXBvcnQgeyBUcmVlRXhwYW5zaW9uTW9kZWwgfSBmcm9tICcuLi90cmVlLWV4cGFuc2lvbi1tb2RlbCc7XG5pbXBvcnQgeyBUcmVlSW5oZXJpdGFuY2VJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJlZS1pbmhlcml0YW5jZS1pY29uL3RyZWUtaW5oZXJpdGFuY2UtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlZVRhYmxlTW9kZWwgfSBmcm9tICcuLi90cmVlLXRhYmxlLW1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRyZWUtbGFiZWwtY2VsbC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQ8VD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbFJlbmRlcmVyPFQ+LCBPbkluaXQge1xuXG4gIHByaXZhdGUgbm9kZU1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFQ+KCk7XG5cbiAgQElucHV0KClcbiAgQFN0b3JlSW5WYWx1ZU1vZGVsKCdub2RlTW9kZWwnKVxuICB2YWx1ZTogVDtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGljb25GYWN0b3J5OiBUcmVlVGFibGVNb2RlbC5JY29uRmFjdG9yeTxUPjtcblxuICAvLyBUT0RPOiBNYWtlIHRoaXMgaGF2ZSBhIHByb3BlciBkZWxlZ2F0ZSBzbyBJIGNhbiBzYWZlbHkgdXNlIGl0IGhlcmUuLlxuICBASW5wdXQoKVxuICB0cmVlVGFibGVNb2RlbDogVHJlZVRhYmxlTW9kZWw8VD47XG5cbiAgcmVhZG9ubHkgaWNvbkxpc3Q6IExpc3RNb2RlbENoYWluPFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZT47XG5cbiAgY2FuRXhwYW5kOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG4gIGNhbkNvbGxhcHNlOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG4gIGljb25Nb2RlbDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5pY29uTGlzdCA9IGNoYWluKHRoaXMubm9kZU1vZGVsKS5tYXBUb0xpc3Qobm9kZSA9PiB7XG4gICAgICBjb25zdCBpY29uczogVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlW10gPSBEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3Iobm9kZSkuYW5jZXN0b3JzKCkuc2xpY2UoMSkubWFwKGFuY2VzdG9yID0+IHtcbiAgICAgICAgcmV0dXJuIERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihhbmNlc3RvcikuaXNMYXN0Q2hpbGQoKSA/IFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZS5JQ09OX0JMQU5LIDogVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlLklDT05fVEhST1VHSDtcbiAgICAgIH0pO1xuICAgICAgaWYgKCFEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3Iobm9kZSkuaXNSb290KCkpIHtcbiAgICAgICAgaWNvbnMucHVzaChEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3Iobm9kZSkuaXNMYXN0Q2hpbGQoKSA/IFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZS5JQ09OX0lOSEVSSVRFRF9URVJNSU5BTCA6IFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZS5JQ09OX0lOSEVSSVRFRF9USFJPVUdIX1RFUk1JTkFMKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpY29ucztcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY2hhaW4gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmNhbkV4cGFuZCA9IGNoYWluKHRoaXMubm9kZU1vZGVsKS5tYXAobm9kZSA9PiB7XG4gICAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKG5vZGUpLmhhc0NoaWxkcmVuKCkgJiYgdGhpcy50cmVlVGFibGVNb2RlbC5pc0NvbGxhcHNlZChub2RlKTtcbiAgICB9LCB7IGRlcGVuZHNPbjogdGhpcy50cmVlVGFibGVNb2RlbC50cmVlRXhwYW5zaW9uTW9kZWwuaXNFeHBhbmRlZFByZWRpY2F0ZSB9KTtcblxuICAgIHRoaXMuY2FuQ29sbGFwc2UgPSBjaGFpbih0aGlzLm5vZGVNb2RlbCkubWFwKG5vZGUgPT4ge1xuICAgICAgcmV0dXJuIERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5oYXNDaGlsZHJlbigpICYmICF0aGlzLnRyZWVUYWJsZU1vZGVsLmlzQ29sbGFwc2VkKG5vZGUpO1xuICAgIH0sIHsgZGVwZW5kc09uOiB0aGlzLnRyZWVUYWJsZU1vZGVsLnRyZWVFeHBhbnNpb25Nb2RlbC5pc0V4cGFuZGVkUHJlZGljYXRlIH0pO1xuXG4gICAgdGhpcy5pY29uTW9kZWwgPSBjaGFpbih0aGlzLm5vZGVNb2RlbCkubWFwKG5vZGUgPT4ge1xuICAgICAgY29uc3QgZXhwYW5kZWQgPSB0aGlzLnRyZWVUYWJsZU1vZGVsLnRyZWVFeHBhbnNpb25Nb2RlbC5pc0V4cGFuZGVkKHRoaXMubm9kZSk7XG4gICAgICBjb25zdCBpY29uRmFjdG9yeSA9IHRoaXMuaWNvbkZhY3RvcnkgPz8gVHJlZUxhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50LkRFRkFVTFRfSUNPTl9GQUNUT1JZO1xuICAgICAgcmV0dXJuIGljb25GYWN0b3J5KG5vZGUsIGV4cGFuZGVkLCBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQuREVGQVVMVF9JQ09OX0ZBQ1RPUlkobm9kZSwgZXhwYW5kZWQsIHVuZGVmaW5lZCkpO1xuICAgIH0sIHsgZGVwZW5kc09uOiB0aGlzLnRyZWVUYWJsZU1vZGVsLnRyZWVFeHBhbnNpb25Nb2RlbC5pc0V4cGFuZGVkUHJlZGljYXRlIH0pO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb290JylcbiAgZ2V0IGlzUm9vdCgpIHtcbiAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKHRoaXMubm9kZSkuaXNSb290KCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxlYWYnKVxuICBnZXQgaXNMZWFmKCkge1xuICAgIHJldHVybiBEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3IodGhpcy5ub2RlKS5pc0xlYWYoKTtcbiAgfVxuXG4gIGdldCBub2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVNb2RlbC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGV4cGFuZE9yQ29sbGFwc2UoJGV2ZW50OiBNb3VzZUV2ZW50LCBub2RlOiBUKSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudHJlZVRhYmxlTW9kZWwuaXNDb2xsYXBzZWQobm9kZSkgPyB0aGlzLnRyZWVUYWJsZU1vZGVsLmV4cGFuZChub2RlKSA6IHRoaXMudHJlZVRhYmxlTW9kZWwuY29sbGFwc2Uobm9kZSk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgREVGQVVMVF9JQ09OX0ZBQ1RPUlk6IFRyZWVUYWJsZU1vZGVsLkljb25GYWN0b3J5PGFueT4gPSAobm9kZTogYW55LCBleHBhbmRlZDogYm9vbGVhbiwgZGVmYXVsdEljb246IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGlzTGVhZiA9IERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5pc0xlYWYoKTtcbiAgICByZXR1cm4gaXNMZWFmID9cbiAgICAgIHVuZGVmaW5lZCA6XG4gICAgICBleHBhbmRlZCA/XG4gICAgICAgICdtYXQ6ZXhwYW5kX21vcmUnIDpcbiAgICAgICAgJ21hdDpjaGV2cm9uX3JpZ2h0JztcbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0cmVlLWljb25zXCI+XG4gIDxhdXAtdHJlZS1pbmhlcml0YW5jZS1pY29uICpuZ0Zvcj1cImxldCB0eXBlIG9mIGljb25MaXN0LnZhbHVlXCIgW3R5cGVdPVwidHlwZVwiPjwvYXVwLXRyZWUtaW5oZXJpdGFuY2UtaWNvbj5cbiAgPGF1cC1pY29uICpuZ0lmPVwiaWNvbk1vZGVsLnZhbHVlXCJcbiAgICAgICAgICAgIFtpY29uXT1cImljb25Nb2RlbC52YWx1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuY2xpY2thYmxlXT1cImNhbkV4cGFuZC52YWx1ZSB8fCBjYW5Db2xsYXBzZS52YWx1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kT3JDb2xsYXBzZSgkZXZlbnQsIG5vZGUpXCIgPjwvYXVwLWljb24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7bGFiZWx9fTwvZGl2PlxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RyZWUtdGFibGUvdHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsR0FBRyxFQUFrQixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT3JELE1BQU0sT0FBTyw4QkFBa0MsU0FBUSxtQkFBbUI7SUF3QnhFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF2QkYsY0FBUyxHQUFHLElBQUksaUJBQWlCLEVBQUssQ0FBQztRQXdCN0MsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3RCxPQUFPLE1BQU0sQ0FBQyxDQUFDO1lBQ2IsU0FBUyxDQUFDLENBQUM7WUFDWCxRQUFRLENBQUMsQ0FBQztnQkFDUixpQkFBaUIsQ0FBQyxDQUFDO2dCQUNuQixtQkFBbUIsQ0FBQztJQUMxQixDQUFDLENBQUM7QUFDSixDQUFDLEVBVGdCLDhCQUE4QixLQUE5Qiw4QkFBOEIsUUFTOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEc2wsIExpc3RNb2RlbENoYWluLCBNdXRhYmxlVmFsdWVNb2RlbCwgU3RvcmVJblZhbHVlTW9kZWwsIFZhbHVlTW9kZWxDaGFpbiB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsUmVuZGVyZXIgfSBmcm9tICcuLi8uLi9yZW5kZXJlci9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IERlY29yYXRlZFRyZWVOb2RlIH0gZnJvbSAnLi4vZGVjb3JhdGVkLXRyZWUtbm9kZSc7XG5pbXBvcnQgeyBUcmVlRXhwYW5zaW9uTW9kZWwgfSBmcm9tICcuLi90cmVlLWV4cGFuc2lvbi1tb2RlbCc7XG5pbXBvcnQgeyBUcmVlSW5oZXJpdGFuY2VJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJlZS1pbmhlcml0YW5jZS1pY29uL3RyZWUtaW5oZXJpdGFuY2UtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlZVRhYmxlTW9kZWwgfSBmcm9tICcuLi90cmVlLXRhYmxlLW1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRyZWUtbGFiZWwtY2VsbC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQ8VD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbFJlbmRlcmVyPFQ+LCBPbkluaXQge1xuXG4gIHByaXZhdGUgbm9kZU1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFQ+KCk7XG5cbiAgQElucHV0KClcbiAgQFN0b3JlSW5WYWx1ZU1vZGVsKCdub2RlTW9kZWwnKVxuICB2YWx1ZTogVDtcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGljb25GYWN0b3J5OiBUcmVlVGFibGVNb2RlbC5JY29uRmFjdG9yeTxUPjtcblxuICAvLyBUT0RPOiBNYWtlIHRoaXMgaGF2ZSBhIHByb3BlciBkZWxlZ2F0ZSBzbyBJIGNhbiBzYWZlbHkgdXNlIGl0IGhlcmUuLlxuICBASW5wdXQoKVxuICB0cmVlVGFibGVNb2RlbDogVHJlZVRhYmxlTW9kZWw8VD47XG5cbiAgcmVhZG9ubHkgaWNvbkxpc3Q6IExpc3RNb2RlbENoYWluPFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZT47XG5cbiAgY2FuRXhwYW5kOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG4gIGNhbkNvbGxhcHNlOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG4gIGljb25Nb2RlbDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5pY29uTGlzdCA9IGNoYWluKHRoaXMubm9kZU1vZGVsKS5tYXBUb0xpc3Qobm9kZSA9PiB7XG4gICAgICBjb25zdCBpY29uczogVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlW10gPSBEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3Iobm9kZSkuYW5jZXN0b3JzKCkuc2xpY2UoMSkubWFwKGFuY2VzdG9yID0+IHtcbiAgICAgICAgcmV0dXJuIERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihhbmNlc3RvcikuaXNMYXN0Q2hpbGQoKSA/IFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZS5JQ09OX0JMQU5LIDogVHJlZUluaGVyaXRhbmNlSWNvbkNvbXBvbmVudC5UeXBlLklDT05fVEhST1VHSDtcbiAgICAgIH0pO1xuICAgICAgaWYgKCFEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3Iobm9kZSkuaXNSb290KCkpIHtcbiAgICAgICAgaWNvbnMucHVzaChEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3Iobm9kZSkuaXNMYXN0Q2hpbGQoKSA/IFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZS5JQ09OX0lOSEVSSVRFRF9URVJNSU5BTCA6IFRyZWVJbmhlcml0YW5jZUljb25Db21wb25lbnQuVHlwZS5JQ09OX0lOSEVSSVRFRF9USFJPVUdIX1RFUk1JTkFMKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpY29ucztcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY2hhaW4gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmNhbkV4cGFuZCA9IGNoYWluKHRoaXMubm9kZU1vZGVsKS5tYXAobm9kZSA9PiB7XG4gICAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKG5vZGUpLmhhc0NoaWxkcmVuKCkgJiYgdGhpcy50cmVlVGFibGVNb2RlbC5pc0NvbGxhcHNlZChub2RlKTtcbiAgICB9LCB7IGRlcGVuZHNPbjogdGhpcy50cmVlVGFibGVNb2RlbC50cmVlRXhwYW5zaW9uTW9kZWwuaXNFeHBhbmRlZFByZWRpY2F0ZSB9KTtcblxuICAgIHRoaXMuY2FuQ29sbGFwc2UgPSBjaGFpbih0aGlzLm5vZGVNb2RlbCkubWFwKG5vZGUgPT4ge1xuICAgICAgcmV0dXJuIERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5oYXNDaGlsZHJlbigpICYmICF0aGlzLnRyZWVUYWJsZU1vZGVsLmlzQ29sbGFwc2VkKG5vZGUpO1xuICAgIH0sIHsgZGVwZW5kc09uOiB0aGlzLnRyZWVUYWJsZU1vZGVsLnRyZWVFeHBhbnNpb25Nb2RlbC5pc0V4cGFuZGVkUHJlZGljYXRlIH0pO1xuXG4gICAgdGhpcy5pY29uTW9kZWwgPSBjaGFpbih0aGlzLm5vZGVNb2RlbCkubWFwKG5vZGUgPT4ge1xuICAgICAgY29uc3QgZXhwYW5kZWQgPSB0aGlzLnRyZWVUYWJsZU1vZGVsLnRyZWVFeHBhbnNpb25Nb2RlbC5pc0V4cGFuZGVkKHRoaXMubm9kZSk7XG4gICAgICBjb25zdCBpY29uRmFjdG9yeSA9IHRoaXMuaWNvbkZhY3RvcnkgPz8gVHJlZUxhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50LkRFRkFVTFRfSUNPTl9GQUNUT1JZO1xuICAgICAgcmV0dXJuIGljb25GYWN0b3J5KG5vZGUsIGV4cGFuZGVkLCBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQuREVGQVVMVF9JQ09OX0ZBQ1RPUlkobm9kZSwgZXhwYW5kZWQsIHVuZGVmaW5lZCkpO1xuICAgIH0sIHsgZGVwZW5kc09uOiB0aGlzLnRyZWVUYWJsZU1vZGVsLnRyZWVFeHBhbnNpb25Nb2RlbC5pc0V4cGFuZGVkUHJlZGljYXRlIH0pO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb290JylcbiAgZ2V0IGlzUm9vdCgpIHtcbiAgICByZXR1cm4gRGVjb3JhdGVkVHJlZU5vZGUuZ2V0RGVjb3JhdG9yKHRoaXMubm9kZSkuaXNSb290KCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxlYWYnKVxuICBnZXQgaXNMZWFmKCkge1xuICAgIHJldHVybiBEZWNvcmF0ZWRUcmVlTm9kZS5nZXREZWNvcmF0b3IodGhpcy5ub2RlKS5pc0xlYWYoKTtcbiAgfVxuXG4gIGdldCBub2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVNb2RlbC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGV4cGFuZE9yQ29sbGFwc2UoJGV2ZW50OiBNb3VzZUV2ZW50LCBub2RlOiBUKSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudHJlZVRhYmxlTW9kZWwuaXNDb2xsYXBzZWQobm9kZSkgPyB0aGlzLnRyZWVUYWJsZU1vZGVsLmV4cGFuZChub2RlKSA6IHRoaXMudHJlZVRhYmxlTW9kZWwuY29sbGFwc2Uobm9kZSk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBUcmVlTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgREVGQVVMVF9JQ09OX0ZBQ1RPUlk6IFRyZWVUYWJsZU1vZGVsLkljb25GYWN0b3J5PGFueT4gPSAobm9kZTogYW55LCBleHBhbmRlZDogYm9vbGVhbiwgZGVmYXVsdEljb246IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGlzTGVhZiA9IERlY29yYXRlZFRyZWVOb2RlLmdldERlY29yYXRvcihub2RlKS5pc0xlYWYoKTtcbiAgICByZXR1cm4gaXNMZWFmID9cbiAgICAgIHVuZGVmaW5lZCA6XG4gICAgICBleHBhbmRlZCA/XG4gICAgICAgICdtYXQ6ZXhwYW5kX21vcmUnIDpcbiAgICAgICAgJ21hdDpjaGV2cm9uX3JpZ2h0JztcbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0cmVlLWljb25zXCI+XG4gIDxhdXAtdHJlZS1pbmhlcml0YW5jZS1pY29uICpuZ0Zvcj1cImxldCB0eXBlIG9mIGljb25MaXN0LnZhbHVlXCIgW3R5cGVdPVwidHlwZVwiPjwvYXVwLXRyZWUtaW5oZXJpdGFuY2UtaWNvbj5cbiAgPGF1cC1pY29uICpuZ0lmPVwiaWNvbk1vZGVsLnZhbHVlXCJcbiAgICAgICAgICAgIFtpY29uXT1cImljb25Nb2RlbC52YWx1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuY2xpY2thYmxlXT1cImNhbkV4cGFuZC52YWx1ZSB8fCBjYW5Db2xsYXBzZS52YWx1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kT3JDb2xsYXBzZSgkZXZlbnQsIG5vZGUpXCIgPjwvYXVwLWljb24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7bGFiZWx9fTwvZGl2PlxuIl19