@acorex/components 20.6.25 → 20.6.27

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.
@@ -162,7 +162,7 @@ class AXDataTableColumnComponent {
162
162
  * Width of the column.
163
163
  * - string: e.g., '180px', '20%'
164
164
  * - number: e.g., 180 (treated as pixels)
165
- * - 'auto': automatically fits to content after data load
165
+ * - 'auto': sizes from headers when the table first renders, then refits from row content once data loads
166
166
  *
167
167
  * @defaultValue 'auto'
168
168
  */
@@ -1175,7 +1175,7 @@ class AXRowIndexColumnComponent extends AXDataTableColumnComponent {
1175
1175
  useExisting: AXRowIndexColumnComponent,
1176
1176
  },
1177
1177
  { provide: AXComponent, useExisting: AXRowIndexColumnComponent },
1178
- ], viewQueries: [{ propertyName: "_cellTemplate", first: true, predicate: ["cell"], descendants: true }, { propertyName: "_contentHeaderTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "_contentFooterTemplate", first: true, predicate: ["footer"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-template #header></ng-template>
1178
+ ], viewQueries: [{ propertyName: "_cellTemplate", first: true, predicate: ["cell"], descendants: true }, { propertyName: "_contentHeaderTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "_contentFooterTemplate", first: true, predicate: ["footer"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-template #header>{{ caption }}</ng-template>
1179
1179
  <ng-template #cell let-row>
1180
1180
  {{ row.rowIndex + 1 | format: 'number' : { zeroPadLength: this.formatCount, thousandSeparator: false } | async }}
1181
1181
  </ng-template>
@@ -1185,7 +1185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
1185
1185
  type: Component,
1186
1186
  args: [{
1187
1187
  selector: 'ax-index-column',
1188
- template: `<ng-template #header></ng-template>
1188
+ template: `<ng-template #header>{{ caption }}</ng-template>
1189
1189
  <ng-template #cell let-row>
1190
1190
  {{ row.rowIndex + 1 | format: 'number' : { zeroPadLength: this.formatCount, thousandSeparator: false } | async }}
1191
1191
  </ng-template>
@@ -1456,6 +1456,23 @@ class AXDataTableComponent extends AXBaseDataTable {
1456
1456
  * @ignore
1457
1457
  */
1458
1458
  this.resizeColumnProp = { startX: 0, startWidth: 0, columnIndex: 0, newColumnWidth: 0, thElement: null };
1459
+ /**
1460
+ * Columns that used `width="auto"` and received header-only sizing before rows were available.
1461
+ * They get a full content measurement once data is present.
1462
+ * @ignore
1463
+ */
1464
+ this.pendingContentAutoFitColumns = new WeakSet();
1465
+ /**
1466
+ * Columns that were configured with `width="auto"` (intent), even if we later set a pixel width.
1467
+ * Used to re-measure on every page/data change.
1468
+ * @ignore
1469
+ */
1470
+ this.autoFitIntentColumns = new WeakSet();
1471
+ /**
1472
+ * Columns the user manually resized by dragging. Auto-fit should not override user choice.
1473
+ * @ignore
1474
+ */
1475
+ this.userResizedColumns = new WeakSet();
1459
1476
  /**
1460
1477
  * @ignore
1461
1478
  */
@@ -1611,7 +1628,10 @@ class AXDataTableComponent extends AXBaseDataTable {
1611
1628
  this.document.removeEventListener('mouseup', this.onResizeColumnEnd);
1612
1629
  }
1613
1630
  const newWidth = parseInt(this.resizeColumnProp.thElement.attributes.getNamedItem('new-width')?.value);
1614
- this.columns.get(this.resizeColumnProp.columnIndex).width = `${Math.max(100, newWidth)}px`;
1631
+ const column = this.columns.get(this.resizeColumnProp.columnIndex);
1632
+ column.width = `${Math.max(100, newWidth)}px`;
1633
+ this.userResizedColumns.add(column);
1634
+ this.pendingContentAutoFitColumns.delete(column);
1615
1635
  this.onColumnSizeChanged.emit({
1616
1636
  type: 'end',
1617
1637
  data: {
@@ -1704,8 +1724,13 @@ class AXDataTableComponent extends AXBaseDataTable {
1704
1724
  this.columnsList.set(this.columns.toArray());
1705
1725
  this.columns.changes.pipe(this._unsubscriber.takeUntilDestroy).subscribe((cols) => {
1706
1726
  this.columnsList.set(cols.toArray());
1727
+ this.captureAutoFitIntentColumns();
1728
+ setTimeout(() => this.autoFitColumnsWithAutoWidth({ headerOnly: true }), 0);
1707
1729
  });
1708
- // Auto-fit columns with width='auto' after data load
1730
+ // Header-only auto-fit for width='auto' so columns do not collapse before data loads
1731
+ this.captureAutoFitIntentColumns();
1732
+ setTimeout(() => this.autoFitColumnsWithAutoWidth({ headerOnly: true }), 0);
1733
+ // Full auto-fit for width='auto' (and pending header-only columns) after data load
1709
1734
  this.dataSource.onChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((data) => {
1710
1735
  if (data.items.length > 0) {
1711
1736
  // Delay to ensure DOM is ready
@@ -1715,6 +1740,13 @@ class AXDataTableComponent extends AXBaseDataTable {
1715
1740
  }
1716
1741
  });
1717
1742
  }
1743
+ captureAutoFitIntentColumns() {
1744
+ this.columns.forEach((column) => {
1745
+ if (column.width === 'auto') {
1746
+ this.autoFitIntentColumns.add(column);
1747
+ }
1748
+ });
1749
+ }
1718
1750
  /**
1719
1751
  * Returns the display text for a cell. Used for the native title (tooltip) on each cell.
1720
1752
  */
@@ -2025,25 +2057,34 @@ class AXDataTableComponent extends AXBaseDataTable {
2025
2057
  }
2026
2058
  /**
2027
2059
  * Auto-fits columns that have width='auto'.
2028
- * Called automatically after data load.
2060
+ * Runs header-only sizing after view init (`headerOnly: true`) and full measurement after data load.
2029
2061
  *
2030
2062
  * @ignore
2031
2063
  */
2032
- autoFitColumnsWithAutoWidth() {
2064
+ autoFitColumnsWithAutoWidth(options = {}) {
2065
+ const headerOnly = options.headerOnly ?? false;
2033
2066
  const autoWidthColumns = [];
2034
2067
  this.columns.forEach((column, index) => {
2035
- // Only auto-fit if width is explicitly set to 'auto'
2036
- if (column.width === 'auto') {
2037
- autoWidthColumns.push(index);
2038
- try {
2039
- this.autoFitColumn(index, { maxWidth: 500 });
2040
- }
2041
- catch (error) {
2042
- console.error(`Failed to auto-fit column ${index}:`, error);
2043
- }
2068
+ const fitsByIntent = this.autoFitIntentColumns.has(column);
2069
+ const fitsPendingHeaderOnly = !headerOnly && this.pendingContentAutoFitColumns.has(column);
2070
+ if (!fitsByIntent && !fitsPendingHeaderOnly) {
2071
+ return;
2072
+ }
2073
+ if (this.userResizedColumns.has(column)) {
2074
+ return;
2075
+ }
2076
+ if (fitsByIntent && headerOnly && column.width === 'auto') {
2077
+ this.pendingContentAutoFitColumns.add(column);
2078
+ }
2079
+ autoWidthColumns.push(index);
2080
+ try {
2081
+ this.autoFitColumn(index, { maxWidth: 500, headerOnly });
2082
+ }
2083
+ catch (error) {
2084
+ console.error(`Failed to auto-fit column ${index}:`, error);
2044
2085
  }
2045
2086
  });
2046
- if (autoWidthColumns.length > 0) {
2087
+ if (!headerOnly && autoWidthColumns.length > 0) {
2047
2088
  console.warn(`Auto-fitted ${autoWidthColumns.length} column(s) with width='auto': indices ${autoWidthColumns.join(', ')}`);
2048
2089
  }
2049
2090
  }
@@ -2089,6 +2130,7 @@ class AXDataTableComponent extends AXBaseDataTable {
2089
2130
  * @param columnIndex - The index of the column to auto-fit (0-based, based on columns QueryList)
2090
2131
  * @param options - Configuration options
2091
2132
  * @param options.maxWidth - Maximum width for the column in pixels (default: none)
2133
+ * @param options.headerOnly - When true, only the header cell is measured (e.g. before row data exists)
2092
2134
  * @returns void
2093
2135
  */
2094
2136
  autoFitColumn(columnIndex, options = {}) {
@@ -2154,28 +2196,30 @@ class AXDataTableComponent extends AXBaseDataTable {
2154
2196
  helperTable.removeChild(helperThead);
2155
2197
  }
2156
2198
  }
2157
- // Measure body cells
2158
- const bodyRows = mainTable.querySelectorAll('tbody tr:not(.empty-row)');
2159
- const helperTbody = this.document.createElement('tbody');
2160
- helperTable.appendChild(helperTbody);
2161
- // Sample first 20 rows for performance (you can adjust this)
2162
- const sampleSize = Math.min(20, bodyRows.length);
2163
- for (let i = 0; i < sampleSize; i++) {
2164
- const row = bodyRows[i];
2165
- const cells = row.querySelectorAll('td');
2166
- if (cells.length > actualColumnIndex) {
2167
- const cell = cells[actualColumnIndex];
2168
- // Clone cell to helper table
2169
- const helperTr = this.document.createElement('tr');
2170
- const helperTd = cell.cloneNode(true);
2171
- helperTd.style.width = 'auto';
2172
- helperTd.style.whiteSpace = 'nowrap';
2173
- helperTr.appendChild(helperTd);
2174
- helperTbody.appendChild(helperTr);
2175
- // Force layout calculation
2176
- const cellWidth = helperTd.offsetWidth;
2177
- maxWidth = Math.max(maxWidth, cellWidth);
2178
- helperTbody.removeChild(helperTr);
2199
+ if (!(options.headerOnly ?? false)) {
2200
+ // Measure body cells
2201
+ const bodyRows = mainTable.querySelectorAll('tbody tr:not(.empty-row)');
2202
+ const helperTbody = this.document.createElement('tbody');
2203
+ helperTable.appendChild(helperTbody);
2204
+ // Sample first 20 rows for performance (you can adjust this)
2205
+ const sampleSize = Math.min(20, bodyRows.length);
2206
+ for (let i = 0; i < sampleSize; i++) {
2207
+ const row = bodyRows[i];
2208
+ const cells = row.querySelectorAll('td');
2209
+ if (cells.length > actualColumnIndex) {
2210
+ const cell = cells[actualColumnIndex];
2211
+ // Clone cell to helper table
2212
+ const helperTr = this.document.createElement('tr');
2213
+ const helperTd = cell.cloneNode(true);
2214
+ helperTd.style.width = 'auto';
2215
+ helperTd.style.whiteSpace = 'nowrap';
2216
+ helperTr.appendChild(helperTd);
2217
+ helperTbody.appendChild(helperTr);
2218
+ // Force layout calculation
2219
+ const cellWidth = helperTd.offsetWidth;
2220
+ maxWidth = Math.max(maxWidth, cellWidth);
2221
+ helperTbody.removeChild(helperTr);
2222
+ }
2179
2223
  }
2180
2224
  }
2181
2225
  // Add some padding for better UX
@@ -2186,6 +2230,9 @@ class AXDataTableComponent extends AXBaseDataTable {
2186
2230
  }
2187
2231
  // Set column width
2188
2232
  column.width = `${finalWidth}px`;
2233
+ if (!(options.headerOnly ?? false)) {
2234
+ this.pendingContentAutoFitColumns.delete(column);
2235
+ }
2189
2236
  // Trigger change detection to update the view
2190
2237
  this.columnsList.set([...this.columnsList()]);
2191
2238
  // Recalculate sticky positions if column is fixed
@@ -2218,7 +2265,7 @@ class AXDataTableComponent extends AXBaseDataTable {
2218
2265
  { provide: AXBaseDataTable, useExisting: AXDataTableComponent },
2219
2266
  AXUnsubscriber,
2220
2267
  { provide: AXComponent, useExisting: AXDataTableComponent },
2221
- ], queries: [{ propertyName: "customDataPager", first: true, predicate: AXDataPagerComponent, descendants: true, static: true }, { propertyName: "columns", predicate: AXDataTableColumnComponent }], viewQueries: [{ propertyName: "dataPager", first: true, predicate: ["dataPager"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-header\"> </ng-content>\n<div class=\"ax-data-table-wrapper\">\n <table>\n @if (showHeader) {\n <thead [ngClass]=\"{ 'ax-data-table-sticky-header': fixedHeader }\">\n <tr\n [cdkDropListDisabled]=\"!allowReordering\"\n cdkDropList\n cdkScrollable\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @for (c of startFixedColumnsList(); track $index) {\n <th\n cdkDrag\n [cdkDragDisabled]=\"true\"\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell sticky-start\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </th>\n }\n @for (c of normalColumnsList(); track $index) {\n <th\n cdkDrag\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n @if (c.allowResizing && !c.fixed) {\n <div\n class=\"ax-resize-handle\"\n (mousedown)=\"onResizeColumnStart($event, this.startFixedColumnsList().length + $index)\"\n (dblclick)=\"onResizeHandlerDoubleClick($event, this.startFixedColumnsList().length + $index)\"\n title=\"Double-click to auto-fit column width\"\n ></div>\n }\n </th>\n }\n <th></th>\n @for (c of endFixedColumnsList(); track $index) {\n <th\n cdkDrag\n [cdkDragDisabled]=\"true\"\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell sticky-end\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody [ngClass]=\"{ 'ax-data-table-row-alternative': alternative }\">\n @if (showNoDataLoadedYet) {\n <tr style=\"display: inherit\">\n <td class=\"ax-data-table-empty-data\" [attr.colspan]=\"columnsList().length + 1\">\n @if (noDataTemplate) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate\"></ng-container>\n } @else {\n <span>{{ '@acorex:common.general.no-data-yet' | translate | async }}</span>\n }\n </td>\n </tr>\n } @else if (!displayedRows().length) {\n <tr style=\"display: inherit\">\n <td class=\"ax-data-table-empty-data\" [attr.colspan]=\"columnsList().length + 1\">\n @if (emptyTemplate) {\n <ng-container [ngTemplateOutlet]=\"emptyTemplate\"></ng-container>\n } @else {\n <span>{{ '@acorex:common.general.no-record' | translate | async }}</span>\n }\n </td>\n </tr>\n } @else {\n @for (row of displayedRows(); let rowIndex = $index; track rowIndex) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemp\"\n [ngTemplateOutletContext]=\"{ data: { row, rowIndex } }\"\n ></ng-container>\n }\n\n <ng-template #rowTemp let-data=\"data\">\n @if (rowTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: data.row, rowIndex: data.rowIndex } }\"\n >\n </ng-container>\n } @else {\n <tr\n [class.ax-state-focused]=\"focusedRow && data.row === focusedRow\"\n [attr.data-index]=\"data.rowIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(data.row)\"\n style.height=\"{{ itemHeight }}px\"\n style.max-height=\"{{ itemHeight }}px\"\n (click)=\"handleRowClick($event, data.row)\"\n >\n @for (c of startFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-start]=\"true\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </td>\n }\n @for (c of normalColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n <span\n class=\"ax-data-table-cell-tooltip-wrapper\"\n [axTooltip]=\"data.row && !isLoading() ? getCellTooltipText(c, data.row) || null : null\"\n >\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </span>\n </td>\n }\n <td><div class=\"ax-bg\"></div></td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-end]=\"true\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </td>\n }\n </tr>\n @if (data.row?.__meta__?.expanded) {\n @if (rowDetailsTemplate) {\n <tr>\n @for (c of startFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-start]=\"true\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-bg\"></div>\n </td>\n }\n <td class=\"ax-data-table-row-details\" [attr.colspan]=\"normalColumnsList().length + 1\">\n <ng-container\n [ngTemplateOutlet]=\"rowDetailsTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: data.row, rowIndex: data.rowIndex } }\"\n ></ng-container>\n </td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-end]=\"true\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-bg\"></div>\n </td>\n }\n </tr>\n }\n @for (childRow of data.row.children; let childRowIndex = $index; track childRowIndex) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemp\"\n [ngTemplateOutletContext]=\"{ data: { row: childRow, rowIndex: childRowIndex } }\"\n ></ng-container>\n }\n }\n }\n </ng-template>\n\n <tr class=\"empty-row\"></tr>\n }\n </tbody>\n @if (showFooter) {\n <tfoot [ngClass]=\"{ 'ax-data-table-sticky-footer': fixedFooter }\">\n <tr>\n @for (c of startFixedColumnsList(); track $index) {\n <td\n class=\"ax-data-table-sticky-footer-cell sticky-start\"\n [class.ax-data-table-sticky-footer-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </td>\n }\n @for (c of normalColumnsList(); track $index) {\n <td\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n @if (c.allowResizing && !c.fixed) {\n <div\n class=\"ax-resize-handle\"\n (mousedown)=\"onResizeColumnStart($event, this.startFixedColumnsList().length + $index)\"\n (dblclick)=\"onResizeHandlerDoubleClick($event, this.startFixedColumnsList().length + $index)\"\n title=\"Double-click to auto-fit column width\"\n ></div>\n }\n </td>\n }\n <td></td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n class=\"ax-data-table-sticky-footer-cell sticky-end\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </td>\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n@if (paging) {\n <div class=\"ax-table-footer\" #footerContainer>\n <ng-template #customPager>\n <ng-content select=\"ax-data-pager\"></ng-content>\n </ng-template>\n\n @if (customDataPager) {\n <ng-container [ngTemplateOutlet]=\"customPager\"></ng-container>\n } @else {\n <ax-data-pager\n #dataPager\n [displayMode]=\"'custom'\"\n (onChanged)=\"handleChangePage($event)\"\n [total]=\"dataSource.totalCount\"\n [size]=\"dataSource.pageSize\"\n [isLoading]=\"isLoading()\"\n >\n <ax-prefix class=\"ax-data-table-numeric-paging\">\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-prefix class=\"ax-data-table-input-paging\">\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix class=\"ax-data-table-info\">\n <ax-data-pager-info> </ax-data-pager-info>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh({ reset: false })\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-data-pager>\n }\n </div>\n}\n<ng-content select=\"ax-footer\"> </ng-content>\n", styles: ["ax-data-table{--ax-comp-data-table-font-size: .875rem;--ax-comp-data-table-line-height: 1rem;--ax-comp-data-table-border-color: var(--ax-sys-color-border-surface);--ax-comp-data-table-border-radius: var(--ax-sys-border-radius);--ax-comp-data-table-column-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-data-table-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-header-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-data-table-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-footer-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-data-table-hover-bg-color: var(--ax-sys-color-primary-lightest-surface);--ax-comp-data-table-hover-text-color: var(--ax-sys-color-on-primary-lightest-surface);--ax-comp-data-table-focus-bg-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-data-table-selected-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-selected-hover-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-index-bg-color: var(--ax-sys-color-light-surface);--ax-comp-data-table-index-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-alternative-bg-color: var(--ax-sys-color-light-surface);--ax-comp-data-table-alternative-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-skeleton-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-data-table-handler-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-interactive-bg-color: var(--ax-sys-color-light-surface)}.ax-dark ax-data-table{--ax-comp-data-table-column-bg-color: var(--ax-sys-color-darkest-surface);--ax-comp-data-table-header-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-data-table-header-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-data-table-footer-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-data-table-footer-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-data-table-hover-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-hover-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-focus-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-selected-bg-color: var(--ax-sys-color-primary-dark-surface);--ax-comp-data-table-selected-hover-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-index-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-data-table-index-text-color: var(--ax-sys-color-on-dark-surface);--ax-comp-data-table-skeleton-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-alternative-bg-color: var(--ax-sys-color-surface);--ax-comp-data-table-alternative-text-color: var(--ax-sys-color-on-surface);--ax-comp-data-table-handler-bg-color: var(--ax-sys-color-primary-dark-surface)}@media screen and (min-width: 768px){html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-start{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-start.ax-state-is-last{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-end{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-end.ax-state-is-first{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}}@media screen and (min-width: 768px){html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-start{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-start.ax-state-is-last{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-end{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-end.ax-state-is-first{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table{display:flex;flex-direction:column;height:100%;width:100%;font-size:var(--ax-comp-data-table-font-size);line-height:var(--ax-comp-data-table-line-height);border-radius:var(--ax-comp-data-table-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-data-table-border-color));position:relative;min-height:inherit;overflow:hidden}ax-data-table td.ax-data-table-empty-data{background:transparent!important;position:absolute!important;padding:2rem 1rem;text-align:center;vertical-align:middle;height:8rem;border-bottom:none;top:50%;transform:translateY(-50%);width:100%}ax-data-table td.ax-data-table-empty-data span{color:rgb(var(--ax-sys-color-ghost-500));font-size:var(--ax-comp-data-table-font-size);display:flex;height:100%;align-items:center;justify-content:center}ax-data-table .ax-data-table-wrapper{overflow:auto;width:100%;flex:1;border-radius:var(--ax-comp-data-table-border-radius)}ax-data-table .ax-data-table-wrapper table{display:table;height:100%;width:100%;table-layout:fixed;overflow-x:auto}ax-data-table .ax-data-table-wrapper table thead{overflow:hidden;border-start-end-radius:var(--ax-comp-data-table-border-radius);border-start-start-radius:var(--ax-comp-data-table-border-radius)}ax-data-table .ax-data-table-wrapper table thead th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-header-bg-color));color:rgba(var(--ax-comp-data-table-header-text-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;height:2.5rem}ax-data-table .ax-data-table-wrapper table thead th.ax-interactive{cursor:pointer}ax-data-table .ax-data-table-wrapper table thead th.ax-interactive:hover{background-color:rgba(var(--ax-comp-data-table-interactive-bg-color))}ax-data-table .ax-data-table-wrapper table thead th .ax-resize-handle{position:absolute;inset-inline-end:0px;top:0;bottom:0;width:.25rem;height:100%;cursor:col-resize;background:transparent}ax-data-table .ax-data-table-wrapper table thead th .ax-resize-handle:hover{background-color:rgba(var(--ax-comp-data-table-handler-bg-color))}ax-data-table .ax-data-table-wrapper table thead th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-data-table .ax-data-table-wrapper table thead th:last-child{border-inline-end-width:0px}ax-data-table .ax-data-table-wrapper table thead.ax-data-table-sticky-header{position:sticky;top:0;border-top:none;border-bottom:none;z-index:3;box-shadow:inset 1px 1px 0 2px rgba(var(--ax-comp-data-table-border-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell{position:sticky;z-index:2;border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell{position:sticky;z-index:2;background-color:rgba(var(--ax-comp-data-table-column-bg-color));border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table .ax-data-table-wrapper table tbody tr td{z-index:0;position:relative}ax-data-table .ax-data-table-wrapper table tbody tr td .ax-data-table-cell-tooltip-wrapper{position:relative;min-height:inherit}ax-data-table .ax-data-table-wrapper table tbody tr td .ax-bg{top:0;left:0;z-index:-1;width:100%;height:100%;position:absolute;border-inline-end:1px solid rgba(var(--ax-comp-data-table-border-color));background-color:transparent;opacity:.3}ax-data-table .ax-data-table-wrapper table tbody .empty-row{height:auto!important}ax-data-table .ax-data-table-wrapper table tbody.ax-data-table-row-alternative tr:nth-child(2n) td{background-color:rgba(var(--ax-comp-data-table-alternative-bg-color));color:rgba(var(--ax-comp-data-table-alternative-text-color))}ax-data-table .ax-data-table-wrapper table tbody.ax-data-table-row-alternative tr:nth-child(2n) ax-skeleton{width:25%}ax-data-table .ax-data-table-wrapper table tbody tr{height:2.5rem;max-height:2.5rem}ax-data-table .ax-data-table-wrapper table tbody tr:hover td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-hover-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr:hover td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-hover-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-focused td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-focus-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-focused td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-focus-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-selected-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-selected-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected:hover td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-selected-hover-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected:hover td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-selected-hover-bg-color))}ax-data-table .ax-data-table-wrapper table tbody td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-column-bg-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}ax-data-table .ax-data-table-wrapper table tbody td .ax-expand-handler{padding-inline-start:.25rem;padding-inline-end:.25rem;cursor:pointer}ax-data-table .ax-data-table-wrapper table tbody td .ax-expand-handler.has-parent{padding-inline-start:1.5rem!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-comp-data-table-index-bg-color));color:rgba(var(--ax-comp-data-table-index-text-color));text-align:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column{text-align:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button{--ax-comp-button-font-size: .75rem;--ax-comp-button-padding-x: .25rem;--ax-comp-button-decorator-padding-x: .25rem;--ax-comp-button-icon-only-font-size: .875rem;--ax-sys-size-base: 1.5rem;margin-left:.25rem;margin-right:.25rem}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button ax-loading .ax-loader{width:.75rem!important;height:.75rem!important;border-width:2px!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-comp-data-table-border-radius);border-style:none;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:transparent;padding:.25rem;color:rgba(var(--ax-color-ghost-fore))}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover:not(ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover.ax-state-selected,ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover.ax-state-disabled){opacity:.75}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:active{opacity:1}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-data-table .ax-data-table-wrapper table tbody td:last-child{border-inline-end-width:0px}ax-data-table .ax-data-table-wrapper table tbody td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem;background-color:rgba(var(--ax-comp-data-table-skeleton-bg-color))}ax-data-table .ax-data-table-wrapper table tfoot tr td{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-footer-bg-color));color:rgba(var(--ax-comp-data-table-footer-text-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;height:2.5rem}ax-data-table .ax-data-table-wrapper table tfoot tr td.ax-interactive{cursor:pointer}ax-data-table .ax-data-table-wrapper table tfoot tr td.ax-interactive:hover{background-color:rgba(var(--ax-comp-data-table-interactive-bg-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell{position:sticky;z-index:2;border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table .ax-data-table-wrapper table tfoot.ax-data-table-sticky-footer{position:sticky;bottom:-1px;border-top:none;border-bottom:none;z-index:3;box-shadow:1px 0 rgba(var(--ax-comp-data-table-border-color)),0 -1px rgba(var(--ax-comp-data-table-border-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table .sticky-end{inset-inline-end:var(--sticky-end)}ax-data-table .ax-data-table-wrapper table .sticky-start{inset-inline-start:var(--sticky-start)}}ax-data-table ax-data-pager{justify-content:center}ax-data-table .ax-table-footer{border-top-width:1px;border-collapse:collapse;overflow:hidden;border-color:rgba(var(--ax-comp-data-table-border-color));padding-inline-start:.875rem;padding-inline-end:.875rem}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}ax-data-table .ax-data-table-numeric-paging{display:none}ax-data-table .ax-data-table-input-paging{display:flex}ax-data-table .ax-data-table-info{display:none}@media (min-width: 1024px){ax-data-table .ax-data-table-numeric-paging{display:flex}ax-data-table .ax-data-table-input-paging{display:none}}@media (min-width: 768px){ax-data-table .ax-data-table-info{display:flex;align-items:center}ax-data-table ax-data-pager{justify-content:space-between}}.cdk-drag-preview{border-bottom-width:1px;border-inline-end-width:1px;box-shadow:0 5px 5px -3px rgba(var(--ax-sys-color-primary-900),.2),0 8px 10px 1px rgba(var(--ax-sys-color-primary-900),.14),0 3px 14px 2px rgba(var(--ax-sys-color-primary-900),.12);border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-surface-fore));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative}.ax-dropdown-command-empty-state-text{color:rgba(var(--ax-sys-color-on-surface-variant-500));font-size:.75rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: AXDataPagerComponent, selector: "ax-data-pager", inputs: ["value", "name", "disabled", "readonly", "isLoading", "size", "total", "displayMode"], outputs: ["valueChange", "onValueChanged", "disabledChange", "readonlyChange", "displayModeChange", "onChanged"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXDataPagerNumericSelectorComponent, selector: "ax-data-pager-numeric-selector" }, { kind: "component", type: AXDataPagerPageSizesComponent, selector: "ax-data-pager-page-sizes", inputs: ["sizes"] }, { kind: "component", type: AXDataPagerPrevButtonsComponent, selector: "ax-data-pager-prev-buttons" }, { kind: "component", type: AXDataPagerInputSelectorComponent, selector: "ax-data-pager-input-selector" }, { kind: "component", type: AXDataPagerNextButtonsComponent, selector: "ax-data-pager-next-buttons" }, { kind: "component", type: AXDataPagerInfoComponent, selector: "ax-data-pager-info", inputs: ["text"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2268
+ ], queries: [{ propertyName: "customDataPager", first: true, predicate: AXDataPagerComponent, descendants: true, static: true }, { propertyName: "columns", predicate: AXDataTableColumnComponent }], viewQueries: [{ propertyName: "dataPager", first: true, predicate: ["dataPager"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-header\"> </ng-content>\n<div class=\"ax-data-table-wrapper\">\n <table>\n @if (showHeader) {\n <thead [ngClass]=\"{ 'ax-data-table-sticky-header': fixedHeader }\">\n <tr\n [cdkDropListDisabled]=\"!allowReordering\"\n cdkDropList\n cdkScrollable\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @for (c of startFixedColumnsList(); track $index) {\n <th\n cdkDrag\n [cdkDragDisabled]=\"true\"\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell sticky-start\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </th>\n }\n @for (c of normalColumnsList(); track $index) {\n <th\n cdkDrag\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n @if (c.allowResizing && !c.fixed) {\n <div\n class=\"ax-resize-handle\"\n (mousedown)=\"onResizeColumnStart($event, this.startFixedColumnsList().length + $index)\"\n (dblclick)=\"onResizeHandlerDoubleClick($event, this.startFixedColumnsList().length + $index)\"\n title=\"Double-click to auto-fit column width\"\n ></div>\n }\n </th>\n }\n <th></th>\n @for (c of endFixedColumnsList(); track $index) {\n <th\n cdkDrag\n [cdkDragDisabled]=\"true\"\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell sticky-end\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody [ngClass]=\"{ 'ax-data-table-row-alternative': alternative }\">\n @if (showNoDataLoadedYet) {\n <tr style=\"display: inherit\">\n <td class=\"ax-data-table-empty-data\" [attr.colspan]=\"columnsList().length + 1\">\n @if (noDataTemplate) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate\"></ng-container>\n } @else {\n <span>{{ '@acorex:common.general.no-data-yet' | translate | async }}</span>\n }\n </td>\n </tr>\n } @else if (!displayedRows().length) {\n <tr style=\"display: inherit\">\n <td class=\"ax-data-table-empty-data\" [attr.colspan]=\"columnsList().length + 1\">\n @if (emptyTemplate) {\n <ng-container [ngTemplateOutlet]=\"emptyTemplate\"></ng-container>\n } @else {\n <span>{{ '@acorex:common.general.no-record' | translate | async }}</span>\n }\n </td>\n </tr>\n } @else {\n @for (row of displayedRows(); let rowIndex = $index; track rowIndex) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemp\"\n [ngTemplateOutletContext]=\"{ data: { row, rowIndex } }\"\n ></ng-container>\n }\n\n <ng-template #rowTemp let-data=\"data\">\n @if (rowTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: data.row, rowIndex: data.rowIndex } }\"\n >\n </ng-container>\n } @else {\n <tr\n [class.ax-state-focused]=\"focusedRow && data.row === focusedRow\"\n [attr.data-index]=\"data.rowIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(data.row)\"\n style.height=\"{{ itemHeight }}px\"\n style.max-height=\"{{ itemHeight }}px\"\n (click)=\"handleRowClick($event, data.row)\"\n >\n @for (c of startFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-start]=\"true\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </td>\n }\n @for (c of normalColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n <span\n class=\"ax-data-table-cell-tooltip-wrapper\"\n [axTooltip]=\"title && data.row && !isLoading() ? getCellTooltipText(c, data.row) || null : null\"\n >\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </span>\n </td>\n }\n <td><div class=\"ax-bg\"></div></td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-end]=\"true\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </td>\n }\n </tr>\n @if (data.row?.__meta__?.expanded) {\n @if (rowDetailsTemplate) {\n <tr>\n @for (c of startFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-start]=\"true\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-bg\"></div>\n </td>\n }\n <td class=\"ax-data-table-row-details\" [attr.colspan]=\"normalColumnsList().length + 1\">\n <ng-container\n [ngTemplateOutlet]=\"rowDetailsTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: data.row, rowIndex: data.rowIndex } }\"\n ></ng-container>\n </td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-end]=\"true\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-bg\"></div>\n </td>\n }\n </tr>\n }\n @for (childRow of data.row.children; let childRowIndex = $index; track childRowIndex) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemp\"\n [ngTemplateOutletContext]=\"{ data: { row: childRow, rowIndex: childRowIndex } }\"\n ></ng-container>\n }\n }\n }\n </ng-template>\n\n <tr class=\"empty-row\"></tr>\n }\n </tbody>\n @if (showFooter) {\n <tfoot [ngClass]=\"{ 'ax-data-table-sticky-footer': fixedFooter }\">\n <tr>\n @for (c of startFixedColumnsList(); track $index) {\n <td\n class=\"ax-data-table-sticky-footer-cell sticky-start\"\n [class.ax-data-table-sticky-footer-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </td>\n }\n @for (c of normalColumnsList(); track $index) {\n <td\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n @if (c.allowResizing && !c.fixed) {\n <div\n class=\"ax-resize-handle\"\n (mousedown)=\"onResizeColumnStart($event, this.startFixedColumnsList().length + $index)\"\n (dblclick)=\"onResizeHandlerDoubleClick($event, this.startFixedColumnsList().length + $index)\"\n title=\"Double-click to auto-fit column width\"\n ></div>\n }\n </td>\n }\n <td></td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n class=\"ax-data-table-sticky-footer-cell sticky-end\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </td>\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n@if (paging) {\n <div class=\"ax-table-footer\" #footerContainer>\n <ng-template #customPager>\n <ng-content select=\"ax-data-pager\"></ng-content>\n </ng-template>\n\n @if (customDataPager) {\n <ng-container [ngTemplateOutlet]=\"customPager\"></ng-container>\n } @else {\n <ax-data-pager\n #dataPager\n [displayMode]=\"'custom'\"\n (onChanged)=\"handleChangePage($event)\"\n [total]=\"dataSource.totalCount\"\n [size]=\"dataSource.pageSize\"\n [isLoading]=\"isLoading()\"\n >\n <ax-prefix class=\"ax-data-table-numeric-paging\">\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-prefix class=\"ax-data-table-input-paging\">\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix class=\"ax-data-table-info\">\n <ax-data-pager-info> </ax-data-pager-info>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh({ reset: false })\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-data-pager>\n }\n </div>\n}\n<ng-content select=\"ax-footer\"> </ng-content>\n", styles: ["ax-data-table{--ax-comp-data-table-font-size: .875rem;--ax-comp-data-table-line-height: 1rem;--ax-comp-data-table-border-color: var(--ax-sys-color-border-surface);--ax-comp-data-table-border-radius: var(--ax-sys-border-radius);--ax-comp-data-table-column-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-data-table-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-header-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-data-table-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-footer-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-data-table-hover-bg-color: var(--ax-sys-color-primary-lightest-surface);--ax-comp-data-table-hover-text-color: var(--ax-sys-color-on-primary-lightest-surface);--ax-comp-data-table-focus-bg-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-data-table-selected-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-selected-hover-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-index-bg-color: var(--ax-sys-color-light-surface);--ax-comp-data-table-index-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-alternative-bg-color: var(--ax-sys-color-light-surface);--ax-comp-data-table-alternative-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-skeleton-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-data-table-handler-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-interactive-bg-color: var(--ax-sys-color-light-surface)}.ax-dark ax-data-table{--ax-comp-data-table-column-bg-color: var(--ax-sys-color-darkest-surface);--ax-comp-data-table-header-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-data-table-header-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-data-table-footer-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-data-table-footer-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-data-table-hover-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-hover-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-focus-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-selected-bg-color: var(--ax-sys-color-primary-dark-surface);--ax-comp-data-table-selected-hover-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-index-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-data-table-index-text-color: var(--ax-sys-color-on-dark-surface);--ax-comp-data-table-skeleton-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-alternative-bg-color: var(--ax-sys-color-surface);--ax-comp-data-table-alternative-text-color: var(--ax-sys-color-on-surface);--ax-comp-data-table-handler-bg-color: var(--ax-sys-color-primary-dark-surface)}@media screen and (min-width: 768px){html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-start{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-start.ax-state-is-last{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-end{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-end.ax-state-is-first{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}}@media screen and (min-width: 768px){html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-start{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-start.ax-state-is-last{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-end{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-end.ax-state-is-first{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table{display:flex;flex-direction:column;height:100%;width:100%;font-size:var(--ax-comp-data-table-font-size);line-height:var(--ax-comp-data-table-line-height);border-radius:var(--ax-comp-data-table-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-data-table-border-color));position:relative;min-height:inherit;overflow:hidden}ax-data-table td.ax-data-table-empty-data{background:transparent!important;position:absolute!important;padding:2rem 1rem;text-align:center;vertical-align:middle;height:8rem;border-bottom:none;top:50%;transform:translateY(-50%);width:100%}ax-data-table td.ax-data-table-empty-data span{color:rgb(var(--ax-sys-color-ghost-500));font-size:var(--ax-comp-data-table-font-size);display:flex;height:100%;align-items:center;justify-content:center}ax-data-table .ax-data-table-wrapper{overflow:auto;width:100%;flex:1;border-radius:var(--ax-comp-data-table-border-radius)}ax-data-table .ax-data-table-wrapper table{display:table;height:100%;width:100%;table-layout:fixed;overflow-x:auto}ax-data-table .ax-data-table-wrapper table thead{overflow:hidden;border-start-end-radius:var(--ax-comp-data-table-border-radius);border-start-start-radius:var(--ax-comp-data-table-border-radius)}ax-data-table .ax-data-table-wrapper table thead th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-header-bg-color));color:rgba(var(--ax-comp-data-table-header-text-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;height:2.5rem}ax-data-table .ax-data-table-wrapper table thead th.ax-interactive{cursor:pointer}ax-data-table .ax-data-table-wrapper table thead th.ax-interactive:hover{background-color:rgba(var(--ax-comp-data-table-interactive-bg-color))}ax-data-table .ax-data-table-wrapper table thead th .ax-resize-handle{position:absolute;inset-inline-end:0px;top:0;bottom:0;width:.25rem;height:100%;cursor:col-resize;background:transparent}ax-data-table .ax-data-table-wrapper table thead th .ax-resize-handle:hover{background-color:rgba(var(--ax-comp-data-table-handler-bg-color))}ax-data-table .ax-data-table-wrapper table thead th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-data-table .ax-data-table-wrapper table thead th:last-child{border-inline-end-width:0px}ax-data-table .ax-data-table-wrapper table thead.ax-data-table-sticky-header{position:sticky;top:0;border-top:none;border-bottom:none;z-index:3;box-shadow:inset 1px 1px 0 2px rgba(var(--ax-comp-data-table-border-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell{position:sticky;z-index:2;border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell{position:sticky;z-index:2;background-color:rgba(var(--ax-comp-data-table-column-bg-color));border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table .ax-data-table-wrapper table tbody tr td{z-index:0;position:relative}ax-data-table .ax-data-table-wrapper table tbody tr td .ax-data-table-cell-tooltip-wrapper{position:relative;min-height:inherit}ax-data-table .ax-data-table-wrapper table tbody tr td .ax-bg{top:0;left:0;z-index:-1;width:100%;height:100%;position:absolute;border-inline-end:1px solid rgba(var(--ax-comp-data-table-border-color));background-color:transparent;opacity:.3}ax-data-table .ax-data-table-wrapper table tbody .empty-row{height:auto!important}ax-data-table .ax-data-table-wrapper table tbody.ax-data-table-row-alternative tr:nth-child(2n) td{background-color:rgba(var(--ax-comp-data-table-alternative-bg-color));color:rgba(var(--ax-comp-data-table-alternative-text-color))}ax-data-table .ax-data-table-wrapper table tbody.ax-data-table-row-alternative tr:nth-child(2n) ax-skeleton{width:25%}ax-data-table .ax-data-table-wrapper table tbody tr{height:2.5rem;max-height:2.5rem}ax-data-table .ax-data-table-wrapper table tbody tr:hover td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-hover-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr:hover td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-hover-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-focused td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-focus-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-focused td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-focus-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-selected-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-selected-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected:hover td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-selected-hover-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected:hover td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-selected-hover-bg-color))}ax-data-table .ax-data-table-wrapper table tbody td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-column-bg-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}ax-data-table .ax-data-table-wrapper table tbody td .ax-expand-handler{padding-inline-start:.25rem;padding-inline-end:.25rem;cursor:pointer}ax-data-table .ax-data-table-wrapper table tbody td .ax-expand-handler.has-parent{padding-inline-start:1.5rem!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-comp-data-table-index-bg-color));color:rgba(var(--ax-comp-data-table-index-text-color));text-align:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column{text-align:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button{--ax-comp-button-font-size: .75rem;--ax-comp-button-padding-x: .25rem;--ax-comp-button-decorator-padding-x: .25rem;--ax-comp-button-icon-only-font-size: .875rem;--ax-sys-size-base: 1.5rem;margin-left:.25rem;margin-right:.25rem}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button ax-loading .ax-loader{width:.75rem!important;height:.75rem!important;border-width:2px!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-comp-data-table-border-radius);border-style:none;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:transparent;padding:.25rem;color:rgba(var(--ax-color-ghost-fore))}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover:not(ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover.ax-state-selected,ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover.ax-state-disabled){opacity:.75}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:active{opacity:1}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-data-table .ax-data-table-wrapper table tbody td:last-child{border-inline-end-width:0px}ax-data-table .ax-data-table-wrapper table tbody td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem;background-color:rgba(var(--ax-comp-data-table-skeleton-bg-color))}ax-data-table .ax-data-table-wrapper table tfoot tr td{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-footer-bg-color));color:rgba(var(--ax-comp-data-table-footer-text-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;height:2.5rem}ax-data-table .ax-data-table-wrapper table tfoot tr td.ax-interactive{cursor:pointer}ax-data-table .ax-data-table-wrapper table tfoot tr td.ax-interactive:hover{background-color:rgba(var(--ax-comp-data-table-interactive-bg-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell{position:sticky;z-index:2;border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table .ax-data-table-wrapper table tfoot.ax-data-table-sticky-footer{position:sticky;bottom:-1px;border-top:none;border-bottom:none;z-index:3;box-shadow:1px 0 rgba(var(--ax-comp-data-table-border-color)),0 -1px rgba(var(--ax-comp-data-table-border-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table .sticky-end{inset-inline-end:var(--sticky-end)}ax-data-table .ax-data-table-wrapper table .sticky-start{inset-inline-start:var(--sticky-start)}}ax-data-table ax-data-pager{justify-content:center}ax-data-table .ax-table-footer{border-top-width:1px;border-collapse:collapse;overflow:hidden;border-color:rgba(var(--ax-comp-data-table-border-color));padding-inline-start:.875rem;padding-inline-end:.875rem;min-height:max-content}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}ax-data-table .ax-data-table-numeric-paging{display:none}ax-data-table .ax-data-table-input-paging{display:flex}ax-data-table .ax-data-table-info{display:none}@media (min-width: 1024px){ax-data-table .ax-data-table-numeric-paging{display:flex}ax-data-table .ax-data-table-input-paging{display:none}}@media (min-width: 768px){ax-data-table .ax-data-table-info{display:flex;align-items:center}ax-data-table ax-data-pager{justify-content:space-between}}.cdk-drag-preview{border-bottom-width:1px;border-inline-end-width:1px;box-shadow:0 5px 5px -3px rgba(var(--ax-sys-color-primary-900),.2),0 8px 10px 1px rgba(var(--ax-sys-color-primary-900),.14),0 3px 14px 2px rgba(var(--ax-sys-color-primary-900),.12);border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-surface-fore));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative}.ax-dropdown-command-empty-state-text{color:rgba(var(--ax-sys-color-on-surface-variant-500));font-size:.75rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: AXDataPagerComponent, selector: "ax-data-pager", inputs: ["value", "name", "disabled", "readonly", "isLoading", "size", "total", "displayMode"], outputs: ["valueChange", "onValueChanged", "disabledChange", "readonlyChange", "displayModeChange", "onChanged"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXDataPagerNumericSelectorComponent, selector: "ax-data-pager-numeric-selector" }, { kind: "component", type: AXDataPagerPageSizesComponent, selector: "ax-data-pager-page-sizes", inputs: ["sizes"] }, { kind: "component", type: AXDataPagerPrevButtonsComponent, selector: "ax-data-pager-prev-buttons" }, { kind: "component", type: AXDataPagerInputSelectorComponent, selector: "ax-data-pager-input-selector" }, { kind: "component", type: AXDataPagerNextButtonsComponent, selector: "ax-data-pager-next-buttons" }, { kind: "component", type: AXDataPagerInfoComponent, selector: "ax-data-pager-info", inputs: ["text"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2222
2269
  }
2223
2270
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXDataTableComponent, decorators: [{
2224
2271
  type: Component,
@@ -2246,7 +2293,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
2246
2293
  AsyncPipe,
2247
2294
  AXTranslatorPipe,
2248
2295
  AXTooltipDirective
2249
- ], template: "<ng-content select=\"ax-header\"> </ng-content>\n<div class=\"ax-data-table-wrapper\">\n <table>\n @if (showHeader) {\n <thead [ngClass]=\"{ 'ax-data-table-sticky-header': fixedHeader }\">\n <tr\n [cdkDropListDisabled]=\"!allowReordering\"\n cdkDropList\n cdkScrollable\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @for (c of startFixedColumnsList(); track $index) {\n <th\n cdkDrag\n [cdkDragDisabled]=\"true\"\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell sticky-start\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </th>\n }\n @for (c of normalColumnsList(); track $index) {\n <th\n cdkDrag\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n @if (c.allowResizing && !c.fixed) {\n <div\n class=\"ax-resize-handle\"\n (mousedown)=\"onResizeColumnStart($event, this.startFixedColumnsList().length + $index)\"\n (dblclick)=\"onResizeHandlerDoubleClick($event, this.startFixedColumnsList().length + $index)\"\n title=\"Double-click to auto-fit column width\"\n ></div>\n }\n </th>\n }\n <th></th>\n @for (c of endFixedColumnsList(); track $index) {\n <th\n cdkDrag\n [cdkDragDisabled]=\"true\"\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell sticky-end\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody [ngClass]=\"{ 'ax-data-table-row-alternative': alternative }\">\n @if (showNoDataLoadedYet) {\n <tr style=\"display: inherit\">\n <td class=\"ax-data-table-empty-data\" [attr.colspan]=\"columnsList().length + 1\">\n @if (noDataTemplate) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate\"></ng-container>\n } @else {\n <span>{{ '@acorex:common.general.no-data-yet' | translate | async }}</span>\n }\n </td>\n </tr>\n } @else if (!displayedRows().length) {\n <tr style=\"display: inherit\">\n <td class=\"ax-data-table-empty-data\" [attr.colspan]=\"columnsList().length + 1\">\n @if (emptyTemplate) {\n <ng-container [ngTemplateOutlet]=\"emptyTemplate\"></ng-container>\n } @else {\n <span>{{ '@acorex:common.general.no-record' | translate | async }}</span>\n }\n </td>\n </tr>\n } @else {\n @for (row of displayedRows(); let rowIndex = $index; track rowIndex) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemp\"\n [ngTemplateOutletContext]=\"{ data: { row, rowIndex } }\"\n ></ng-container>\n }\n\n <ng-template #rowTemp let-data=\"data\">\n @if (rowTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: data.row, rowIndex: data.rowIndex } }\"\n >\n </ng-container>\n } @else {\n <tr\n [class.ax-state-focused]=\"focusedRow && data.row === focusedRow\"\n [attr.data-index]=\"data.rowIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(data.row)\"\n style.height=\"{{ itemHeight }}px\"\n style.max-height=\"{{ itemHeight }}px\"\n (click)=\"handleRowClick($event, data.row)\"\n >\n @for (c of startFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-start]=\"true\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </td>\n }\n @for (c of normalColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n <span\n class=\"ax-data-table-cell-tooltip-wrapper\"\n [axTooltip]=\"data.row && !isLoading() ? getCellTooltipText(c, data.row) || null : null\"\n >\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </span>\n </td>\n }\n <td><div class=\"ax-bg\"></div></td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-end]=\"true\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </td>\n }\n </tr>\n @if (data.row?.__meta__?.expanded) {\n @if (rowDetailsTemplate) {\n <tr>\n @for (c of startFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-start]=\"true\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-bg\"></div>\n </td>\n }\n <td class=\"ax-data-table-row-details\" [attr.colspan]=\"normalColumnsList().length + 1\">\n <ng-container\n [ngTemplateOutlet]=\"rowDetailsTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: data.row, rowIndex: data.rowIndex } }\"\n ></ng-container>\n </td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-end]=\"true\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-bg\"></div>\n </td>\n }\n </tr>\n }\n @for (childRow of data.row.children; let childRowIndex = $index; track childRowIndex) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemp\"\n [ngTemplateOutletContext]=\"{ data: { row: childRow, rowIndex: childRowIndex } }\"\n ></ng-container>\n }\n }\n }\n </ng-template>\n\n <tr class=\"empty-row\"></tr>\n }\n </tbody>\n @if (showFooter) {\n <tfoot [ngClass]=\"{ 'ax-data-table-sticky-footer': fixedFooter }\">\n <tr>\n @for (c of startFixedColumnsList(); track $index) {\n <td\n class=\"ax-data-table-sticky-footer-cell sticky-start\"\n [class.ax-data-table-sticky-footer-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </td>\n }\n @for (c of normalColumnsList(); track $index) {\n <td\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n @if (c.allowResizing && !c.fixed) {\n <div\n class=\"ax-resize-handle\"\n (mousedown)=\"onResizeColumnStart($event, this.startFixedColumnsList().length + $index)\"\n (dblclick)=\"onResizeHandlerDoubleClick($event, this.startFixedColumnsList().length + $index)\"\n title=\"Double-click to auto-fit column width\"\n ></div>\n }\n </td>\n }\n <td></td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n class=\"ax-data-table-sticky-footer-cell sticky-end\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </td>\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n@if (paging) {\n <div class=\"ax-table-footer\" #footerContainer>\n <ng-template #customPager>\n <ng-content select=\"ax-data-pager\"></ng-content>\n </ng-template>\n\n @if (customDataPager) {\n <ng-container [ngTemplateOutlet]=\"customPager\"></ng-container>\n } @else {\n <ax-data-pager\n #dataPager\n [displayMode]=\"'custom'\"\n (onChanged)=\"handleChangePage($event)\"\n [total]=\"dataSource.totalCount\"\n [size]=\"dataSource.pageSize\"\n [isLoading]=\"isLoading()\"\n >\n <ax-prefix class=\"ax-data-table-numeric-paging\">\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-prefix class=\"ax-data-table-input-paging\">\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix class=\"ax-data-table-info\">\n <ax-data-pager-info> </ax-data-pager-info>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh({ reset: false })\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-data-pager>\n }\n </div>\n}\n<ng-content select=\"ax-footer\"> </ng-content>\n", styles: ["ax-data-table{--ax-comp-data-table-font-size: .875rem;--ax-comp-data-table-line-height: 1rem;--ax-comp-data-table-border-color: var(--ax-sys-color-border-surface);--ax-comp-data-table-border-radius: var(--ax-sys-border-radius);--ax-comp-data-table-column-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-data-table-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-header-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-data-table-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-footer-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-data-table-hover-bg-color: var(--ax-sys-color-primary-lightest-surface);--ax-comp-data-table-hover-text-color: var(--ax-sys-color-on-primary-lightest-surface);--ax-comp-data-table-focus-bg-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-data-table-selected-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-selected-hover-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-index-bg-color: var(--ax-sys-color-light-surface);--ax-comp-data-table-index-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-alternative-bg-color: var(--ax-sys-color-light-surface);--ax-comp-data-table-alternative-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-skeleton-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-data-table-handler-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-interactive-bg-color: var(--ax-sys-color-light-surface)}.ax-dark ax-data-table{--ax-comp-data-table-column-bg-color: var(--ax-sys-color-darkest-surface);--ax-comp-data-table-header-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-data-table-header-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-data-table-footer-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-data-table-footer-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-data-table-hover-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-hover-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-focus-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-selected-bg-color: var(--ax-sys-color-primary-dark-surface);--ax-comp-data-table-selected-hover-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-index-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-data-table-index-text-color: var(--ax-sys-color-on-dark-surface);--ax-comp-data-table-skeleton-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-alternative-bg-color: var(--ax-sys-color-surface);--ax-comp-data-table-alternative-text-color: var(--ax-sys-color-on-surface);--ax-comp-data-table-handler-bg-color: var(--ax-sys-color-primary-dark-surface)}@media screen and (min-width: 768px){html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-start{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-start.ax-state-is-last{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-end{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-end.ax-state-is-first{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}}@media screen and (min-width: 768px){html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-start{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-start.ax-state-is-last{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-end{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-end.ax-state-is-first{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table{display:flex;flex-direction:column;height:100%;width:100%;font-size:var(--ax-comp-data-table-font-size);line-height:var(--ax-comp-data-table-line-height);border-radius:var(--ax-comp-data-table-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-data-table-border-color));position:relative;min-height:inherit;overflow:hidden}ax-data-table td.ax-data-table-empty-data{background:transparent!important;position:absolute!important;padding:2rem 1rem;text-align:center;vertical-align:middle;height:8rem;border-bottom:none;top:50%;transform:translateY(-50%);width:100%}ax-data-table td.ax-data-table-empty-data span{color:rgb(var(--ax-sys-color-ghost-500));font-size:var(--ax-comp-data-table-font-size);display:flex;height:100%;align-items:center;justify-content:center}ax-data-table .ax-data-table-wrapper{overflow:auto;width:100%;flex:1;border-radius:var(--ax-comp-data-table-border-radius)}ax-data-table .ax-data-table-wrapper table{display:table;height:100%;width:100%;table-layout:fixed;overflow-x:auto}ax-data-table .ax-data-table-wrapper table thead{overflow:hidden;border-start-end-radius:var(--ax-comp-data-table-border-radius);border-start-start-radius:var(--ax-comp-data-table-border-radius)}ax-data-table .ax-data-table-wrapper table thead th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-header-bg-color));color:rgba(var(--ax-comp-data-table-header-text-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;height:2.5rem}ax-data-table .ax-data-table-wrapper table thead th.ax-interactive{cursor:pointer}ax-data-table .ax-data-table-wrapper table thead th.ax-interactive:hover{background-color:rgba(var(--ax-comp-data-table-interactive-bg-color))}ax-data-table .ax-data-table-wrapper table thead th .ax-resize-handle{position:absolute;inset-inline-end:0px;top:0;bottom:0;width:.25rem;height:100%;cursor:col-resize;background:transparent}ax-data-table .ax-data-table-wrapper table thead th .ax-resize-handle:hover{background-color:rgba(var(--ax-comp-data-table-handler-bg-color))}ax-data-table .ax-data-table-wrapper table thead th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-data-table .ax-data-table-wrapper table thead th:last-child{border-inline-end-width:0px}ax-data-table .ax-data-table-wrapper table thead.ax-data-table-sticky-header{position:sticky;top:0;border-top:none;border-bottom:none;z-index:3;box-shadow:inset 1px 1px 0 2px rgba(var(--ax-comp-data-table-border-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell{position:sticky;z-index:2;border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell{position:sticky;z-index:2;background-color:rgba(var(--ax-comp-data-table-column-bg-color));border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table .ax-data-table-wrapper table tbody tr td{z-index:0;position:relative}ax-data-table .ax-data-table-wrapper table tbody tr td .ax-data-table-cell-tooltip-wrapper{position:relative;min-height:inherit}ax-data-table .ax-data-table-wrapper table tbody tr td .ax-bg{top:0;left:0;z-index:-1;width:100%;height:100%;position:absolute;border-inline-end:1px solid rgba(var(--ax-comp-data-table-border-color));background-color:transparent;opacity:.3}ax-data-table .ax-data-table-wrapper table tbody .empty-row{height:auto!important}ax-data-table .ax-data-table-wrapper table tbody.ax-data-table-row-alternative tr:nth-child(2n) td{background-color:rgba(var(--ax-comp-data-table-alternative-bg-color));color:rgba(var(--ax-comp-data-table-alternative-text-color))}ax-data-table .ax-data-table-wrapper table tbody.ax-data-table-row-alternative tr:nth-child(2n) ax-skeleton{width:25%}ax-data-table .ax-data-table-wrapper table tbody tr{height:2.5rem;max-height:2.5rem}ax-data-table .ax-data-table-wrapper table tbody tr:hover td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-hover-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr:hover td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-hover-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-focused td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-focus-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-focused td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-focus-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-selected-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-selected-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected:hover td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-selected-hover-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected:hover td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-selected-hover-bg-color))}ax-data-table .ax-data-table-wrapper table tbody td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-column-bg-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}ax-data-table .ax-data-table-wrapper table tbody td .ax-expand-handler{padding-inline-start:.25rem;padding-inline-end:.25rem;cursor:pointer}ax-data-table .ax-data-table-wrapper table tbody td .ax-expand-handler.has-parent{padding-inline-start:1.5rem!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-comp-data-table-index-bg-color));color:rgba(var(--ax-comp-data-table-index-text-color));text-align:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column{text-align:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button{--ax-comp-button-font-size: .75rem;--ax-comp-button-padding-x: .25rem;--ax-comp-button-decorator-padding-x: .25rem;--ax-comp-button-icon-only-font-size: .875rem;--ax-sys-size-base: 1.5rem;margin-left:.25rem;margin-right:.25rem}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button ax-loading .ax-loader{width:.75rem!important;height:.75rem!important;border-width:2px!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-comp-data-table-border-radius);border-style:none;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:transparent;padding:.25rem;color:rgba(var(--ax-color-ghost-fore))}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover:not(ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover.ax-state-selected,ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover.ax-state-disabled){opacity:.75}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:active{opacity:1}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-data-table .ax-data-table-wrapper table tbody td:last-child{border-inline-end-width:0px}ax-data-table .ax-data-table-wrapper table tbody td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem;background-color:rgba(var(--ax-comp-data-table-skeleton-bg-color))}ax-data-table .ax-data-table-wrapper table tfoot tr td{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-footer-bg-color));color:rgba(var(--ax-comp-data-table-footer-text-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;height:2.5rem}ax-data-table .ax-data-table-wrapper table tfoot tr td.ax-interactive{cursor:pointer}ax-data-table .ax-data-table-wrapper table tfoot tr td.ax-interactive:hover{background-color:rgba(var(--ax-comp-data-table-interactive-bg-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell{position:sticky;z-index:2;border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table .ax-data-table-wrapper table tfoot.ax-data-table-sticky-footer{position:sticky;bottom:-1px;border-top:none;border-bottom:none;z-index:3;box-shadow:1px 0 rgba(var(--ax-comp-data-table-border-color)),0 -1px rgba(var(--ax-comp-data-table-border-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table .sticky-end{inset-inline-end:var(--sticky-end)}ax-data-table .ax-data-table-wrapper table .sticky-start{inset-inline-start:var(--sticky-start)}}ax-data-table ax-data-pager{justify-content:center}ax-data-table .ax-table-footer{border-top-width:1px;border-collapse:collapse;overflow:hidden;border-color:rgba(var(--ax-comp-data-table-border-color));padding-inline-start:.875rem;padding-inline-end:.875rem}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}ax-data-table .ax-data-table-numeric-paging{display:none}ax-data-table .ax-data-table-input-paging{display:flex}ax-data-table .ax-data-table-info{display:none}@media (min-width: 1024px){ax-data-table .ax-data-table-numeric-paging{display:flex}ax-data-table .ax-data-table-input-paging{display:none}}@media (min-width: 768px){ax-data-table .ax-data-table-info{display:flex;align-items:center}ax-data-table ax-data-pager{justify-content:space-between}}.cdk-drag-preview{border-bottom-width:1px;border-inline-end-width:1px;box-shadow:0 5px 5px -3px rgba(var(--ax-sys-color-primary-900),.2),0 8px 10px 1px rgba(var(--ax-sys-color-primary-900),.14),0 3px 14px 2px rgba(var(--ax-sys-color-primary-900),.12);border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-surface-fore));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative}.ax-dropdown-command-empty-state-text{color:rgba(var(--ax-sys-color-on-surface-variant-500));font-size:.75rem}\n"] }]
2296
+ ], template: "<ng-content select=\"ax-header\"> </ng-content>\n<div class=\"ax-data-table-wrapper\">\n <table>\n @if (showHeader) {\n <thead [ngClass]=\"{ 'ax-data-table-sticky-header': fixedHeader }\">\n <tr\n [cdkDropListDisabled]=\"!allowReordering\"\n cdkDropList\n cdkScrollable\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @for (c of startFixedColumnsList(); track $index) {\n <th\n cdkDrag\n [cdkDragDisabled]=\"true\"\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell sticky-start\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </th>\n }\n @for (c of normalColumnsList(); track $index) {\n <th\n cdkDrag\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n @if (c.allowResizing && !c.fixed) {\n <div\n class=\"ax-resize-handle\"\n (mousedown)=\"onResizeColumnStart($event, this.startFixedColumnsList().length + $index)\"\n (dblclick)=\"onResizeHandlerDoubleClick($event, this.startFixedColumnsList().length + $index)\"\n title=\"Double-click to auto-fit column width\"\n ></div>\n }\n </th>\n }\n <th></th>\n @for (c of endFixedColumnsList(); track $index) {\n <th\n cdkDrag\n [cdkDragDisabled]=\"true\"\n cdkDragLockAxis=\"x\"\n class=\"ax-data-table-head-cell sticky-end\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderHeaderTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody [ngClass]=\"{ 'ax-data-table-row-alternative': alternative }\">\n @if (showNoDataLoadedYet) {\n <tr style=\"display: inherit\">\n <td class=\"ax-data-table-empty-data\" [attr.colspan]=\"columnsList().length + 1\">\n @if (noDataTemplate) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate\"></ng-container>\n } @else {\n <span>{{ '@acorex:common.general.no-data-yet' | translate | async }}</span>\n }\n </td>\n </tr>\n } @else if (!displayedRows().length) {\n <tr style=\"display: inherit\">\n <td class=\"ax-data-table-empty-data\" [attr.colspan]=\"columnsList().length + 1\">\n @if (emptyTemplate) {\n <ng-container [ngTemplateOutlet]=\"emptyTemplate\"></ng-container>\n } @else {\n <span>{{ '@acorex:common.general.no-record' | translate | async }}</span>\n }\n </td>\n </tr>\n } @else {\n @for (row of displayedRows(); let rowIndex = $index; track rowIndex) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemp\"\n [ngTemplateOutletContext]=\"{ data: { row, rowIndex } }\"\n ></ng-container>\n }\n\n <ng-template #rowTemp let-data=\"data\">\n @if (rowTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: data.row, rowIndex: data.rowIndex } }\"\n >\n </ng-container>\n } @else {\n <tr\n [class.ax-state-focused]=\"focusedRow && data.row === focusedRow\"\n [attr.data-index]=\"data.rowIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(data.row)\"\n style.height=\"{{ itemHeight }}px\"\n style.max-height=\"{{ itemHeight }}px\"\n (click)=\"handleRowClick($event, data.row)\"\n >\n @for (c of startFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-start]=\"true\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </td>\n }\n @for (c of normalColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n <span\n class=\"ax-data-table-cell-tooltip-wrapper\"\n [axTooltip]=\"title && data.row && !isLoading() ? getCellTooltipText(c, data.row) || null : null\"\n >\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </span>\n </td>\n }\n <td><div class=\"ax-bg\"></div></td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-end]=\"true\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n [attr.data-label]=\"c.caption\"\n tabindex=\"0\"\n [class]=\"c.cssClass\"\n >\n <div class=\"ax-bg\"></div>\n @if (data.row && !isLoading()) {\n <ng-container\n [ngTemplateOutlet]=\"c.renderCellTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { data: data.row, rowIndex: calculateRowIndex(data.rowIndex) },\n }\"\n ></ng-container>\n } @else {\n @if (c.loadingEnabled && loading.enabled) {\n @if (loading.loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loading.loadingTemplate\"></ng-container>\n } @else {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n }\n </td>\n }\n </tr>\n @if (data.row?.__meta__?.expanded) {\n @if (rowDetailsTemplate) {\n <tr>\n @for (c of startFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-start]=\"true\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-bg\"></div>\n </td>\n }\n <td class=\"ax-data-table-row-details\" [attr.colspan]=\"normalColumnsList().length + 1\">\n <ng-container\n [ngTemplateOutlet]=\"rowDetailsTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: data.row, rowIndex: data.rowIndex } }\"\n ></ng-container>\n </td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n [style.width]=\"c.width\"\n [class.ax-data-table-sticky-body-cell]=\"c.fixed && c.width\"\n [class.sticky-end]=\"true\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-bg\"></div>\n </td>\n }\n </tr>\n }\n @for (childRow of data.row.children; let childRowIndex = $index; track childRowIndex) {\n <ng-container\n [ngTemplateOutlet]=\"rowTemp\"\n [ngTemplateOutletContext]=\"{ data: { row: childRow, rowIndex: childRowIndex } }\"\n ></ng-container>\n }\n }\n }\n </ng-template>\n\n <tr class=\"empty-row\"></tr>\n }\n </tbody>\n @if (showFooter) {\n <tfoot [ngClass]=\"{ 'ax-data-table-sticky-footer': fixedFooter }\">\n <tr>\n @for (c of startFixedColumnsList(); track $index) {\n <td\n class=\"ax-data-table-sticky-footer-cell sticky-start\"\n [class.ax-data-table-sticky-footer-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-last]=\"c['isLastFixedColumn']\"\n [style.--sticky-start]=\"c['stickyStart']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </td>\n }\n @for (c of normalColumnsList(); track $index) {\n <td\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n @if (c.allowResizing && !c.fixed) {\n <div\n class=\"ax-resize-handle\"\n (mousedown)=\"onResizeColumnStart($event, this.startFixedColumnsList().length + $index)\"\n (dblclick)=\"onResizeHandlerDoubleClick($event, this.startFixedColumnsList().length + $index)\"\n title=\"Double-click to auto-fit column width\"\n ></div>\n }\n </td>\n }\n <td></td>\n @for (c of endFixedColumnsList(); track $index) {\n <td\n class=\"ax-data-table-sticky-footer-cell sticky-end\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [class.ax-data-table-sticky-header-cell]=\"c.fixed && c.width\"\n [style.width]=\"c.width\"\n [class.ax-state-is-first]=\"c['isFirstFixedColumn']\"\n [style.--sticky-end]=\"c['stickyEnd']\"\n >\n <div class=\"ax-caption\">\n <ng-container\n [ngTemplateOutlet]=\"c.renderFooterTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: c, rows: displayedRows(), rowIndex: $index } }\"\n ></ng-container>\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n </td>\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n@if (paging) {\n <div class=\"ax-table-footer\" #footerContainer>\n <ng-template #customPager>\n <ng-content select=\"ax-data-pager\"></ng-content>\n </ng-template>\n\n @if (customDataPager) {\n <ng-container [ngTemplateOutlet]=\"customPager\"></ng-container>\n } @else {\n <ax-data-pager\n #dataPager\n [displayMode]=\"'custom'\"\n (onChanged)=\"handleChangePage($event)\"\n [total]=\"dataSource.totalCount\"\n [size]=\"dataSource.pageSize\"\n [isLoading]=\"isLoading()\"\n >\n <ax-prefix class=\"ax-data-table-numeric-paging\">\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-prefix class=\"ax-data-table-input-paging\">\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix class=\"ax-data-table-info\">\n <ax-data-pager-info> </ax-data-pager-info>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh({ reset: false })\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-data-pager>\n }\n </div>\n}\n<ng-content select=\"ax-footer\"> </ng-content>\n", styles: ["ax-data-table{--ax-comp-data-table-font-size: .875rem;--ax-comp-data-table-line-height: 1rem;--ax-comp-data-table-border-color: var(--ax-sys-color-border-surface);--ax-comp-data-table-border-radius: var(--ax-sys-border-radius);--ax-comp-data-table-column-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-data-table-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-header-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-data-table-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-footer-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-data-table-hover-bg-color: var(--ax-sys-color-primary-lightest-surface);--ax-comp-data-table-hover-text-color: var(--ax-sys-color-on-primary-lightest-surface);--ax-comp-data-table-focus-bg-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-data-table-selected-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-selected-hover-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-index-bg-color: var(--ax-sys-color-light-surface);--ax-comp-data-table-index-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-alternative-bg-color: var(--ax-sys-color-light-surface);--ax-comp-data-table-alternative-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-skeleton-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-data-table-handler-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-interactive-bg-color: var(--ax-sys-color-light-surface)}.ax-dark ax-data-table{--ax-comp-data-table-column-bg-color: var(--ax-sys-color-darkest-surface);--ax-comp-data-table-header-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-data-table-header-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-data-table-footer-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-data-table-footer-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-data-table-hover-bg-color: var(--ax-sys-color-primary-light-surface);--ax-comp-data-table-hover-text-color: var(--ax-sys-color-on-light-surface);--ax-comp-data-table-focus-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-selected-bg-color: var(--ax-sys-color-primary-dark-surface);--ax-comp-data-table-selected-hover-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-data-table-index-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-data-table-index-text-color: var(--ax-sys-color-on-dark-surface);--ax-comp-data-table-skeleton-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-data-table-alternative-bg-color: var(--ax-sys-color-surface);--ax-comp-data-table-alternative-text-color: var(--ax-sys-color-on-surface);--ax-comp-data-table-handler-bg-color: var(--ax-sys-color-primary-dark-surface)}@media screen and (min-width: 768px){html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-start{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-start.ax-state-is-last{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-end{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table thead th.ax-data-table-sticky-header-cell.sticky-end.ax-state-is-first{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}}@media screen and (min-width: 768px){html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-start{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-start.ax-state-is-last{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-end{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}html[dir=rtl] ax-data-table .ax-data-table-wrapper table tbody td.ax-data-table-sticky-body-cell.sticky-end.ax-state-is-first{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table{display:flex;flex-direction:column;height:100%;width:100%;font-size:var(--ax-comp-data-table-font-size);line-height:var(--ax-comp-data-table-line-height);border-radius:var(--ax-comp-data-table-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-data-table-border-color));position:relative;min-height:inherit;overflow:hidden}ax-data-table td.ax-data-table-empty-data{background:transparent!important;position:absolute!important;padding:2rem 1rem;text-align:center;vertical-align:middle;height:8rem;border-bottom:none;top:50%;transform:translateY(-50%);width:100%}ax-data-table td.ax-data-table-empty-data span{color:rgb(var(--ax-sys-color-ghost-500));font-size:var(--ax-comp-data-table-font-size);display:flex;height:100%;align-items:center;justify-content:center}ax-data-table .ax-data-table-wrapper{overflow:auto;width:100%;flex:1;border-radius:var(--ax-comp-data-table-border-radius)}ax-data-table .ax-data-table-wrapper table{display:table;height:100%;width:100%;table-layout:fixed;overflow-x:auto}ax-data-table .ax-data-table-wrapper table thead{overflow:hidden;border-start-end-radius:var(--ax-comp-data-table-border-radius);border-start-start-radius:var(--ax-comp-data-table-border-radius)}ax-data-table .ax-data-table-wrapper table thead th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-header-bg-color));color:rgba(var(--ax-comp-data-table-header-text-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;height:2.5rem}ax-data-table .ax-data-table-wrapper table thead th.ax-interactive{cursor:pointer}ax-data-table .ax-data-table-wrapper table thead th.ax-interactive:hover{background-color:rgba(var(--ax-comp-data-table-interactive-bg-color))}ax-data-table .ax-data-table-wrapper table thead th .ax-resize-handle{position:absolute;inset-inline-end:0px;top:0;bottom:0;width:.25rem;height:100%;cursor:col-resize;background:transparent}ax-data-table .ax-data-table-wrapper table thead th .ax-resize-handle:hover{background-color:rgba(var(--ax-comp-data-table-handler-bg-color))}ax-data-table .ax-data-table-wrapper table thead th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-data-table .ax-data-table-wrapper table thead th:last-child{border-inline-end-width:0px}ax-data-table .ax-data-table-wrapper table thead.ax-data-table-sticky-header{position:sticky;top:0;border-top:none;border-bottom:none;z-index:3;box-shadow:inset 1px 1px 0 2px rgba(var(--ax-comp-data-table-border-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell{position:sticky;z-index:2;border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table thead .ax-data-table-sticky-header-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell{position:sticky;z-index:2;background-color:rgba(var(--ax-comp-data-table-column-bg-color));border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tbody tr .ax-data-table-sticky-body-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table .ax-data-table-wrapper table tbody tr td{z-index:0;position:relative}ax-data-table .ax-data-table-wrapper table tbody tr td .ax-data-table-cell-tooltip-wrapper{position:relative;min-height:inherit}ax-data-table .ax-data-table-wrapper table tbody tr td .ax-bg{top:0;left:0;z-index:-1;width:100%;height:100%;position:absolute;border-inline-end:1px solid rgba(var(--ax-comp-data-table-border-color));background-color:transparent;opacity:.3}ax-data-table .ax-data-table-wrapper table tbody .empty-row{height:auto!important}ax-data-table .ax-data-table-wrapper table tbody.ax-data-table-row-alternative tr:nth-child(2n) td{background-color:rgba(var(--ax-comp-data-table-alternative-bg-color));color:rgba(var(--ax-comp-data-table-alternative-text-color))}ax-data-table .ax-data-table-wrapper table tbody.ax-data-table-row-alternative tr:nth-child(2n) ax-skeleton{width:25%}ax-data-table .ax-data-table-wrapper table tbody tr{height:2.5rem;max-height:2.5rem}ax-data-table .ax-data-table-wrapper table tbody tr:hover td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-hover-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr:hover td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-hover-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-focused td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-focus-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-focused td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-focus-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-selected-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-selected-bg-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected:hover td:not(.ax-index-column){color:rgba(var(--ax-comp-data-table-selected-hover-text-color))}ax-data-table .ax-data-table-wrapper table tbody tr.ax-state-selected:hover td:not(.ax-index-column) .ax-bg{background-color:rgba(var(--ax-comp-data-table-selected-hover-bg-color))}ax-data-table .ax-data-table-wrapper table tbody td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-column-bg-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.5rem;padding-bottom:.5rem;vertical-align:middle}ax-data-table .ax-data-table-wrapper table tbody td .ax-expand-handler{padding-inline-start:.25rem;padding-inline-end:.25rem;cursor:pointer}ax-data-table .ax-data-table-wrapper table tbody td .ax-expand-handler.has-parent{padding-inline-start:1.5rem!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-comp-data-table-index-bg-color));color:rgba(var(--ax-comp-data-table-index-text-color));text-align:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column{text-align:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button{--ax-comp-button-font-size: .75rem;--ax-comp-button-padding-x: .25rem;--ax-comp-button-decorator-padding-x: .25rem;--ax-comp-button-icon-only-font-size: .875rem;--ax-sys-size-base: 1.5rem;margin-left:.25rem;margin-right:.25rem}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button ax-loading .ax-loader{width:.75rem!important;height:.75rem!important;border-width:2px!important}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-comp-data-table-border-radius);border-style:none;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:transparent;padding:.25rem;color:rgba(var(--ax-color-ghost-fore))}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover:not(ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover.ax-state-selected,ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:hover.ax-state-disabled){opacity:.75}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button:active{opacity:1}ax-data-table .ax-data-table-wrapper table tbody td.ax-command-column ax-button button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-data-table .ax-data-table-wrapper table tbody td:last-child{border-inline-end-width:0px}ax-data-table .ax-data-table-wrapper table tbody td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem;background-color:rgba(var(--ax-comp-data-table-skeleton-bg-color))}ax-data-table .ax-data-table-wrapper table tfoot tr td{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-comp-data-table-footer-bg-color));color:rgba(var(--ax-comp-data-table-footer-text-color));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;height:2.5rem}ax-data-table .ax-data-table-wrapper table tfoot tr td.ax-interactive{cursor:pointer}ax-data-table .ax-data-table-wrapper table tfoot tr td.ax-interactive:hover{background-color:rgba(var(--ax-comp-data-table-interactive-bg-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell{position:sticky;z-index:2;border-inline-start:none;border-inline-end:none}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-start{box-shadow:inset -1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-start.ax-state-is-last{box-shadow:inset -2px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-end{box-shadow:inset 1px 0 rgba(var(--ax-comp-data-table-border-color))}ax-data-table .ax-data-table-wrapper table tfoot tr .ax-data-table-sticky-footer-cell.sticky-end.ax-state-is-first{box-shadow:inset 2px 0 rgba(var(--ax-comp-data-table-border-color))}}ax-data-table .ax-data-table-wrapper table tfoot.ax-data-table-sticky-footer{position:sticky;bottom:-1px;border-top:none;border-bottom:none;z-index:3;box-shadow:1px 0 rgba(var(--ax-comp-data-table-border-color)),0 -1px rgba(var(--ax-comp-data-table-border-color))}@media screen and (min-width: 768px){ax-data-table .ax-data-table-wrapper table .sticky-end{inset-inline-end:var(--sticky-end)}ax-data-table .ax-data-table-wrapper table .sticky-start{inset-inline-start:var(--sticky-start)}}ax-data-table ax-data-pager{justify-content:center}ax-data-table .ax-table-footer{border-top-width:1px;border-collapse:collapse;overflow:hidden;border-color:rgba(var(--ax-comp-data-table-border-color));padding-inline-start:.875rem;padding-inline-end:.875rem;min-height:max-content}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}ax-data-table .ax-data-table-numeric-paging{display:none}ax-data-table .ax-data-table-input-paging{display:flex}ax-data-table .ax-data-table-info{display:none}@media (min-width: 1024px){ax-data-table .ax-data-table-numeric-paging{display:flex}ax-data-table .ax-data-table-input-paging{display:none}}@media (min-width: 768px){ax-data-table .ax-data-table-info{display:flex;align-items:center}ax-data-table ax-data-pager{justify-content:space-between}}.cdk-drag-preview{border-bottom-width:1px;border-inline-end-width:1px;box-shadow:0 5px 5px -3px rgba(var(--ax-sys-color-primary-900),.2),0 8px 10px 1px rgba(var(--ax-sys-color-primary-900),.14),0 3px 14px 2px rgba(var(--ax-sys-color-primary-900),.12);border-style:solid;border-color:rgba(var(--ax-comp-data-table-border-color));background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-surface-fore));padding-inline-start:1rem;padding-inline-end:1rem;padding-top:.75rem;padding-bottom:.75rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative}.ax-dropdown-command-empty-state-text{color:rgba(var(--ax-sys-color-on-surface-variant-500));font-size:.75rem}\n"] }]
2250
2297
  }], propDecorators: { dataPager: [{
2251
2298
  type: ViewChild,
2252
2299
  args: ['dataPager']