@acorex/components 7.11.0 → 7.11.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 (67) hide show
  1. package/button/lib/button-item-list.component.d.ts +2 -2
  2. package/circular-progress/README.md +3 -0
  3. package/circular-progress/index.d.ts +2 -0
  4. package/circular-progress/lib/circular-progress.component.d.ts +33 -0
  5. package/circular-progress/lib/circular-progress.module.d.ts +7 -0
  6. package/common/lib/classes/datalist.class.d.ts +2 -1
  7. package/common/lib/classes/datasource.class.d.ts +10 -7
  8. package/common/lib/classes/events.class.d.ts +2 -1
  9. package/data-table/index.d.ts +6 -2
  10. package/data-table/lib/columns/data-column.d.ts +18 -0
  11. package/data-table/lib/columns/data-text-column.component.d.ts +10 -0
  12. package/data-table/lib/columns/row-command-column.component.d.ts +31 -0
  13. package/data-table/lib/columns/row-index-column.component.d.ts +12 -0
  14. package/data-table/lib/columns/row-select-column.component.d.ts +13 -0
  15. package/data-table/lib/data-table.component.d.ts +42 -27
  16. package/data-table/lib/data-table.module.d.ts +14 -11
  17. package/esm2022/alert/lib/alert.component.mjs +2 -2
  18. package/esm2022/button/lib/button-item-list.component.mjs +5 -4
  19. package/esm2022/circular-progress/acorex-components-circular-progress.mjs +5 -0
  20. package/esm2022/circular-progress/index.mjs +3 -0
  21. package/esm2022/circular-progress/lib/circular-progress.component.mjs +96 -0
  22. package/esm2022/circular-progress/lib/circular-progress.module.mjs +17 -0
  23. package/esm2022/common/lib/classes/datalist.class.mjs +6 -3
  24. package/esm2022/common/lib/classes/datasource.class.mjs +10 -3
  25. package/esm2022/common/lib/classes/events.class.mjs +2 -2
  26. package/esm2022/data-table/index.mjs +7 -3
  27. package/esm2022/data-table/lib/columns/data-column.mjs +35 -0
  28. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +34 -0
  29. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +110 -0
  30. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +41 -0
  31. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +62 -0
  32. package/esm2022/data-table/lib/data-table.component.mjs +135 -92
  33. package/esm2022/data-table/lib/data-table.module.mjs +41 -6
  34. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +1 -2
  35. package/esm2022/progress-bar/lib/progress-bar.component.mjs +20 -62
  36. package/esm2022/skeleton/lib/skeleton.component.mjs +2 -2
  37. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  38. package/esm2022/switch/lib/switch.component.mjs +3 -3
  39. package/esm2022/uploader/lib/uploader-list.component.mjs +3 -3
  40. package/fesm2022/acorex-components-alert.mjs +2 -2
  41. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  42. package/fesm2022/acorex-components-button.mjs +3 -2
  43. package/fesm2022/acorex-components-button.mjs.map +1 -1
  44. package/fesm2022/acorex-components-circular-progress.mjs +117 -0
  45. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -0
  46. package/fesm2022/acorex-components-common.mjs +15 -5
  47. package/fesm2022/acorex-components-common.mjs.map +1 -1
  48. package/fesm2022/acorex-components-data-table.mjs +353 -161
  49. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  50. package/fesm2022/acorex-components-dropdown.mjs +0 -1
  51. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  52. package/fesm2022/acorex-components-progress-bar.mjs +18 -60
  53. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  54. package/fesm2022/acorex-components-skeleton.mjs +2 -2
  55. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  56. package/fesm2022/acorex-components-switch.mjs +4 -4
  57. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  58. package/fesm2022/acorex-components-uploader.mjs +2 -2
  59. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  60. package/package.json +29 -23
  61. package/progress-bar/lib/progress-bar.component.d.ts +9 -18
  62. package/switch/lib/switch-content.component.d.ts +1 -1
  63. package/switch/lib/switch.component.d.ts +1 -1
  64. package/data-table/lib/data-column.directive.d.ts +0 -11
  65. package/data-table/lib/data-table2.component.d.ts +0 -42
  66. package/esm2022/data-table/lib/data-column.directive.mjs +0 -26
  67. package/esm2022/data-table/lib/data-table2.component.mjs +0 -130
@@ -0,0 +1,62 @@
1
+ import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from "@angular/core";
2
+ import { AXDataColumnComponent } from "./data-column";
3
+ import { AXDataTableComponent } from "../data-table.component";
4
+ import * as i0 from "@angular/core";
5
+ export class AXRowSelectColumnComponent extends AXDataColumnComponent {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.grid = inject(AXDataTableComponent);
9
+ }
10
+ get template() {
11
+ return this._template;
12
+ }
13
+ isSelected(item) {
14
+ return item != null && this.grid.selectedRows.includes(item);
15
+ }
16
+ handleChange(item) {
17
+ if (this.isSelected(item)) {
18
+ this.grid.selectedRows = this.grid.selectedRows.filter(c => c != item);
19
+ }
20
+ else {
21
+ this.grid.selectedRows.push(item);
22
+ }
23
+ }
24
+ get skeleton() {
25
+ return false;
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXRowSelectColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: AXRowSelectColumnComponent, selector: "ax-select-column", inputs: { width: "width", caption: "caption" }, providers: [{ provide: AXDataColumnComponent, useExisting: AXRowSelectColumnComponent }], viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: `
29
+ <ng-template let-row>
30
+ <input
31
+ class="ax-checkbox"
32
+ type="checkbox"
33
+ [disabled]="!row.data"
34
+ (change)="handleChange(row.data)"
35
+ [checked]="isSelected(row.data)"
36
+ />
37
+ </ng-template>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXRowSelectColumnComponent, decorators: [{
40
+ type: Component,
41
+ args: [{
42
+ selector: 'ax-select-column',
43
+ template: `
44
+ <ng-template let-row>
45
+ <input
46
+ class="ax-checkbox"
47
+ type="checkbox"
48
+ [disabled]="!row.data"
49
+ (change)="handleChange(row.data)"
50
+ [checked]="isSelected(row.data)"
51
+ />
52
+ </ng-template>`,
53
+ encapsulation: ViewEncapsulation.None,
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ providers: [{ provide: AXDataColumnComponent, useExisting: AXRowSelectColumnComponent }],
56
+ inputs: ['width', 'caption']
57
+ }]
58
+ }], propDecorators: { _template: [{
59
+ type: ViewChild,
60
+ args: [TemplateRef]
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXNlbGVjdC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtdGFibGUvc3JjL2xpYi9jb2x1bW5zL3Jvdy1zZWxlY3QtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFtQi9ELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxxQkFBcUI7SUFqQnJFOztRQW1CWSxTQUFJLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0E2Qi9DO0lBdEJHLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRVMsVUFBVSxDQUFDLElBQWE7UUFDOUIsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBR1MsWUFBWSxDQUFDLElBQWE7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUMxRTthQUNJO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OEdBN0JRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDJGQUh4QixDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLHFFQVE3RSxXQUFXLHVFQXBCWjs7Ozs7Ozs7O21CQVNLOzsyRkFNTiwwQkFBMEI7a0JBakJ0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7Ozs7O21CQVNLO29CQUNmLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyw0QkFBNEIsRUFBRSxDQUFDO29CQUN4RixNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO2lCQUMvQjs4QkFPVyxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYRGF0YUNvbHVtbkNvbXBvbmVudCB9IGZyb20gXCIuL2RhdGEtY29sdW1uXCI7XG5pbXBvcnQgeyBBWERhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi9kYXRhLXRhYmxlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4LXNlbGVjdC1jb2x1bW4nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlIGxldC1yb3c+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJheC1jaGVja2JveFwiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFyb3cuZGF0YVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZShyb3cuZGF0YSlcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyb3cuZGF0YSlcIlxuICAgICAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWERhdGFDb2x1bW5Db21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFJvd1NlbGVjdENvbHVtbkNvbXBvbmVudCB9XSxcbiAgICBpbnB1dHM6IFsnd2lkdGgnLCAnY2FwdGlvbiddXG59KVxuZXhwb3J0IGNsYXNzIEFYUm93U2VsZWN0Q29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhEYXRhQ29sdW1uQ29tcG9uZW50IHtcblxuICAgIHByaXZhdGUgZ3JpZCA9IGluamVjdChBWERhdGFUYWJsZUNvbXBvbmVudCk7XG5cblxuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcHJpdmF0ZSBfdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG5cbiAgICBnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzU2VsZWN0ZWQoaXRlbTogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gaXRlbSAhPSBudWxsICYmIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3MuaW5jbHVkZXMoaXRlbSk7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlQ2hhbmdlKGl0ZW06IHVua25vd24pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZChpdGVtKSkge1xuICAgICAgICAgICAgdGhpcy5ncmlkLnNlbGVjdGVkUm93cyA9IHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3MuZmlsdGVyKGMgPT4gYyAhPSBpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3MucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBza2VsZXRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxufSJdfQ==
@@ -1,121 +1,143 @@
1
- import { AXPagedComponent, MXBaseComponent, } from '@acorex/components/common';
2
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef, ViewEncapsulation, } from '@angular/core';
3
- import { AXDataColumnComponent } from './data-column.directive';
1
+ import { AXPagedComponent, MXBaseComponent, AXListDataSource, convertArrayToDataSource, AXDataSource } from '@acorex/components/common';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
3
+ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
4
+ import sum from 'lodash-es/sum';
5
+ import { AXDataColumnComponent } from './columns/data-column';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "@angular/common";
6
- import * as i2 from "@acorex/components/result";
7
- import * as i3 from "@acorex/core/translation";
8
+ import * as i2 from "@angular/cdk/scrolling";
9
+ import * as i3 from "@acorex/components/result";
10
+ import * as i4 from "@acorex/components/decorators";
11
+ import * as i5 from "@acorex/components/skeleton";
12
+ import * as i6 from "@acorex/components/button";
13
+ import * as i7 from "@acorex/core/translation";
8
14
  export class AXDataTableComponent extends MXBaseComponent {
9
15
  constructor() {
10
16
  super(...arguments);
11
17
  this.onPageChanged = new EventEmitter();
12
18
  this.showHeader = true;
13
- this._pageSize = 20;
14
19
  this.fetchDataMode = 'auto';
15
- this._currentPage = 1;
16
- this._loadedItems = [];
17
- this._totalItems = 0;
18
- this._isLazy = false;
19
- this._isLoading = false;
20
- this._items = [];
20
+ this.dataSource = convertArrayToDataSource([]);
21
+ this.isLoading = true;
22
+ this.hasItems = false;
23
+ this.totalRows = 0;
24
+ this.currentPage = 0;
25
+ this.totalPages = 0;
26
+ this.startRowIndex = 0;
27
+ this.lastIndex = 0;
28
+ this.focusedRowChange = new EventEmitter();
29
+ this.selectedRowsChange = new EventEmitter();
30
+ this._selectedRows = [];
31
+ this.itemHeight = 40;
32
+ this.width = "100%";
33
+ this.height = "100%";
34
+ this.onScrolledIndexChanged = new EventEmitter();
21
35
  }
22
- get pageSize() {
23
- return this._pageSize;
36
+ get focusedRow() {
37
+ return this._focusedRow;
24
38
  }
25
- set pageSize(v) {
26
- this._pageSize = v;
39
+ set focusedRow(v) {
40
+ this._focusedRow = v;
41
+ this.focusedRowChange.emit(v);
27
42
  }
28
- get totalCount() {
29
- return this._totalItems;
43
+ get selectedRows() {
44
+ return this._selectedRows;
30
45
  }
31
- get isLazy() {
32
- return this._isLazy;
46
+ set selectedRows(v) {
47
+ this._selectedRows = v;
48
+ this.selectedRowsChange.emit(v);
33
49
  }
34
- get isLoading() {
35
- return this._isLoading;
50
+ trackByIdx(i) {
51
+ return i;
36
52
  }
37
- get loadedCount() {
38
- return this._loadedItems?.length || 0;
53
+ ngOnInit() {
54
+ super.ngOnInit();
55
+ this.listDataSource = new AXListDataSource({
56
+ source: this.dataSource,
57
+ });
58
+ this.listDataSource.source
59
+ .onLoadingChanged
60
+ .subscribe((data) => {
61
+ this.isLoading = data;
62
+ });
63
+ this.listDataSource.source
64
+ .onChanged
65
+ .subscribe((data) => {
66
+ this.totalRows = data.totalCount;
67
+ this.hasItems = data.totalCount > 0;
68
+ setTimeout(() => {
69
+ this.render();
70
+ }, 100);
71
+ });
39
72
  }
40
- get items() {
41
- return this._items;
73
+ _handleOnscrolledIndexChange(e) {
74
+ this.lastIndex = e;
75
+ this.onScrolledIndexChanged.emit({
76
+ component: this,
77
+ index: this.lastIndex,
78
+ isUserInteraction: true,
79
+ });
42
80
  }
43
- set items(v) {
44
- if (Array.isArray(v)) {
45
- this._items = v;
81
+ ngDoCheck() {
82
+ if (this.headerContainer) {
83
+ const headerContainer = this.headerContainer.nativeElement;
84
+ const left = this.getHostElement().querySelector('.cdk-virtual-scrollable').scrollLeft;
85
+ headerContainer.scrollLeft = left;
46
86
  }
47
- else if (typeof v === 'function') {
48
- this._isLazy = true;
49
- this._items = v;
50
- }
51
- else {
52
- this._items = [];
87
+ if (this.columns && this.columns.length) {
88
+ const sumPx = sum(this.columns.toArray().map(c => typeof c.width == 'number' ? c.width : Number(c.width.replace('px', ''))));
89
+ this.width = `${Math.max(sumPx, this.getHostElement().clientWidth - 5)}px`;
53
90
  }
91
+ this.height = `calc(100% - ${((this.headerContainer?.nativeElement.clientHeight ?? 0) + (this.footerContainer?.nativeElement.clientHeight ?? 0))}px)`;
92
+ this.startRowIndex = this.lastIndex;
93
+ if (this.startRowIndex < 1)
94
+ this.startRowIndex = 1;
95
+ if (this.startRowIndex > this.totalRows)
96
+ this.startRowIndex = this.totalRows;
54
97
  }
55
- get displayItems() {
56
- if (Array.isArray(this.items)) {
57
- return (this._items || []);
58
- }
59
- else if (typeof this._items == 'function') {
60
- return this._loadedItems || [];
61
- }
62
- return [];
98
+ render() {
99
+ this.viewport.checkViewportSize();
100
+ this.viewport.scrollToIndex(this.lastIndex);
101
+ this.cdr.markForCheck();
63
102
  }
64
- ngAfterViewInit() {
65
- if (this.fetchDataMode == 'auto')
66
- this._fetchData();
103
+ refresh() {
104
+ this.lastIndex = 0;
105
+ this.dataSource.refresh();
67
106
  }
68
- _fetchData(opts) {
69
- const skip = (this._currentPage - 1) * this.pageSize, take = this.pageSize;
70
- if ((this.loadedCount >= this.totalCount && this.totalCount != 0) ||
71
- this._isLoading ||
72
- !this._isLazy ||
73
- skip > this.totalCount) {
74
- return;
107
+ handleRowClick(e, item) {
108
+ if (this.focusedRow == item) {
109
+ this.focusedRow = null;
75
110
  }
76
- if (this._items) {
77
- this._isLoading = true;
78
- this.cdr.markForCheck();
79
- const fetchFn = this._items;
80
- fetchFn({ skip, take, searchQuery: opts?.searchQuery })
81
- .then((c) => {
82
- if (Array.isArray(c)) {
83
- this._loadedItems = c;
84
- this._totalItems = c.length;
85
- }
86
- else {
87
- this._totalItems = c.total || c.items?.length || 0;
88
- this._loadedItems = [...new Set(c.items)];
89
- }
90
- })
91
- .finally(() => {
92
- this._isLoading = false;
93
- this.onPageChanged.next({
94
- component: this,
95
- isUserInteraction: false,
96
- name: 'page',
97
- value: this._currentPage,
98
- });
99
- this.cdr.markForCheck();
100
- });
111
+ else {
112
+ this.focusedRow = item;
101
113
  }
102
114
  }
103
- refresh() {
104
- this._totalItems = 0;
105
- this._loadedItems = [];
106
- this._fetchData();
115
+ handleColumnClick(e, column) {
116
+ const sort = this.dataSource.query.sort.find(c => c.field == column.dataField);
117
+ if (!sort) {
118
+ this.dataSource.query.sort.push({ field: column.dataField, dir: 'asc' });
119
+ }
120
+ else {
121
+ if (sort.dir == 'asc') {
122
+ sort.dir = 'desc';
123
+ }
124
+ else {
125
+ this.dataSource.query.sort = this.dataSource.query.sort.filter(c => c != sort);
126
+ }
127
+ }
128
+ this.refresh();
107
129
  }
108
- goToPage(page) {
109
- this._currentPage = page;
110
- this._fetchData();
130
+ getSort(column) {
131
+ const sort = this.dataSource.query.sort.find(c => c.field == column.dataField);
132
+ return sort ? (sort.dir == 'asc' ? 'ax-icon-arrow-long-down' : 'ax-icon-arrow-long-up') : undefined;
111
133
  }
112
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXDataTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: AXDataTableComponent, selector: "ax-data-table", inputs: { rowTemplate: "rowTemplate", emptyTemplate: "emptyTemplate", showHeader: "showHeader", pageSize: "pageSize", fetchDataMode: "fetchDataMode", items: "items" }, outputs: { onPageChanged: "onPageChanged" }, providers: [{ provide: AXPagedComponent, useExisting: AXDataTableComponent }], queries: [{ propertyName: "_columns", predicate: AXDataColumnComponent }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-header\">\n</ng-content>\n<div class=\"ax-wrapper\">\n <!-- [axIsLoading]=\"isLoading\" -->\n <table class=\"ax-table ax-table-bordered\" tabindex=\"0\">\n <thead *ngIf=\"showHeader\">\n <tr>\n <th *ngFor=\"let c of _columns\">\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n {{c.caption}}\n </ng-template>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"displayItems.length; else emptyTpl\">\n <ng-container *ngFor=\"let d of displayItems;let rIndex=index\">\n <ng-template [ngIf]=\"rowTemplate\" [ngIfElse]=\"rowTpl\">\n <ng-container *ngTemplateOutlet=\"rowTemplate;context: { $implicit: {data:d,rowIndex:rIndex} }\">\n </ng-container>\n </ng-template>\n <ng-template #rowTpl>\n <tr>\n <ng-container *ngFor=\"let c of _columns\">\n <ng-template [ngIf]=\"c.cellTemplate\" [ngIfElse]=\"cellTpl\">\n <ng-container *ngTemplateOutlet=\"c.cellTemplate;context: { $implicit: {data:d,rowIndex:rIndex} }\">\n </ng-container>\n </ng-template>\n <ng-template #cellTpl>\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\">\n {{d[c.valueField]}}\n </td>\n </ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #emptyTpl>\n <tr>\n <td [attr.colspan]=\"_columns.length\">\n <ng-template [ngIf]=\"emptyTemplate\" [ngIfElse]=\"defaultEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-template>\n <ng-template #defaultEmptyTemplate>\n <ax-result type=\"empty\" caption=\" {{'common.no-result-found' | trans }}\"></ax-result>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n<ng-content select=\"ax-footer\">\n</ng-content>", styles: ["ax-data-table{display:flex;flex-direction:column;border-radius:var(--ax-rounded-border-default);border:1px solid;border-color:rgba(var(--ax-color-border-default));outline-color:transparent}ax-data-table .ax-wrapper{display:flex;flex:1 1 0%;overflow:auto}ax-data-table>ax-header{border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table>ax-footer{border-top:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table table{position:relative;border:0}ax-data-table table thead{position:sticky;top:0}ax-data-table table tbody{height:100%}ax-data-table table td,ax-data-table table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-data-table2{border-radius:var(--ax-rounded-border-default);border:1px solid;border-color:rgba(var(--ax-color-border-default));height:100%;font-size:.875rem;overflow-y:hidden;overflow-x:hidden}ax-data-table2 table{table-layout:fixed}ax-data-table2 .ax-table-header{border-start-start-radius:var(--ax-rounded-border-default);border-start-end-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface));border-collapse:collapse;overflow:hidden}ax-data-table2 .ax-table-header th{text-transform:uppercase;font-weight:500;text-align:start;padding:.875rem 1rem;border-block-end:1px solid;border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table2 .ax-table-header th:last-child{border-inline-end:0px solid}ax-data-table2 .ax-table-footer{border-top:1px solid;border-color:rgba(var(--ax-color-border-default));border-collapse:collapse;overflow:hidden;padding:.875rem}ax-data-table2 .ax-table-footer .ax-table-info{display:flex;flex:1;flex-direction:row;justify-content:space-between;align-items:center}ax-data-table2 .ax-table-body{border-collapse:collapse}ax-data-table2 .ax-table-body tr:nth-child(odd){background-color:rgba(var(--ax-color-on-surface),.7)}ax-data-table2 .ax-table-body tr:last-child td{border-block-end:none}ax-data-table2 .ax-table-body td{text-align:start;padding:.875rem 1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-block-end:1px solid;border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table2 .ax-table-body td:last-child{border-inline-end:0px solid}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXResultComponent, selector: "ax-result", inputs: ["type", "caption", "description"] }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: AXDataTableComponent, selector: "ax-data-table", inputs: { rowTemplate: "rowTemplate", emptyTemplate: "emptyTemplate", loadingTemplate: "loadingTemplate", showHeader: "showHeader", fetchDataMode: "fetchDataMode", dataSource: "dataSource", focusedRow: "focusedRow", selectedRows: "selectedRows", itemHeight: "itemHeight" }, outputs: { onPageChanged: "onPageChanged", focusedRowChange: "focusedRowChange", selectedRowsChange: "selectedRowsChange", onScrolledIndexChanged: "onScrolledIndexChanged" }, providers: [{ provide: AXPagedComponent, useExisting: AXDataTableComponent }], queries: [{ propertyName: "columns", predicate: AXDataColumnComponent }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true }, { propertyName: "footerContainer", first: true, predicate: ["footerContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-header\">\n</ng-content>\n<div class=\"ax-table-header\" #headerContainer>\n <table tabindex=\"0\" *ngIf=\"showHeader\" [style.width]=\"width\">\n <thead>\n <tr>\n <th *ngFor=\"let c of columns\" [style.width]=\"c.width\" [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event,c) : null\">\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{c.caption}}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{getSort(c)}}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <th>&nbsp;</th>\n </tr>\n </thead>\n </table>\n</div>\n<div cdkVirtualScrollingElement [style.height]=\"height\">\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <tbody>\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx;let rIndex=index;\">\n <ng-template [ngIf]=\"rowTemplate\" [ngIfElse]=\"rowTpl\">\n <ng-container *ngTemplateOutlet=\"rowTemplate;context: { $implicit: {data:item,rowIndex:rIndex} }\">\n </ng-container>\n </ng-template>\n <ng-template #rowTpl>\n <tr [class.ax-state-focused]=\"focusedRow && item===focusedRow\"\n [class.ax-state-selected]=\"selectedRows.includes(item)\" (click)=\"handleRowClick($event,item)\"\n [attr.data.rowIndex]=\"rIndex\">\n <ng-container *ngFor=\"let c of columns\">\n <ng-template [ngIf]=\"c.cellTemplate\" [ngIfElse]=\"cellTpl\">\n <div class=\"ax-content\">\n <ng-container\n *ngTemplateOutlet=\"c.cellTemplate;context: { $implicit: {data:item,rowIndex:rIndex} }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #cellTpl>\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [style.width]=\"c.width\" [class]=\"c.cssClass\">\n <div class=\"ax-content\">\n <ng-container *ngIf=\"item || !c.skeleton;else loadingTpl\">\n <ng-container\n *ngTemplateOutlet=\"c.template; context: { $implicit: {data:item,rowIndex:rIndex} }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-template>\n </ng-container>\n <td>&nbsp;</td>\n </tr>\n </ng-template>\n </ng-container>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n</div>\n<div class=\"ax-table-footer\" #footerContainer>\n <div class=\"ax-table-info\">\n <div>\n Showing {{startRowIndex}} of {{totalRows}} items\n </div>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh()\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </div>\n <ng-content select=\"ax-footer\">\n </ng-content>\n</div>\n\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <ax-skeleton [animated]=\"true\"></ax-skeleton>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n<ng-template #emptyTpl>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n <ng-template [ngIf]=\"emptyTemplate\" [ngIfElse]=\"defaultEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-template>\n <ng-template #defaultEmptyTemplate>\n <ax-result type=\"empty\" caption=\" {{'common.no-result-found' | trans }}\"></ax-result>\n </ng-template>\n </td>\n </tr>\n</ng-template>", styles: [".ax-dark ax-data-table .ax-table-body tr:hover td:not(.ax-index-column),.ax-dark ax-data-table .ax-table-body tr.ax-state-focused td:not(.ax-index-column){background-color:#ffffff4d;color:rgba(var(--ax-color-text-default))}.ax-dark ax-data-table .ax-table-body tr.ax-state-selected:not(:hover,.ax-state-focused) td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900),.5);color:rgba(var(--ax-color-primary-fore))}ax-data-table{border-radius:var(--ax-rounded-border-default);border:1px solid;border-color:rgba(var(--ax-color-border-default));height:100%;font-size:.875rem;overflow-y:hidden;overflow-x:hidden}ax-data-table table{table-layout:fixed}ax-data-table .ax-table-header{border-start-start-radius:var(--ax-rounded-border-default);border-start-end-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface));border-collapse:collapse;overflow:hidden}ax-data-table .ax-table-header th{text-transform:uppercase;font-weight:500;text-align:start;padding:.875rem 1rem;border-block-end:1px solid;border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table .ax-table-header th.ax-interactive{cursor:pointer}ax-data-table .ax-table-header th.ax-interactive:hover{background-color:#0000001a}ax-data-table .ax-table-header th .ax-caption{display:flex;gap:.5rem;align-items:center}ax-data-table .ax-table-header th:last-child{border-inline-end:0px solid}ax-data-table .ax-table-footer{border-top:1px solid;border-color:rgba(var(--ax-color-border-default));border-collapse:collapse;overflow:hidden;padding:.5rem .875rem}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1;flex-direction:row;justify-content:space-between;align-items:center}ax-data-table .ax-table-body{border-collapse:collapse}ax-data-table .ax-table-body tr:nth-child(odd) td{background-color:rgba(var(--ax-color-on-surface),.7)}ax-data-table .ax-table-body tr:nth-child(odd) ax-skeleton{width:25%}ax-data-table .ax-table-body tr:hover td:not(.ax-index-column),ax-data-table .ax-table-body tr.ax-state-focused td:not(.ax-index-column){background-color:#0000001a}ax-data-table .ax-table-body tr.ax-state-selected:not(:hover,.ax-state-focused) td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-lighten))}ax-data-table .ax-table-body td{padding:.5rem 1rem;border-block-end:1px solid;border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table .ax-table-body td.ax-index-column{background-color:rgba(var(--ax-color-on-surface))!important}ax-data-table .ax-table-body td.ax-index-column>.ax-content{justify-content:center}ax-data-table .ax-table-body td.ax-index-column>.ax-content span{text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%}ax-data-table .ax-table-body td.ax-command-column>.ax-content{justify-content:center}ax-data-table .ax-table-body td.ax-command-column>.ax-content span{text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;font-size:1.4rem;cursor:pointer}ax-data-table .ax-table-body td>.ax-content{display:flex;justify-content:flex-start;width:100%}ax-data-table .ax-table-body td:last-child{border-inline-end:0px solid}ax-data-table .ax-table-body td ax-skeleton{height:.875rem;border-radius:calc(var(--ax-rounded-border-default) / 1.5);width:35%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i2.CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "component", type: i3.AXResultComponent, selector: "ax-result", inputs: ["type", "caption", "description"] }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
114
136
  }
115
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXDataTableComponent, decorators: [{
116
138
  type: Component,
117
- args: [{ selector: 'ax-data-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXPagedComponent, useExisting: AXDataTableComponent }], template: "<ng-content select=\"ax-header\">\n</ng-content>\n<div class=\"ax-wrapper\">\n <!-- [axIsLoading]=\"isLoading\" -->\n <table class=\"ax-table ax-table-bordered\" tabindex=\"0\">\n <thead *ngIf=\"showHeader\">\n <tr>\n <th *ngFor=\"let c of _columns\">\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n {{c.caption}}\n </ng-template>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"displayItems.length; else emptyTpl\">\n <ng-container *ngFor=\"let d of displayItems;let rIndex=index\">\n <ng-template [ngIf]=\"rowTemplate\" [ngIfElse]=\"rowTpl\">\n <ng-container *ngTemplateOutlet=\"rowTemplate;context: { $implicit: {data:d,rowIndex:rIndex} }\">\n </ng-container>\n </ng-template>\n <ng-template #rowTpl>\n <tr>\n <ng-container *ngFor=\"let c of _columns\">\n <ng-template [ngIf]=\"c.cellTemplate\" [ngIfElse]=\"cellTpl\">\n <ng-container *ngTemplateOutlet=\"c.cellTemplate;context: { $implicit: {data:d,rowIndex:rIndex} }\">\n </ng-container>\n </ng-template>\n <ng-template #cellTpl>\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\">\n {{d[c.valueField]}}\n </td>\n </ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #emptyTpl>\n <tr>\n <td [attr.colspan]=\"_columns.length\">\n <ng-template [ngIf]=\"emptyTemplate\" [ngIfElse]=\"defaultEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-template>\n <ng-template #defaultEmptyTemplate>\n <ax-result type=\"empty\" caption=\" {{'common.no-result-found' | trans }}\"></ax-result>\n </ng-template>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n<ng-content select=\"ax-footer\">\n</ng-content>", styles: ["ax-data-table{display:flex;flex-direction:column;border-radius:var(--ax-rounded-border-default);border:1px solid;border-color:rgba(var(--ax-color-border-default));outline-color:transparent}ax-data-table .ax-wrapper{display:flex;flex:1 1 0%;overflow:auto}ax-data-table>ax-header{border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table>ax-footer{border-top:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table table{position:relative;border:0}ax-data-table table thead{position:sticky;top:0}ax-data-table table tbody{height:100%}ax-data-table table td,ax-data-table table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-data-table2{border-radius:var(--ax-rounded-border-default);border:1px solid;border-color:rgba(var(--ax-color-border-default));height:100%;font-size:.875rem;overflow-y:hidden;overflow-x:hidden}ax-data-table2 table{table-layout:fixed}ax-data-table2 .ax-table-header{border-start-start-radius:var(--ax-rounded-border-default);border-start-end-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface));border-collapse:collapse;overflow:hidden}ax-data-table2 .ax-table-header th{text-transform:uppercase;font-weight:500;text-align:start;padding:.875rem 1rem;border-block-end:1px solid;border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table2 .ax-table-header th:last-child{border-inline-end:0px solid}ax-data-table2 .ax-table-footer{border-top:1px solid;border-color:rgba(var(--ax-color-border-default));border-collapse:collapse;overflow:hidden;padding:.875rem}ax-data-table2 .ax-table-footer .ax-table-info{display:flex;flex:1;flex-direction:row;justify-content:space-between;align-items:center}ax-data-table2 .ax-table-body{border-collapse:collapse}ax-data-table2 .ax-table-body tr:nth-child(odd){background-color:rgba(var(--ax-color-on-surface),.7)}ax-data-table2 .ax-table-body tr:last-child td{border-block-end:none}ax-data-table2 .ax-table-body td{text-align:start;padding:.875rem 1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-block-end:1px solid;border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table2 .ax-table-body td:last-child{border-inline-end:0px solid}\n"] }]
118
- }], propDecorators: { _columns: [{
139
+ args: [{ selector: 'ax-data-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXPagedComponent, useExisting: AXDataTableComponent }], template: "<ng-content select=\"ax-header\">\n</ng-content>\n<div class=\"ax-table-header\" #headerContainer>\n <table tabindex=\"0\" *ngIf=\"showHeader\" [style.width]=\"width\">\n <thead>\n <tr>\n <th *ngFor=\"let c of columns\" [style.width]=\"c.width\" [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event,c) : null\">\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{c.caption}}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{getSort(c)}}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <th>&nbsp;</th>\n </tr>\n </thead>\n </table>\n</div>\n<div cdkVirtualScrollingElement [style.height]=\"height\">\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <tbody>\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx;let rIndex=index;\">\n <ng-template [ngIf]=\"rowTemplate\" [ngIfElse]=\"rowTpl\">\n <ng-container *ngTemplateOutlet=\"rowTemplate;context: { $implicit: {data:item,rowIndex:rIndex} }\">\n </ng-container>\n </ng-template>\n <ng-template #rowTpl>\n <tr [class.ax-state-focused]=\"focusedRow && item===focusedRow\"\n [class.ax-state-selected]=\"selectedRows.includes(item)\" (click)=\"handleRowClick($event,item)\"\n [attr.data.rowIndex]=\"rIndex\">\n <ng-container *ngFor=\"let c of columns\">\n <ng-template [ngIf]=\"c.cellTemplate\" [ngIfElse]=\"cellTpl\">\n <div class=\"ax-content\">\n <ng-container\n *ngTemplateOutlet=\"c.cellTemplate;context: { $implicit: {data:item,rowIndex:rIndex} }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #cellTpl>\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [style.width]=\"c.width\" [class]=\"c.cssClass\">\n <div class=\"ax-content\">\n <ng-container *ngIf=\"item || !c.skeleton;else loadingTpl\">\n <ng-container\n *ngTemplateOutlet=\"c.template; context: { $implicit: {data:item,rowIndex:rIndex} }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-template>\n </ng-container>\n <td>&nbsp;</td>\n </tr>\n </ng-template>\n </ng-container>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n</div>\n<div class=\"ax-table-footer\" #footerContainer>\n <div class=\"ax-table-info\">\n <div>\n Showing {{startRowIndex}} of {{totalRows}} items\n </div>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh()\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </div>\n <ng-content select=\"ax-footer\">\n </ng-content>\n</div>\n\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <ax-skeleton [animated]=\"true\"></ax-skeleton>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n<ng-template #emptyTpl>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n <ng-template [ngIf]=\"emptyTemplate\" [ngIfElse]=\"defaultEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </ng-template>\n <ng-template #defaultEmptyTemplate>\n <ax-result type=\"empty\" caption=\" {{'common.no-result-found' | trans }}\"></ax-result>\n </ng-template>\n </td>\n </tr>\n</ng-template>", styles: [".ax-dark ax-data-table .ax-table-body tr:hover td:not(.ax-index-column),.ax-dark ax-data-table .ax-table-body tr.ax-state-focused td:not(.ax-index-column){background-color:#ffffff4d;color:rgba(var(--ax-color-text-default))}.ax-dark ax-data-table .ax-table-body tr.ax-state-selected:not(:hover,.ax-state-focused) td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900),.5);color:rgba(var(--ax-color-primary-fore))}ax-data-table{border-radius:var(--ax-rounded-border-default);border:1px solid;border-color:rgba(var(--ax-color-border-default));height:100%;font-size:.875rem;overflow-y:hidden;overflow-x:hidden}ax-data-table table{table-layout:fixed}ax-data-table .ax-table-header{border-start-start-radius:var(--ax-rounded-border-default);border-start-end-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface));border-collapse:collapse;overflow:hidden}ax-data-table .ax-table-header th{text-transform:uppercase;font-weight:500;text-align:start;padding:.875rem 1rem;border-block-end:1px solid;border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table .ax-table-header th.ax-interactive{cursor:pointer}ax-data-table .ax-table-header th.ax-interactive:hover{background-color:#0000001a}ax-data-table .ax-table-header th .ax-caption{display:flex;gap:.5rem;align-items:center}ax-data-table .ax-table-header th:last-child{border-inline-end:0px solid}ax-data-table .ax-table-footer{border-top:1px solid;border-color:rgba(var(--ax-color-border-default));border-collapse:collapse;overflow:hidden;padding:.5rem .875rem}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1;flex-direction:row;justify-content:space-between;align-items:center}ax-data-table .ax-table-body{border-collapse:collapse}ax-data-table .ax-table-body tr:nth-child(odd) td{background-color:rgba(var(--ax-color-on-surface),.7)}ax-data-table .ax-table-body tr:nth-child(odd) ax-skeleton{width:25%}ax-data-table .ax-table-body tr:hover td:not(.ax-index-column),ax-data-table .ax-table-body tr.ax-state-focused td:not(.ax-index-column){background-color:#0000001a}ax-data-table .ax-table-body tr.ax-state-selected:not(:hover,.ax-state-focused) td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-lighten))}ax-data-table .ax-table-body td{padding:.5rem 1rem;border-block-end:1px solid;border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-data-table .ax-table-body td.ax-index-column{background-color:rgba(var(--ax-color-on-surface))!important}ax-data-table .ax-table-body td.ax-index-column>.ax-content{justify-content:center}ax-data-table .ax-table-body td.ax-index-column>.ax-content span{text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%}ax-data-table .ax-table-body td.ax-command-column>.ax-content{justify-content:center}ax-data-table .ax-table-body td.ax-command-column>.ax-content span{text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;font-size:1.4rem;cursor:pointer}ax-data-table .ax-table-body td>.ax-content{display:flex;justify-content:flex-start;width:100%}ax-data-table .ax-table-body td:last-child{border-inline-end:0px solid}ax-data-table .ax-table-body td ax-skeleton{height:.875rem;border-radius:calc(var(--ax-rounded-border-default) / 1.5);width:35%}\n"] }]
140
+ }], propDecorators: { columns: [{
119
141
  type: ContentChildren,
120
142
  args: [AXDataColumnComponent]
121
143
  }], onPageChanged: [{
@@ -124,13 +146,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
124
146
  type: Input
125
147
  }], emptyTemplate: [{
126
148
  type: Input
127
- }], showHeader: [{
149
+ }], loadingTemplate: [{
128
150
  type: Input
129
- }], pageSize: [{
151
+ }], showHeader: [{
130
152
  type: Input
131
153
  }], fetchDataMode: [{
132
154
  type: Input
133
- }], items: [{
155
+ }], dataSource: [{
156
+ type: Input
157
+ }], focusedRowChange: [{
158
+ type: Output
159
+ }], focusedRow: [{
134
160
  type: Input
161
+ }], selectedRowsChange: [{
162
+ type: Output
163
+ }], selectedRows: [{
164
+ type: Input
165
+ }], itemHeight: [{
166
+ type: Input
167
+ }], viewport: [{
168
+ type: ViewChild,
169
+ args: [CdkVirtualScrollViewport]
170
+ }], onScrolledIndexChanged: [{
171
+ type: Output
172
+ }], headerContainer: [{
173
+ type: ViewChild,
174
+ args: ['headerContainer']
175
+ }], footerContainer: [{
176
+ type: ViewChild,
177
+ args: ['footerContainer']
135
178
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtdGFibGUvc3JjL2xpYi9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxnQkFBZ0IsRUFHaEIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFVaEUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGVBQWU7SUFSekQ7O1FBYUUsa0JBQWEsR0FBOEMsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFTM0csZUFBVSxHQUFZLElBQUksQ0FBQztRQUVuQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBVXZCLGtCQUFhLEdBQXNCLE1BQU0sQ0FBQztRQUVsQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUN6QixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQWtCckIsV0FBTSxHQUFvQixFQUFFLENBQUM7S0E4RXRDO0lBbEhDLElBQ1csUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLENBQVM7UUFD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YUFBYTtzQkFEWixNQUFNO2dCQUlQLFdBQVc7c0JBRFYsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUtLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBU04sYUFBYTtzQkFEWixLQUFLO2dCQStCRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWERhdGFMaXN0RmV0Y2hEYXRhQ2FsbGJhY2ssXG4gIEFYRGF0YUxpc3RJdGVtcyxcbiAgQVhQYWdlZENvbXBvbmVudCxcbiAgQVhQYWdlZENvbXBvbmVudEludGVyZmFjZSxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhCYXNlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFYRGF0YUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1jb2x1bW4uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZGF0YS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFBhZ2VkQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRhVGFibGVDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0YVRhYmxlQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQVhQYWdlZENvbXBvbmVudEludGVyZmFjZSB7XG4gIEBDb250ZW50Q2hpbGRyZW4oQVhEYXRhQ29sdW1uQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgX2NvbHVtbnM6IFF1ZXJ5TGlzdDxBWERhdGFDb2x1bW5Db21wb25lbnQ+O1xuXG4gIEBPdXRwdXQoKVxuICBvblBhZ2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+PigpO1xuXG4gIEBJbnB1dCgpXG4gIHJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgZW1wdHlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgX3BhZ2VTaXplID0gMjA7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGFnZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZVNpemU7XG4gIH1cbiAgcHVibGljIHNldCBwYWdlU2l6ZSh2OiBudW1iZXIpIHtcbiAgICB0aGlzLl9wYWdlU2l6ZSA9IHY7XG4gIH1cblxuICBASW5wdXQoKVxuICBmZXRjaERhdGFNb2RlOiAnYXV0bycgfCAnbWFudWFsJyA9ICdhdXRvJztcblxuICBwcml2YXRlIF9jdXJyZW50UGFnZSA9IDE7XG5cbiAgcHJpdmF0ZSBfbG9hZGVkSXRlbXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgX3RvdGFsSXRlbXMgPSAwO1xuXG4gIHByaXZhdGUgX2lzTGF6eSA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBfaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgZ2V0IHRvdGFsQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWxJdGVtcztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNMYXp5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0xhenk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGlzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBsb2FkZWRDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sb2FkZWRJdGVtcz8ubGVuZ3RoIHx8IDA7XG4gIH1cblxuICBwcml2YXRlIF9pdGVtczogQVhEYXRhTGlzdEl0ZW1zID0gW107XG5cbiAgQElucHV0KClcbiAgZ2V0IGl0ZW1zKCk6IEFYRGF0YUxpc3RJdGVtcyB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICB9XG4gIHNldCBpdGVtcyh2OiBBWERhdGFMaXN0SXRlbXMpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgdGhpcy5faXRlbXMgPSB2O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuX2lzTGF6eSA9IHRydWU7XG4gICAgICB0aGlzLl9pdGVtcyA9IHY7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2l0ZW1zID0gW107XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc3BsYXlJdGVtcygpOiBhbnlbXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5pdGVtcykpIHtcbiAgICAgIHJldHVybiAodGhpcy5faXRlbXMgfHwgW10pIGFzIGFueVtdO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX2l0ZW1zID09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2FkZWRJdGVtcyB8fCBbXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZldGNoRGF0YU1vZGUgPT0gJ2F1dG8nKSB0aGlzLl9mZXRjaERhdGEoKTtcbiAgfVxuXG4gIF9mZXRjaERhdGEob3B0cz86IHsgc2VhcmNoUXVlcnk/OiBzdHJpbmcgfSkge1xuICAgIGNvbnN0IHNraXAgPSAodGhpcy5fY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemUsXG4gICAgICB0YWtlID0gdGhpcy5wYWdlU2l6ZTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5sb2FkZWRDb3VudCA+PSB0aGlzLnRvdGFsQ291bnQgJiYgdGhpcy50b3RhbENvdW50ICE9IDApIHx8XG4gICAgICB0aGlzLl9pc0xvYWRpbmcgfHxcbiAgICAgICF0aGlzLl9pc0xhenkgfHxcbiAgICAgIHNraXAgPiB0aGlzLnRvdGFsQ291bnRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2l0ZW1zKSB7XG4gICAgICB0aGlzLl9pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICBjb25zdCBmZXRjaEZuID0gdGhpcy5faXRlbXMgYXMgQVhEYXRhTGlzdEZldGNoRGF0YUNhbGxiYWNrO1xuICAgICAgZmV0Y2hGbih7IHNraXAsIHRha2UsIHNlYXJjaFF1ZXJ5OiBvcHRzPy5zZWFyY2hRdWVyeSB9KVxuICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGMpKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkZWRJdGVtcyA9IGM7XG4gICAgICAgICAgICB0aGlzLl90b3RhbEl0ZW1zID0gYy5sZW5ndGg7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RvdGFsSXRlbXMgPSBjLnRvdGFsIHx8IGMuaXRlbXM/Lmxlbmd0aCB8fCAwO1xuICAgICAgICAgICAgdGhpcy5fbG9hZGVkSXRlbXMgPSBbLi4ubmV3IFNldChjLml0ZW1zKV07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5vblBhZ2VDaGFuZ2VkLm5leHQoe1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgbmFtZTogJ3BhZ2UnLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuX2N1cnJlbnRQYWdlLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuX3RvdGFsSXRlbXMgPSAwO1xuICAgIHRoaXMuX2xvYWRlZEl0ZW1zID0gW107XG4gICAgdGhpcy5fZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBnb1RvUGFnZShwYWdlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgdGhpcy5fZmV0Y2hEYXRhKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPlxuPC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImF4LXdyYXBwZXJcIj5cbiAgPCEtLSBbYXhJc0xvYWRpbmddPVwiaXNMb2FkaW5nXCIgLS0+XG4gIDx0YWJsZSBjbGFzcz1cImF4LXRhYmxlIGF4LXRhYmxlLWJvcmRlcmVkXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgPHRoZWFkICpuZ0lmPVwic2hvd0hlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGMgb2YgX2NvbHVtbnNcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiYy5oZWFkZXJUZW1wbGF0ZVwiIFtuZ0lmRWxzZV09XCJjYXB0aW9uVHBsXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYy5oZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXB0aW9uVHBsPlxuICAgICAgICAgICAge3tjLmNhcHRpb259fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlJdGVtcy5sZW5ndGg7IGVsc2UgZW1wdHlUcGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZCBvZiBkaXNwbGF5SXRlbXM7bGV0IHJJbmRleD1pbmRleFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJyb3dUZW1wbGF0ZVwiIFtuZ0lmRWxzZV09XCJyb3dUcGxcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dUZW1wbGF0ZTtjb250ZXh0OiB7ICRpbXBsaWNpdDoge2RhdGE6ZCxyb3dJbmRleDpySW5kZXh9IH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNyb3dUcGw+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGMgb2YgX2NvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiYy5jZWxsVGVtcGxhdGVcIiBbbmdJZkVsc2VdPVwiY2VsbFRwbFwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImMuY2VsbFRlbXBsYXRlO2NvbnRleHQ6IHsgJGltcGxpY2l0OiB7ZGF0YTpkLHJvd0luZGV4OnJJbmRleH0gfVwiPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGxUcGw+XG4gICAgICAgICAgICAgICAgICA8dGQgW2F0dHIuZGF0YS1sYWJlbF09XCJjLmNhcHRpb25cIiB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgICAgICAgICAge3tkW2MudmFsdWVGaWVsZF19fVxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlUcGw+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJfY29sdW1ucy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJlbXB0eVRlbXBsYXRlXCIgW25nSWZFbHNlXT1cImRlZmF1bHRFbXB0eVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RW1wdHlUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPGF4LXJlc3VsdCB0eXBlPVwiZW1wdHlcIiBjYXB0aW9uPVwiIHt7J2NvbW1vbi5uby1yZXN1bHQtZm91bmQnIHwgdHJhbnMgfX1cIj48L2F4LXJlc3VsdD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+XG48L25nLWNvbnRlbnQ+Il19
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtdGFibGUvc3JjL2xpYi9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsWUFBWSxFQUViLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFjOUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGVBQWU7SUFSekQ7O1FBYUUsa0JBQWEsR0FBOEMsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFhM0csZUFBVSxHQUFHLElBQUksQ0FBQztRQUdsQixrQkFBYSxHQUFzQixNQUFNLENBQUM7UUFHMUMsZUFBVSxHQUEwQix3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd2RCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGdCQUFXLEdBQUcsQ0FBQyxD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QUFzQjtzQkFEckIsTUFBTTtnQkE0QnVCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNFLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQYWdlZENvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhCYXNlQ29tcG9uZW50LFxuICBBWExpc3REYXRhU291cmNlLFxuICBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UsXG4gIEFYRGF0YVNvdXJjZSxcbiAgQVhFdmVudFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgc3VtIGZyb20gJ2xvZGFzaC1lcy9zdW0nO1xuaW1wb3J0IHsgQVhEYXRhQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW5zL2RhdGEtY29sdW1uJztcblxuZXhwb3J0IGludGVyZmFjZSBBWERhdGFUYWJsZVNjcm9sbEluZGV4Q2hhbmdlZCBleHRlbmRzIEFYRXZlbnQge1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1kYXRhLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYUGFnZWRDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGFUYWJsZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhEYXRhVGFibGVDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuICBAQ29udGVudENoaWxkcmVuKEFYRGF0YUNvbHVtbkNvbXBvbmVudClcbiAgcHJvdGVjdGVkIGNvbHVtbnM6IFF1ZXJ5TGlzdDxBWERhdGFDb2x1bW5Db21wb25lbnQ+O1xuXG4gIEBPdXRwdXQoKVxuICBvblBhZ2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+PigpO1xuXG4gIEBJbnB1dCgpXG4gIHJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgZW1wdHlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG5cbiAgQElucHV0KClcbiAgbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBzaG93SGVhZGVyID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBmZXRjaERhdGFNb2RlOiAnYXV0bycgfCAnbWFudWFsJyA9ICdhdXRvJztcblxuICBASW5wdXQoKVxuICBkYXRhU291cmNlOiBBWERhdGFTb3VyY2U8dW5rbm93bj4gPSBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UoW10pO1xuXG4gIHByb3RlY3RlZCBsaXN0RGF0YVNvdXJjZTogQVhMaXN0RGF0YVNvdXJjZTx1bmtub3duPjtcbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHRydWU7XG4gIHByb3RlY3RlZCBoYXNJdGVtcyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdG90YWxSb3dzID0gMDtcbiAgcHJvdGVjdGVkIGN1cnJlbnRQYWdlID0gMDtcbiAgcHJvdGVjdGVkIHRvdGFsUGFnZXMgPSAwO1xuICBwcm90ZWN0ZWQgc3RhcnRSb3dJbmRleCA9IDA7XG4gIHByaXZhdGUgbGFzdEluZGV4ID0gMDtcblxuXG4gIEBPdXRwdXQoKVxuICBmb2N1c2VkUm93Q2hhbmdlOiBFdmVudEVtaXR0ZXI8dW5rbm93bj4gPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgcHJpdmF0ZSBfZm9jdXNlZFJvdzogdW5rbm93bjtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBmb2N1c2VkUm93KCk6IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkUm93O1xuICB9XG4gIHB1YmxpYyBzZXQgZm9jdXNlZFJvdyh2OiB1bmtub3duKSB7XG4gICAgdGhpcy5fZm9jdXNlZFJvdyA9IHY7XG4gICAgdGhpcy5mb2N1c2VkUm93Q2hhbmdlLmVtaXQodik7XG4gIH1cblxuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RlZFJvd3NDaGFuZ2U6IEV2ZW50RW1pdHRlcjx1bmtub3duW10+ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duW10+KCk7XG5cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRSb3dzOiB1bmtub3duW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBzZWxlY3RlZFJvd3MoKTogdW5rbm93bltdIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzO1xuICB9XG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRSb3dzKHY6IHVua25vd25bXSkge1xuICAgIHRoaXMuX3NlbGVjdGVkUm93cyA9IHY7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2UuZW1pdCh2KTtcbiAgfVxuXG5cbiAgQElucHV0KClcbiAgaXRlbUhlaWdodDogbnVtYmVyIHwgJ2F1dG8nID0gNDA7XG5cbiAgcHJvdGVjdGVkIHdpZHRoID0gXCIxMDAlXCI7XG4gIHByb3RlY3RlZCBoZWlnaHQgPSBcIjEwMCVcIjtcblxuXG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KVxuICBwcml2YXRlIHZpZXdwb3J0OiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XG5cblxuICBAT3V0cHV0KClcbiAgb25TY3JvbGxlZEluZGV4Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlU2Nyb2xsSW5kZXhDaGFuZ2VkPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFUYWJsZVNjcm9sbEluZGV4Q2hhbmdlZD4oKTtcblxuICB0cmFja0J5SWR4KGkpIHtcbiAgICByZXR1cm4gaTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZSA9IG5ldyBBWExpc3REYXRhU291cmNlPHVua25vd24+KHtcbiAgICAgIHNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxuICAgIH0pO1xuICAgIHRoaXMubGlzdERhdGFTb3VyY2Uuc291cmNlXG4gICAgICAub25Mb2FkaW5nQ2hhbmdlZFxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlLnNvdXJjZVxuICAgICAgLm9uQ2hhbmdlZFxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLnRvdGFsUm93cyA9IGRhdGEudG90YWxDb3VudDtcbiAgICAgICAgdGhpcy5oYXNJdGVtcyA9IGRhdGEudG90YWxDb3VudCA+IDA7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgICB9KTtcbiAgfVxuICBAVmlld0NoaWxkKCdoZWFkZXJDb250YWluZXInKSBoZWFkZXJDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2Zvb3RlckNvbnRhaW5lcicpIGZvb3RlckNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uc2Nyb2xsZWRJbmRleENoYW5nZShlOiBudW1iZXIpIHtcbiAgICB0aGlzLmxhc3RJbmRleCA9IGU7XG4gICAgdGhpcy5vblNjcm9sbGVkSW5kZXhDaGFuZ2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaW5kZXg6IHRoaXMubGFzdEluZGV4LFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuaGVhZGVyQ29udGFpbmVyKSB7XG4gICAgICBjb25zdCBoZWFkZXJDb250YWluZXIgPSB0aGlzLmhlYWRlckNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgbGVmdCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuY2RrLXZpcnR1YWwtc2Nyb2xsYWJsZScpLnNjcm9sbExlZnQ7XG4gICAgICBoZWFkZXJDb250YWluZXIuc2Nyb2xsTGVmdCA9IGxlZnRcbiAgICB9XG4gICAgaWYgKHRoaXMuY29sdW1ucyAmJiB0aGlzLmNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdW1QeCA9IHN1bSh0aGlzLmNvbHVtbnMudG9BcnJheSgpLm1hcChjID0+IHR5cGVvZiBjLndpZHRoID09ICdudW1iZXInID8gYy53aWR0aCA6IE51bWJlcihjLndpZHRoLnJlcGxhY2UoJ3B4JywgJycpKSkpO1xuICAgICAgdGhpcy53aWR0aCA9IGAke01hdGgubWF4KHN1bVB4LCB0aGlzLmdldEhvc3RFbGVtZW50KCkuY2xpZW50V2lkdGggLSA1KX1weGA7XG4gICAgfVxuICAgIHRoaXMuaGVpZ2h0ID0gYGNhbGMoMTAwJSAtICR7KCh0aGlzLmhlYWRlckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgPz8gMCkgKyAodGhpcy5mb290ZXJDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0ID8/IDApKX1weClgO1xuXG4gICAgdGhpcy5zdGFydFJvd0luZGV4ID0gdGhpcy5sYXN0SW5kZXg7XG4gICAgaWYgKHRoaXMuc3RhcnRSb3dJbmRleCA8IDEpXG4gICAgICB0aGlzLnN0YXJ0Um93SW5kZXggPSAxO1xuICAgIGlmICh0aGlzLnN0YXJ0Um93SW5kZXggPiB0aGlzLnRvdGFsUm93cylcbiAgICAgIHRoaXMuc3RhcnRSb3dJbmRleCA9IHRoaXMudG90YWxSb3dzXG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCkge1xuICAgIHRoaXMudmlld3BvcnQuY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICB0aGlzLnZpZXdwb3J0LnNjcm9sbFRvSW5kZXgodGhpcy5sYXN0SW5kZXgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5sYXN0SW5kZXggPSAwO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiB1bmtub3duKSB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZFJvdyA9PSBpdGVtKSB7XG4gICAgICB0aGlzLmZvY3VzZWRSb3cgPSBudWxsO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNlZFJvdyA9IGl0ZW07XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ29sdW1uQ2xpY2soZTogTW91c2VFdmVudCwgY29sdW1uOiBBWERhdGFDb2x1bW5Db21wb25lbnQpIHtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5kYXRhU291cmNlLnF1ZXJ5LnNvcnQuZmluZChjID0+IGMuZmllbGQgPT0gY29sdW1uLmRhdGFGaWVsZCk7XG4gICAgaWYgKCFzb3J0KSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5wdXNoKHsgZmllbGQ6IGNvbHVtbi5kYXRhRmllbGQsIGRpcjogJ2FzYycgfSlcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZiAoc29ydC5kaXIgPT0gJ2FzYycpIHtcbiAgICAgICAgc29ydC5kaXIgPSAnZGVzYydcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydCA9IHRoaXMuZGF0YVNvdXJjZS5xdWVyeS5zb3J0LmZpbHRlcihjID0+IGMgIT0gc29ydCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucmVmcmVzaCgpXG4gIH1cblxuXG4gIHByb3RlY3RlZCBnZXRTb3J0KGNvbHVtbjogQVhEYXRhQ29sdW1uQ29tcG9uZW50KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5kYXRhU291cmNlLnF1ZXJ5LnNvcnQuZmluZChjID0+IGMuZmllbGQgPT0gY29sdW1uLmRhdGFGaWVsZCk7XG4gICAgcmV0dXJuIHNvcnQgPyAoc29ydC5kaXIgPT0gJ2FzYycgPyAnYXgtaWNvbi1hcnJvdy1sb25nLWRvd24nIDogJ2F4LWljb24tYXJyb3ctbG9uZy11cCcpIDogdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1oZWFkZXJcIj5cbjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJheC10YWJsZS1oZWFkZXJcIiAjaGVhZGVyQ29udGFpbmVyPlxuICA8dGFibGUgdGFiaW5kZXg9XCIwXCIgKm5nSWY9XCJzaG93SGVhZGVyXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGMgb2YgY29sdW1uc1wiIFtzdHlsZS53aWR0aF09XCJjLndpZHRoXCIgW2NsYXNzLmF4LWludGVyYWN0aXZlXT1cImMuYWxsb3dTb3J0aW5nXCJcbiAgICAgICAgICAoY2xpY2spPVwiYy5hbGxvd1NvcnRpbmcgPyBoYW5kbGVDb2x1bW5DbGljaygkZXZlbnQsYykgOiBudWxsXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImMuaGVhZGVyVGVtcGxhdGVcIiBbbmdJZkVsc2VdPVwiY2FwdGlvblRwbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImMuaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FwdGlvblRwbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgIHt7Yy5jYXB0aW9ufX1cbiAgICAgICAgICAgICAgPGF4LWljb24gKm5nSWY9XCJnZXRTb3J0KGMpXCIgaWNvbj1cImF4LWljb24ge3tnZXRTb3J0KGMpfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGg+Jm5ic3A7PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgPC90YWJsZT5cbjwvZGl2PlxuPGRpdiBjZGtWaXJ0dWFsU2Nyb2xsaW5nRWxlbWVudCBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiPlxuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IFtpdGVtU2l6ZV09XCJpdGVtSGVpZ2h0XCIgW3N0eWxlLi0taXRlbS1oZWlnaHRdPVwiaXRlbUhlaWdodCsncHgnXCJcbiAgICAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJfaGFuZGxlT25zY3JvbGxlZEluZGV4Q2hhbmdlKCRldmVudClcIj5cbiAgICA8dGFibGUgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJheC10YWJsZS1ib2R5XCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaXRlbSBvZiBsaXN0RGF0YVNvdXJjZTtsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SWR4O2xldCBySW5kZXg9aW5kZXg7XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvd1RlbXBsYXRlXCIgW25nSWZFbHNlXT1cInJvd1RwbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvd1RlbXBsYXRlO2NvbnRleHQ6IHsgJGltcGxpY2l0OiB7ZGF0YTppdGVtLHJvd0luZGV4OnJJbmRleH0gfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3Jvd1RwbD5cbiAgICAgICAgICAgIDx0ciBbY2xhc3MuYXgtc3RhdGUtZm9jdXNlZF09XCJmb2N1c2VkUm93ICYmIGl0ZW09PT1mb2N1c2VkUm93XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLXNlbGVjdGVkXT1cInNlbGVjdGVkUm93cy5pbmNsdWRlcyhpdGVtKVwiIChjbGljayk9XCJoYW5kbGVSb3dDbGljaygkZXZlbnQsaXRlbSlcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLnJvd0luZGV4XT1cInJJbmRleFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiYy5jZWxsVGVtcGxhdGVcIiBbbmdJZkVsc2VdPVwiY2VsbFRwbFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYy5jZWxsVGVtcGxhdGU7Y29udGV4dDogeyAkaW1wbGljaXQ6IHtkYXRhOml0ZW0scm93SW5kZXg6ckluZGV4fSB9XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGxUcGw+XG4gICAgICAgICAgICAgICAgICA8dGQgW2F0dHIuZGF0YS1sYWJlbF09XCJjLmNhcHRpb25cIiB0YWJpbmRleD1cIjBcIiBbc3R5bGUud2lkdGhdPVwiYy53aWR0aFwiIFtjbGFzc109XCJjLmNzc0NsYXNzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0gfHwgIWMuc2tlbGV0b247ZWxzZSBsb2FkaW5nVHBsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYy50ZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHtkYXRhOml0ZW0scm93SW5kZXg6ckluZGV4fSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPHRkPiZuYnNwOzwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LXRhYmxlLWZvb3RlclwiICNmb290ZXJDb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJheC10YWJsZS1pbmZvXCI+XG4gICAgPGRpdj5cbiAgICAgIFNob3dpbmcge3tzdGFydFJvd0luZGV4fX0gb2Yge3t0b3RhbFJvd3N9fSBpdGVtc1xuICAgIDwvZGl2PlxuICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cInJlZnJlc2goKVwiPlxuICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljb24gYXgtaWNvbi1yZWZyZXNoXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+XG4gIDwvbmctY29udGVudD5cbjwvZGl2PlxuXG48IS0tICBMb2FkaW5nIFRlbXBsYXRlICAtLT5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RwbD5cbiAgPCEtLSAgQ3VzdG9tIExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1RlbXBsYXRlO2Vsc2UgZGVmYXVsdExvYWRpbmdUcGxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tICBEZWZhdWx0IExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkaW5nVHBsPlxuICAgIDxheC1za2VsZXRvbiBbYW5pbWF0ZWRdPVwidHJ1ZVwiPjwvYXgtc2tlbGV0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuPCEtLSAgRW1wdHkgVGVtcGxhdGUgIC0tPlxuPG5nLXRlbXBsYXRlICNlbXB0eVRwbD5cbiAgPHRyPlxuICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiZW1wdHlUZW1wbGF0ZVwiIFtuZ0lmRWxzZV09XCJkZWZhdWx0RW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVtcHR5VGVtcGxhdGU+XG4gICAgICAgIDxheC1yZXN1bHQgdHlwZT1cImVtcHR5XCIgY2FwdGlvbj1cIiB7eydjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XCI+PC9heC1yZXN1bHQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdGQ+XG4gIDwvdHI+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -4,18 +4,53 @@ import { AXResultModule } from '@acorex/components/result';
4
4
  import { AXTranslationModule } from '@acorex/core/translation';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { NgModule } from '@angular/core';
7
- import { AXDataColumnComponent } from './data-column.directive';
8
7
  import { AXDataTableComponent } from './data-table.component';
9
- import { AXDataTable2Component } from './data-table2.component';
10
8
  import { ScrollingModule } from '@angular/cdk/scrolling';
11
9
  import { AXSkeletonModule } from '@acorex/components/skeleton';
12
10
  import { AXButtonModule } from '@acorex/components/button';
11
+ import { AXDataTextColumnComponent } from './columns/data-text-column.component';
12
+ import { AXRowIndexColumnComponent } from './columns/row-index-column.component';
13
+ import { AXRowSelectColumnComponent } from './columns/row-select-column.component';
14
+ import { AXRowCommandColumnComponent } from './columns/row-command-column.component';
15
+ import { AXDropdownModule } from '@acorex/components/dropdown';
13
16
  import * as i0 from "@angular/core";
14
- const COMPONENT = [AXDataTableComponent, AXDataTable2Component, AXDataColumnComponent];
15
- const MODULES = [CommonModule, ScrollingModule, AXTranslationModule, AXResultModule, AXLoadingModule, AXDecoratorModule, AXSkeletonModule, AXButtonModule];
17
+ const COMPONENT = [
18
+ AXDataTableComponent,
19
+ AXDataTextColumnComponent,
20
+ AXRowIndexColumnComponent,
21
+ AXRowSelectColumnComponent,
22
+ AXRowCommandColumnComponent
23
+ ];
24
+ const MODULES = [
25
+ CommonModule,
26
+ ScrollingModule,
27
+ AXTranslationModule,
28
+ AXResultModule,
29
+ AXLoadingModule,
30
+ AXDecoratorModule,
31
+ AXSkeletonModule,
32
+ AXButtonModule,
33
+ AXDropdownModule
34
+ ];
16
35
  export class AXDataTableModule {
17
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXDataTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: AXDataTableModule, declarations: [AXDataTableComponent, AXDataTable2Component, AXDataColumnComponent], imports: [CommonModule, ScrollingModule, AXTranslationModule, AXResultModule, AXLoadingModule, AXDecoratorModule, AXSkeletonModule, AXButtonModule], exports: [AXDataTableComponent, AXDataTable2Component, AXDataColumnComponent] }); }
37
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: AXDataTableModule, declarations: [AXDataTableComponent,
38
+ AXDataTextColumnComponent,
39
+ AXRowIndexColumnComponent,
40
+ AXRowSelectColumnComponent,
41
+ AXRowCommandColumnComponent], imports: [CommonModule,
42
+ ScrollingModule,
43
+ AXTranslationModule,
44
+ AXResultModule,
45
+ AXLoadingModule,
46
+ AXDecoratorModule,
47
+ AXSkeletonModule,
48
+ AXButtonModule,
49
+ AXDropdownModule], exports: [AXDataTableComponent,
50
+ AXDataTextColumnComponent,
51
+ AXRowIndexColumnComponent,
52
+ AXRowSelectColumnComponent,
53
+ AXRowCommandColumnComponent] }); }
19
54
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXDataTableModule, imports: [MODULES] }); }
20
55
  }
21
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXDataTableModule, decorators: [{
@@ -27,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
27
62
  providers: [],
28
63
  }]
29
64
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2RhdGEtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFM0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3ZGLE1BQU0sT0FBTyxHQUFHLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBUTNKLE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQVRYLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixhQUNwRSxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxhQUR0SSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7K0dBU3hFLGlCQUFpQixZQUpmLE9BQU87OzJGQUlULGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhSZXN1bHRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcmVzdWx0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWERhdGFDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2RhdGEtY29sdW1uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWERhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhEYXRhVGFibGUyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlMi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBBWFNrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NrZWxldG9uJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWERhdGFUYWJsZUNvbXBvbmVudCwgQVhEYXRhVGFibGUyQ29tcG9uZW50LCBBWERhdGFDb2x1bW5Db21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtDb21tb25Nb2R1bGUsIFNjcm9sbGluZ01vZHVsZSwgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhSZXN1bHRNb2R1bGUsIEFYTG9hZGluZ01vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYU2tlbGV0b25Nb2R1bGUsIEFYQnV0dG9uTW9kdWxlXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uQ09NUE9ORU5UXSxcbiAgaW1wb3J0czogWy4uLk1PRFVMRVNdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhEYXRhVGFibGVNb2R1bGUgeyB9XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2RhdGEtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFL0QsTUFBTSxTQUFTLEdBQUc7SUFDaEIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6Qix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLDJCQUEyQjtDQUM1QixDQUFDO0FBQ0YsTUFBTSxPQUFPLEdBQUc7SUFDZCxZQUFZO0lBQ1osZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGdCQUFnQjtDQUNqQixDQUFDO0FBUUYsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBeEI1QixvQkFBb0I7WUFDcEIseUJBQXlCO1lBQ3pCLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsMkJBQTJCLGFBRzNCLFlBQVk7WUFDWixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsZ0JBQWdCLGFBZmhCLG9CQUFvQjtZQUNwQix5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQiwyQkFBMkI7K0dBb0JoQixpQkFBaUIsWUFKZixPQUFPOzsyRkFJVCxpQkFBaUI7a0JBTjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUmVzdWx0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Jlc3VsdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgQVhTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9za2VsZXRvbic7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhVGV4dENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1ucy9kYXRhLXRleHQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFJvd0luZGV4Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW5zL3Jvdy1pbmRleC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFYUm93U2VsZWN0Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW5zL3Jvdy1zZWxlY3QtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFJvd0NvbW1hbmRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2NvbHVtbnMvcm93LWNvbW1hbmQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcblxuY29uc3QgQ09NUE9ORU5UID0gW1xuICBBWERhdGFUYWJsZUNvbXBvbmVudCxcbiAgQVhEYXRhVGV4dENvbHVtbkNvbXBvbmVudCxcbiAgQVhSb3dJbmRleENvbHVtbkNvbXBvbmVudCxcbiAgQVhSb3dTZWxlY3RDb2x1bW5Db21wb25lbnQsXG4gIEFYUm93Q29tbWFuZENvbHVtbkNvbXBvbmVudFxuXTtcbmNvbnN0IE1PRFVMRVMgPSBbXG4gIENvbW1vbk1vZHVsZSxcbiAgU2Nyb2xsaW5nTW9kdWxlLFxuICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICBBWFJlc3VsdE1vZHVsZSxcbiAgQVhMb2FkaW5nTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhTa2VsZXRvbk1vZHVsZSxcbiAgQVhCdXR0b25Nb2R1bGUsXG4gIEFYRHJvcGRvd25Nb2R1bGVcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0YVRhYmxlTW9kdWxlIHsgfVxuIl19