@ng-nest/ui 19.0.13 → 19.0.14

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.
@@ -38,6 +38,7 @@ class XDragDirective extends XDragProperty {
38
38
  ngOnInit() {
39
39
  const mouseDown = fromEvent(this.elementRef.nativeElement, 'mousedown').pipe(takeUntil(this.unSubject));
40
40
  mouseDown.subscribe((downMe) => {
41
+ downMe.stopPropagation();
41
42
  let x = downMe.pageX;
42
43
  let y = downMe.pageY;
43
44
  let offsetX = 0;
@@ -49,6 +50,7 @@ class XDragDirective extends XDragProperty {
49
50
  fromEvent(this.doc.documentElement, 'mousemove')
50
51
  .pipe(takeUntil(_unSub))
51
52
  .subscribe((moveMe) => {
53
+ moveMe.stopPropagation();
52
54
  offsetX = moveMe.pageX - x;
53
55
  offsetY = moveMe.pageY - y;
54
56
  x = moveMe.pageX;
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-drag.mjs","sources":["../../../../lib/ng-nest/ui/drag/drag.property.ts","../../../../lib/ng-nest/ui/drag/drag.directive.ts","../../../../lib/ng-nest/ui/drag/drag.module.ts","../../../../lib/ng-nest/ui/drag/ng-nest-ui-drag.ts"],"sourcesContent":["import { Directive, output } from '@angular/core';\r\n\r\n/**\r\n * Drag 指令名称\r\n * @selector x-drag\r\n * @decorator directive\r\n */\r\nexport const XDragPrefix = 'x-drag';\r\n\r\n/**\r\n * Resizable Property\r\n */\r\n@Directive({ selector: '[x-drag]' })\r\nexport class XDragProperty {\r\n readonly dragStarted = output<XDragDistance>();\r\n readonly dragMoved = output<XDragDistanceOffset>();\r\n readonly dragEnded = output<XDragDistance>();\r\n}\r\n\r\nexport interface XDragDistance {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface XDragDistanceOffset extends XDragDistance {\r\n offsetX: number;\r\n offsetY: number;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, OnDestroy, OnInit, Renderer2, inject } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XDragProperty } from './drag.property';\r\n\r\n@Directive({ selector: '[x-drag]' })\r\nexport class XDragDirective extends XDragProperty implements OnInit, OnDestroy {\r\n private unSubject = new Subject<void>();\r\n private doc = inject(DOCUMENT);\r\n private elementRef = inject(ElementRef);\r\n private renderer = inject(Renderer2);\r\n\r\n ngOnInit() {\r\n const mouseDown = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown').pipe(takeUntil(this.unSubject));\r\n mouseDown.subscribe((downMe: MouseEvent) => {\r\n let x = downMe.pageX;\r\n let y = downMe.pageY;\r\n let offsetX = 0;\r\n let offsetY = 0;\r\n const _unSub = new Subject<void>();\r\n this.renderer.setStyle(this.doc.documentElement, 'cursor', 'ew-resize');\r\n this.renderer.setStyle(this.doc.documentElement, 'user-select', 'none');\r\n this.dragStarted.emit({ x, y });\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mousemove')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe((moveMe: MouseEvent) => {\r\n offsetX = moveMe.pageX - x;\r\n offsetY = moveMe.pageY - y;\r\n x = moveMe.pageX;\r\n y = moveMe.pageY;\r\n this.dragMoved.emit({ x, y, offsetX, offsetY });\r\n });\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mouseup')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe(() => {\r\n this.renderer.removeStyle(this.doc.documentElement, 'cursor');\r\n this.renderer.removeStyle(this.doc.documentElement, 'user-select');\r\n this.dragEnded.emit({ x, y });\r\n _unSub.next();\r\n _unSub.complete();\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XDragDirective } from './drag.directive';\r\n\r\n@NgModule({\r\n exports: [XDragDirective],\r\n imports: [XDragDirective]\r\n})\r\nexport class XDragModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-drag.mjs","sources":["../../../../lib/ng-nest/ui/drag/drag.property.ts","../../../../lib/ng-nest/ui/drag/drag.directive.ts","../../../../lib/ng-nest/ui/drag/drag.module.ts","../../../../lib/ng-nest/ui/drag/ng-nest-ui-drag.ts"],"sourcesContent":["import { Directive, output } from '@angular/core';\r\n\r\n/**\r\n * Drag 指令名称\r\n * @selector x-drag\r\n * @decorator directive\r\n */\r\nexport const XDragPrefix = 'x-drag';\r\n\r\n/**\r\n * Resizable Property\r\n */\r\n@Directive({ selector: '[x-drag]' })\r\nexport class XDragProperty {\r\n readonly dragStarted = output<XDragDistance>();\r\n readonly dragMoved = output<XDragDistanceOffset>();\r\n readonly dragEnded = output<XDragDistance>();\r\n}\r\n\r\nexport interface XDragDistance {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface XDragDistanceOffset extends XDragDistance {\r\n offsetX: number;\r\n offsetY: number;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, OnDestroy, OnInit, Renderer2, inject } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XDragProperty } from './drag.property';\r\n\r\n@Directive({ selector: '[x-drag]' })\r\nexport class XDragDirective extends XDragProperty implements OnInit, OnDestroy {\r\n private unSubject = new Subject<void>();\r\n private doc = inject(DOCUMENT);\r\n private elementRef = inject(ElementRef);\r\n private renderer = inject(Renderer2);\r\n\r\n ngOnInit() {\r\n const mouseDown = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown').pipe(takeUntil(this.unSubject));\r\n mouseDown.subscribe((downMe: MouseEvent) => {\r\n downMe.stopPropagation();\r\n let x = downMe.pageX;\r\n let y = downMe.pageY;\r\n let offsetX = 0;\r\n let offsetY = 0;\r\n const _unSub = new Subject<void>();\r\n this.renderer.setStyle(this.doc.documentElement, 'cursor', 'ew-resize');\r\n this.renderer.setStyle(this.doc.documentElement, 'user-select', 'none');\r\n this.dragStarted.emit({ x, y });\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mousemove')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe((moveMe: MouseEvent) => {\r\n moveMe.stopPropagation();\r\n offsetX = moveMe.pageX - x;\r\n offsetY = moveMe.pageY - y;\r\n x = moveMe.pageX;\r\n y = moveMe.pageY;\r\n this.dragMoved.emit({ x, y, offsetX, offsetY });\r\n });\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mouseup')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe(() => {\r\n this.renderer.removeStyle(this.doc.documentElement, 'cursor');\r\n this.renderer.removeStyle(this.doc.documentElement, 'user-select');\r\n this.dragEnded.emit({ x, y });\r\n _unSub.next();\r\n _unSub.complete();\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XDragDirective } from './drag.directive';\r\n\r\n@NgModule({\r\n exports: [XDragDirective],\r\n imports: [XDragDirective]\r\n})\r\nexport class XDragModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1408,7 +1408,7 @@ class XTableComponent extends XTableProperty {
1408
1408
  this.cdr.markForCheck();
1409
1409
  }
1410
1410
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1411
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: XTableComponent, isStandalone: true, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, isSignal: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true, isSignal: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true, isSignal: true }, { propertyName: "stickyTopRightEle", first: true, predicate: ["stickyTopRightEle"], descendants: true, isSignal: true }, { propertyName: "stickyBottomRightEle", first: true, predicate: ["stickyBottomRightEle"], descendants: true, isSignal: true }, { propertyName: "headCom", predicate: XTableHeadComponent, descendants: true, isSignal: true }, { propertyName: "bodyCom", predicate: XTableBodyComponent, descendants: true, isSignal: true }, { propertyName: "footCom", first: true, predicate: XTableFootComponent, descendants: true, isSignal: 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]=\"!!cellConfigSignal()\"\r\n [class.x-table-last-tr-bordered]=\"!!adaptionHeight() || tbodyHeight() >= tbodyScrollHeight()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\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]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\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 }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\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 }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n [jumpTooltipText]=\"jumpTooltipText()\"\r\n [showJumpTooltipText]=\"showJumpTooltipText()\"\r\n [inputSizeTooltipText]=\"inputSizeTooltipText()\"\r\n [showInputSizeTooltipText]=\"showInputSizeTooltipText()\"\r\n [inputIndexSizeSureType]=\"inputIndexSizeSureType()\"\r\n >\r\n </x-pagination>\r\n}\r\n", styles: [".x-table{margin:0;padding:0}.x-table{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;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-top:var(--x-border-width) var(--x-border-style) var(--x-border);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-primary-900)}.x-table>tbody tr:hover:not(.x-table-activated)>td{background-color:var(--x-background-a100)}.x-table>tbody tr:last-child>td{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:var(--x-box-shadow-bottom);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-right);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;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.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-left);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-last-tr-bordered>tbody tr:last-child>td{border-bottom: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;background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow)}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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: XTableHeadComponent, selector: "x-table-head" }, { kind: "component", type: XTableFootComponent, selector: "x-table-foot" }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body" }, { kind: "component", type: XPaginationComponent, selector: "x-pagination" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1411
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: XTableComponent, isStandalone: true, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, isSignal: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true, isSignal: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true, isSignal: true }, { propertyName: "stickyTopRightEle", first: true, predicate: ["stickyTopRightEle"], descendants: true, isSignal: true }, { propertyName: "stickyBottomRightEle", first: true, predicate: ["stickyBottomRightEle"], descendants: true, isSignal: true }, { propertyName: "headCom", predicate: XTableHeadComponent, descendants: true, isSignal: true }, { propertyName: "bodyCom", predicate: XTableBodyComponent, descendants: true, isSignal: true }, { propertyName: "footCom", first: true, predicate: XTableFootComponent, descendants: true, isSignal: 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]=\"!!cellConfigSignal()\"\r\n [class.x-table-last-tr-bordered]=\"!!adaptionHeight() || tbodyHeight() >= tbodyScrollHeight()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\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]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\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 }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\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 }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n [jumpTooltipText]=\"jumpTooltipText()\"\r\n [showJumpTooltipText]=\"showJumpTooltipText()\"\r\n [inputSizeTooltipText]=\"inputSizeTooltipText()\"\r\n [showInputSizeTooltipText]=\"showInputSizeTooltipText()\"\r\n [inputIndexSizeSureType]=\"inputIndexSizeSureType()\"\r\n >\r\n </x-pagination>\r\n}\r\n", styles: [".x-table{margin:0;padding:0}.x-table{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;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-top:var(--x-border-width) var(--x-border-style) var(--x-border);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-primary-900)}.x-table>tbody tr:hover:not(.x-table-activated)>td{background-color:var(--x-background-a100)}.x-table>tbody tr:last-child>td{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:var(--x-box-shadow-bottom);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-right);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;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.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-left);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-last-tr-bordered>tbody tr:last-child>td{border-bottom: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;overflow:hidden}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;background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow)}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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: XTableHeadComponent, selector: "x-table-head" }, { kind: "component", type: XTableFootComponent, selector: "x-table-foot" }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body" }, { kind: "component", type: XPaginationComponent, selector: "x-pagination" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1412
1412
  }
1413
1413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XTableComponent, decorators: [{
1414
1414
  type: Component,
@@ -1420,7 +1420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
1420
1420
  XTableFootComponent,
1421
1421
  XTableBodyComponent,
1422
1422
  XPaginationComponent
1423
- ], 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]=\"!!cellConfigSignal()\"\r\n [class.x-table-last-tr-bordered]=\"!!adaptionHeight() || tbodyHeight() >= tbodyScrollHeight()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\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]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\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 }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\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 }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n [jumpTooltipText]=\"jumpTooltipText()\"\r\n [showJumpTooltipText]=\"showJumpTooltipText()\"\r\n [inputSizeTooltipText]=\"inputSizeTooltipText()\"\r\n [showInputSizeTooltipText]=\"showInputSizeTooltipText()\"\r\n [inputIndexSizeSureType]=\"inputIndexSizeSureType()\"\r\n >\r\n </x-pagination>\r\n}\r\n", styles: [".x-table{margin:0;padding:0}.x-table{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;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-top:var(--x-border-width) var(--x-border-style) var(--x-border);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-primary-900)}.x-table>tbody tr:hover:not(.x-table-activated)>td{background-color:var(--x-background-a100)}.x-table>tbody tr:last-child>td{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:var(--x-box-shadow-bottom);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-right);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;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.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-left);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-last-tr-bordered>tbody tr:last-child>td{border-bottom: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;background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow)}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"] }]
1423
+ ], 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]=\"!!cellConfigSignal()\"\r\n [class.x-table-last-tr-bordered]=\"!!adaptionHeight() || tbodyHeight() >= tbodyScrollHeight()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\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]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\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 }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\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 }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n [jumpTooltipText]=\"jumpTooltipText()\"\r\n [showJumpTooltipText]=\"showJumpTooltipText()\"\r\n [inputSizeTooltipText]=\"inputSizeTooltipText()\"\r\n [showInputSizeTooltipText]=\"showInputSizeTooltipText()\"\r\n [inputIndexSizeSureType]=\"inputIndexSizeSureType()\"\r\n >\r\n </x-pagination>\r\n}\r\n", styles: [".x-table{margin:0;padding:0}.x-table{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;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-top:var(--x-border-width) var(--x-border-style) var(--x-border);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-primary-900)}.x-table>tbody tr:hover:not(.x-table-activated)>td{background-color:var(--x-background-a100)}.x-table>tbody tr:last-child>td{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:var(--x-box-shadow-bottom);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-right);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;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.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-left);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-last-tr-bordered>tbody tr:last-child>td{border-bottom: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;overflow:hidden}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;background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow)}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"] }]
1424
1424
  }] });
1425
1425
 
1426
1426
  class XTableModule {
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-table.mjs","sources":["../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/table-head.component.ts","../../../../lib/ng-nest/ui/table/table-head.component.html","../../../../lib/ng-nest/ui/table/table-foot.component.ts","../../../../lib/ng-nest/ui/table/table-foot.component.html","../../../../lib/ng-nest/ui/table/table-body.component.ts","../../../../lib/ng-nest/ui/table/table-body.component.html","../../../../lib/ng-nest/ui/table/table.component.ts","../../../../lib/ng-nest/ui/table/table.component.html","../../../../lib/ng-nest/ui/table/table.module.ts","../../../../lib/ng-nest/ui/table/ng-nest-ui-table.ts"],"sourcesContent":["import {\r\n XProperty,\r\n XPropertyFunction,\r\n XToCssPixelValue,\r\n XToBoolean,\r\n XToNumber,\r\n XToDataConvert\r\n} from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input, model, output } from '@angular/core';\r\nimport { XPaginationInputIndexSizeSureType, XPaginationSizeData } from '@ng-nest/ui/pagination';\r\nimport { XSelectNode } from '@ng-nest/ui/select';\r\nimport type {\r\n XNumber,\r\n XSort,\r\n XBoolean,\r\n XData,\r\n XTextAlign,\r\n XSize,\r\n XParentIdentityProperty,\r\n XIdentityProperty,\r\n XTemplate,\r\n XQuery,\r\n XDataArray\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Table\r\n * @selector x-table\r\n * @decorator component\r\n */\r\nexport const XTablePrefix = 'x-table';\r\nconst X_TABLE_CONFIG_NAME = 'table';\r\n\r\n/**\r\n * Table Property\r\n */\r\n@Component({ selector: `${XTablePrefix}-property`, template: '' })\r\nexport class XTableProperty extends XPropertyFunction(X_TABLE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n readonly data = input<XData<XTableRow>, XData<XTableRow>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n readonly rowHeight = input<number, XNumber>(this.config?.rowHeight ?? 42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n readonly loading = input<boolean, XBoolean>(this.config?.loading ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否展示列边框\r\n * @en_US Whether to show column borders\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否显示列头\r\n * @en_US Whether to display the column headers\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(this.config?.showHeader ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 列头显示位置\r\n * @en_US Whether to display the column headers\r\n */\r\n readonly headerPosition = input<XTableHeaderPosition>(this.config?.headerPosition ?? 'top');\r\n /**\r\n * @zh_CN 列内容支持 innerHTML 渲染 html 标签\r\n * @en_US Column content supports innerHTML rendering of HTML tags\r\n */\r\n readonly bodyInnerHTML = input<boolean, XBoolean>(this.config?.bodyInnerHTML ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n readonly activatedRow = model<XTableRow>();\r\n /**\r\n * @zh_CN 列头自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column header custom template\r\n */\r\n readonly headColumnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 列头单元格自定义模板,优先级低于列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n readonly headThTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 列内容自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column content custom template\r\n */\r\n readonly bodyColumnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 单元格的自定义模板,优先级低于列内容自定义模板\r\n * @en_US Custom template of cells\r\n */\r\n readonly bodyTdTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n readonly rowClass = input<(row: XTableRow, index: number) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 列头搜索自定义模板\r\n * @en_US Line head search custom template\r\n */\r\n readonly headSearchTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 排序点击的事件\r\n * @en_US Sort click events\r\n */\r\n readonly sortChange = output<XSort[]>();\r\n /**\r\n * @zh_CN 列头 checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n readonly headCheckboxChange = output<XTableHeadCheckbox>();\r\n /**\r\n * @zh_CN body checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n readonly bodyCheckboxChange = output<XTableRow>();\r\n /**\r\n * @zh_CN 允许行点击选中当前行\r\n * @en_US Allow row click to select\r\n */\r\n readonly allowSelectRow = input<boolean, XBoolean>(this.config?.allowSelectRow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 允许行点击选中 checkbox\r\n * @en_US Allow lines to click checkbox\r\n */\r\n readonly allowCheckRow = input<boolean, XBoolean>(this.config?.allowCheckRow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN body 数据高度,只有开启虚拟滚动的时候生效\r\n * @en_US body data height\r\n */\r\n readonly bodyHeight = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(this.config?.itemSize ?? 42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n readonly adaptionHeight = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n readonly docPercent = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN checkbox 列初始选中的数据,列中激活 checkbox\r\n * @en_US Checkbox column initially selected data, checkbox is activated in column\r\n */\r\n readonly checkedRow = input<{ [property: string]: any[] }>({});\r\n /**\r\n * @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,常用于弹框中的表格,弹出后再请求\r\n * @en_US If data is a function type, you can use this parameter to control the request, which is often used in the form in the pop-up box, and then request it after it pops up\r\n */\r\n readonly manual = model<boolean>(true);\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n readonly scroll = input<{ x: number; y: number }>();\r\n /**\r\n * @zh_CN 表格页头\r\n * @en_US Table header\r\n */\r\n readonly header = input<XTemplate>();\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n readonly cellConfig = input<XTableCellConfig>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly rowSize = input<XSize>(this.config?.rowSize ?? 'medium');\r\n /**\r\n * @zh_CN 分页器位置\r\n * @en_US Pagination position\r\n */\r\n readonly paginationPosition = input<XPaginationPosition>('bottom-left');\r\n /**\r\n * @zh_CN 隐藏表格外边框\r\n * @en_US Hidden table wrap border\r\n */\r\n readonly hiddenWrapBorder = input<boolean, XBoolean>(this.config?.hiddenWrapBorder ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @deprecated useless\r\n * @zh_CN 隐藏分页器按钮边框\r\n * @en_US Hidden pagination button border\r\n */\r\n readonly hiddenPaginationBorder = input<boolean, XBoolean>(this.config?.hiddenPaginationBorder ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 显示分页器\r\n * @en_US Pagination position\r\n */\r\n readonly showPagination = input<boolean, XBoolean>(this.config?.showPagination ?? true, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 树形表格\r\n * @en_US Tree table\r\n */\r\n readonly treeTable = input<boolean, XBoolean>(this.config?.treeTable ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(this.config?.expandedAll ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 默认展开的层级,-1 不展开\r\n * @en_US Default expanded level\r\n */\r\n readonly expandedLevel = input<number, XNumber>(this.config?.expandedLevel ?? -1, {\r\n transform: XToNumber\r\n });\r\n /**\r\n * @zh_CN 展开的节点\r\n * @en_US Expanded node\r\n */\r\n readonly expanded = input<any[]>([]);\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n readonly expandTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 显示数据为空的提示\r\n * @en_US Display a prompt with empty data\r\n */\r\n readonly showEmpty = input<boolean, XBoolean>(this.config?.showEmpty ?? true, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 数据为空的提示图片地址或自定义模板\r\n * @en_US Picture address or custom template\r\n */\r\n readonly emptyImg = input<XTemplate | undefined>(this.config?.emptyImg ?? undefined);\r\n /**\r\n * @zh_CN 数据为空的提示内容或自定义模板\r\n * @en_US Content or custom template\r\n */\r\n readonly emptyContent = input<XTemplate | undefined>(this.config?.emptyContent ?? undefined);\r\n /**\r\n * @zh_CN 当前页码\r\n * @en_US Current page number\r\n */\r\n readonly index = model<number>(this.config?.index ?? 1);\r\n /**\r\n * @zh_CN 每页显示条数\r\n * @en_US Number of items displayed per page\r\n */\r\n readonly size = model<number>(this.config?.size ?? 10);\r\n /**\r\n * @zh_CN 总数\r\n * @en_US Total\r\n */\r\n readonly total = model<number>(0);\r\n /**\r\n * @zh_CN 查询条件\r\n * @en_US Query conditions\r\n */\r\n readonly query = model<XQuery>({});\r\n /**\r\n * @zh_CN 最多显示的分页数量\r\n * @en_US The largest number of pages display\r\n */\r\n readonly pageLinkSize = input<number, XNumber>(this.config?.pageLinkSize ?? 5, { transform: XToNumber });\r\n /**\r\n * @zh_CN 显示首尾页跳转\r\n * @en_US Display the first and last page\r\n */\r\n readonly showEllipsis = input<boolean, XBoolean>(this.config?.showEllipsis ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示总条数\r\n * @en_US Display the total\r\n */\r\n readonly showTotal = input<boolean, XBoolean>(this.config?.showTotal ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 按钮间距\r\n * @en_US Button spacing\r\n */\r\n readonly space = input<string, XNumber>(this.config?.space ?? '0.25rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 添加背景色\r\n * @en_US Show background\r\n */\r\n readonly showBackground = input<boolean, XBoolean>(this.config?.showBackground ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示分页条数\r\n * @en_US Show size\r\n */\r\n readonly showSize = input<boolean, XBoolean>(this.config?.showSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 分页条数选择框的宽度\r\n * @en_US size with select\r\n */\r\n readonly sizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '6.875rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 显示输入分页条数(不能跟下拉选项同时使用)\r\n * @en_US Display the number of input page breaks (cannot exist with the drop-down options of page breaks)\r\n */\r\n readonly showInputSize = input<boolean, XBoolean>(this.config?.showInputSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示输入分页框的 tooltip 提示信息,默认显示\r\n * @en_US show enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n */\r\n readonly showInputSizeTooltipText = input<boolean, XBoolean>(this.config?.showInputSizeTooltipText ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入分页框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US Enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n */\r\n readonly inputSizeTooltipText = input<string>(this.config?.inputSizeTooltipText ?? '');\r\n /**\r\n * @zh_CN 分页条数输入框的宽度\r\n * @en_US size with input\r\n */\r\n readonly inputSizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '3.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 分页选择的数据项\r\n * @en_US Paging choose items of data\r\n */\r\n readonly sizeData = input<XDataArray<XSelectNode>>(this.config?.sizeData ?? XPaginationSizeData);\r\n /**\r\n * @zh_CN 禁用整个分页\r\n * @en_US disabled\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示跳转输入框\r\n * @en_US Show size\r\n */\r\n readonly showJump = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示跳转输入框的 tooltip 提示信息,默认显示\r\n * @en_US Show the tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n */\r\n readonly showJumpTooltipText = input<boolean, XBoolean>(this.config?.showJumpTooltipText ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 跳转输入框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US The tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n */\r\n readonly jumpTooltipText = input<string>(this.config?.jumpTooltipText ?? '');\r\n /**\r\n * @zh_CN 跳转页的宽度\r\n * @en_US size with\r\n */\r\n readonly jumpWidth = input<string, XNumber>(this.config?.jumpWidth ?? '3.125rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 总数自定义模板\r\n * @en_US Total template\r\n */\r\n readonly totalTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 简单分页\r\n * @en_US Simple\r\n */\r\n readonly simple = input<boolean, XBoolean>(this.config?.simple ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 简单分页输入框宽度\r\n * @en_US Simple index with\r\n */\r\n readonly simpleIndexWidth = input<string, XNumber>(this.config?.simpleIndexWidth ?? '8.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 输入确认改变的方式,针对输入分页大小和输入跳转页\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n */\r\n readonly inputIndexSizeSureType = input<XPaginationInputIndexSizeSureType>(\r\n this.config?.inputIndexSizeSureType ?? 'enter'\r\n );\r\n /**\r\n * @zh_CN 行点击事件\r\n * @en_US Row click event\r\n */\r\n readonly rowClick = output<XTableRow>();\r\n /**\r\n * @zh_CN 列头拖动开始事件,返回拖动的列\r\n * @en_US Column Header Drag End Event\r\n */\r\n readonly columnDragStarted = output<XTableColumn>();\r\n /**\r\n * @zh_CN 列头拖动结束事件,返回拖动的列\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n readonly columnDragEnded = output<XTableColumn>();\r\n /**\r\n * @zh_CN 当用户把一个条目投放进该容器时就会触发,拖动放开的事件,返回拖动排序后的列数据\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n readonly columnDropListDropped = output<XTableColumn[]>();\r\n /**\r\n * @zh_CN 开始拖动列宽的事件\r\n * @en_US Event to started drag column width\r\n */\r\n readonly columnDragWidthStarted = output<XTableDragWidthEvent>();\r\n /**\r\n * @zh_CN 正在拖动列宽时的事件\r\n * @en_US Event to moved drag column width\r\n */\r\n readonly columnDragWidthMoved = output<XTableDragWidthEvent>();\r\n /**\r\n * @zh_CN 结束拖动列宽的事件\r\n * @en_US Event to ended drag column width\r\n */\r\n readonly columnDragWidthEnded = output<XTableDragWidthEvent>();\r\n}\r\n\r\n/**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\nexport interface XTableRow extends XParentIdentityProperty<XTableRow> {\r\n /**\r\n * @zh_CN 展开\r\n * @en_US Unfold\r\n */\r\n expanded?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列参数\r\n * @en_US Column parameter\r\n */\r\nexport interface XTableColumn extends XIdentityProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XColumnType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN flex 布局宽度\r\n * @en_US Flex layout width\r\n */\r\n flex?: number;\r\n /**\r\n * @zh_CN 查询字段\r\n * @en_US Query field\r\n */\r\n search?: boolean;\r\n /**\r\n * @zh_CN 排序字段\r\n * @en_US Sort field\r\n */\r\n sort?: boolean;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 操作按钮\r\n * @en_US Operation button\r\n */\r\n action?: boolean;\r\n /**\r\n * @zh_CN type 为 checkbox 时绑定行点击选中事件\r\n * @en_US Bind row click selection event when type is checkbox\r\n */\r\n rowChecked?: boolean;\r\n /**\r\n * @zh_CN type 为 expand 时绑定行点击展开事件\r\n * @en_US Bind row click selection event when type is expand\r\n */\r\n rowExpand?: boolean;\r\n /**\r\n * @zh_CN 文字对齐方式\r\n * @en_US Text alignment\r\n */\r\n textAlign?: XTextAlign;\r\n /**\r\n * @zh_CN 拖动列宽,需要设置列的初始宽度 width\r\n * @en_US Drag the column width, you need to set the initial width of the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列宽\r\n * @en_US Dragging width\r\n */\r\n draggingWidth?: boolean;\r\n /**\r\n * @zh_CN 开始拖动列宽的事件\r\n * @en_US Event to started drag column width\r\n */\r\n dragWidthStarted?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 正在拖动列宽时的事件\r\n * @en_US Event to moved drag column width\r\n */\r\n dragWidthMoved?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 结束拖动列宽的事件\r\n * @en_US Event to ended drag column width\r\n */\r\n dragWidthEnded?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 拖动列\r\n * @en_US Drag the column\r\n */\r\n dragColumn?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列\r\n * @en_US Dragging column\r\n */\r\n dragging?: boolean;\r\n /**\r\n * @zh_CN 头部显示 checkbox\r\n * @en_US Head shows checkbox\r\n */\r\n headChecked?: boolean;\r\n /**\r\n * @zh_CN 头部显示 expand\r\n * @en_US Head shows expand\r\n */\r\n headExpand?: boolean;\r\n /**\r\n * @zh_CN 列内容支持 innerHTML 渲染 html 标签\r\n * @en_US Column content supports innerHTML rendering of HTML tags\r\n */\r\n innerHTML?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列头宽度拖动事件\r\n * @en_US Column header width drag event\r\n */\r\nexport interface XTableDragWidthEvent {\r\n /**\r\n * @zh_CN 拖动的列\r\n * @en_US Dragged column\r\n */\r\n column: XTableColumn;\r\n /**\r\n * @zh_CN 列位置,正在拖动的时候指偏移位置\r\n * @en_US The column position refers to the offset position when dragging\r\n */\r\n position: { x: number; y: number };\r\n}\r\n\r\n/**\r\n * @zh_CN 列头 checkbox 事件数据\r\n * @en_US Column header checkbox event data\r\n */\r\nexport interface XTableHeadCheckbox {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n rows: XTableRow[];\r\n /**\r\n * @zh_CN checkbox 数据\r\n * @en_US Checkbox data\r\n */\r\n checkbox: { [property: string]: boolean };\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\nexport interface XTableCellConfig {\r\n /**\r\n * @zh_CN 列单元格配置\r\n * @en_US Column cell config\r\n */\r\n thead?: XTableCellConfigRule;\r\n /**\r\n * @zh_CN 行单元格配置\r\n * @en_US Row config\r\n */\r\n tbody?: XTableCellConfigRule;\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\nexport interface XTableCellConfigRule {\r\n /**\r\n * @zh_CN grid 布局下定义列宽度\r\n * @en_US Define column width under grid layout\r\n */\r\n gridTemplateColumns?: string;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n cells?: XTableCell[];\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格合并配置\r\n * @en_US Cell merge rules\r\n */\r\nexport interface XTableCell {\r\n /**\r\n * @zh_CN 使用 grid 布局来合并单元格\r\n * @en_US Use grid layout to merge cells\r\n */\r\n gridArea?: string;\r\n /**\r\n * @zh_CN 名称\r\n * @en_US Name\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 对应列的 id\r\n * @en_US The id of the corresponding column\r\n */\r\n id?: string;\r\n /**\r\n * @zh_CN 拖动列宽\r\n * @en_US Drag the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列类型\r\n * @en_US Column type\r\n */\r\nexport type XColumnType = 'label' | 'index' | 'checkbox' | 'expand';\r\n\r\n/**\r\n * @zh_CN 列头显示位置\r\n * @en_US Line head display position\r\n */\r\nexport type XTableHeaderPosition = 'top' | 'bottom' | 'top-bottom';\r\n\r\n/**\r\n * @zh_CN 分页器位置\r\n * @en_US Paging position\r\n */\r\nexport type XPaginationPosition =\r\n | 'top-left'\r\n | 'top-center'\r\n | 'top-right'\r\n | 'bottom-left'\r\n | 'bottom-center'\r\n | 'bottom-right';\r\n\r\n/**\r\n * @zh_CN 模板\r\n * @en_US Template\r\n */\r\nexport type XTableTemplate = { [property: string]: TemplateRef<any> };\r\n\r\n/**\r\n * Table Head\r\n * @selector x-table-head\r\n * @decorator component\r\n */\r\nexport const XTableHeadPrefix = 'x-table-head';\r\n\r\n/**\r\n * Table Head Property\r\n */\r\n@Component({ selector: `${XTableHeadPrefix}-property`, template: '' })\r\nexport class XTableHeadProperty extends XProperty {\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 高度,单位 px\r\n * @en_US Height in px\r\n */\r\n readonly rowHeight = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n readonly columnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 竖向滚动条宽度\r\n * @en_US Vertical scroll bar width\r\n */\r\n readonly scrollYWidth = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 横向滚动条宽度\r\n * @en_US Horizontal scroll bar width\r\n */\r\n readonly scrollXWidth = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n readonly cellConfig = input<XTableCellConfigRule>();\r\n /**\r\n * @zh_CN 显示的位置\r\n * @en_US Display position\r\n */\r\n readonly position = input<string>();\r\n}\r\n\r\n/**\r\n * Table Body\r\n * @selector x-table-body\r\n * @decorator component\r\n */\r\nexport const XTableBodyPrefix = 'x-table-body';\r\n\r\n/**\r\n * Table Body Property\r\n */\r\n@Component({ selector: `${XTableBodyPrefix}-property`, template: '' })\r\nexport class XTableBodyProperty extends XProperty {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n readonly data = input<XTableRow[]>([]);\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n readonly columnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n readonly activatedRow = model<XTableRow>();\r\n /**\r\n * @zh_CN 高度,单位 px。设置为 0 表示行高自适应内容高度。\r\n * @en_US Height in px. set to 0 means that the row height is adaptive to the content height\r\n */\r\n readonly rowHeight = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n readonly bodyHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n readonly allowSelectRow = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n readonly adaptionHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n readonly docPercent = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n readonly scroll = input<{ x: number; y: number }>();\r\n /**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\n readonly cellConfig = input<XTableCellConfigRule>();\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n readonly rowClass = input<(row: XTableRow, index: number) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 树形表格下的层级\r\n * @en_US The level under the tree table\r\n */\r\n readonly level = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n readonly expandTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 行点击事件\r\n * @en_US Row click event\r\n */\r\n readonly rowClick = output<XTableRow>();\r\n}\r\n\r\n/**\r\n * Table Foot\r\n * @selector x-table-foot\r\n * @decorator component\r\n */\r\nexport const XTableFootPrefix = 'x-table-foot';\r\n\r\n/**\r\n * Table Foot Property\r\n */\r\n@Component({ selector: `${XTableFootPrefix}-property`, template: '' })\r\nexport class XTableFootProperty extends XProperty {\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n readonly rowHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XTableHeadPrefix, XTableHeadProperty, XTableColumn, XTableCell, XTablePrefix } from './table.property';\r\nimport { XIsEmpty, XSort, XNumber, XIsFunction, XRemoveNgTag } from '@ng-nest/ui/core';\r\nimport { CdkDragDrop, CdkDragSortEvent, CdkDragStart, DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { XDragDirective } from '@ng-nest/ui/drag';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableHeadPrefix}`,\r\n imports: [\r\n NgStyle,\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n XDragDirective,\r\n DragDropModule,\r\n XCheckboxComponent,\r\n XOutletDirective,\r\n XIconComponent\r\n ],\r\n templateUrl: './table-head.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class XTableHeadComponent extends XTableHeadProperty implements OnInit {\r\n table = inject(XTableComponent, { optional: true })!;\r\n cdr = inject(ChangeDetectorRef);\r\n\r\n thead = viewChild.required<ElementRef<HTMLElement>>('thead');\r\n sort = signal<XSort[]>([]);\r\n sortStr = signal('');\r\n theadStyle = computed(() => {\r\n let height = this.rowHeight() === 0 ? '' : this.rowHeight();\r\n if (this.cellConfig() && this.cellConfig()!.cells) {\r\n const spt = this.cellConfig()!.cells?.map((x) => {\r\n const gridAreaSpt = x.gridArea?.split('/');\r\n return gridAreaSpt && gridAreaSpt.length > 3 ? Number(gridAreaSpt[2]) : 2;\r\n });\r\n height = ((Math.max(...spt!) - 1) * (height as number)) as XNumber;\r\n }\r\n return {\r\n ['min-height']: `${this.getRowHeight()}px`\r\n };\r\n });\r\n thClassMap = computed(() => ({\r\n [`${XTablePrefix}-th-${this.table.rowSize()}`]: !XIsEmpty(this.table.rowSize())\r\n }));\r\n\r\n initColumns = computed(() => [...this.columns()]);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.theads.update((x) => {\r\n x.push(this.thead());\r\n return [...x];\r\n });\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getColumnRight(right?: number) {\r\n if (Number(right) >= 0) {\r\n if (Number(this.scrollYWidth()) >= 0) {\r\n return Number(right) + Number(this.scrollYWidth());\r\n }\r\n return Number(right);\r\n }\r\n return '';\r\n }\r\n\r\n getColumnWidth(column: XTableColumn) {\r\n return column.width;\r\n }\r\n\r\n onSort(column: XTableColumn) {\r\n if (!column.sort) return;\r\n if (XIsEmpty(this.sort())) this.sort.set([]);\r\n let sort = this.sort()!.find((y) => y.field === column.id);\r\n if (sort) {\r\n if (sort.value === 'asc') {\r\n this.sort.set([]);\r\n this.sortStr.set('');\r\n } else {\r\n sort.value = 'asc';\r\n }\r\n } else {\r\n sort = { field: column.id, value: 'desc' };\r\n this.sort.set([sort]);\r\n }\r\n if (!XIsEmpty(this.sort())) this.sortStr.set(`${sort.field} ${sort.value}`);\r\n this.table.checkSort(this.sort());\r\n this.table.sortChange.emit(this.sort());\r\n this.table.resetScroll(false, true);\r\n }\r\n\r\n dragWidthMoved(\r\n position: { x: number; y: number; offsetX: number; offsetY: number },\r\n column: XTableColumn | XTableCell\r\n ) {\r\n if (column.width) {\r\n (column.width as number) += position.offsetX;\r\n if (column.width < 60) column.width = 60;\r\n XIsFunction(column.dragWidthMoved) && column.dragWidthMoved({ position, column });\r\n this.table.columnDragWidthMoved.emit({ position, column });\r\n this.table.detectChanges();\r\n }\r\n }\r\n\r\n dragWidthStarted(position: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n column.draggingWidth = true;\r\n if (column.width && XIsFunction(column.dragWidthStarted)) {\r\n column.dragWidthStarted({ position, column });\r\n this.table.columnDragWidthStarted.emit({ position, column });\r\n }\r\n }\r\n\r\n dragWidthEnded(position: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n column.draggingWidth = false;\r\n if (column.width && XIsFunction(column.dragWidthEnded)) {\r\n column.dragWidthEnded({ position, column });\r\n this.table.columnDragWidthEnded.emit({ position, column });\r\n }\r\n }\r\n\r\n dropListDropped(event: CdkDragDrop<XTableColumn[]>) {\r\n const previous = this.initColumns()[event.previousIndex];\r\n const current = this.initColumns()[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.initColumns(), event.previousIndex, event.currentIndex);\r\n this.table.columnDropListDropped.emit(this.initColumns());\r\n }\r\n\r\n dropListSorted(event: CdkDragSortEvent<XTableColumn[]>) {\r\n const previous = this.columns()[event.previousIndex];\r\n const current = this.columns()[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.columns(), event.previousIndex, event.currentIndex);\r\n this.table.detectChanges();\r\n }\r\n\r\n dragStarted(_event: CdkDragStart, column: XTableColumn) {\r\n column.dragging = true;\r\n this.table.detectChanges();\r\n this.table.columnDragStarted.emit(column);\r\n }\r\n\r\n dragEnded(column: XTableColumn) {\r\n column.dragging = false;\r\n this.table.detectChanges();\r\n this.table.columnDragEnded.emit(column);\r\n }\r\n}\r\n","<thead\r\n #thead\r\n [ngStyle]=\"theadStyle()\"\r\n [class.x-table-head-top]=\"position() === 'top'\"\r\n [class.x-table-head-bottom]=\"position() === 'bottom'\"\r\n>\r\n @if (cellConfig()) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight()\">\r\n @for (column of cellConfig()!.cells; track column.id) {\r\n <th\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 @if (column.dragWidth) {\r\n <div\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n }\r\n </th>\r\n }\r\n </tr>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"columnsTpl\"></ng-container>\r\n }\r\n @if (table.headSearchTpl()) {\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n }\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.min-width.px]=\"scrollXWidth()\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n @for (column of initColumns(); track column.id) {\r\n <th\r\n cdkDrag\r\n [cdkDragDisabled]=\"column.draggingWidth || !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 @switch (case) {\r\n @case ('search') {\r\n <ng-container *xOutlet=\"table.headSearchTpl()!; context: { $column: column }\"></ng-container>\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n @if (column.dragWidth) {\r\n <div\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n }\r\n }\r\n }\r\n </th>\r\n }\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n @if (column.headChecked) {\r\n <x-checkbox\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 single\r\n ></x-checkbox>\r\n }\r\n @if (!column.headChecked) {\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n }\r\n }\r\n @case ('index') {\r\n <a\r\n ><ng-container *xOutlet=\"columnTpl()[column.id]; context: { $column: column }\">\r\n <ng-container *xOutlet=\"table.headThTpl(); context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n </ng-container></a\r\n >\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n }\r\n }\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 <ng-container *xOutlet=\"table.headThTpl(); context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n </ng-container>\r\n @if (column.sort) {\r\n <x-icon\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 }\r\n </a>\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n computed,\r\n viewChild,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XTableFootPrefix, XTableFootProperty } from './table.property';\r\nimport { XRemoveNgTag } from '@ng-nest/ui/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableFootPrefix}`,\r\n imports: [XOutletDirective],\r\n templateUrl: './table-foot.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableFootComponent extends XTableFootProperty implements OnInit {\r\n tfoot = viewChild.required<ElementRef<HTMLElement>>('tfoot');\r\n table = inject(XTableComponent, { optional: true })!;\r\n cdr = inject(ChangeDetectorRef);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.tfoot.set(this.tfoot());\r\n }\r\n}\r\n","<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight()!\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"footer()\">{{ footer() }}</ng-container>\r\n</tfoot>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal,\r\n effect,\r\n AfterViewInit,\r\n AfterViewChecked\r\n} from '@angular/core';\r\nimport { XTableBodyPrefix, XTableBodyProperty, XTableRow, XTableColumn, XTableCell } from './table.property';\r\nimport { XRemoveNgTag, XResize, XNumber, XStripTags, XParentPath, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { XEmptyComponent } from '@ng-nest/ui/empty';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XTableComponent } from './table.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { XInnerHTMLComponent } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTableBodyPrefix}`,\r\n imports: [\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n XEmptyComponent,\r\n ScrollingModule,\r\n XOutletDirective,\r\n XCheckboxComponent,\r\n XButtonComponent,\r\n XInnerHTMLComponent\r\n ],\r\n templateUrl: './table-body.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableBodyComponent extends XTableBodyProperty implements OnInit, AfterViewInit, AfterViewChecked {\r\n renderer = inject(Renderer2);\r\n elementRef = inject(ElementRef<HTMLElement>);\r\n cdr = inject(ChangeDetectorRef);\r\n tbody = viewChild.required<ElementRef<HTMLElement>>('tbody');\r\n virtualBody = viewChild(CdkVirtualScrollViewport);\r\n table = inject(XTableComponent, { optional: true })!;\r\n private doc = inject(DOCUMENT);\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n private domSanitizer = inject(DomSanitizer);\r\n tbodyStyle = signal<{ [property: string]: any }>({});\r\n\r\n isEmpty = computed(() => this.data().length === 0);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n getItemSize = computed(() =>\r\n this.rowHeight() !== 0 && this.itemSize() > this.rowHeight() ? this.rowHeight() : this.itemSize()\r\n );\r\n docClientHeight = signal(this.doc.documentElement.clientHeight);\r\n headHeight = signal(0);\r\n captionHeight = signal(0);\r\n footHeight = signal(0);\r\n paginationHeight = signal(0);\r\n\r\n bodyHeightSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n let bodyHeight =\r\n this.docPercent() * this.docClientHeight() -\r\n this.captionHeight() -\r\n this.headHeight() -\r\n this.footHeight() -\r\n this.paginationHeight() -\r\n adaptionHeight;\r\n if (bodyHeight < 0) bodyHeight = 0;\r\n return bodyHeight;\r\n }\r\n if (this.scroll()?.y && !this.bodyHeight()) {\r\n return this.scroll()!.y;\r\n }\r\n return this.bodyHeight();\r\n });\r\n\r\n minBufferPxSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n return this.bodyHeightSignal();\r\n }\r\n return this.minBufferPx();\r\n });\r\n\r\n maxBufferPxSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n return this.bodyHeightSignal()! * 1.2;\r\n }\r\n return this.maxBufferPx();\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.virtualBody()) {\r\n this.virtualBody()!['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n }\r\n });\r\n effect(() => {\r\n if (this.virtualBody()) {\r\n this.virtualBody()!['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n if (this.level() > 0) XRemoveNgTag(this.tbody().nativeElement);\r\n\r\n fromEvent(this.doc.defaultView!, 'resize')\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.docClientHeight.set(this.doc.documentElement.clientHeight);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.virtualBody.set(this.virtualBody()!);\r\n this.docClientHeight.set(this.doc.documentElement.clientHeight);\r\n this.setSubject();\r\n this.setScroll();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let headHeight = 0;\r\n for (let thead of this.table.theads()) {\r\n headHeight += thead.nativeElement.clientHeight;\r\n }\r\n this.headHeight.set(headHeight);\r\n const captionHeight = this.table.caption()?.nativeElement.clientHeight || 0;\r\n this.captionHeight.set(captionHeight);\r\n const footHeight = this.table.tfoot()?.nativeElement.clientHeight || 0;\r\n this.footHeight.set(footHeight);\r\n const paginationHeight = this.table.pagination()?.elementRef.nativeElement.clientHeight || 0;\r\n this.paginationHeight.set(paginationHeight);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n setSubject() {\r\n if (this.virtualBody()) {\r\n this.table.scrollContentEle.set(\r\n this.virtualBody()!.elementRef.nativeElement.querySelector('.cdk-virtual-scroll-content-wrapper') as HTMLElement\r\n );\r\n if (this.scroll()?.x) {\r\n this.renderer.setStyle(this.table.scrollContentEle()!, 'width', `${this.scroll()?.x}px`);\r\n }\r\n XResize(this.table.table().nativeElement, this.table.scrollContentEle()!)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.setScroll();\r\n });\r\n }\r\n if (this.table.scrollContentEle()) {\r\n fromEvent(this.virtualBody()!.elementRef.nativeElement, 'scroll')\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n const ele = x.srcElement as HTMLElement;\r\n this.table.scrollTop.set(ele.scrollTop);\r\n this.table.scrollLeft.set(ele.scrollLeft);\r\n if (ele.scrollLeft >= 0 && this.table.theads().length > 0) {\r\n for (let thead of this.table.theads()) {\r\n thead.nativeElement.scrollLeft = this.table.scrollLeft();\r\n }\r\n }\r\n this.table.scrollLeftMax.set(ele.scrollLeft + ele.clientWidth === ele.scrollWidth);\r\n });\r\n }\r\n }\r\n\r\n setScroll() {\r\n if (!this.virtualBody()) return;\r\n const ele = this.virtualBody()!.elementRef.nativeElement;\r\n const hasY = ele.scrollHeight > this.bodyHeightSignal()!;\r\n const hasX = this.table.scrollContentEle()!.clientWidth > ele.clientWidth;\r\n\r\n if (!this.table.hasScrollY() && hasY) {\r\n this.table.hasScrollY.set(true);\r\n this.table.scrollYWidth.set(ele.offsetWidth - ele.clientWidth);\r\n } else if (this.table.hasScrollY() && !hasY) {\r\n this.table.hasScrollY.set(false);\r\n this.table.scrollYWidth.set(0);\r\n }\r\n\r\n if (!this.table.hasScrollX() && hasX) {\r\n this.table.hasScrollX.set(true);\r\n this.table.scrollXHeight.set(ele.offsetHeight - ele.clientHeight);\r\n } else if (this.table.hasScrollX() && !hasX) {\r\n this.table.hasScrollX.set(false);\r\n this.table.scrollXHeight.set(0);\r\n this.table.scrollXWidth.set(null);\r\n }\r\n if (hasX) {\r\n this.table.scrollXWidth.set(ele.offsetWidth + ele.scrollWidth - ele.clientWidth);\r\n }\r\n\r\n this.virtualBody()!.checkViewportSize();\r\n\r\n // this.table.cdr.detectChanges();\r\n }\r\n\r\n setStyle() {\r\n let height = this.rowHeight() === 0 ? '' : this.rowHeight();\r\n if (this.cellConfig() && this.cellConfig()!.cells) {\r\n const spt = this.cellConfig()!.cells?.map((x) => {\r\n const gridAreaSpt = x.gridArea?.split('/');\r\n return gridAreaSpt && gridAreaSpt.length > 3 ? Number(gridAreaSpt[2]) : 2;\r\n });\r\n height = ((Math.max(...spt!) - 1) * (height as number)) as XNumber;\r\n }\r\n this.tbodyStyle.set({\r\n height: `${height}px`\r\n });\r\n }\r\n\r\n setDomSanitizer(str: string) {\r\n return this.domSanitizer.bypassSecurityTrustHtml(str);\r\n }\r\n\r\n getIndex(index: number, item: XTableRow) {\r\n if (!isNaN(index)) return index;\r\n return this.data().indexOf(item);\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getTitle(row: XTableRow, column: XTableCell | any) {\r\n let it = row[column.id as string];\r\n return it ? XStripTags(it) : '';\r\n }\r\n\r\n onRowClick(event: Event, row: XTableRow) {\r\n if (row.disabled) return;\r\n if (this.table.allowCheckRow() && this.table.rowChecked()) {\r\n if (!XParentPath(event.target as HTMLElement).includes('x-checkbox')) {\r\n row[this.table.rowChecked()!.id] = !row[this.table.rowChecked()!.id];\r\n this.table.bodyChecked(row[this.table.rowChecked()!.id], this.table.rowChecked()!, row);\r\n }\r\n }\r\n this.activatedRow.set(row);\r\n this.rowClick.emit(row);\r\n }\r\n\r\n onExpanded(_event: Event, node: XTableRow) {\r\n node.expanded = !node.expanded;\r\n // this.cdr.detectChanges();\r\n }\r\n\r\n trackByItem(_index: number, item: XTableRow | XTableColumn) {\r\n return item.id;\r\n }\r\n}\r\n","<tbody #tbody>\r\n @if (cellConfig()) {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\">\r\n @for (column of cellConfig()!.cells; track column; let j = $index) {\r\n <td\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 }\r\n </tr>\r\n }\r\n } @else {\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"getItemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"bodyHeightSignal()\"\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)=\"onRowClick($event, row)\"\r\n >\r\n <!-- rowHeight 为 0 的时候,index 下标获取不到 -->\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 } @else {\r\n @for (row of data(); track row.id; let i = $index) {\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)=\"onRowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n @if (table.treeTable() && row.children && row.expanded) {\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl()\">\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 [level]=\"row.level! + 1\"\r\n ></x-table-body>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @if (table.showEmpty() && isEmpty() && level() === 0) {\r\n <x-empty [img]=\"table.emptyImg()!\" [content]=\"table.emptyContent()!\"></x-empty>\r\n }\r\n</tbody>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n @if (level() > 0 && expandTpl()) {\r\n <ng-container *xOutlet=\"expandTpl(); context: { $row: row, $index: i, $level: level() }\"></ng-container>\r\n } @else if (level() === 0 || !expandTpl()) {\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level() }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n @for (column of columns(); track column.id; let j = $index) {\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 }\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n @switch (column.type) {\r\n @case ('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, row)\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @case ('index') {\r\n <div>{{ table.getIndex(i) }}</div>\r\n }\r\n @default {\r\n @if (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 flat\r\n plain\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n }\r\n <ng-container\r\n *xOutlet=\"columnTpl()[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\"\r\n >\r\n <ng-container *xOutlet=\"table.bodyTdTpl(); context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n @if ((table.bodyInnerHTML() && column.innerHTML !== false) || column.innerHTML) {\r\n <div x-inner-html [html]=\"row[column.id]\" [style]=\"{ textAlign: column.textAlign }\"></div>\r\n } @else {\r\n <div [style.text-align]=\"column.textAlign\">{{ row[column.id] }}</div>\r\n }\r\n {{ table.rowExpand() && table.rowExpand()!.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnDestroy,\r\n computed,\r\n signal,\r\n viewChild,\r\n inject,\r\n viewChildren,\r\n AfterViewChecked,\r\n SimpleChange\r\n} from '@angular/core';\r\nimport {\r\n XTablePrefix,\r\n XTableProperty,\r\n XTableColumn,\r\n XTableRow,\r\n XTableCell,\r\n XTableCellConfigRule\r\n} from './table.property';\r\nimport { XIsChange, XIsEmpty, XResultList, XSort, XIsUndefined, XIsArray } from '@ng-nest/ui/core';\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { XPaginationComponent } from '@ng-nest/ui/pagination';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { NgClass } from '@angular/common';\r\nimport { XLoadingComponent } from '@ng-nest/ui/loading';\r\nimport { XTableHeadComponent } from './table-head.component';\r\nimport { XTableFootComponent } from './table-foot.component';\r\nimport { XTableBodyComponent } from './table-body.component';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XTablePrefix}`,\r\n imports: [\r\n NgClass,\r\n XOutletDirective,\r\n XLoadingComponent,\r\n XTableHeadComponent,\r\n XTableFootComponent,\r\n XTableBodyComponent,\r\n XPaginationComponent\r\n ],\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableComponent extends XTableProperty implements OnInit, OnDestroy, AfterViewChecked {\r\n renderer = inject(Renderer2);\r\n elementRef = inject(ElementRef<HTMLElement>);\r\n cdr = inject(ChangeDetectorRef);\r\n unSubject = new Subject<void>();\r\n\r\n classMap = computed(() => ({ [`${XTablePrefix}-row-size-${this.rowSize()}`]: !XIsEmpty(this.rowSize()) }));\r\n theads = signal<ElementRef<HTMLElement>[]>([]);\r\n tfoot = signal<ElementRef<HTMLElement> | null>(null);\r\n virtualBody = signal<CdkVirtualScrollViewport | null>(null);\r\n theadsChange: (() => void)[] = [];\r\n bodyChange!: () => void;\r\n scrollContentEle = signal<HTMLElement | null>(null);\r\n hasScrollY = signal(false);\r\n scrollYWidth = signal(0);\r\n hasScrollX = signal(false);\r\n scrollXHeight = signal(0);\r\n scrollXWidth = signal<number | null>(null);\r\n scrollLeft = signal(0);\r\n scrollLeftMax = signal(false);\r\n scrollTop = signal(0);\r\n rowChecked = signal<XTableColumn | null>(null);\r\n headCheckboxList = signal<XTableColumn[]>([]);\r\n rowExpand = signal<XTableColumn | null>(null);\r\n headExpandList = signal<XTableColumn[]>([]);\r\n dataIsFunc = signal(false);\r\n getting = signal(false);\r\n tableData = signal<XTableRow[]>([]);\r\n treeTableData = signal<XTableRow[]>([]);\r\n checkedValues = signal<{ [prop: string]: boolean }>({});\r\n indeterminate = signal('$$indeterminate');\r\n table = viewChild.required<ElementRef<HTMLElement>>('table');\r\n caption = viewChild<ElementRef<HTMLElement>>('caption');\r\n pagination = viewChild<XPaginationComponent>('pagination');\r\n stickyTopRightEle = viewChild<ElementRef<HTMLElement>>('stickyTopRightEle');\r\n stickyBottomRightEle = viewChild<ElementRef<HTMLElement>>('stickyBottomRightEle');\r\n headCom = viewChildren<XTableHeadComponent>(XTableHeadComponent);\r\n bodyCom = viewChildren<XTableBodyComponent>(XTableBodyComponent);\r\n footCom = viewChild<XTableFootComponent>(XTableFootComponent);\r\n\r\n getScrollLeft = computed(() => this.scrollLeft() > 0);\r\n getScrollTop = computed(() => this.scrollTop() > 0);\r\n getRowHeight = computed(() => (this.rowHeight() === 0 ? '' : this.rowHeight()));\r\n getStickyTopScrollTop = computed(() => (this.caption() ? this.caption()!.nativeElement.offsetHeight : 0));\r\n getStickyBottomScrollTop = computed(() => {\r\n let top = 0;\r\n if (this.footer() && this.tfoot()) {\r\n top += this.tfoot()!.nativeElement.clientHeight + 1;\r\n }\r\n return top;\r\n });\r\n getStickyTopRightEleHeight = computed(() => {\r\n if (this.stickyTopRightEle()) {\r\n return this.stickyTopRightEle()!.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n getStickyBottomRightEleHeight = computed(() => {\r\n if (this.stickyBottomRightEle()) {\r\n return this.stickyBottomRightEle()!.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n hasStickyTopRight = computed(\r\n () =>\r\n this.showHeader() &&\r\n (this.headerPosition() === 'top' || this.headerPosition() === 'top-bottom') &&\r\n this.columns().some((x) => Number(x.right) >= 0)\r\n );\r\n hasStickyTopRightSearch = computed(() => !!this.headSearchTpl());\r\n\r\n hasStickyBottomRight = computed(\r\n () =>\r\n this.showHeader() &&\r\n (this.headerPosition() === 'bottom' || this.headerPosition() === 'top-bottom') &&\r\n this.columns().some((x) => Number(x.right) >= 0)\r\n );\r\n\r\n cellConfigSignal = computed(() => {\r\n const cellConfig = this.cellConfig();\r\n if (!cellConfig) return;\r\n const setRule = (rule?: XTableCellConfigRule) => {\r\n if (!rule) return;\r\n let gridTemplateColumns = '',\r\n cells = [];\r\n if (!rule.gridTemplateColumns) {\r\n gridTemplateColumns = `${this.columns()\r\n .map((x) => {\r\n if (x.width) return x.width;\r\n if (x.flex) return `${x.flex}fr`;\r\n return '1fr';\r\n })\r\n .join(' ')}`;\r\n }\r\n if (!rule.cells) return;\r\n cells = rule.cells.map((y) => {\r\n const col = this.columns().find((z) => z.id === y.id);\r\n if (col) {\r\n return { ...col, ...y } as XTableCell;\r\n }\r\n return y;\r\n });\r\n return { gridTemplateColumns, cells };\r\n };\r\n\r\n return { thead: setRule(cellConfig.thead), tbody: setRule(cellConfig.tbody) };\r\n });\r\n\r\n tbodyHeight = signal(0);\r\n tbodyScrollHeight = signal(0);\r\n\r\n ngOnInit() {\r\n this.setRowChecked();\r\n this.setRowExpand();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, checkedRow, columns, activatedRow, manual, showPagination, expandedAll, paginationPosition } =\r\n simples;\r\n XIsChange(expandedAll) && this.setExpandedAll();\r\n XIsChange(data, checkedRow) && this.setData();\r\n if (XIsChange(columns)) {\r\n this.setRowChecked();\r\n this.setRowExpand();\r\n }\r\n XIsChange(columns, activatedRow, showPagination) && this.cdr.detectChanges();\r\n XIsChange(manual) && this.setManual();\r\n XIsChange(paginationPosition) && this.setPaginationPosition(paginationPosition);\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.bodyCom().length > 0) {\r\n const first = this.bodyCom()[0].tbody().nativeElement;\r\n this.tbodyHeight.set(first.clientHeight);\r\n this.tbodyScrollHeight.set(first.scrollHeight);\r\n // let trs = first.tbody().nativeElement.querySelectorAll('tr');\r\n // let i = 0;\r\n // let h = 0;\r\n // while (i < trs.length) {\r\n // h += trs[i].clientHeight;\r\n // }\r\n // this.trsHeight.set(h);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setPaginationPosition(position: SimpleChange) {\r\n const { currentValue, previousValue } = position;\r\n if (previousValue) {\r\n this.renderer.removeClass(this.elementRef.nativeElement, `x-table-${previousValue}`);\r\n }\r\n if (currentValue) {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-table-${currentValue}`);\r\n }\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return this.getStickyLeft(column) || this.getStickyRight(column);\r\n }\r\n\r\n getStickyLeft(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getStickyLeftLast(column: XTableColumn | XTableCell) {\r\n let lefts = this.columns().filter((x) => Number(x.left) >= 0);\r\n if (lefts.length === 0) return false;\r\n return lefts[lefts.length - 1].id === column.id;\r\n }\r\n\r\n getStickyRight(column: XTableColumn | XTableCell) {\r\n return Number(column.right) >= 0;\r\n }\r\n\r\n getStickyRightFirst(column: XTableColumn | XTableCell) {\r\n let rights = this.columns().filter((x) => Number(x.right) >= 0);\r\n if (rights.length === 0) return false;\r\n return rights[0].id === column.id;\r\n }\r\n\r\n getIndex(index: number) {\r\n return (this.index() - 1) * this.size() + index + 1;\r\n }\r\n\r\n setData() {\r\n const data = this.data();\r\n if (XIsArray<XTableRow>(data)) {\r\n this.dataIsFunc.set(false);\r\n this.tableData.set(data);\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.detectChanges();\r\n } else if (data instanceof Function) {\r\n this.dataIsFunc.set(true);\r\n this.getDataByFunc();\r\n }\r\n }\r\n\r\n getDataByFunc() {\r\n if (!this.manual() || !this.dataIsFunc()) return;\r\n this.getting.set(true);\r\n this.unSubject.next();\r\n (this.data() as Function)(this.index(), this.size(), this.query())\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((x: XResultList<XTableRow>) => {\r\n let [data, total] = [x.list as XTableRow[], x.total!];\r\n if (this.virtualBody()) {\r\n this.virtualBody()!.scrollToIndex(0);\r\n this.virtualBody()!.checkViewportSize();\r\n }\r\n this.getting.set(false);\r\n this.tableData.set(data);\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.total.set(total);\r\n });\r\n }\r\n\r\n setManual() {\r\n this.getDataByFunc();\r\n }\r\n\r\n setRowChecked() {\r\n this.rowChecked.set(this.columns().find((x) => x.rowChecked) as XTableColumn);\r\n this.headCheckboxList.set(this.columns().filter((x) => x.type === 'checkbox' && x.headChecked));\r\n }\r\n\r\n setRowExpand() {\r\n this.rowExpand.set(this.columns().find((x) => x.rowExpand) as XTableColumn);\r\n }\r\n\r\n isExpandColumn(column: XTableColumn) {\r\n let expandColumn = this.columns().find((x) => x.id === column.id && x.type === 'expand');\r\n if (expandColumn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n pageChange(_type: 'index' | 'size') {\r\n this.getDataByFunc();\r\n this.resetScroll();\r\n }\r\n\r\n change(index: number) {\r\n this.index.set(index);\r\n this.getDataByFunc();\r\n this.resetScroll();\r\n }\r\n\r\n resetScroll(x = true, y = true) {\r\n if (this.hasScrollX() && x) this.virtualBody()?.scrollTo({ left: 0 });\r\n if (this.hasScrollY() && y) this.virtualBody()?.scrollTo({ top: 0 });\r\n }\r\n\r\n setChecked(data: XTableRow[]) {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(data) || !this.checkedRow()) return;\r\n for (let key in this.checkedRow()) {\r\n const arr = this.checkedRow()[key];\r\n for (let item of data as any[]) {\r\n item[key] = arr.includes(item.id);\r\n result = [...result, item];\r\n }\r\n }\r\n if (result.length > 0) data = [...result];\r\n }\r\n\r\n setHeadCheckboxList(data: XTableRow[]) {\r\n if (XIsEmpty(data) || !this.headCheckboxList()) return;\r\n for (let column of this.headCheckboxList()) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n setExpand(data: XTableRow[]) {\r\n const getChildren = (node: XTableRow, level: number) => {\r\n node.level = level;\r\n node.expanded = this.expandedAll() || level <= this.expandedLevel() || this.expanded().includes(node.id);\r\n if (XIsUndefined(node.children)) node.children = data.filter((y) => y.pid === node.id);\r\n if (XIsUndefined(node.leaf)) node.leaf = (node.children?.length as number) > 0;\r\n if (node.leaf) node.children?.map((y) => getChildren(y, level + 1));\r\n return node;\r\n };\r\n this.treeTableData.set(\r\n data\r\n .filter((x) => XIsEmpty(x.pid))\r\n .map((x, index) => {\r\n if (XIsUndefined(x.id)) x.id = index + 1;\r\n return getChildren(x, 0);\r\n })\r\n );\r\n }\r\n\r\n setExpandedAll() {\r\n if (!this.treeTable() || this.treeTableData()?.length === 0) return;\r\n const setChildren = (nodes: XTableRow[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.expanded = Boolean(this.expandedAll);\r\n setChildren(x.children as XTableRow[]);\r\n });\r\n };\r\n this.treeTableData.update((x) => {\r\n setChildren(x);\r\n return [...x];\r\n });\r\n }\r\n\r\n checkSort(sort: XSort[]) {\r\n if (!this.dataIsFunc) return;\r\n let query = this.query();\r\n if (typeof query === 'undefined') query = {};\r\n query.sort = sort;\r\n this.query.set(query);\r\n this.getDataByFunc();\r\n }\r\n\r\n headChecked(checked: boolean, column: XTableColumn) {\r\n this.tableData.update((z) => {\r\n z.forEach((x) => {\r\n if (!x.disabled) {\r\n x[column.id] = checked;\r\n }\r\n });\r\n return [...z];\r\n });\r\n this.setCheckedValues(column);\r\n this.headCheckboxChange.emit({ rows: this.tableData(), checkbox: this.checkedValues() });\r\n this.detectChanges();\r\n }\r\n\r\n bodyChecked(_checked: boolean, column: XTableColumn, row: XTableRow) {\r\n this.setCheckedValues(column);\r\n this.bodyCheckboxChange.emit(row);\r\n // this.detectChanges();\r\n }\r\n\r\n setCheckedValues(column: XTableColumn) {\r\n const notDisabled = this.tableData().filter((x) => !x.disabled);\r\n const count = notDisabled.length;\r\n const checkedLen = notDisabled.filter((x) => x[column.id]).length;\r\n this.checkedValues.update((x) => {\r\n x[column.id] = count === checkedLen && count !== 0;\r\n x[column.id + this.indeterminate()] = checkedLen > 0 && checkedLen < count;\r\n return { ...x };\r\n });\r\n }\r\n\r\n detectChanges() {\r\n this.headCom()?.forEach((x) => {\r\n x.cdr.markForCheck();\r\n });\r\n this.bodyCom()?.forEach((x) => {\r\n x.cdr.markForCheck();\r\n });\r\n this.footCom()?.cdr.markForCheck();\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","<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]=\"!!cellConfigSignal()\"\r\n [class.x-table-last-tr-bordered]=\"!!adaptionHeight() || tbodyHeight() >= tbodyScrollHeight()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\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]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\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 }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\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 }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n [jumpTooltipText]=\"jumpTooltipText()\"\r\n [showJumpTooltipText]=\"showJumpTooltipText()\"\r\n [inputSizeTooltipText]=\"inputSizeTooltipText()\"\r\n [showInputSizeTooltipText]=\"showInputSizeTooltipText()\"\r\n [inputIndexSizeSureType]=\"inputIndexSizeSureType()\"\r\n >\r\n </x-pagination>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XTableComponent } from './table.component';\r\nimport { XTableHeadComponent } from './table-head.component';\r\nimport { XTableBodyComponent } from './table-body.component';\r\nimport { XTableFootComponent } from './table-foot.component';\r\n\r\n@NgModule({\r\n exports: [XTableComponent],\r\n imports: [XTableComponent, XTableHeadComponent, XTableBodyComponent, XTableFootComponent]\r\n})\r\nexport class XTableModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-table.mjs","sources":["../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/table-head.component.ts","../../../../lib/ng-nest/ui/table/table-head.component.html","../../../../lib/ng-nest/ui/table/table-foot.component.ts","../../../../lib/ng-nest/ui/table/table-foot.component.html","../../../../lib/ng-nest/ui/table/table-body.component.ts","../../../../lib/ng-nest/ui/table/table-body.component.html","../../../../lib/ng-nest/ui/table/table.component.ts","../../../../lib/ng-nest/ui/table/table.component.html","../../../../lib/ng-nest/ui/table/table.module.ts","../../../../lib/ng-nest/ui/table/ng-nest-ui-table.ts"],"sourcesContent":["import {\r\n XProperty,\r\n XPropertyFunction,\r\n XToCssPixelValue,\r\n XToBoolean,\r\n XToNumber,\r\n XToDataConvert\r\n} from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input, model, output } from '@angular/core';\r\nimport { XPaginationInputIndexSizeSureType, XPaginationSizeData } from '@ng-nest/ui/pagination';\r\nimport { XSelectNode } from '@ng-nest/ui/select';\r\nimport type {\r\n XNumber,\r\n XSort,\r\n XBoolean,\r\n XData,\r\n XTextAlign,\r\n XSize,\r\n XParentIdentityProperty,\r\n XIdentityProperty,\r\n XTemplate,\r\n XQuery,\r\n XDataArray\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Table\r\n * @selector x-table\r\n * @decorator component\r\n */\r\nexport const XTablePrefix = 'x-table';\r\nconst X_TABLE_CONFIG_NAME = 'table';\r\n\r\n/**\r\n * Table Property\r\n */\r\n@Component({ selector: `${XTablePrefix}-property`, template: '' })\r\nexport class XTableProperty extends XPropertyFunction(X_TABLE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n readonly data = input<XData<XTableRow>, XData<XTableRow>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n readonly rowHeight = input<number, XNumber>(this.config?.rowHeight ?? 42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n readonly loading = input<boolean, XBoolean>(this.config?.loading ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否展示列边框\r\n * @en_US Whether to show column borders\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否显示列头\r\n * @en_US Whether to display the column headers\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(this.config?.showHeader ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 列头显示位置\r\n * @en_US Whether to display the column headers\r\n */\r\n readonly headerPosition = input<XTableHeaderPosition>(this.config?.headerPosition ?? 'top');\r\n /**\r\n * @zh_CN 列内容支持 innerHTML 渲染 html 标签\r\n * @en_US Column content supports innerHTML rendering of HTML tags\r\n */\r\n readonly bodyInnerHTML = input<boolean, XBoolean>(this.config?.bodyInnerHTML ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n readonly activatedRow = model<XTableRow>();\r\n /**\r\n * @zh_CN 列头自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column header custom template\r\n */\r\n readonly headColumnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 列头单元格自定义模板,优先级低于列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n readonly headThTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 列内容自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column content custom template\r\n */\r\n readonly bodyColumnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 单元格的自定义模板,优先级低于列内容自定义模板\r\n * @en_US Custom template of cells\r\n */\r\n readonly bodyTdTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n readonly rowClass = input<(row: XTableRow, index: number) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 列头搜索自定义模板\r\n * @en_US Line head search custom template\r\n */\r\n readonly headSearchTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 排序点击的事件\r\n * @en_US Sort click events\r\n */\r\n readonly sortChange = output<XSort[]>();\r\n /**\r\n * @zh_CN 列头 checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n readonly headCheckboxChange = output<XTableHeadCheckbox>();\r\n /**\r\n * @zh_CN body checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n readonly bodyCheckboxChange = output<XTableRow>();\r\n /**\r\n * @zh_CN 允许行点击选中当前行\r\n * @en_US Allow row click to select\r\n */\r\n readonly allowSelectRow = input<boolean, XBoolean>(this.config?.allowSelectRow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 允许行点击选中 checkbox\r\n * @en_US Allow lines to click checkbox\r\n */\r\n readonly allowCheckRow = input<boolean, XBoolean>(this.config?.allowCheckRow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN body 数据高度,只有开启虚拟滚动的时候生效\r\n * @en_US body data height\r\n */\r\n readonly bodyHeight = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(this.config?.itemSize ?? 42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n readonly adaptionHeight = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n readonly docPercent = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN checkbox 列初始选中的数据,列中激活 checkbox\r\n * @en_US Checkbox column initially selected data, checkbox is activated in column\r\n */\r\n readonly checkedRow = input<{ [property: string]: any[] }>({});\r\n /**\r\n * @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,常用于弹框中的表格,弹出后再请求\r\n * @en_US If data is a function type, you can use this parameter to control the request, which is often used in the form in the pop-up box, and then request it after it pops up\r\n */\r\n readonly manual = model<boolean>(true);\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n readonly scroll = input<{ x: number; y: number }>();\r\n /**\r\n * @zh_CN 表格页头\r\n * @en_US Table header\r\n */\r\n readonly header = input<XTemplate>();\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n readonly cellConfig = input<XTableCellConfig>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly rowSize = input<XSize>(this.config?.rowSize ?? 'medium');\r\n /**\r\n * @zh_CN 分页器位置\r\n * @en_US Pagination position\r\n */\r\n readonly paginationPosition = input<XPaginationPosition>('bottom-left');\r\n /**\r\n * @zh_CN 隐藏表格外边框\r\n * @en_US Hidden table wrap border\r\n */\r\n readonly hiddenWrapBorder = input<boolean, XBoolean>(this.config?.hiddenWrapBorder ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @deprecated useless\r\n * @zh_CN 隐藏分页器按钮边框\r\n * @en_US Hidden pagination button border\r\n */\r\n readonly hiddenPaginationBorder = input<boolean, XBoolean>(this.config?.hiddenPaginationBorder ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 显示分页器\r\n * @en_US Pagination position\r\n */\r\n readonly showPagination = input<boolean, XBoolean>(this.config?.showPagination ?? true, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 树形表格\r\n * @en_US Tree table\r\n */\r\n readonly treeTable = input<boolean, XBoolean>(this.config?.treeTable ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(this.config?.expandedAll ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 默认展开的层级,-1 不展开\r\n * @en_US Default expanded level\r\n */\r\n readonly expandedLevel = input<number, XNumber>(this.config?.expandedLevel ?? -1, {\r\n transform: XToNumber\r\n });\r\n /**\r\n * @zh_CN 展开的节点\r\n * @en_US Expanded node\r\n */\r\n readonly expanded = input<any[]>([]);\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n readonly expandTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 显示数据为空的提示\r\n * @en_US Display a prompt with empty data\r\n */\r\n readonly showEmpty = input<boolean, XBoolean>(this.config?.showEmpty ?? true, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 数据为空的提示图片地址或自定义模板\r\n * @en_US Picture address or custom template\r\n */\r\n readonly emptyImg = input<XTemplate | undefined>(this.config?.emptyImg ?? undefined);\r\n /**\r\n * @zh_CN 数据为空的提示内容或自定义模板\r\n * @en_US Content or custom template\r\n */\r\n readonly emptyContent = input<XTemplate | undefined>(this.config?.emptyContent ?? undefined);\r\n /**\r\n * @zh_CN 当前页码\r\n * @en_US Current page number\r\n */\r\n readonly index = model<number>(this.config?.index ?? 1);\r\n /**\r\n * @zh_CN 每页显示条数\r\n * @en_US Number of items displayed per page\r\n */\r\n readonly size = model<number>(this.config?.size ?? 10);\r\n /**\r\n * @zh_CN 总数\r\n * @en_US Total\r\n */\r\n readonly total = model<number>(0);\r\n /**\r\n * @zh_CN 查询条件\r\n * @en_US Query conditions\r\n */\r\n readonly query = model<XQuery>({});\r\n /**\r\n * @zh_CN 最多显示的分页数量\r\n * @en_US The largest number of pages display\r\n */\r\n readonly pageLinkSize = input<number, XNumber>(this.config?.pageLinkSize ?? 5, { transform: XToNumber });\r\n /**\r\n * @zh_CN 显示首尾页跳转\r\n * @en_US Display the first and last page\r\n */\r\n readonly showEllipsis = input<boolean, XBoolean>(this.config?.showEllipsis ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示总条数\r\n * @en_US Display the total\r\n */\r\n readonly showTotal = input<boolean, XBoolean>(this.config?.showTotal ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 按钮间距\r\n * @en_US Button spacing\r\n */\r\n readonly space = input<string, XNumber>(this.config?.space ?? '0.25rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 添加背景色\r\n * @en_US Show background\r\n */\r\n readonly showBackground = input<boolean, XBoolean>(this.config?.showBackground ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示分页条数\r\n * @en_US Show size\r\n */\r\n readonly showSize = input<boolean, XBoolean>(this.config?.showSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 分页条数选择框的宽度\r\n * @en_US size with select\r\n */\r\n readonly sizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '6.875rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 显示输入分页条数(不能跟下拉选项同时使用)\r\n * @en_US Display the number of input page breaks (cannot exist with the drop-down options of page breaks)\r\n */\r\n readonly showInputSize = input<boolean, XBoolean>(this.config?.showInputSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示输入分页框的 tooltip 提示信息,默认显示\r\n * @en_US show enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n */\r\n readonly showInputSizeTooltipText = input<boolean, XBoolean>(this.config?.showInputSizeTooltipText ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入分页框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US Enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n */\r\n readonly inputSizeTooltipText = input<string>(this.config?.inputSizeTooltipText ?? '');\r\n /**\r\n * @zh_CN 分页条数输入框的宽度\r\n * @en_US size with input\r\n */\r\n readonly inputSizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '3.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 分页选择的数据项\r\n * @en_US Paging choose items of data\r\n */\r\n readonly sizeData = input<XDataArray<XSelectNode>>(this.config?.sizeData ?? XPaginationSizeData);\r\n /**\r\n * @zh_CN 禁用整个分页\r\n * @en_US disabled\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示跳转输入框\r\n * @en_US Show size\r\n */\r\n readonly showJump = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示跳转输入框的 tooltip 提示信息,默认显示\r\n * @en_US Show the tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n */\r\n readonly showJumpTooltipText = input<boolean, XBoolean>(this.config?.showJumpTooltipText ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 跳转输入框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US The tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n */\r\n readonly jumpTooltipText = input<string>(this.config?.jumpTooltipText ?? '');\r\n /**\r\n * @zh_CN 跳转页的宽度\r\n * @en_US size with\r\n */\r\n readonly jumpWidth = input<string, XNumber>(this.config?.jumpWidth ?? '3.125rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 总数自定义模板\r\n * @en_US Total template\r\n */\r\n readonly totalTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 简单分页\r\n * @en_US Simple\r\n */\r\n readonly simple = input<boolean, XBoolean>(this.config?.simple ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 简单分页输入框宽度\r\n * @en_US Simple index with\r\n */\r\n readonly simpleIndexWidth = input<string, XNumber>(this.config?.simpleIndexWidth ?? '8.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 输入确认改变的方式,针对输入分页大小和输入跳转页\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n */\r\n readonly inputIndexSizeSureType = input<XPaginationInputIndexSizeSureType>(\r\n this.config?.inputIndexSizeSureType ?? 'enter'\r\n );\r\n /**\r\n * @zh_CN 行点击事件\r\n * @en_US Row click event\r\n */\r\n readonly rowClick = output<XTableRow>();\r\n /**\r\n * @zh_CN 列头拖动开始事件,返回拖动的列\r\n * @en_US Column Header Drag End Event\r\n */\r\n readonly columnDragStarted = output<XTableColumn>();\r\n /**\r\n * @zh_CN 列头拖动结束事件,返回拖动的列\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n readonly columnDragEnded = output<XTableColumn>();\r\n /**\r\n * @zh_CN 当用户把一个条目投放进该容器时就会触发,拖动放开的事件,返回拖动排序后的列数据\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n readonly columnDropListDropped = output<XTableColumn[]>();\r\n /**\r\n * @zh_CN 开始拖动列宽的事件\r\n * @en_US Event to started drag column width\r\n */\r\n readonly columnDragWidthStarted = output<XTableDragWidthEvent>();\r\n /**\r\n * @zh_CN 正在拖动列宽时的事件\r\n * @en_US Event to moved drag column width\r\n */\r\n readonly columnDragWidthMoved = output<XTableDragWidthEvent>();\r\n /**\r\n * @zh_CN 结束拖动列宽的事件\r\n * @en_US Event to ended drag column width\r\n */\r\n readonly columnDragWidthEnded = output<XTableDragWidthEvent>();\r\n}\r\n\r\n/**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\nexport interface XTableRow extends XParentIdentityProperty<XTableRow> {\r\n /**\r\n * @zh_CN 展开\r\n * @en_US Unfold\r\n */\r\n expanded?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列参数\r\n * @en_US Column parameter\r\n */\r\nexport interface XTableColumn extends XIdentityProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XColumnType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN flex 布局宽度\r\n * @en_US Flex layout width\r\n */\r\n flex?: number;\r\n /**\r\n * @zh_CN 查询字段\r\n * @en_US Query field\r\n */\r\n search?: boolean;\r\n /**\r\n * @zh_CN 排序字段\r\n * @en_US Sort field\r\n */\r\n sort?: boolean;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 操作按钮\r\n * @en_US Operation button\r\n */\r\n action?: boolean;\r\n /**\r\n * @zh_CN type 为 checkbox 时绑定行点击选中事件\r\n * @en_US Bind row click selection event when type is checkbox\r\n */\r\n rowChecked?: boolean;\r\n /**\r\n * @zh_CN type 为 expand 时绑定行点击展开事件\r\n * @en_US Bind row click selection event when type is expand\r\n */\r\n rowExpand?: boolean;\r\n /**\r\n * @zh_CN 文字对齐方式\r\n * @en_US Text alignment\r\n */\r\n textAlign?: XTextAlign;\r\n /**\r\n * @zh_CN 拖动列宽,需要设置列的初始宽度 width\r\n * @en_US Drag the column width, you need to set the initial width of the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列宽\r\n * @en_US Dragging width\r\n */\r\n draggingWidth?: boolean;\r\n /**\r\n * @zh_CN 开始拖动列宽的事件\r\n * @en_US Event to started drag column width\r\n */\r\n dragWidthStarted?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 正在拖动列宽时的事件\r\n * @en_US Event to moved drag column width\r\n */\r\n dragWidthMoved?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 结束拖动列宽的事件\r\n * @en_US Event to ended drag column width\r\n */\r\n dragWidthEnded?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 拖动列\r\n * @en_US Drag the column\r\n */\r\n dragColumn?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列\r\n * @en_US Dragging column\r\n */\r\n dragging?: boolean;\r\n /**\r\n * @zh_CN 头部显示 checkbox\r\n * @en_US Head shows checkbox\r\n */\r\n headChecked?: boolean;\r\n /**\r\n * @zh_CN 头部显示 expand\r\n * @en_US Head shows expand\r\n */\r\n headExpand?: boolean;\r\n /**\r\n * @zh_CN 列内容支持 innerHTML 渲染 html 标签\r\n * @en_US Column content supports innerHTML rendering of HTML tags\r\n */\r\n innerHTML?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列头宽度拖动事件\r\n * @en_US Column header width drag event\r\n */\r\nexport interface XTableDragWidthEvent {\r\n /**\r\n * @zh_CN 拖动的列\r\n * @en_US Dragged column\r\n */\r\n column: XTableColumn;\r\n /**\r\n * @zh_CN 列位置,正在拖动的时候指偏移位置\r\n * @en_US The column position refers to the offset position when dragging\r\n */\r\n position: { x: number; y: number };\r\n}\r\n\r\n/**\r\n * @zh_CN 列头 checkbox 事件数据\r\n * @en_US Column header checkbox event data\r\n */\r\nexport interface XTableHeadCheckbox {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n rows: XTableRow[];\r\n /**\r\n * @zh_CN checkbox 数据\r\n * @en_US Checkbox data\r\n */\r\n checkbox: { [property: string]: boolean };\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\nexport interface XTableCellConfig {\r\n /**\r\n * @zh_CN 列单元格配置\r\n * @en_US Column cell config\r\n */\r\n thead?: XTableCellConfigRule;\r\n /**\r\n * @zh_CN 行单元格配置\r\n * @en_US Row config\r\n */\r\n tbody?: XTableCellConfigRule;\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\nexport interface XTableCellConfigRule {\r\n /**\r\n * @zh_CN grid 布局下定义列宽度\r\n * @en_US Define column width under grid layout\r\n */\r\n gridTemplateColumns?: string;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n cells?: XTableCell[];\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格合并配置\r\n * @en_US Cell merge rules\r\n */\r\nexport interface XTableCell {\r\n /**\r\n * @zh_CN 使用 grid 布局来合并单元格\r\n * @en_US Use grid layout to merge cells\r\n */\r\n gridArea?: string;\r\n /**\r\n * @zh_CN 名称\r\n * @en_US Name\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 对应列的 id\r\n * @en_US The id of the corresponding column\r\n */\r\n id?: string;\r\n /**\r\n * @zh_CN 拖动列宽\r\n * @en_US Drag the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列类型\r\n * @en_US Column type\r\n */\r\nexport type XColumnType = 'label' | 'index' | 'checkbox' | 'expand';\r\n\r\n/**\r\n * @zh_CN 列头显示位置\r\n * @en_US Line head display position\r\n */\r\nexport type XTableHeaderPosition = 'top' | 'bottom' | 'top-bottom';\r\n\r\n/**\r\n * @zh_CN 分页器位置\r\n * @en_US Paging position\r\n */\r\nexport type XPaginationPosition =\r\n | 'top-left'\r\n | 'top-center'\r\n | 'top-right'\r\n | 'bottom-left'\r\n | 'bottom-center'\r\n | 'bottom-right';\r\n\r\n/**\r\n * @zh_CN 模板\r\n * @en_US Template\r\n */\r\nexport type XTableTemplate = { [property: string]: TemplateRef<any> };\r\n\r\n/**\r\n * Table Head\r\n * @selector x-table-head\r\n * @decorator component\r\n */\r\nexport const XTableHeadPrefix = 'x-table-head';\r\n\r\n/**\r\n * Table Head Property\r\n */\r\n@Component({ selector: `${XTableHeadPrefix}-property`, template: '' })\r\nexport class XTableHeadProperty extends XProperty {\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 高度,单位 px\r\n * @en_US Height in px\r\n */\r\n readonly rowHeight = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n readonly columnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 竖向滚动条宽度\r\n * @en_US Vertical scroll bar width\r\n */\r\n readonly scrollYWidth = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 横向滚动条宽度\r\n * @en_US Horizontal scroll bar width\r\n */\r\n readonly scrollXWidth = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n readonly cellConfig = input<XTableCellConfigRule>();\r\n /**\r\n * @zh_CN 显示的位置\r\n * @en_US Display position\r\n */\r\n readonly position = input<string>();\r\n}\r\n\r\n/**\r\n * Table Body\r\n * @selector x-table-body\r\n * @decorator component\r\n */\r\nexport const XTableBodyPrefix = 'x-table-body';\r\n\r\n/**\r\n * Table Body Property\r\n */\r\n@Component({ selector: `${XTableBodyPrefix}-property`, template: '' })\r\nexport class XTableBodyProperty extends XProperty {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n readonly data = input<XTableRow[]>([]);\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n readonly columnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n readonly activatedRow = model<XTableRow>();\r\n /**\r\n * @zh_CN 高度,单位 px。设置为 0 表示行高自适应内容高度。\r\n * @en_US Height in px. set to 0 means that the row height is adaptive to the content height\r\n */\r\n readonly rowHeight = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n readonly bodyHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n readonly allowSelectRow = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n readonly adaptionHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n readonly docPercent = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n readonly scroll = input<{ x: number; y: number }>();\r\n /**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\n readonly cellConfig = input<XTableCellConfigRule>();\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n readonly rowClass = input<(row: XTableRow, index: number) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 树形表格下的层级\r\n * @en_US The level under the tree table\r\n */\r\n readonly level = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n readonly expandTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 行点击事件\r\n * @en_US Row click event\r\n */\r\n readonly rowClick = output<XTableRow>();\r\n}\r\n\r\n/**\r\n * Table Foot\r\n * @selector x-table-foot\r\n * @decorator component\r\n */\r\nexport const XTableFootPrefix = 'x-table-foot';\r\n\r\n/**\r\n * Table Foot Property\r\n */\r\n@Component({ selector: `${XTableFootPrefix}-property`, template: '' })\r\nexport class XTableFootProperty extends XProperty {\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n readonly rowHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XTableHeadPrefix, XTableHeadProperty, XTableColumn, XTableCell, XTablePrefix } from './table.property';\r\nimport { XIsEmpty, XSort, XNumber, XIsFunction, XRemoveNgTag } from '@ng-nest/ui/core';\r\nimport { CdkDragDrop, CdkDragSortEvent, CdkDragStart, DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { XDragDirective } from '@ng-nest/ui/drag';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableHeadPrefix}`,\r\n imports: [\r\n NgStyle,\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n XDragDirective,\r\n DragDropModule,\r\n XCheckboxComponent,\r\n XOutletDirective,\r\n XIconComponent\r\n ],\r\n templateUrl: './table-head.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class XTableHeadComponent extends XTableHeadProperty implements OnInit {\r\n table = inject(XTableComponent, { optional: true })!;\r\n cdr = inject(ChangeDetectorRef);\r\n\r\n thead = viewChild.required<ElementRef<HTMLElement>>('thead');\r\n sort = signal<XSort[]>([]);\r\n sortStr = signal('');\r\n theadStyle = computed(() => {\r\n let height = this.rowHeight() === 0 ? '' : this.rowHeight();\r\n if (this.cellConfig() && this.cellConfig()!.cells) {\r\n const spt = this.cellConfig()!.cells?.map((x) => {\r\n const gridAreaSpt = x.gridArea?.split('/');\r\n return gridAreaSpt && gridAreaSpt.length > 3 ? Number(gridAreaSpt[2]) : 2;\r\n });\r\n height = ((Math.max(...spt!) - 1) * (height as number)) as XNumber;\r\n }\r\n return {\r\n ['min-height']: `${this.getRowHeight()}px`\r\n };\r\n });\r\n thClassMap = computed(() => ({\r\n [`${XTablePrefix}-th-${this.table.rowSize()}`]: !XIsEmpty(this.table.rowSize())\r\n }));\r\n\r\n initColumns = computed(() => [...this.columns()]);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.theads.update((x) => {\r\n x.push(this.thead());\r\n return [...x];\r\n });\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getColumnRight(right?: number) {\r\n if (Number(right) >= 0) {\r\n if (Number(this.scrollYWidth()) >= 0) {\r\n return Number(right) + Number(this.scrollYWidth());\r\n }\r\n return Number(right);\r\n }\r\n return '';\r\n }\r\n\r\n getColumnWidth(column: XTableColumn) {\r\n return column.width;\r\n }\r\n\r\n onSort(column: XTableColumn) {\r\n if (!column.sort) return;\r\n if (XIsEmpty(this.sort())) this.sort.set([]);\r\n let sort = this.sort()!.find((y) => y.field === column.id);\r\n if (sort) {\r\n if (sort.value === 'asc') {\r\n this.sort.set([]);\r\n this.sortStr.set('');\r\n } else {\r\n sort.value = 'asc';\r\n }\r\n } else {\r\n sort = { field: column.id, value: 'desc' };\r\n this.sort.set([sort]);\r\n }\r\n if (!XIsEmpty(this.sort())) this.sortStr.set(`${sort.field} ${sort.value}`);\r\n this.table.checkSort(this.sort());\r\n this.table.sortChange.emit(this.sort());\r\n this.table.resetScroll(false, true);\r\n }\r\n\r\n dragWidthMoved(\r\n position: { x: number; y: number; offsetX: number; offsetY: number },\r\n column: XTableColumn | XTableCell\r\n ) {\r\n if (column.width) {\r\n (column.width as number) += position.offsetX;\r\n if (column.width < 60) column.width = 60;\r\n XIsFunction(column.dragWidthMoved) && column.dragWidthMoved({ position, column });\r\n this.table.columnDragWidthMoved.emit({ position, column });\r\n this.table.detectChanges();\r\n }\r\n }\r\n\r\n dragWidthStarted(position: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n column.draggingWidth = true;\r\n if (column.width && XIsFunction(column.dragWidthStarted)) {\r\n column.dragWidthStarted({ position, column });\r\n this.table.columnDragWidthStarted.emit({ position, column });\r\n }\r\n }\r\n\r\n dragWidthEnded(position: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n column.draggingWidth = false;\r\n if (column.width && XIsFunction(column.dragWidthEnded)) {\r\n column.dragWidthEnded({ position, column });\r\n this.table.columnDragWidthEnded.emit({ position, column });\r\n }\r\n }\r\n\r\n dropListDropped(event: CdkDragDrop<XTableColumn[]>) {\r\n const previous = this.initColumns()[event.previousIndex];\r\n const current = this.initColumns()[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.initColumns(), event.previousIndex, event.currentIndex);\r\n this.table.columnDropListDropped.emit(this.initColumns());\r\n }\r\n\r\n dropListSorted(event: CdkDragSortEvent<XTableColumn[]>) {\r\n const previous = this.columns()[event.previousIndex];\r\n const current = this.columns()[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.columns(), event.previousIndex, event.currentIndex);\r\n this.table.detectChanges();\r\n }\r\n\r\n dragStarted(_event: CdkDragStart, column: XTableColumn) {\r\n column.dragging = true;\r\n this.table.detectChanges();\r\n this.table.columnDragStarted.emit(column);\r\n }\r\n\r\n dragEnded(column: XTableColumn) {\r\n column.dragging = false;\r\n this.table.detectChanges();\r\n this.table.columnDragEnded.emit(column);\r\n }\r\n}\r\n","<thead\r\n #thead\r\n [ngStyle]=\"theadStyle()\"\r\n [class.x-table-head-top]=\"position() === 'top'\"\r\n [class.x-table-head-bottom]=\"position() === 'bottom'\"\r\n>\r\n @if (cellConfig()) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight()\">\r\n @for (column of cellConfig()!.cells; track column.id) {\r\n <th\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 @if (column.dragWidth) {\r\n <div\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n }\r\n </th>\r\n }\r\n </tr>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"columnsTpl\"></ng-container>\r\n }\r\n @if (table.headSearchTpl()) {\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n }\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.min-width.px]=\"scrollXWidth()\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n @for (column of initColumns(); track column.id) {\r\n <th\r\n cdkDrag\r\n [cdkDragDisabled]=\"column.draggingWidth || !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 @switch (case) {\r\n @case ('search') {\r\n <ng-container *xOutlet=\"table.headSearchTpl()!; context: { $column: column }\"></ng-container>\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n @if (column.dragWidth) {\r\n <div\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n }\r\n }\r\n }\r\n </th>\r\n }\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n @if (column.headChecked) {\r\n <x-checkbox\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 single\r\n ></x-checkbox>\r\n }\r\n @if (!column.headChecked) {\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n }\r\n }\r\n @case ('index') {\r\n <a\r\n ><ng-container *xOutlet=\"columnTpl()[column.id]; context: { $column: column }\">\r\n <ng-container *xOutlet=\"table.headThTpl(); context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n </ng-container></a\r\n >\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n }\r\n }\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 <ng-container *xOutlet=\"table.headThTpl(); context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n </ng-container>\r\n @if (column.sort) {\r\n <x-icon\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 }\r\n </a>\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n computed,\r\n viewChild,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XTableFootPrefix, XTableFootProperty } from './table.property';\r\nimport { XRemoveNgTag } from '@ng-nest/ui/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableFootPrefix}`,\r\n imports: [XOutletDirective],\r\n templateUrl: './table-foot.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableFootComponent extends XTableFootProperty implements OnInit {\r\n tfoot = viewChild.required<ElementRef<HTMLElement>>('tfoot');\r\n table = inject(XTableComponent, { optional: true })!;\r\n cdr = inject(ChangeDetectorRef);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.tfoot.set(this.tfoot());\r\n }\r\n}\r\n","<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight()!\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"footer()\">{{ footer() }}</ng-container>\r\n</tfoot>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal,\r\n effect,\r\n AfterViewInit,\r\n AfterViewChecked\r\n} from '@angular/core';\r\nimport { XTableBodyPrefix, XTableBodyProperty, XTableRow, XTableColumn, XTableCell } from './table.property';\r\nimport { XRemoveNgTag, XResize, XNumber, XStripTags, XParentPath, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { XEmptyComponent } from '@ng-nest/ui/empty';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XTableComponent } from './table.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { XInnerHTMLComponent } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTableBodyPrefix}`,\r\n imports: [\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n XEmptyComponent,\r\n ScrollingModule,\r\n XOutletDirective,\r\n XCheckboxComponent,\r\n XButtonComponent,\r\n XInnerHTMLComponent\r\n ],\r\n templateUrl: './table-body.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableBodyComponent extends XTableBodyProperty implements OnInit, AfterViewInit, AfterViewChecked {\r\n renderer = inject(Renderer2);\r\n elementRef = inject(ElementRef<HTMLElement>);\r\n cdr = inject(ChangeDetectorRef);\r\n tbody = viewChild.required<ElementRef<HTMLElement>>('tbody');\r\n virtualBody = viewChild(CdkVirtualScrollViewport);\r\n table = inject(XTableComponent, { optional: true })!;\r\n private doc = inject(DOCUMENT);\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n private domSanitizer = inject(DomSanitizer);\r\n tbodyStyle = signal<{ [property: string]: any }>({});\r\n\r\n isEmpty = computed(() => this.data().length === 0);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n getItemSize = computed(() =>\r\n this.rowHeight() !== 0 && this.itemSize() > this.rowHeight() ? this.rowHeight() : this.itemSize()\r\n );\r\n docClientHeight = signal(this.doc.documentElement.clientHeight);\r\n headHeight = signal(0);\r\n captionHeight = signal(0);\r\n footHeight = signal(0);\r\n paginationHeight = signal(0);\r\n\r\n bodyHeightSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n let bodyHeight =\r\n this.docPercent() * this.docClientHeight() -\r\n this.captionHeight() -\r\n this.headHeight() -\r\n this.footHeight() -\r\n this.paginationHeight() -\r\n adaptionHeight;\r\n if (bodyHeight < 0) bodyHeight = 0;\r\n return bodyHeight;\r\n }\r\n if (this.scroll()?.y && !this.bodyHeight()) {\r\n return this.scroll()!.y;\r\n }\r\n return this.bodyHeight();\r\n });\r\n\r\n minBufferPxSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n return this.bodyHeightSignal();\r\n }\r\n return this.minBufferPx();\r\n });\r\n\r\n maxBufferPxSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n return this.bodyHeightSignal()! * 1.2;\r\n }\r\n return this.maxBufferPx();\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.virtualBody()) {\r\n this.virtualBody()!['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n }\r\n });\r\n effect(() => {\r\n if (this.virtualBody()) {\r\n this.virtualBody()!['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n if (this.level() > 0) XRemoveNgTag(this.tbody().nativeElement);\r\n\r\n fromEvent(this.doc.defaultView!, 'resize')\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.docClientHeight.set(this.doc.documentElement.clientHeight);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.virtualBody.set(this.virtualBody()!);\r\n this.docClientHeight.set(this.doc.documentElement.clientHeight);\r\n this.setSubject();\r\n this.setScroll();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let headHeight = 0;\r\n for (let thead of this.table.theads()) {\r\n headHeight += thead.nativeElement.clientHeight;\r\n }\r\n this.headHeight.set(headHeight);\r\n const captionHeight = this.table.caption()?.nativeElement.clientHeight || 0;\r\n this.captionHeight.set(captionHeight);\r\n const footHeight = this.table.tfoot()?.nativeElement.clientHeight || 0;\r\n this.footHeight.set(footHeight);\r\n const paginationHeight = this.table.pagination()?.elementRef.nativeElement.clientHeight || 0;\r\n this.paginationHeight.set(paginationHeight);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n setSubject() {\r\n if (this.virtualBody()) {\r\n this.table.scrollContentEle.set(\r\n this.virtualBody()!.elementRef.nativeElement.querySelector('.cdk-virtual-scroll-content-wrapper') as HTMLElement\r\n );\r\n if (this.scroll()?.x) {\r\n this.renderer.setStyle(this.table.scrollContentEle()!, 'width', `${this.scroll()?.x}px`);\r\n }\r\n XResize(this.table.table().nativeElement, this.table.scrollContentEle()!)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.setScroll();\r\n });\r\n }\r\n if (this.table.scrollContentEle()) {\r\n fromEvent(this.virtualBody()!.elementRef.nativeElement, 'scroll')\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n const ele = x.srcElement as HTMLElement;\r\n this.table.scrollTop.set(ele.scrollTop);\r\n this.table.scrollLeft.set(ele.scrollLeft);\r\n if (ele.scrollLeft >= 0 && this.table.theads().length > 0) {\r\n for (let thead of this.table.theads()) {\r\n thead.nativeElement.scrollLeft = this.table.scrollLeft();\r\n }\r\n }\r\n this.table.scrollLeftMax.set(ele.scrollLeft + ele.clientWidth === ele.scrollWidth);\r\n });\r\n }\r\n }\r\n\r\n setScroll() {\r\n if (!this.virtualBody()) return;\r\n const ele = this.virtualBody()!.elementRef.nativeElement;\r\n const hasY = ele.scrollHeight > this.bodyHeightSignal()!;\r\n const hasX = this.table.scrollContentEle()!.clientWidth > ele.clientWidth;\r\n\r\n if (!this.table.hasScrollY() && hasY) {\r\n this.table.hasScrollY.set(true);\r\n this.table.scrollYWidth.set(ele.offsetWidth - ele.clientWidth);\r\n } else if (this.table.hasScrollY() && !hasY) {\r\n this.table.hasScrollY.set(false);\r\n this.table.scrollYWidth.set(0);\r\n }\r\n\r\n if (!this.table.hasScrollX() && hasX) {\r\n this.table.hasScrollX.set(true);\r\n this.table.scrollXHeight.set(ele.offsetHeight - ele.clientHeight);\r\n } else if (this.table.hasScrollX() && !hasX) {\r\n this.table.hasScrollX.set(false);\r\n this.table.scrollXHeight.set(0);\r\n this.table.scrollXWidth.set(null);\r\n }\r\n if (hasX) {\r\n this.table.scrollXWidth.set(ele.offsetWidth + ele.scrollWidth - ele.clientWidth);\r\n }\r\n\r\n this.virtualBody()!.checkViewportSize();\r\n\r\n // this.table.cdr.detectChanges();\r\n }\r\n\r\n setStyle() {\r\n let height = this.rowHeight() === 0 ? '' : this.rowHeight();\r\n if (this.cellConfig() && this.cellConfig()!.cells) {\r\n const spt = this.cellConfig()!.cells?.map((x) => {\r\n const gridAreaSpt = x.gridArea?.split('/');\r\n return gridAreaSpt && gridAreaSpt.length > 3 ? Number(gridAreaSpt[2]) : 2;\r\n });\r\n height = ((Math.max(...spt!) - 1) * (height as number)) as XNumber;\r\n }\r\n this.tbodyStyle.set({\r\n height: `${height}px`\r\n });\r\n }\r\n\r\n setDomSanitizer(str: string) {\r\n return this.domSanitizer.bypassSecurityTrustHtml(str);\r\n }\r\n\r\n getIndex(index: number, item: XTableRow) {\r\n if (!isNaN(index)) return index;\r\n return this.data().indexOf(item);\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getTitle(row: XTableRow, column: XTableCell | any) {\r\n let it = row[column.id as string];\r\n return it ? XStripTags(it) : '';\r\n }\r\n\r\n onRowClick(event: Event, row: XTableRow) {\r\n if (row.disabled) return;\r\n if (this.table.allowCheckRow() && this.table.rowChecked()) {\r\n if (!XParentPath(event.target as HTMLElement).includes('x-checkbox')) {\r\n row[this.table.rowChecked()!.id] = !row[this.table.rowChecked()!.id];\r\n this.table.bodyChecked(row[this.table.rowChecked()!.id], this.table.rowChecked()!, row);\r\n }\r\n }\r\n this.activatedRow.set(row);\r\n this.rowClick.emit(row);\r\n }\r\n\r\n onExpanded(_event: Event, node: XTableRow) {\r\n node.expanded = !node.expanded;\r\n // this.cdr.detectChanges();\r\n }\r\n\r\n trackByItem(_index: number, item: XTableRow | XTableColumn) {\r\n return item.id;\r\n }\r\n}\r\n","<tbody #tbody>\r\n @if (cellConfig()) {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\">\r\n @for (column of cellConfig()!.cells; track column; let j = $index) {\r\n <td\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 }\r\n </tr>\r\n }\r\n } @else {\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"getItemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"bodyHeightSignal()\"\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)=\"onRowClick($event, row)\"\r\n >\r\n <!-- rowHeight 为 0 的时候,index 下标获取不到 -->\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 } @else {\r\n @for (row of data(); track row.id; let i = $index) {\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)=\"onRowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n @if (table.treeTable() && row.children && row.expanded) {\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl()\">\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 [level]=\"row.level! + 1\"\r\n ></x-table-body>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @if (table.showEmpty() && isEmpty() && level() === 0) {\r\n <x-empty [img]=\"table.emptyImg()!\" [content]=\"table.emptyContent()!\"></x-empty>\r\n }\r\n</tbody>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n @if (level() > 0 && expandTpl()) {\r\n <ng-container *xOutlet=\"expandTpl(); context: { $row: row, $index: i, $level: level() }\"></ng-container>\r\n } @else if (level() === 0 || !expandTpl()) {\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level() }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n @for (column of columns(); track column.id; let j = $index) {\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 }\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n @switch (column.type) {\r\n @case ('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, row)\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @case ('index') {\r\n <div>{{ table.getIndex(i) }}</div>\r\n }\r\n @default {\r\n @if (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 flat\r\n plain\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n }\r\n <ng-container\r\n *xOutlet=\"columnTpl()[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\"\r\n >\r\n <ng-container *xOutlet=\"table.bodyTdTpl(); context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n @if ((table.bodyInnerHTML() && column.innerHTML !== false) || column.innerHTML) {\r\n <div x-inner-html [html]=\"row[column.id]\" [style]=\"{ textAlign: column.textAlign }\"></div>\r\n } @else {\r\n <div [style.text-align]=\"column.textAlign\">{{ row[column.id] }}</div>\r\n }\r\n {{ table.rowExpand() && table.rowExpand()!.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnDestroy,\r\n computed,\r\n signal,\r\n viewChild,\r\n inject,\r\n viewChildren,\r\n AfterViewChecked,\r\n SimpleChange\r\n} from '@angular/core';\r\nimport {\r\n XTablePrefix,\r\n XTableProperty,\r\n XTableColumn,\r\n XTableRow,\r\n XTableCell,\r\n XTableCellConfigRule\r\n} from './table.property';\r\nimport { XIsChange, XIsEmpty, XResultList, XSort, XIsUndefined, XIsArray } from '@ng-nest/ui/core';\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { XPaginationComponent } from '@ng-nest/ui/pagination';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { NgClass } from '@angular/common';\r\nimport { XLoadingComponent } from '@ng-nest/ui/loading';\r\nimport { XTableHeadComponent } from './table-head.component';\r\nimport { XTableFootComponent } from './table-foot.component';\r\nimport { XTableBodyComponent } from './table-body.component';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XTablePrefix}`,\r\n imports: [\r\n NgClass,\r\n XOutletDirective,\r\n XLoadingComponent,\r\n XTableHeadComponent,\r\n XTableFootComponent,\r\n XTableBodyComponent,\r\n XPaginationComponent\r\n ],\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableComponent extends XTableProperty implements OnInit, OnDestroy, AfterViewChecked {\r\n renderer = inject(Renderer2);\r\n elementRef = inject(ElementRef<HTMLElement>);\r\n cdr = inject(ChangeDetectorRef);\r\n unSubject = new Subject<void>();\r\n\r\n classMap = computed(() => ({ [`${XTablePrefix}-row-size-${this.rowSize()}`]: !XIsEmpty(this.rowSize()) }));\r\n theads = signal<ElementRef<HTMLElement>[]>([]);\r\n tfoot = signal<ElementRef<HTMLElement> | null>(null);\r\n virtualBody = signal<CdkVirtualScrollViewport | null>(null);\r\n theadsChange: (() => void)[] = [];\r\n bodyChange!: () => void;\r\n scrollContentEle = signal<HTMLElement | null>(null);\r\n hasScrollY = signal(false);\r\n scrollYWidth = signal(0);\r\n hasScrollX = signal(false);\r\n scrollXHeight = signal(0);\r\n scrollXWidth = signal<number | null>(null);\r\n scrollLeft = signal(0);\r\n scrollLeftMax = signal(false);\r\n scrollTop = signal(0);\r\n rowChecked = signal<XTableColumn | null>(null);\r\n headCheckboxList = signal<XTableColumn[]>([]);\r\n rowExpand = signal<XTableColumn | null>(null);\r\n headExpandList = signal<XTableColumn[]>([]);\r\n dataIsFunc = signal(false);\r\n getting = signal(false);\r\n tableData = signal<XTableRow[]>([]);\r\n treeTableData = signal<XTableRow[]>([]);\r\n checkedValues = signal<{ [prop: string]: boolean }>({});\r\n indeterminate = signal('$$indeterminate');\r\n table = viewChild.required<ElementRef<HTMLElement>>('table');\r\n caption = viewChild<ElementRef<HTMLElement>>('caption');\r\n pagination = viewChild<XPaginationComponent>('pagination');\r\n stickyTopRightEle = viewChild<ElementRef<HTMLElement>>('stickyTopRightEle');\r\n stickyBottomRightEle = viewChild<ElementRef<HTMLElement>>('stickyBottomRightEle');\r\n headCom = viewChildren<XTableHeadComponent>(XTableHeadComponent);\r\n bodyCom = viewChildren<XTableBodyComponent>(XTableBodyComponent);\r\n footCom = viewChild<XTableFootComponent>(XTableFootComponent);\r\n\r\n getScrollLeft = computed(() => this.scrollLeft() > 0);\r\n getScrollTop = computed(() => this.scrollTop() > 0);\r\n getRowHeight = computed(() => (this.rowHeight() === 0 ? '' : this.rowHeight()));\r\n getStickyTopScrollTop = computed(() => (this.caption() ? this.caption()!.nativeElement.offsetHeight : 0));\r\n getStickyBottomScrollTop = computed(() => {\r\n let top = 0;\r\n if (this.footer() && this.tfoot()) {\r\n top += this.tfoot()!.nativeElement.clientHeight + 1;\r\n }\r\n return top;\r\n });\r\n getStickyTopRightEleHeight = computed(() => {\r\n if (this.stickyTopRightEle()) {\r\n return this.stickyTopRightEle()!.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n getStickyBottomRightEleHeight = computed(() => {\r\n if (this.stickyBottomRightEle()) {\r\n return this.stickyBottomRightEle()!.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n hasStickyTopRight = computed(\r\n () =>\r\n this.showHeader() &&\r\n (this.headerPosition() === 'top' || this.headerPosition() === 'top-bottom') &&\r\n this.columns().some((x) => Number(x.right) >= 0)\r\n );\r\n hasStickyTopRightSearch = computed(() => !!this.headSearchTpl());\r\n\r\n hasStickyBottomRight = computed(\r\n () =>\r\n this.showHeader() &&\r\n (this.headerPosition() === 'bottom' || this.headerPosition() === 'top-bottom') &&\r\n this.columns().some((x) => Number(x.right) >= 0)\r\n );\r\n\r\n cellConfigSignal = computed(() => {\r\n const cellConfig = this.cellConfig();\r\n if (!cellConfig) return;\r\n const setRule = (rule?: XTableCellConfigRule) => {\r\n if (!rule) return;\r\n let gridTemplateColumns = '',\r\n cells = [];\r\n if (!rule.gridTemplateColumns) {\r\n gridTemplateColumns = `${this.columns()\r\n .map((x) => {\r\n if (x.width) return x.width;\r\n if (x.flex) return `${x.flex}fr`;\r\n return '1fr';\r\n })\r\n .join(' ')}`;\r\n }\r\n if (!rule.cells) return;\r\n cells = rule.cells.map((y) => {\r\n const col = this.columns().find((z) => z.id === y.id);\r\n if (col) {\r\n return { ...col, ...y } as XTableCell;\r\n }\r\n return y;\r\n });\r\n return { gridTemplateColumns, cells };\r\n };\r\n\r\n return { thead: setRule(cellConfig.thead), tbody: setRule(cellConfig.tbody) };\r\n });\r\n\r\n tbodyHeight = signal(0);\r\n tbodyScrollHeight = signal(0);\r\n\r\n ngOnInit() {\r\n this.setRowChecked();\r\n this.setRowExpand();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, checkedRow, columns, activatedRow, manual, showPagination, expandedAll, paginationPosition } =\r\n simples;\r\n XIsChange(expandedAll) && this.setExpandedAll();\r\n XIsChange(data, checkedRow) && this.setData();\r\n if (XIsChange(columns)) {\r\n this.setRowChecked();\r\n this.setRowExpand();\r\n }\r\n XIsChange(columns, activatedRow, showPagination) && this.cdr.detectChanges();\r\n XIsChange(manual) && this.setManual();\r\n XIsChange(paginationPosition) && this.setPaginationPosition(paginationPosition);\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.bodyCom().length > 0) {\r\n const first = this.bodyCom()[0].tbody().nativeElement;\r\n this.tbodyHeight.set(first.clientHeight);\r\n this.tbodyScrollHeight.set(first.scrollHeight);\r\n // let trs = first.tbody().nativeElement.querySelectorAll('tr');\r\n // let i = 0;\r\n // let h = 0;\r\n // while (i < trs.length) {\r\n // h += trs[i].clientHeight;\r\n // }\r\n // this.trsHeight.set(h);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setPaginationPosition(position: SimpleChange) {\r\n const { currentValue, previousValue } = position;\r\n if (previousValue) {\r\n this.renderer.removeClass(this.elementRef.nativeElement, `x-table-${previousValue}`);\r\n }\r\n if (currentValue) {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-table-${currentValue}`);\r\n }\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return this.getStickyLeft(column) || this.getStickyRight(column);\r\n }\r\n\r\n getStickyLeft(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getStickyLeftLast(column: XTableColumn | XTableCell) {\r\n let lefts = this.columns().filter((x) => Number(x.left) >= 0);\r\n if (lefts.length === 0) return false;\r\n return lefts[lefts.length - 1].id === column.id;\r\n }\r\n\r\n getStickyRight(column: XTableColumn | XTableCell) {\r\n return Number(column.right) >= 0;\r\n }\r\n\r\n getStickyRightFirst(column: XTableColumn | XTableCell) {\r\n let rights = this.columns().filter((x) => Number(x.right) >= 0);\r\n if (rights.length === 0) return false;\r\n return rights[0].id === column.id;\r\n }\r\n\r\n getIndex(index: number) {\r\n return (this.index() - 1) * this.size() + index + 1;\r\n }\r\n\r\n setData() {\r\n const data = this.data();\r\n if (XIsArray<XTableRow>(data)) {\r\n this.dataIsFunc.set(false);\r\n this.tableData.set(data);\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.detectChanges();\r\n } else if (data instanceof Function) {\r\n this.dataIsFunc.set(true);\r\n this.getDataByFunc();\r\n }\r\n }\r\n\r\n getDataByFunc() {\r\n if (!this.manual() || !this.dataIsFunc()) return;\r\n this.getting.set(true);\r\n this.unSubject.next();\r\n (this.data() as Function)(this.index(), this.size(), this.query())\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((x: XResultList<XTableRow>) => {\r\n let [data, total] = [x.list as XTableRow[], x.total!];\r\n if (this.virtualBody()) {\r\n this.virtualBody()!.scrollToIndex(0);\r\n this.virtualBody()!.checkViewportSize();\r\n }\r\n this.getting.set(false);\r\n this.tableData.set(data);\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.total.set(total);\r\n });\r\n }\r\n\r\n setManual() {\r\n this.getDataByFunc();\r\n }\r\n\r\n setRowChecked() {\r\n this.rowChecked.set(this.columns().find((x) => x.rowChecked) as XTableColumn);\r\n this.headCheckboxList.set(this.columns().filter((x) => x.type === 'checkbox' && x.headChecked));\r\n }\r\n\r\n setRowExpand() {\r\n this.rowExpand.set(this.columns().find((x) => x.rowExpand) as XTableColumn);\r\n }\r\n\r\n isExpandColumn(column: XTableColumn) {\r\n let expandColumn = this.columns().find((x) => x.id === column.id && x.type === 'expand');\r\n if (expandColumn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n pageChange(_type: 'index' | 'size') {\r\n this.getDataByFunc();\r\n this.resetScroll();\r\n }\r\n\r\n change(index: number) {\r\n this.index.set(index);\r\n this.getDataByFunc();\r\n this.resetScroll();\r\n }\r\n\r\n resetScroll(x = true, y = true) {\r\n if (this.hasScrollX() && x) this.virtualBody()?.scrollTo({ left: 0 });\r\n if (this.hasScrollY() && y) this.virtualBody()?.scrollTo({ top: 0 });\r\n }\r\n\r\n setChecked(data: XTableRow[]) {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(data) || !this.checkedRow()) return;\r\n for (let key in this.checkedRow()) {\r\n const arr = this.checkedRow()[key];\r\n for (let item of data as any[]) {\r\n item[key] = arr.includes(item.id);\r\n result = [...result, item];\r\n }\r\n }\r\n if (result.length > 0) data = [...result];\r\n }\r\n\r\n setHeadCheckboxList(data: XTableRow[]) {\r\n if (XIsEmpty(data) || !this.headCheckboxList()) return;\r\n for (let column of this.headCheckboxList()) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n setExpand(data: XTableRow[]) {\r\n const getChildren = (node: XTableRow, level: number) => {\r\n node.level = level;\r\n node.expanded = this.expandedAll() || level <= this.expandedLevel() || this.expanded().includes(node.id);\r\n if (XIsUndefined(node.children)) node.children = data.filter((y) => y.pid === node.id);\r\n if (XIsUndefined(node.leaf)) node.leaf = (node.children?.length as number) > 0;\r\n if (node.leaf) node.children?.map((y) => getChildren(y, level + 1));\r\n return node;\r\n };\r\n this.treeTableData.set(\r\n data\r\n .filter((x) => XIsEmpty(x.pid))\r\n .map((x, index) => {\r\n if (XIsUndefined(x.id)) x.id = index + 1;\r\n return getChildren(x, 0);\r\n })\r\n );\r\n }\r\n\r\n setExpandedAll() {\r\n if (!this.treeTable() || this.treeTableData()?.length === 0) return;\r\n const setChildren = (nodes: XTableRow[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.expanded = Boolean(this.expandedAll);\r\n setChildren(x.children as XTableRow[]);\r\n });\r\n };\r\n this.treeTableData.update((x) => {\r\n setChildren(x);\r\n return [...x];\r\n });\r\n }\r\n\r\n checkSort(sort: XSort[]) {\r\n if (!this.dataIsFunc) return;\r\n let query = this.query();\r\n if (typeof query === 'undefined') query = {};\r\n query.sort = sort;\r\n this.query.set(query);\r\n this.getDataByFunc();\r\n }\r\n\r\n headChecked(checked: boolean, column: XTableColumn) {\r\n this.tableData.update((z) => {\r\n z.forEach((x) => {\r\n if (!x.disabled) {\r\n x[column.id] = checked;\r\n }\r\n });\r\n return [...z];\r\n });\r\n this.setCheckedValues(column);\r\n this.headCheckboxChange.emit({ rows: this.tableData(), checkbox: this.checkedValues() });\r\n this.detectChanges();\r\n }\r\n\r\n bodyChecked(_checked: boolean, column: XTableColumn, row: XTableRow) {\r\n this.setCheckedValues(column);\r\n this.bodyCheckboxChange.emit(row);\r\n // this.detectChanges();\r\n }\r\n\r\n setCheckedValues(column: XTableColumn) {\r\n const notDisabled = this.tableData().filter((x) => !x.disabled);\r\n const count = notDisabled.length;\r\n const checkedLen = notDisabled.filter((x) => x[column.id]).length;\r\n this.checkedValues.update((x) => {\r\n x[column.id] = count === checkedLen && count !== 0;\r\n x[column.id + this.indeterminate()] = checkedLen > 0 && checkedLen < count;\r\n return { ...x };\r\n });\r\n }\r\n\r\n detectChanges() {\r\n this.headCom()?.forEach((x) => {\r\n x.cdr.markForCheck();\r\n });\r\n this.bodyCom()?.forEach((x) => {\r\n x.cdr.markForCheck();\r\n });\r\n this.footCom()?.cdr.markForCheck();\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","<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]=\"!!cellConfigSignal()\"\r\n [class.x-table-last-tr-bordered]=\"!!adaptionHeight() || tbodyHeight() >= tbodyScrollHeight()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\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]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\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 }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight()) {\r\n <div\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 }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\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 }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n [jumpTooltipText]=\"jumpTooltipText()\"\r\n [showJumpTooltipText]=\"showJumpTooltipText()\"\r\n [inputSizeTooltipText]=\"inputSizeTooltipText()\"\r\n [showInputSizeTooltipText]=\"showInputSizeTooltipText()\"\r\n [inputIndexSizeSureType]=\"inputIndexSizeSureType()\"\r\n >\r\n </x-pagination>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XTableComponent } from './table.component';\r\nimport { XTableHeadComponent } from './table-head.component';\r\nimport { XTableBodyComponent } from './table-body.component';\r\nimport { XTableFootComponent } from './table-foot.component';\r\n\r\n@NgModule({\r\n exports: [XTableComponent],\r\n imports: [XTableComponent, XTableHeadComponent, XTableBodyComponent, XTableFootComponent]\r\n})\r\nexport class XTableModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-nest/ui",
3
- "version": "19.0.13",
3
+ "version": "19.0.14",
4
4
  "license": "MIT",
5
5
  "homepage": "https://www.ngnest.com",
6
6
  "author": "ng-nest",
@@ -37,22 +37,22 @@
37
37
  "types": "./affix/index.d.ts",
38
38
  "default": "./fesm2022/ng-nest-ui-affix.mjs"
39
39
  },
40
- "./anchor": {
41
- "types": "./anchor/index.d.ts",
42
- "default": "./fesm2022/ng-nest-ui-anchor.mjs"
43
- },
44
40
  "./alert": {
45
41
  "types": "./alert/index.d.ts",
46
42
  "default": "./fesm2022/ng-nest-ui-alert.mjs"
47
43
  },
44
+ "./auto-complete": {
45
+ "types": "./auto-complete/index.d.ts",
46
+ "default": "./fesm2022/ng-nest-ui-auto-complete.mjs"
47
+ },
48
+ "./anchor": {
49
+ "types": "./anchor/index.d.ts",
50
+ "default": "./fesm2022/ng-nest-ui-anchor.mjs"
51
+ },
48
52
  "./api": {
49
53
  "types": "./api/index.d.ts",
50
54
  "default": "./fesm2022/ng-nest-ui-api.mjs"
51
55
  },
52
- "./avatar": {
53
- "types": "./avatar/index.d.ts",
54
- "default": "./fesm2022/ng-nest-ui-avatar.mjs"
55
- },
56
56
  "./back-top": {
57
57
  "types": "./back-top/index.d.ts",
58
58
  "default": "./fesm2022/ng-nest-ui-back-top.mjs"
@@ -61,34 +61,30 @@
61
61
  "types": "./badge/index.d.ts",
62
62
  "default": "./fesm2022/ng-nest-ui-badge.mjs"
63
63
  },
64
- "./auto-complete": {
65
- "types": "./auto-complete/index.d.ts",
66
- "default": "./fesm2022/ng-nest-ui-auto-complete.mjs"
67
- },
68
64
  "./base-form": {
69
65
  "types": "./base-form/index.d.ts",
70
66
  "default": "./fesm2022/ng-nest-ui-base-form.mjs"
71
67
  },
68
+ "./avatar": {
69
+ "types": "./avatar/index.d.ts",
70
+ "default": "./fesm2022/ng-nest-ui-avatar.mjs"
71
+ },
72
72
  "./button": {
73
73
  "types": "./button/index.d.ts",
74
74
  "default": "./fesm2022/ng-nest-ui-button.mjs"
75
75
  },
76
- "./calendar": {
77
- "types": "./calendar/index.d.ts",
78
- "default": "./fesm2022/ng-nest-ui-calendar.mjs"
79
- },
80
76
  "./card": {
81
77
  "types": "./card/index.d.ts",
82
78
  "default": "./fesm2022/ng-nest-ui-card.mjs"
83
79
  },
84
- "./carousel": {
85
- "types": "./carousel/index.d.ts",
86
- "default": "./fesm2022/ng-nest-ui-carousel.mjs"
87
- },
88
80
  "./cascade": {
89
81
  "types": "./cascade/index.d.ts",
90
82
  "default": "./fesm2022/ng-nest-ui-cascade.mjs"
91
83
  },
84
+ "./calendar": {
85
+ "types": "./calendar/index.d.ts",
86
+ "default": "./fesm2022/ng-nest-ui-calendar.mjs"
87
+ },
92
88
  "./checkbox": {
93
89
  "types": "./checkbox/index.d.ts",
94
90
  "default": "./fesm2022/ng-nest-ui-checkbox.mjs"
@@ -101,29 +97,33 @@
101
97
  "types": "./color/index.d.ts",
102
98
  "default": "./fesm2022/ng-nest-ui-color.mjs"
103
99
  },
104
- "./color-picker": {
105
- "types": "./color-picker/index.d.ts",
106
- "default": "./fesm2022/ng-nest-ui-color-picker.mjs"
107
- },
108
100
  "./comment": {
109
101
  "types": "./comment/index.d.ts",
110
102
  "default": "./fesm2022/ng-nest-ui-comment.mjs"
111
103
  },
112
- "./container": {
113
- "types": "./container/index.d.ts",
114
- "default": "./fesm2022/ng-nest-ui-container.mjs"
104
+ "./color-picker": {
105
+ "types": "./color-picker/index.d.ts",
106
+ "default": "./fesm2022/ng-nest-ui-color-picker.mjs"
115
107
  },
116
108
  "./core": {
117
109
  "types": "./core/index.d.ts",
118
110
  "default": "./fesm2022/ng-nest-ui-core.mjs"
119
111
  },
112
+ "./date-picker": {
113
+ "types": "./date-picker/index.d.ts",
114
+ "default": "./fesm2022/ng-nest-ui-date-picker.mjs"
115
+ },
120
116
  "./crumb": {
121
117
  "types": "./crumb/index.d.ts",
122
118
  "default": "./fesm2022/ng-nest-ui-crumb.mjs"
123
119
  },
124
- "./date-picker": {
125
- "types": "./date-picker/index.d.ts",
126
- "default": "./fesm2022/ng-nest-ui-date-picker.mjs"
120
+ "./container": {
121
+ "types": "./container/index.d.ts",
122
+ "default": "./fesm2022/ng-nest-ui-container.mjs"
123
+ },
124
+ "./carousel": {
125
+ "types": "./carousel/index.d.ts",
126
+ "default": "./fesm2022/ng-nest-ui-carousel.mjs"
127
127
  },
128
128
  "./description": {
129
129
  "types": "./description/index.d.ts",
@@ -133,10 +133,6 @@
133
133
  "types": "./dialog/index.d.ts",
134
134
  "default": "./fesm2022/ng-nest-ui-dialog.mjs"
135
135
  },
136
- "./doc": {
137
- "types": "./doc/index.d.ts",
138
- "default": "./fesm2022/ng-nest-ui-doc.mjs"
139
- },
140
136
  "./drag": {
141
137
  "types": "./drag/index.d.ts",
142
138
  "default": "./fesm2022/ng-nest-ui-drag.mjs"
@@ -145,6 +141,10 @@
145
141
  "types": "./drawer/index.d.ts",
146
142
  "default": "./fesm2022/ng-nest-ui-drawer.mjs"
147
143
  },
144
+ "./doc": {
145
+ "types": "./doc/index.d.ts",
146
+ "default": "./fesm2022/ng-nest-ui-doc.mjs"
147
+ },
148
148
  "./dropdown": {
149
149
  "types": "./dropdown/index.d.ts",
150
150
  "default": "./fesm2022/ng-nest-ui-dropdown.mjs"
@@ -305,14 +305,14 @@
305
305
  "types": "./steps/index.d.ts",
306
306
  "default": "./fesm2022/ng-nest-ui-steps.mjs"
307
307
  },
308
- "./table": {
309
- "types": "./table/index.d.ts",
310
- "default": "./fesm2022/ng-nest-ui-table.mjs"
311
- },
312
308
  "./switch": {
313
309
  "types": "./switch/index.d.ts",
314
310
  "default": "./fesm2022/ng-nest-ui-switch.mjs"
315
311
  },
312
+ "./table": {
313
+ "types": "./table/index.d.ts",
314
+ "default": "./fesm2022/ng-nest-ui-table.mjs"
315
+ },
316
316
  "./tabs": {
317
317
  "types": "./tabs/index.d.ts",
318
318
  "default": "./fesm2022/ng-nest-ui-tabs.mjs"