@ng-nest/ui 15.0.4 → 15.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/core/config/config.d.ts +2 -0
  2. package/dropdown/dropdown-portal.component.d.ts +4 -0
  3. package/esm2020/core/config/config.mjs +1 -1
  4. package/esm2020/dropdown/dropdown-portal.component.mjs +16 -4
  5. package/esm2020/input/input.component.mjs +2 -2
  6. package/esm2020/pagination/pagination.component.mjs +33 -4
  7. package/esm2020/pagination/pagination.property.mjs +15 -3
  8. package/esm2020/table/table-body.component.mjs +6 -6
  9. package/esm2020/table/table-head.component.mjs +46 -7
  10. package/esm2020/table/table.component.mjs +16 -5
  11. package/esm2020/table/table.module.mjs +5 -1
  12. package/esm2020/table/table.property.mjs +23 -2
  13. package/esm2020/transfer/transfer.component.mjs +130 -20
  14. package/esm2020/transfer/transfer.module.mjs +12 -4
  15. package/esm2020/transfer/transfer.property.mjs +11 -2
  16. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  17. package/fesm2015/ng-nest-ui-date-picker.mjs +1 -0
  18. package/fesm2015/ng-nest-ui-dropdown.mjs +15 -3
  19. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  20. package/fesm2015/ng-nest-ui-icon.mjs +1 -0
  21. package/fesm2015/ng-nest-ui-input.mjs +2 -2
  22. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  23. package/fesm2015/ng-nest-ui-pagination.mjs +46 -5
  24. package/fesm2015/ng-nest-ui-pagination.mjs.map +1 -1
  25. package/fesm2015/ng-nest-ui-select.mjs +1 -0
  26. package/fesm2015/ng-nest-ui-table.mjs +89 -16
  27. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  28. package/fesm2015/ng-nest-ui-transfer.mjs +154 -26
  29. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  30. package/fesm2015/ng-nest-ui-tree-file.mjs +1 -0
  31. package/fesm2015/ng-nest-ui-upload.mjs +1 -0
  32. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  33. package/fesm2020/ng-nest-ui-date-picker.mjs +1 -0
  34. package/fesm2020/ng-nest-ui-dropdown.mjs +15 -3
  35. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  36. package/fesm2020/ng-nest-ui-icon.mjs +1 -0
  37. package/fesm2020/ng-nest-ui-input.mjs +2 -2
  38. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  39. package/fesm2020/ng-nest-ui-pagination.mjs +46 -5
  40. package/fesm2020/ng-nest-ui-pagination.mjs.map +1 -1
  41. package/fesm2020/ng-nest-ui-select.mjs +1 -0
  42. package/fesm2020/ng-nest-ui-table.mjs +89 -16
  43. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  44. package/fesm2020/ng-nest-ui-transfer.mjs +151 -24
  45. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  46. package/fesm2020/ng-nest-ui-tree-file.mjs +1 -0
  47. package/fesm2020/ng-nest-ui-upload.mjs +1 -0
  48. package/package.json +1 -1
  49. package/pagination/pagination.component.d.ts +3 -1
  50. package/pagination/pagination.property.d.ts +13 -3
  51. package/table/table-head.component.d.ts +9 -1
  52. package/table/table.component.d.ts +4 -2
  53. package/table/table.module.d.ts +4 -3
  54. package/table/table.property.d.ts +26 -1
  55. package/transfer/transfer.component.d.ts +12 -2
  56. package/transfer/transfer.module.d.ts +3 -1
  57. package/transfer/transfer.property.d.ts +29 -4
@@ -13,6 +13,8 @@ import * as i4 from '@ng-nest/ui/outlet';
13
13
  import { XOutletModule } from '@ng-nest/ui/outlet';
14
14
  import * as i5$1 from '@ng-nest/ui/loading';
15
15
  import { XLoadingModule } from '@ng-nest/ui/loading';
16
+ import * as i7 from '@angular/cdk/drag-drop';
17
+ import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
16
18
  import * as i3 from '@angular/forms';
17
19
  import { FormsModule } from '@angular/forms';
18
20
  import * as i5 from '@ng-nest/ui/checkbox';
@@ -21,7 +23,7 @@ import * as i6 from '@ng-nest/ui/icon';
21
23
  import { XIconModule } from '@ng-nest/ui/icon';
22
24
  import * as i6$1 from '@ng-nest/ui/button';
23
25
  import { XButtonModule } from '@ng-nest/ui/button';
24
- import * as i7 from '@angular/cdk/scrolling';
26
+ import * as i7$1 from '@angular/cdk/scrolling';
25
27
  import { ScrollingModule } from '@angular/cdk/scrolling';
26
28
  import * as i8 from '@ng-nest/ui/empty';
27
29
  import { XEmptyModule } from '@ng-nest/ui/empty';
@@ -114,10 +116,25 @@ class XTableProperty extends XPaginationProperty {
114
116
  * @en_US Expanded node
115
117
  */
116
118
  this.expanded = [];
119
+ /**
120
+ * @zh_CN 列头拖动开始事件,返回拖动的列
121
+ * @en_US Column Header Drag End Event
122
+ */
123
+ this.columnDragStarted = new EventEmitter();
124
+ /**
125
+ * @zh_CN 列头拖动结束事件,返回拖动的列
126
+ * @en_US The column header is dragging, and the event is triggered when the order is changed
127
+ */
128
+ this.columnDragEnded = new EventEmitter();
129
+ /**
130
+ * @zh_CN 当用户把一个条目投放进该容器时就会触发,拖动放开的事件,返回拖动排序后的列数据
131
+ * @en_US The column header is dragging, and the event is triggered when the order is changed
132
+ */
133
+ this.columnDropListDropped = new EventEmitter();
117
134
  }
118
135
  }
119
136
  /** @nocollapse */ XTableProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
120
- /** @nocollapse */ XTableProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableProperty, selector: "ng-component", inputs: { data: "data", columns: "columns", rowHeight: "rowHeight", loading: "loading", bordered: "bordered", showHeader: "showHeader", headerPosition: "headerPosition", activatedRow: "activatedRow", headColumnTpl: "headColumnTpl", bodyColumnTpl: "bodyColumnTpl", bodyTdTpl: "bodyTdTpl", rowClass: "rowClass", headSearchTpl: "headSearchTpl", allowSelectRow: "allowSelectRow", allowCheckRow: "allowCheckRow", virtualScroll: "virtualScroll", bodyHeight: "bodyHeight", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", adaptionHeight: "adaptionHeight", docPercent: "docPercent", checkedRow: "checkedRow", manual: "manual", scroll: "scroll", header: "header", footer: "footer", cellConfig: "cellConfig", rowSize: "rowSize", paginationPosition: "paginationPosition", hiddenWrapBorder: "hiddenWrapBorder", hiddenPaginationBorder: "hiddenPaginationBorder", showPagination: "showPagination", treeTable: "treeTable", expandedAll: "expandedAll", expandedLevel: "expandedLevel", expanded: "expanded", expandTpl: "expandTpl" }, outputs: { activatedRowChange: "activatedRowChange", sortChange: "sortChange", headCheckboxChange: "headCheckboxChange", manualChange: "manualChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
137
+ /** @nocollapse */ XTableProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableProperty, selector: "ng-component", inputs: { data: "data", columns: "columns", rowHeight: "rowHeight", loading: "loading", bordered: "bordered", showHeader: "showHeader", headerPosition: "headerPosition", activatedRow: "activatedRow", headColumnTpl: "headColumnTpl", bodyColumnTpl: "bodyColumnTpl", bodyTdTpl: "bodyTdTpl", rowClass: "rowClass", headSearchTpl: "headSearchTpl", allowSelectRow: "allowSelectRow", allowCheckRow: "allowCheckRow", virtualScroll: "virtualScroll", bodyHeight: "bodyHeight", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", adaptionHeight: "adaptionHeight", docPercent: "docPercent", checkedRow: "checkedRow", manual: "manual", scroll: "scroll", header: "header", footer: "footer", cellConfig: "cellConfig", rowSize: "rowSize", paginationPosition: "paginationPosition", hiddenWrapBorder: "hiddenWrapBorder", hiddenPaginationBorder: "hiddenPaginationBorder", showPagination: "showPagination", treeTable: "treeTable", expandedAll: "expandedAll", expandedLevel: "expandedLevel", expanded: "expanded", expandTpl: "expandTpl" }, outputs: { activatedRowChange: "activatedRowChange", sortChange: "sortChange", headCheckboxChange: "headCheckboxChange", manualChange: "manualChange", columnDragStarted: "columnDragStarted", columnDragEnded: "columnDragEnded", columnDropListDropped: "columnDropListDropped" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
121
138
  __decorate([
122
139
  XWithConfig(X_CONFIG_NAME, 42),
123
140
  XInputNumber()
@@ -279,6 +296,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
279
296
  type: Input
280
297
  }], expandTpl: [{
281
298
  type: Input
299
+ }], columnDragStarted: [{
300
+ type: Output
301
+ }], columnDragEnded: [{
302
+ type: Output
303
+ }], columnDropListDropped: [{
304
+ type: Output
282
305
  }] } });
283
306
  /**
284
307
  * Table Head
@@ -579,6 +602,7 @@ class XTableHeadComponent extends XTableHeadProperty {
579
602
  this.sort = [];
580
603
  this.sortStr = '';
581
604
  this.theadStyle = {};
605
+ this.thClassMap = {};
582
606
  }
583
607
  get getRowHeight() {
584
608
  return this.rowHeight == 0 ? '' : this.rowHeight;
@@ -592,8 +616,14 @@ class XTableHeadComponent extends XTableHeadProperty {
592
616
  this.setStyle();
593
617
  }
594
618
  ngAfterViewInit() {
595
- this.table.thead.push(this.thead);
596
- this.table.headChange = () => this.cdr.detectChanges();
619
+ this.table.theads.push(this.thead);
620
+ this.table.theadsChange.push(() => this.cdr.detectChanges());
621
+ this.setThClassMap();
622
+ }
623
+ setThClassMap() {
624
+ this.thClassMap = {
625
+ [`${XTablePrefix}-th-${this.table.rowSize}`]: !XIsEmpty(this.table.rowSize)
626
+ };
597
627
  }
598
628
  getFlex(column) {
599
629
  if (column.width)
@@ -672,15 +702,45 @@ class XTableHeadComponent extends XTableHeadProperty {
672
702
  this.table.bodyChange();
673
703
  }
674
704
  }
705
+ dropListDropped(_event) {
706
+ this.dragChange();
707
+ this.table.columnDropListDropped.emit(this.columns);
708
+ }
709
+ dropListSorted(event) {
710
+ const previous = this.columns[event.previousIndex];
711
+ const current = this.columns[event.currentIndex];
712
+ const middle = { left: previous.left, right: previous.right };
713
+ previous.left = current.left;
714
+ previous.right = current.right;
715
+ current.left = middle.left;
716
+ current.right = middle.right;
717
+ moveItemInArray(this.columns, event.previousIndex, event.currentIndex);
718
+ this.dragChange();
719
+ }
720
+ dragStarted(_event, column) {
721
+ column.dragging = true;
722
+ this.dragChange();
723
+ this.table.theadsChanges();
724
+ this.table.columnDragStarted.emit(column);
725
+ }
726
+ dragEnded(column) {
727
+ column.dragging = false;
728
+ this.dragChange();
729
+ this.table.theadsChanges();
730
+ this.table.columnDragEnded.emit(column);
731
+ }
732
+ dragChange() {
733
+ this.table.bodyChange();
734
+ }
675
735
  trackByItem(_index, item) {
676
736
  return item.id;
677
737
  }
678
738
  }
679
739
  /** @nocollapse */ XTableHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableHeadComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
680
- /** @nocollapse */ XTableHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableHeadComponent, selector: "x-table-head", inputs: { table: "table" }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: XDragDirective, selector: "[xDrag]", outputs: ["draging"] }], encapsulation: i0.ViewEncapsulation.None });
740
+ /** @nocollapse */ XTableHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableHeadComponent, selector: "x-table-head", inputs: { table: "table" }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: XDragDirective, selector: "[xDrag]", outputs: ["draging"] }], encapsulation: i0.ViewEncapsulation.None });
681
741
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableHeadComponent, decorators: [{
682
742
  type: Component,
683
- args: [{ selector: `${XTableHeadPrefix}`, encapsulation: ViewEncapsulation.None, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n" }]
743
+ args: [{ selector: `${XTableHeadPrefix}`, encapsulation: ViewEncapsulation.None, template: "<thead #thead [ngStyle]=\"theadStyle\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n" }]
684
744
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { thead: [{
685
745
  type: ViewChild,
686
746
  args: ['thead']
@@ -764,8 +824,8 @@ class XTableBodyComponent extends XTableBodyProperty {
764
824
  const ele = x.srcElement;
765
825
  this.table.scrollTop = ele.scrollTop;
766
826
  this.table.scrollLeft = ele.scrollLeft;
767
- if (ele.scrollLeft >= 0 && this.table.thead.length > 0) {
768
- for (let thead of this.table.thead) {
827
+ if (ele.scrollLeft >= 0 && this.table.theads.length > 0) {
828
+ for (let thead of this.table.theads) {
769
829
  thead.nativeElement.scrollLeft = this.table.scrollLeft;
770
830
  }
771
831
  }
@@ -837,7 +897,7 @@ class XTableBodyComponent extends XTableBodyProperty {
837
897
  if (this.adaptionHeight > 0) {
838
898
  const captionHeight = ((_a = this.table.tcaption) === null || _a === void 0 ? void 0 : _a.nativeElement.clientHeight) || 0;
839
899
  let headHeight = 0;
840
- for (let thead of this.table.thead) {
900
+ for (let thead of this.table.theads) {
841
901
  headHeight += thead.nativeElement.clientHeight;
842
902
  }
843
903
  const footHeight = ((_b = this.table.tfoot) === null || _b === void 0 ? void 0 : _b.nativeElement.clientHeight) || 0;
@@ -880,10 +940,10 @@ class XTableBodyComponent extends XTableBodyProperty {
880
940
  }
881
941
  }
882
942
  /** @nocollapse */ XTableBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableBodyComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
883
- /** @nocollapse */ XTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableBodyComponent, selector: "x-table-body", inputs: { table: "table" }, viewQueries: [{ propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty && level === 0\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <ng-container *ngFor=\"let row of data; index as i; trackBy: trackByItem\">\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl\" *ngIf=\"table.treeTable && row.children && row.expanded\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns\"\r\n [itemSize]=\"table.itemSize\"\r\n [rowHeight]=\"table.rowHeight\"\r\n [columnTpl]=\"table.bodyColumnTpl\"\r\n [allowSelectRow]=\"table.allowSelectRow\"\r\n [rowClass]=\"table.rowClass\"\r\n [cellConfig]=\"table.cellConfig?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n (activatedRowChange)=\"table.activatedRowChange.emit($event)\"\r\n [level]=\"row.level! + 1\"\r\n [table]=\"table\"\r\n ></x-table-body>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngIf=\"level > 0 && expandTpl\">\r\n <ng-container *xOutlet=\"expandTpl; context: { $row: row, $index: i, $level: level }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"level === 0 || !expandTpl\">\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level }\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"table.isExpandColumn(column)\">\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n </ng-container>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <ng-container *xOutlet=\"table.bodyTdTpl; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpandNext && table.rowExpandNext.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6$1.XButtonComponent, selector: "x-button" }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i7.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.XEmptyComponent, selector: "x-empty" }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
943
+ /** @nocollapse */ XTableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableBodyComponent, selector: "x-table-body", inputs: { table: "table" }, viewQueries: [{ propertyName: "tbody", first: true, predicate: ["tbody"], descendants: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty && level === 0\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <ng-container *ngFor=\"let row of data; index as i; trackBy: trackByItem\">\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl\" *ngIf=\"table.treeTable && row.children && row.expanded\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns\"\r\n [itemSize]=\"table.itemSize\"\r\n [rowHeight]=\"table.rowHeight\"\r\n [columnTpl]=\"table.bodyColumnTpl\"\r\n [allowSelectRow]=\"table.allowSelectRow\"\r\n [rowClass]=\"table.rowClass\"\r\n [cellConfig]=\"table.cellConfig?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n (activatedRowChange)=\"table.activatedRowChange.emit($event)\"\r\n [level]=\"row.level! + 1\"\r\n [table]=\"table\"\r\n ></x-table-body>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngIf=\"level > 0 && expandTpl\">\r\n <ng-container *xOutlet=\"expandTpl; context: { $row: row, $index: i, $level: level }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"level === 0 || !expandTpl\">\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level }\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"table.isExpandColumn(column)\">\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n </ng-container>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <ng-container *xOutlet=\"table.bodyTdTpl; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpandNext && table.rowExpandNext.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6$1.XButtonComponent, selector: "x-button" }, { kind: "directive", type: i7$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i7$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i7$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.XEmptyComponent, selector: "x-empty" }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
884
944
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableBodyComponent, decorators: [{
885
945
  type: Component,
886
- args: [{ selector: `${XTableBodyPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty && level === 0\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <ng-container *ngFor=\"let row of data; index as i; trackBy: trackByItem\">\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl\" *ngIf=\"table.treeTable && row.children && row.expanded\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns\"\r\n [itemSize]=\"table.itemSize\"\r\n [rowHeight]=\"table.rowHeight\"\r\n [columnTpl]=\"table.bodyColumnTpl\"\r\n [allowSelectRow]=\"table.allowSelectRow\"\r\n [rowClass]=\"table.rowClass\"\r\n [cellConfig]=\"table.cellConfig?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n (activatedRowChange)=\"table.activatedRowChange.emit($event)\"\r\n [level]=\"row.level! + 1\"\r\n [table]=\"table\"\r\n ></x-table-body>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngIf=\"level > 0 && expandTpl\">\r\n <ng-container *xOutlet=\"expandTpl; context: { $row: row, $index: i, $level: level }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"level === 0 || !expandTpl\">\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level }\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"table.isExpandColumn(column)\">\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n </ng-container>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <ng-container *xOutlet=\"table.bodyTdTpl; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpandNext && table.rowExpandNext.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n" }]
946
+ args: [{ selector: `${XTableBodyPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty && level === 0\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight \u4E3A 0 \u7684\u65F6\u5019\uFF0Cindex \u4E0B\u6807\u83B7\u53D6\u4E0D\u5230 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <ng-container *ngFor=\"let row of data; index as i; trackBy: trackByItem\">\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl\" *ngIf=\"table.treeTable && row.children && row.expanded\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns\"\r\n [itemSize]=\"table.itemSize\"\r\n [rowHeight]=\"table.rowHeight\"\r\n [columnTpl]=\"table.bodyColumnTpl\"\r\n [allowSelectRow]=\"table.allowSelectRow\"\r\n [rowClass]=\"table.rowClass\"\r\n [cellConfig]=\"table.cellConfig?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n (activatedRowChange)=\"table.activatedRowChange.emit($event)\"\r\n [level]=\"row.level! + 1\"\r\n [table]=\"table\"\r\n ></x-table-body>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngIf=\"level > 0 && expandTpl\">\r\n <ng-container *xOutlet=\"expandTpl; context: { $row: row, $index: i, $level: level }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"level === 0 || !expandTpl\">\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level }\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"table.isExpandColumn(column)\">\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n </ng-container>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <ng-container *xOutlet=\"table.bodyTdTpl; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpandNext && table.rowExpandNext.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n" }]
887
947
  }], ctorParameters: function () {
888
948
  return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
889
949
  type: Inject,
@@ -937,7 +997,8 @@ class XTableComponent extends XTableProperty {
937
997
  this.elementRef = elementRef;
938
998
  this.cdr = cdr;
939
999
  this.configService = configService;
940
- this.thead = [];
1000
+ this.theads = [];
1001
+ this.theadsChange = [];
941
1002
  this.hasScrollY = false;
942
1003
  this.scrollYWidth = 0;
943
1004
  this.hasScrollX = false;
@@ -1019,6 +1080,9 @@ class XTableComponent extends XTableProperty {
1019
1080
  setPaginationPosition() {
1020
1081
  this.renderer.addClass(this.elementRef.nativeElement, `x-table-${this.paginationPosition}`);
1021
1082
  }
1083
+ getSticky(column) {
1084
+ return this.getStickyLeft(column) || this.getStickyRight(column);
1085
+ }
1022
1086
  getStickyLeft(column) {
1023
1087
  return Number(column.left) >= 0;
1024
1088
  }
@@ -1245,15 +1309,22 @@ class XTableComponent extends XTableProperty {
1245
1309
  }
1246
1310
  detectChanges() {
1247
1311
  this.bodyChange && this.bodyChange();
1248
- this.headChange && this.headChange();
1312
+ this.theadsChanges();
1249
1313
  this.cdr.detectChanges();
1250
1314
  }
1315
+ theadsChanges() {
1316
+ if (this.theadsChange && this.theadsChange.length > 0) {
1317
+ for (let item of this.theadsChange) {
1318
+ item();
1319
+ }
1320
+ }
1321
+ }
1251
1322
  }
1252
1323
  /** @nocollapse */ XTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
1253
- /** @nocollapse */ XTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableComponent, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }, { propertyName: "stickyTopRightEle", first: true, predicate: ["stickyTopRightEle"], descendants: true }, { propertyName: "stickyBottomRightEle", first: true, predicate: ["stickyBottomRightEle"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) 0}.x-table-row-size-big>thead>tr>th:first-child,.x-table-row-size-big>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-bordered>thead>tr>th,.x-table-row-size-big.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-cell-config>thead>tr>th,.x-table-row-size-big.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) 0}.x-table-row-size-large>thead>tr>th:first-child,.x-table-row-size-large>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-bordered>thead>tr>th,.x-table-row-size-large.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-cell-config>thead>tr>th,.x-table-row-size-large.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table-row-size-medium>thead>tr>th:first-child,.x-table-row-size-medium>tbody tr>td:first-child{padding-left:var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium.x-table-bordered>thead>tr>th,.x-table-row-size-medium.x-table-bordered>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-medium.x-table-cell-config>thead>tr>th,.x-table-row-size-medium.x-table-cell-config>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) 0}.x-table-row-size-small>thead>tr>th:first-child,.x-table-row-size-small>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-bordered>thead>tr>th,.x-table-row-size-small.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-cell-config>thead>tr>th,.x-table-row-size-small.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) 0}.x-table-row-size-mini>thead>tr>th:first-child,.x-table-row-size-mini>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-bordered>thead>tr>th,.x-table-row-size-mini.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-cell-config>thead>tr>th,.x-table-row-size-mini.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.XPaginationComponent, selector: "x-pagination" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5$1.XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: XTableHeadComponent, selector: "x-table-head", inputs: ["table"] }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }, { kind: "component", type: XTableFootComponent, selector: "x-table-foot", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1324
+ /** @nocollapse */ XTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XTableComponent, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }, { propertyName: "stickyTopRightEle", first: true, predicate: ["stickyTopRightEle"], descendants: true }, { propertyName: "stickyBottomRightEle", first: true, predicate: ["stickyBottomRightEle"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;border-radius:var(--x-border-radius);background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.XPaginationComponent, selector: "x-pagination" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5$1.XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: XTableHeadComponent, selector: "x-table-head", inputs: ["table"] }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }, { kind: "component", type: XTableFootComponent, selector: "x-table-foot", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1254
1325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableComponent, decorators: [{
1255
1326
  type: Component,
1256
- args: [{ selector: `${XTablePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) 0}.x-table-row-size-big>thead>tr>th:first-child,.x-table-row-size-big>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-bordered>thead>tr>th,.x-table-row-size-big.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-cell-config>thead>tr>th,.x-table-row-size-big.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) 0}.x-table-row-size-large>thead>tr>th:first-child,.x-table-row-size-large>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-bordered>thead>tr>th,.x-table-row-size-large.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-cell-config>thead>tr>th,.x-table-row-size-large.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table-row-size-medium>thead>tr>th:first-child,.x-table-row-size-medium>tbody tr>td:first-child{padding-left:var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium.x-table-bordered>thead>tr>th,.x-table-row-size-medium.x-table-bordered>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-medium.x-table-cell-config>thead>tr>th,.x-table-row-size-medium.x-table-cell-config>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) 0}.x-table-row-size-small>thead>tr>th:first-child,.x-table-row-size-small>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-bordered>thead>tr>th,.x-table-row-size-small.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-cell-config>thead>tr>th,.x-table-row-size-small.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) 0}.x-table-row-size-mini>thead>tr>th:first-child,.x-table-row-size-mini>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-bordered>thead>tr>th,.x-table-row-size-mini.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-cell-config>thead>tr>th,.x-table-row-size-mini.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}\n"] }]
1327
+ args: [{ selector: `${XTablePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;border-radius:var(--x-border-radius);background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
1257
1328
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { table: [{
1258
1329
  type: ViewChild,
1259
1330
  args: ['table']
@@ -1290,6 +1361,7 @@ class XTableModule {
1290
1361
  XIconModule,
1291
1362
  XButtonModule,
1292
1363
  ScrollingModule,
1364
+ DragDropModule,
1293
1365
  XEmptyModule,
1294
1366
  XLoadingModule], exports: [XTableComponent] });
1295
1367
  /** @nocollapse */ XTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableModule, imports: [CommonModule,
@@ -1300,6 +1372,7 @@ class XTableModule {
1300
1372
  XIconModule,
1301
1373
  XButtonModule,
1302
1374
  ScrollingModule,
1375
+ DragDropModule,
1303
1376
  XEmptyModule,
1304
1377
  XLoadingModule] });
1305
1378
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XTableModule, decorators: [{
@@ -1326,6 +1399,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
1326
1399
  XIconModule,
1327
1400
  XButtonModule,
1328
1401
  ScrollingModule,
1402
+ DragDropModule,
1329
1403
  XEmptyModule,
1330
1404
  XLoadingModule
1331
1405
  ]
@@ -1338,4 +1412,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
1338
1412
 
1339
1413
  export { XDragDirective, XTableBodyComponent, XTableBodyPrefix, XTableBodyProperty, XTableComponent, XTableFootComponent, XTableFootPrefix, XTableFootProperty, XTableHeadComponent, XTableHeadPrefix, XTableHeadProperty, XTableModule, XTablePrefix, XTableProperty };
1340
1414
  //# sourceMappingURL=ng-nest-ui-table.mjs.map
1341
- //# sourceMappingURL=ng-nest-ui-table.mjs.map