@ng-nest/ui 12.0.10 → 12.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/alert/alert.component.d.ts +2 -1
  2. package/bundles/ng-nest-ui-alert.umd.js +6 -1
  3. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  4. package/bundles/ng-nest-ui-carousel.umd.js +10 -10
  5. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  6. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  7. package/bundles/ng-nest-ui-dialog.umd.js +284 -32
  8. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  9. package/bundles/ng-nest-ui-drawer.umd.js +245 -14
  10. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  11. package/bundles/ng-nest-ui-find.umd.js +27 -3
  12. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-input.umd.js +2 -1
  14. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  15. package/bundles/ng-nest-ui-menu.umd.js +1 -1
  16. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  17. package/bundles/ng-nest-ui-message.umd.js +52 -16
  18. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  19. package/bundles/ng-nest-ui-popconfirm.umd.js +33 -4
  20. package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
  21. package/bundles/ng-nest-ui-popover.umd.js +13 -2
  22. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-portal.umd.js +8 -8
  24. package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
  25. package/bundles/ng-nest-ui-progress.umd.js +235 -20
  26. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-select.umd.js +1 -1
  28. package/bundles/ng-nest-ui-steps.umd.js +19 -7
  29. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  30. package/bundles/ng-nest-ui-table.umd.js +9 -5
  31. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  32. package/carousel/carousel-panel.component.d.ts +2 -3
  33. package/core/config/config.d.ts +7 -0
  34. package/core/interfaces/layout.type.d.ts +1 -1
  35. package/dialog/dialog-container.component.d.ts +18 -0
  36. package/dialog/dialog-container.directives.d.ts +24 -0
  37. package/dialog/dialog-ref.d.ts +9 -0
  38. package/dialog/dialog.module.d.ts +13 -11
  39. package/dialog/dialog.property.d.ts +84 -6
  40. package/dialog/dialog.service.d.ts +19 -0
  41. package/dialog/public-api.d.ts +4 -0
  42. package/drawer/drawer-container.component.d.ts +18 -0
  43. package/drawer/drawer-container.directives.d.ts +19 -0
  44. package/drawer/drawer-ref.d.ts +9 -0
  45. package/drawer/drawer.module.d.ts +8 -6
  46. package/drawer/drawer.property.d.ts +83 -2
  47. package/drawer/drawer.service.d.ts +19 -0
  48. package/drawer/public-api.d.ts +5 -0
  49. package/esm2015/alert/alert.component.js +8 -3
  50. package/esm2015/carousel/carousel-panel.component.js +12 -11
  51. package/esm2015/core/config/config.js +1 -1
  52. package/esm2015/core/interfaces/layout.type.js +1 -1
  53. package/esm2015/dialog/dialog-container.component.js +59 -0
  54. package/esm2015/dialog/dialog-container.directives.js +73 -0
  55. package/esm2015/dialog/dialog-ref.js +17 -0
  56. package/esm2015/dialog/dialog.component.js +2 -2
  57. package/esm2015/dialog/dialog.module.js +37 -7
  58. package/esm2015/dialog/dialog.property.js +17 -16
  59. package/esm2015/dialog/dialog.service.js +67 -0
  60. package/esm2015/dialog/public-api.js +5 -1
  61. package/esm2015/drawer/drawer-container.component.js +59 -0
  62. package/esm2015/drawer/drawer-container.directives.js +57 -0
  63. package/esm2015/drawer/drawer-ref.js +17 -0
  64. package/esm2015/drawer/drawer.component.js +2 -2
  65. package/esm2015/drawer/drawer.module.js +22 -6
  66. package/esm2015/drawer/drawer.property.js +22 -6
  67. package/esm2015/drawer/drawer.service.js +65 -0
  68. package/esm2015/drawer/public-api.js +6 -1
  69. package/esm2015/find/find.component.js +12 -3
  70. package/esm2015/find/find.property.js +18 -2
  71. package/esm2015/input/input.component.js +3 -2
  72. package/esm2015/menu/menu.component.js +2 -2
  73. package/esm2015/message/message-ref.js +12 -0
  74. package/esm2015/message/message.component.js +3 -3
  75. package/esm2015/message/message.property.js +2 -2
  76. package/esm2015/message/message.service.js +37 -15
  77. package/esm2015/message/public-api.js +2 -1
  78. package/esm2015/popconfirm/popconfirm.component.js +25 -4
  79. package/esm2015/popconfirm/popconfirm.property.js +10 -3
  80. package/esm2015/popover/popover.directive.js +8 -2
  81. package/esm2015/popover/popover.property.js +7 -2
  82. package/esm2015/portal/portal.module.js +4 -3
  83. package/esm2015/portal/portal.service.js +8 -9
  84. package/esm2015/progress/progress.component.js +177 -15
  85. package/esm2015/progress/progress.property.js +50 -3
  86. package/esm2015/select/select.component.js +1 -1
  87. package/esm2015/steps/steps.component.js +14 -7
  88. package/esm2015/steps/steps.property.js +8 -3
  89. package/esm2015/table/table-body.component.js +3 -3
  90. package/esm2015/table/table.component.js +2 -2
  91. package/esm2015/table/table.property.js +7 -3
  92. package/fesm2015/ng-nest-ui-alert.js +7 -2
  93. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  94. package/fesm2015/ng-nest-ui-carousel.js +9 -9
  95. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  96. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  97. package/fesm2015/ng-nest-ui-dialog.js +254 -25
  98. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  99. package/fesm2015/ng-nest-ui-drawer.js +224 -13
  100. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  101. package/fesm2015/ng-nest-ui-find.js +28 -3
  102. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  103. package/fesm2015/ng-nest-ui-input.js +2 -1
  104. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  105. package/fesm2015/ng-nest-ui-menu.js +1 -1
  106. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  107. package/fesm2015/ng-nest-ui-message.js +50 -17
  108. package/fesm2015/ng-nest-ui-message.js.map +1 -1
  109. package/fesm2015/ng-nest-ui-popconfirm.js +33 -5
  110. package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
  111. package/fesm2015/ng-nest-ui-popover.js +13 -2
  112. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  113. package/fesm2015/ng-nest-ui-portal.js +10 -10
  114. package/fesm2015/ng-nest-ui-portal.js.map +1 -1
  115. package/fesm2015/ng-nest-ui-progress.js +225 -17
  116. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  117. package/fesm2015/ng-nest-ui-select.js +1 -1
  118. package/fesm2015/ng-nest-ui-steps.js +20 -8
  119. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  120. package/fesm2015/ng-nest-ui-table.js +9 -5
  121. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  122. package/find/find.property.d.ts +31 -1
  123. package/message/message-ref.d.ts +8 -0
  124. package/message/message.component.d.ts +3 -3
  125. package/message/message.property.d.ts +24 -4
  126. package/message/message.service.d.ts +4 -1
  127. package/message/public-api.d.ts +1 -0
  128. package/package.json +1 -1
  129. package/popconfirm/popconfirm.component.d.ts +6 -2
  130. package/popconfirm/popconfirm.property.d.ts +13 -2
  131. package/popover/popover.property.d.ts +6 -1
  132. package/portal/portal.module.d.ts +1 -1
  133. package/portal/portal.service.d.ts +2 -3
  134. package/progress/progress.component.d.ts +31 -3
  135. package/progress/progress.property.d.ts +80 -5
  136. package/steps/steps.property.d.ts +7 -2
  137. package/table/table.property.d.ts +24 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-table.js","sources":["../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/drag.directive.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-body.component.ts","../../../../lib/ng-nest/ui/table/table-body.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.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 XNumber,\r\n XInputNumber,\r\n XIdentityProperty,\r\n XId,\r\n XSort,\r\n XInputBoolean,\r\n XBoolean,\r\n XData,\r\n XWithConfig,\r\n XTextAlign,\r\n XSize\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component, EventEmitter, TemplateRef, Output } from '@angular/core';\r\nimport { XPaginationProperty, XPaginationOption } from '@ng-nest/ui/pagination';\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_CONFIG_NAME = 'table';\r\n\r\n/**\r\n * Table Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTableProperty extends XPaginationProperty implements XTableOption {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n @Input() data: XData<XTableRow> = [];\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 42) @XInputNumber() rowHeight!: number;\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() loading!: XBoolean;\r\n /**\r\n * @zh_CN 是否展示列边框\r\n * @en_US Whether to show column borders\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() bordered!: XBoolean;\r\n /**\r\n * @zh_CN 是否显示列头\r\n * @en_US Whether to display the column headers\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() showHeader!: XBoolean;\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n @Input() activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 当前选中行改变\r\n * @en_US The currently selected row changes\r\n */\r\n @Output() activatedRowChange = new EventEmitter<XTableRow>();\r\n /**\r\n * @zh_CN 列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n @Input() headColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 列内容自定义模板\r\n * @en_US Column content custom template\r\n */\r\n @Input() bodyColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 排序点击的事件\r\n * @en_US Sort click events\r\n */\r\n @Output() sortChange = new EventEmitter<XSort[]>();\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() allowSelectRow!: XBoolean;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() virtualScroll!: XBoolean;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n @Input() @XInputNumber() bodyHeight?: number;\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 @Input() @XWithConfig<number>(X_CONFIG_NAME, 42) @XInputNumber() itemSize!: number;\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 @Input() minBufferPx: number = 100;\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 @Input() maxBufferPx: number = 200;\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 @Input() @XInputNumber() adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n @Input() @XInputNumber() docPercent: XNumber = 1;\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 @Input() checkedRow: { [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 @Input() @XInputBoolean() manual: XBoolean = true;\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n @Input() scroll?: { x: number; y: number };\r\n /**\r\n * @zh_CN 参数控制请求改变事件\r\n * @en_US Parameter control request change event\r\n */\r\n @Output() manualChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n @Input() cellConfig?: XTableCellConfig;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') rowSize?: XSize;\r\n}\r\n\r\n/**\r\n * Table Option\r\n * @undocument true\r\n */\r\nexport interface XTableOption extends XPaginationOption {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n data?: XData<XTableRow>;\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n columns?: XTableColumn[];\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n rowHeight?: number;\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n loading?: XBoolean;\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n headColumnTpl?: XTableTemplate;\r\n /**\r\n * @zh_CN 列内容自定义模板\r\n * @en_US Column content custom template\r\n */\r\n bodyColumnTpl?: XTableTemplate;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n virtualScroll?: XBoolean;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n bodyHeight?: number;\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 minBufferPx?: number;\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 maxBufferPx?: number;\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 adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n docPercent?: XNumber;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n cellConfig?: XTableCellConfig;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n rowSize?: XSize;\r\n}\r\n\r\n/**\r\n * @zh_CN 数据\r\n * @en_US Data\r\n */\r\nexport interface XTableRow extends XId {\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 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 文字对齐方式\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 头部显示 checkbox\r\n * @en_US Head shows checkbox\r\n */\r\n headChecked?: 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 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?: string;\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 对应列的 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';\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({ template: '' })\r\nexport class XTableHeadProperty extends XProperty {\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 高度,单位 px\r\n * @en_US Height in px\r\n */\r\n @Input() @XInputNumber() rowHeight: XNumber = 42;\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n @Input() columnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 竖向滚动条宽度\r\n * @en_US Vertical scroll bar width\r\n */\r\n @Input() scrollYWidth?: number;\r\n /**\r\n * @zh_CN 横向滚动条宽度\r\n * @en_US Horizontal scroll bar width\r\n */\r\n @Input() scrollXWidth?: number | null;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n @Input() cellConfig?: XTableCellConfigRule;\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({ template: '' })\r\nexport class XTableBodyProperty extends XProperty {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n @Input() data: XTableRow[] = [];\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n @Input() columnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n @Input() activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 当前选中行改变\r\n * @en_US The currently selected row changes\r\n */\r\n @Output() activatedRowChange = new EventEmitter<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 @Input() @XInputNumber() rowHeight: XNumber = 42;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n @Input() @XInputNumber() bodyHeight?: number;\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n @Input() @XInputBoolean() allowSelectRow: XBoolean = true;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XInputBoolean() virtualScroll: XBoolean = false;\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 @Input() @XInputNumber() itemSize: number = 42;\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 @Input() minBufferPx: number = 100;\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 @Input() maxBufferPx: number = 200;\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 @Input() @XInputNumber() adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n @Input() @XInputNumber() docPercent: XNumber = 1;\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n @Input() scroll?: { x: number; y: number };\r\n /**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\n @Input() cellConfig?: XTableCellConfigRule;\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({ template: '' })\r\nexport class XTableFootProperty extends XProperty {}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, EventEmitter, Inject, Output, Renderer2 } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Directive({ selector: '[xDrag]' })\r\nexport class XDragDirective {\r\n @Output() draging = new EventEmitter<{ x: number; y: number }>();\r\n private _unSubject = new Subject<void>();\r\n doc: Document;\r\n\r\n constructor(private elementRef: ElementRef, @Inject(DOCUMENT) document: any, private renderer: Renderer2) {\r\n this.doc = document;\r\n }\r\n\r\n ngOnInit() {\r\n const mouseDown = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown');\r\n\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 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.draging.emit({ x: offsetX, y: 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 _unSub.next();\r\n _unSub.complete();\r\n });\r\n });\r\n\r\n // fromEvent(this.elementRef.nativeElement, 'mousedown')\r\n // .pipe(\r\n // tap((mouse: MouseEvent) => {\r\n // return { startX: mouse.clientX, startY: mouse.clientY };\r\n // }),\r\n // tap((x) => {\r\n // fromEvent(this.elementRef.nativeElement, 'mousemove').pipe()\r\n // }),\r\n // takeUntil(this._unSubject)\r\n // )\r\n // .subscribe((x) => {\r\n // console.log(x);\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 {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n SimpleChanges,\r\n ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableHeadPrefix, XTableHeadProperty, XTableColumn, XTableCell } from './table.property';\r\nimport { removeNgTag, XIsEmpty, XSort, XIsChange, XConfigService, XNumber } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTableHeadPrefix}`,\r\n templateUrl: './table-head.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class XTableHeadComponent extends XTableHeadProperty implements OnInit {\r\n sort: XSort[] = [];\r\n sortStr = '';\r\n theadStyle: { [property: string]: any } = {};\r\n @ViewChild('thead') thead!: ElementRef;\r\n @Input() table: any;\r\n get getRowHeight() {\r\n return this.rowHeight == 0 ? '' : this.rowHeight;\r\n }\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { columns, scrollYWidth, scrollXWidth, cellConfig } = simples;\r\n XIsChange(columns, scrollYWidth, scrollXWidth, cellConfig) && this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n this.setStyle();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.thead = this.thead;\r\n this.table.headChange = () => this.cdr.detectChanges();\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\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 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.theadStyle = {\r\n height: `${height}px`,\r\n ['min-height']: `${this.getRowHeight}px`\r\n };\r\n }\r\n\r\n onSort(column: XTableColumn) {\r\n if (!column.sort) return;\r\n if (XIsEmpty(this.sort)) this.sort = [];\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 = [];\r\n this.sortStr = '';\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 = [sort];\r\n }\r\n if (!XIsEmpty(this.sort)) this.sortStr = `${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 this.cdr.detectChanges();\r\n }\r\n\r\n dragWidth(dis: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n if (column.width) {\r\n (column.width as number) += dis.x;\r\n if (column.width < 60) column.width = 60;\r\n this.cdr.detectChanges();\r\n this.table.bodyChange();\r\n }\r\n }\r\n\r\n trackByItem(_index: number, item: XTableColumn) {\r\n return item.id;\r\n }\r\n}\r\n","<thead #thead [ngStyle]=\"theadStyle\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"getSticky(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.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl>\r\n <tr\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n [class.x-table-sticky]=\"getSticky(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"column.width\"\r\n [style.left.px]=\"column.left\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n","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 OnChanges,\r\n Inject,\r\n ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableBodyPrefix, XTableBodyProperty, XTableRow, XTableColumn, XTableCell } from './table.property';\r\nimport { removeNgTag, XIsChange, XResize, XConfigService, XNumber, stripTags } from '@ng-nest/ui/core';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XTableBodyPrefix}`,\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, OnChanges {\r\n tbodyStyle: { [property: string]: any } = {};\r\n get isEmpty() {\r\n return this.data?.length === 0;\r\n }\r\n get getRowHeight() {\r\n return this.rowHeight == 0 ? '' : this.rowHeight;\r\n }\r\n get getItemSize() {\r\n return this.rowHeight !== 0 && this.itemSize > this.rowHeight ? this.rowHeight : this.itemSize;\r\n }\r\n\r\n @ViewChild('tbody') tbody!: ElementRef;\r\n @ViewChild('virtualBody') virtualBody!: CdkVirtualScrollViewport;\r\n @Input() table: any;\r\n\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: ResizeObserver;\r\n\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n @Inject(DOCUMENT) public doc: any,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, columns, activatedRow, mergeRule } = simples;\r\n XIsChange(data, columns, activatedRow, mergeRule) && this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n if (this.scroll?.y && !this.bodyHeight) {\r\n this.bodyHeight = this.scroll.y;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.virtualBody = this.virtualBody;\r\n this.table.bodyChange = () => this.cdr.detectChanges();\r\n this.setSubject();\r\n this.setScroll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n setSubject() {\r\n if (this.virtualBody) {\r\n this.table.scrollContentEle = this.virtualBody?.elementRef?.nativeElement.querySelector(\r\n '.cdk-virtual-scroll-content-wrapper'\r\n ) as HTMLElement;\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(takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this._resizeObserver = x.resizeObserver;\r\n this.setAdaptionHeight();\r\n this.setScroll();\r\n });\r\n fromEvent(window, 'resize')\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setAdaptionHeight();\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 = ele.scrollTop;\r\n this.table.scrollLeft = ele.scrollLeft;\r\n if (ele.scrollLeft >= 0 && this.table.thead) {\r\n this.table.thead.nativeElement.scrollLeft = this.table.scrollLeft;\r\n }\r\n this.table.cdr.detectChanges();\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.bodyHeight as number);\r\n const hasX = this.table.scrollContentEle.clientWidth > ele.clientWidth;\r\n\r\n if (!this.table.hasScrollY && hasY) {\r\n this.table.hasScrollY = true;\r\n this.table.scrollYWidth = ele.offsetWidth - ele.clientWidth;\r\n } else if (this.table.hasScrollY && !hasY) {\r\n this.table.hasScrollY = false;\r\n this.table.scrollYWidth = 0;\r\n }\r\n\r\n if (!this.table.hasScrollX && hasX) {\r\n this.table.hasScrollX = true;\r\n this.table.scrollXHeight = ele.offsetHeight - ele.clientHeight;\r\n } else if (this.table.hasScrollX && !hasX) {\r\n this.table.hasScrollX = false;\r\n this.table.scrollXHeight = 0;\r\n this.table.scrollXWidth = null;\r\n }\r\n if (hasX) {\r\n this.table.scrollXWidth = ele.offsetWidth + ele.scrollWidth - ele.clientWidth;\r\n }\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 = {\r\n height: `${height}px`\r\n };\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 ? stripTags(it) : '';\r\n }\r\n\r\n setAdaptionHeight() {\r\n if ((this.adaptionHeight as number) > 0) {\r\n const headHeight = this.table.thead?.nativeElement.clientHeight || 0;\r\n const footHeight = this.table.tfoot?.nativeElement.clientHeight || 0;\r\n const paginationHeight = this.table.pagination?.elementRef.nativeElement.clientHeight || 0;\r\n this.bodyHeight =\r\n Number(this.docPercent) * this.doc.documentElement.clientHeight -\r\n headHeight -\r\n footHeight -\r\n paginationHeight -\r\n Number(this.adaptionHeight);\r\n if (this.bodyHeight < 0) this.bodyHeight = 0;\r\n this.minBufferPx = this.bodyHeight;\r\n this.maxBufferPx = this.bodyHeight * 1.2;\r\n this.virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPx;\r\n this.virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPx;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n rowClick(row: XTableRow) {\r\n this.activatedRow = row;\r\n if (this.table.rowChecked) {\r\n if (!Array.from((event as any).path).find((x: any) => x.localName == '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);\r\n }\r\n }\r\n this.activatedRowChange.emit(row);\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 <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick(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</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <tr\r\n *ngFor=\"let row of data; index as i; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick(row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [style.left.px]=\"column.left\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\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 ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableFootPrefix, XTableFootProperty } from './table.property';\r\nimport { removeNgTag } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTableFootPrefix}`,\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 @ViewChild('tfoot') tfoot!: ElementRef;\r\n @Input() table: any;\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.tfoot = this.tfoot!;\r\n }\r\n}\r\n","<tfoot></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 SimpleChanges,\r\n ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XTablePrefix, XTableProperty, XTableColumn, XTableRow, XTableCell, XTableCellConfigRule } from './table.property';\r\nimport { XIsChange, XIsEmpty, XResultList, XNumber, XSort, XConfigService } 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\n\r\n@Component({\r\n selector: `${XTablePrefix}`,\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 {\r\n get getScrollLeft() {\r\n return this.scrollLeft > 0;\r\n }\r\n get getScrollTop() {\r\n return this.scrollTop > 0;\r\n }\r\n thead!: ElementRef;\r\n tfoot!: ElementRef;\r\n virtualBody!: CdkVirtualScrollViewport;\r\n headChange!: () => void;\r\n bodyChange!: () => void;\r\n scrollContentEle!: HTMLElement;\r\n hasScrollY = false;\r\n scrollYWidth = 0;\r\n hasScrollX = false;\r\n scrollXHeight = 0;\r\n scrollXWidth!: number | null;\r\n scrollLeft = 0;\r\n scrollTop = 0;\r\n rowChecked!: XTableColumn;\r\n headCheckboxList!: XTableColumn[];\r\n dataIsFunc = false;\r\n getting = false;\r\n tableData: XTableRow[] = [];\r\n checkedValues: { [prop: string]: boolean } = {};\r\n indeterminate = '$$indeterminate';\r\n @ViewChild('table') table!: ElementRef;\r\n @ViewChild('pagination') pagination!: XPaginationComponent;\r\n private _unSubject = new Subject<void>();\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n this.setRowChecked();\r\n this.setMerge();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, checkedRow, columns, activatedRow, manual } = simples;\r\n XIsChange(data, checkedRow) && this.setData();\r\n XIsChange(columns, activatedRow) && this.cdr.detectChanges();\r\n XIsChange(manual) && this.setManual();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap = {\r\n [`${XTablePrefix}-row-size-${this.rowSize}`]: !XIsEmpty(this.rowSize)\r\n };\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getIndex(index: number) {\r\n return (Number(this.index) - 1) * Number(this.size) + index + 1;\r\n }\r\n\r\n setData() {\r\n if (Array.isArray(this.data)) {\r\n this.dataIsFunc = false;\r\n this.tableData = this.data;\r\n this.setChecked();\r\n this.setHeadCheckboxList();\r\n } else if (this.data instanceof Function) {\r\n this.dataIsFunc = true;\r\n this.getDataByFunc();\r\n }\r\n }\r\n\r\n getDataByFunc() {\r\n if (!this.manual) return;\r\n this.getting = true;\r\n this.cdr.detectChanges();\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 [this.tableData, this.total] = [x.list as XTableRow[], x.total as XNumber];\r\n if (this.virtualBody) {\r\n this.virtualBody.scrollToIndex(0);\r\n this.virtualBody.checkViewportSize();\r\n }\r\n this.getting = false;\r\n this.setChecked();\r\n this.setHeadCheckboxList();\r\n this.detectChanges();\r\n });\r\n }\r\n\r\n setManual() {\r\n if (this.dataIsFunc) this.getDataByFunc();\r\n }\r\n\r\n setRowChecked() {\r\n this.rowChecked = this.columns.find((x) => x.rowChecked) as XTableColumn;\r\n this.headCheckboxList = this.columns.filter((x) => x.type === 'checkbox' && x.headChecked);\r\n }\r\n\r\n setMerge() {\r\n if (!this.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 this.cellConfig.thead = setRule(this.cellConfig.thead);\r\n this.cellConfig.tbody = setRule(this.cellConfig.tbody);\r\n }\r\n\r\n change(index: number) {\r\n this.index = index;\r\n this.dataIsFunc && this.getDataByFunc();\r\n this.indexChange.emit(index);\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() {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(this.tableData) || !this.checkedRow) return;\r\n for (let key in this.checkedRow) {\r\n const arr = this.checkedRow[key];\r\n for (let item of this.tableData 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) this.tableData = [...result];\r\n this.detectChanges();\r\n }\r\n\r\n setHeadCheckboxList() {\r\n if (XIsEmpty(this.tableData) || !this.headCheckboxList) return;\r\n for (let column of this.headCheckboxList) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n checkSort(sort: XSort[]) {\r\n if (!this.dataIsFunc) return;\r\n if (typeof this.query === 'undefined') this.query = {};\r\n this.query.sort = sort;\r\n this.queryChange.emit(this.query);\r\n this.getDataByFunc();\r\n }\r\n\r\n headChecked(checked: boolean, column: XTableColumn) {\r\n this.tableData.forEach((x) => {\r\n x[column.id] = checked;\r\n });\r\n this.setCheckedValues(column);\r\n this.detectChanges();\r\n }\r\n\r\n bodyChecked(_checked: boolean, column: XTableColumn) {\r\n this.setCheckedValues(column);\r\n this.detectChanges();\r\n }\r\n\r\n setCheckedValues(column: XTableColumn) {\r\n const count = this.tableData.length;\r\n const checkedLen = this.tableData.filter((x) => x[column.id]).length;\r\n this.checkedValues[column.id] = count === checkedLen;\r\n this.checkedValues[column.id + this.indeterminate] = checkedLen > 0 && checkedLen < count;\r\n }\r\n\r\n detectChanges() {\r\n this.bodyChange && this.bodyChange();\r\n this.headChange && this.headChange();\r\n this.cdr.detectChanges();\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-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <x-table-head\r\n *ngIf=\"showHeader\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"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 [cellConfig]=\"cellConfig?.tbody\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-foot [table]=\"this\"></x-table-foot>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenBorder\"\r\n>\r\n</x-pagination>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPaginationModule } from '@ng-nest/ui/pagination';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XEmptyModule } from '@ng-nest/ui/empty';\r\nimport { XCheckboxModule } from '@ng-nest/ui/checkbox';\r\nimport { XLoadingModule } from '@ng-nest/ui/loading';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XTableProperty, XTableHeadProperty, XTableBodyProperty, XTableFootProperty } from './table.property';\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\nimport { XDragDirective } from './drag.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDragDirective,\r\n XTableComponent,\r\n XTableProperty,\r\n XTableHeadComponent,\r\n XTableHeadProperty,\r\n XTableBodyComponent,\r\n XTableBodyProperty,\r\n XTableFootComponent,\r\n XTableFootProperty\r\n ],\r\n exports: [XTableComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n XPaginationModule,\r\n XOutletModule,\r\n XCheckboxModule,\r\n XIconModule,\r\n ScrollingModule,\r\n XEmptyModule,\r\n XLoadingModule\r\n ]\r\n})\r\nexport class XTableModule {}\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-table.js","sources":["../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/drag.directive.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-body.component.ts","../../../../lib/ng-nest/ui/table/table-body.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.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 XNumber,\r\n XInputNumber,\r\n XIdentityProperty,\r\n XId,\r\n XSort,\r\n XInputBoolean,\r\n XBoolean,\r\n XData,\r\n XWithConfig,\r\n XTextAlign,\r\n XSize\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component, EventEmitter, TemplateRef, Output } from '@angular/core';\r\nimport { XPaginationProperty, XPaginationOption } from '@ng-nest/ui/pagination';\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_CONFIG_NAME = 'table';\r\n\r\n/**\r\n * Table Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTableProperty extends XPaginationProperty implements XTableOption {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n @Input() data: XData<XTableRow> = [];\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 42) @XInputNumber() rowHeight!: number;\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() loading!: XBoolean;\r\n /**\r\n * @zh_CN 是否展示列边框\r\n * @en_US Whether to show column borders\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() bordered!: XBoolean;\r\n /**\r\n * @zh_CN 是否显示列头\r\n * @en_US Whether to display the column headers\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() showHeader!: XBoolean;\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n @Input() activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 当前选中行改变\r\n * @en_US The currently selected row changes\r\n */\r\n @Output() activatedRowChange = new EventEmitter<XTableRow>();\r\n /**\r\n * @zh_CN 列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n @Input() headColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 列内容自定义模板\r\n * @en_US Column content custom template\r\n */\r\n @Input() bodyColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n @Input() rowClass?: (row: XTableRow, index: number) => { [className: string]: boolean };\r\n /**\r\n * @zh_CN 排序点击的事件\r\n * @en_US Sort click events\r\n */\r\n @Output() sortChange = new EventEmitter<XSort[]>();\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() allowSelectRow!: XBoolean;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() virtualScroll!: XBoolean;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n @Input() @XInputNumber() bodyHeight?: number;\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 @Input() @XWithConfig<number>(X_CONFIG_NAME, 42) @XInputNumber() itemSize!: number;\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 @Input() minBufferPx: number = 100;\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 @Input() maxBufferPx: number = 200;\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 @Input() @XInputNumber() adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n @Input() @XInputNumber() docPercent: XNumber = 1;\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 @Input() checkedRow: { [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 @Input() @XInputBoolean() manual: XBoolean = true;\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n @Input() scroll?: { x: number; y: number };\r\n /**\r\n * @zh_CN 参数控制请求改变事件\r\n * @en_US Parameter control request change event\r\n */\r\n @Output() manualChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n @Input() cellConfig?: XTableCellConfig;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') rowSize?: XSize;\r\n}\r\n\r\n/**\r\n * Table Option\r\n * @undocument true\r\n */\r\nexport interface XTableOption extends XPaginationOption {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n data?: XData<XTableRow>;\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n columns?: XTableColumn[];\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n rowHeight?: number;\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n loading?: XBoolean;\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n headColumnTpl?: XTableTemplate;\r\n /**\r\n * @zh_CN 列内容自定义模板\r\n * @en_US Column content custom template\r\n */\r\n bodyColumnTpl?: XTableTemplate;\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n rowClass?: (row: XTableRow, index: number) => { [className: string]: boolean };\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n virtualScroll?: XBoolean;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n bodyHeight?: number;\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 minBufferPx?: number;\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 maxBufferPx?: number;\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 adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n docPercent?: XNumber;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n cellConfig?: XTableCellConfig;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n rowSize?: XSize;\r\n}\r\n\r\n/**\r\n * @zh_CN 数据\r\n * @en_US Data\r\n */\r\nexport interface XTableRow extends XId {\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 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 文字对齐方式\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 头部显示 checkbox\r\n * @en_US Head shows checkbox\r\n */\r\n headChecked?: 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 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 对应列的 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';\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({ template: '' })\r\nexport class XTableHeadProperty extends XProperty {\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 高度,单位 px\r\n * @en_US Height in px\r\n */\r\n @Input() @XInputNumber() rowHeight: XNumber = 42;\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n @Input() columnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 竖向滚动条宽度\r\n * @en_US Vertical scroll bar width\r\n */\r\n @Input() scrollYWidth?: number;\r\n /**\r\n * @zh_CN 横向滚动条宽度\r\n * @en_US Horizontal scroll bar width\r\n */\r\n @Input() scrollXWidth?: number | null;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n @Input() cellConfig?: XTableCellConfigRule;\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({ template: '' })\r\nexport class XTableBodyProperty extends XProperty {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n @Input() data: XTableRow[] = [];\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n @Input() columnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n @Input() activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 当前选中行改变\r\n * @en_US The currently selected row changes\r\n */\r\n @Output() activatedRowChange = new EventEmitter<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 @Input() @XInputNumber() rowHeight: XNumber = 42;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n @Input() @XInputNumber() bodyHeight?: number;\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n @Input() @XInputBoolean() allowSelectRow: XBoolean = true;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XInputBoolean() virtualScroll: XBoolean = false;\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 @Input() @XInputNumber() itemSize: number = 42;\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 @Input() minBufferPx: number = 100;\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 @Input() maxBufferPx: number = 200;\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 @Input() @XInputNumber() adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n @Input() @XInputNumber() docPercent: XNumber = 1;\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n @Input() scroll?: { x: number; y: number };\r\n /**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\n @Input() cellConfig?: XTableCellConfigRule;\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n @Input() rowClass?: (row: XTableRow, index: number) => { [className: string]: boolean };\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({ template: '' })\r\nexport class XTableFootProperty extends XProperty {}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, EventEmitter, Inject, Output, Renderer2 } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Directive({ selector: '[xDrag]' })\r\nexport class XDragDirective {\r\n @Output() draging = new EventEmitter<{ x: number; y: number }>();\r\n private _unSubject = new Subject<void>();\r\n doc: Document;\r\n\r\n constructor(private elementRef: ElementRef, @Inject(DOCUMENT) document: any, private renderer: Renderer2) {\r\n this.doc = document;\r\n }\r\n\r\n ngOnInit() {\r\n const mouseDown = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown');\r\n\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 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.draging.emit({ x: offsetX, y: 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 _unSub.next();\r\n _unSub.complete();\r\n });\r\n });\r\n\r\n // fromEvent(this.elementRef.nativeElement, 'mousedown')\r\n // .pipe(\r\n // tap((mouse: MouseEvent) => {\r\n // return { startX: mouse.clientX, startY: mouse.clientY };\r\n // }),\r\n // tap((x) => {\r\n // fromEvent(this.elementRef.nativeElement, 'mousemove').pipe()\r\n // }),\r\n // takeUntil(this._unSubject)\r\n // )\r\n // .subscribe((x) => {\r\n // console.log(x);\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 {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n SimpleChanges,\r\n ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableHeadPrefix, XTableHeadProperty, XTableColumn, XTableCell } from './table.property';\r\nimport { removeNgTag, XIsEmpty, XSort, XIsChange, XConfigService, XNumber } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTableHeadPrefix}`,\r\n templateUrl: './table-head.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class XTableHeadComponent extends XTableHeadProperty implements OnInit {\r\n sort: XSort[] = [];\r\n sortStr = '';\r\n theadStyle: { [property: string]: any } = {};\r\n @ViewChild('thead') thead!: ElementRef;\r\n @Input() table: any;\r\n get getRowHeight() {\r\n return this.rowHeight == 0 ? '' : this.rowHeight;\r\n }\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { columns, scrollYWidth, scrollXWidth, cellConfig } = simples;\r\n XIsChange(columns, scrollYWidth, scrollXWidth, cellConfig) && this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n this.setStyle();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.thead = this.thead;\r\n this.table.headChange = () => this.cdr.detectChanges();\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\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 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.theadStyle = {\r\n height: `${height}px`,\r\n ['min-height']: `${this.getRowHeight}px`\r\n };\r\n }\r\n\r\n onSort(column: XTableColumn) {\r\n if (!column.sort) return;\r\n if (XIsEmpty(this.sort)) this.sort = [];\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 = [];\r\n this.sortStr = '';\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 = [sort];\r\n }\r\n if (!XIsEmpty(this.sort)) this.sortStr = `${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 this.cdr.detectChanges();\r\n }\r\n\r\n dragWidth(dis: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n if (column.width) {\r\n (column.width as number) += dis.x;\r\n if (column.width < 60) column.width = 60;\r\n this.cdr.detectChanges();\r\n this.table.bodyChange();\r\n }\r\n }\r\n\r\n trackByItem(_index: number, item: XTableColumn) {\r\n return item.id;\r\n }\r\n}\r\n","<thead #thead [ngStyle]=\"theadStyle\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"getSticky(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.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl>\r\n <tr\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n [class.x-table-sticky]=\"getSticky(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"column.width\"\r\n [style.left.px]=\"column.left\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n","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 OnChanges,\r\n Inject,\r\n ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableBodyPrefix, XTableBodyProperty, XTableRow, XTableColumn, XTableCell } from './table.property';\r\nimport { removeNgTag, XIsChange, XResize, XConfigService, XNumber, stripTags } from '@ng-nest/ui/core';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XTableBodyPrefix}`,\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, OnChanges {\r\n tbodyStyle: { [property: string]: any } = {};\r\n get isEmpty() {\r\n return this.data?.length === 0;\r\n }\r\n get getRowHeight() {\r\n return this.rowHeight == 0 ? '' : this.rowHeight;\r\n }\r\n get getItemSize() {\r\n return this.rowHeight !== 0 && this.itemSize > this.rowHeight ? this.rowHeight : this.itemSize;\r\n }\r\n\r\n @ViewChild('tbody') tbody!: ElementRef;\r\n @ViewChild('virtualBody') virtualBody!: CdkVirtualScrollViewport;\r\n @Input() table: any;\r\n\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: ResizeObserver;\r\n\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n @Inject(DOCUMENT) public doc: any,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, columns, activatedRow, mergeRule } = simples;\r\n XIsChange(data, columns, activatedRow, mergeRule) && this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n if (this.scroll?.y && !this.bodyHeight) {\r\n this.bodyHeight = this.scroll.y;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.virtualBody = this.virtualBody;\r\n this.table.bodyChange = () => this.cdr.detectChanges();\r\n this.setSubject();\r\n this.setScroll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n setSubject() {\r\n if (this.virtualBody) {\r\n this.table.scrollContentEle = this.virtualBody?.elementRef?.nativeElement.querySelector(\r\n '.cdk-virtual-scroll-content-wrapper'\r\n ) as HTMLElement;\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(takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this._resizeObserver = x.resizeObserver;\r\n this.setAdaptionHeight();\r\n this.setScroll();\r\n });\r\n fromEvent(window, 'resize')\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setAdaptionHeight();\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 = ele.scrollTop;\r\n this.table.scrollLeft = ele.scrollLeft;\r\n if (ele.scrollLeft >= 0 && this.table.thead) {\r\n this.table.thead.nativeElement.scrollLeft = this.table.scrollLeft;\r\n }\r\n this.table.cdr.detectChanges();\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.bodyHeight as number);\r\n const hasX = this.table.scrollContentEle.clientWidth > ele.clientWidth;\r\n\r\n if (!this.table.hasScrollY && hasY) {\r\n this.table.hasScrollY = true;\r\n this.table.scrollYWidth = ele.offsetWidth - ele.clientWidth;\r\n } else if (this.table.hasScrollY && !hasY) {\r\n this.table.hasScrollY = false;\r\n this.table.scrollYWidth = 0;\r\n }\r\n\r\n if (!this.table.hasScrollX && hasX) {\r\n this.table.hasScrollX = true;\r\n this.table.scrollXHeight = ele.offsetHeight - ele.clientHeight;\r\n } else if (this.table.hasScrollX && !hasX) {\r\n this.table.hasScrollX = false;\r\n this.table.scrollXHeight = 0;\r\n this.table.scrollXWidth = null;\r\n }\r\n if (hasX) {\r\n this.table.scrollXWidth = ele.offsetWidth + ele.scrollWidth - ele.clientWidth;\r\n }\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 = {\r\n height: `${height}px`\r\n };\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 ? stripTags(it) : '';\r\n }\r\n\r\n setAdaptionHeight() {\r\n if ((this.adaptionHeight as number) > 0) {\r\n const headHeight = this.table.thead?.nativeElement.clientHeight || 0;\r\n const footHeight = this.table.tfoot?.nativeElement.clientHeight || 0;\r\n const paginationHeight = this.table.pagination?.elementRef.nativeElement.clientHeight || 0;\r\n this.bodyHeight =\r\n Number(this.docPercent) * this.doc.documentElement.clientHeight -\r\n headHeight -\r\n footHeight -\r\n paginationHeight -\r\n Number(this.adaptionHeight);\r\n if (this.bodyHeight < 0) this.bodyHeight = 0;\r\n this.minBufferPx = this.bodyHeight;\r\n this.maxBufferPx = this.bodyHeight * 1.2;\r\n this.virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPx;\r\n this.virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPx;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n rowClick(row: XTableRow) {\r\n this.activatedRow = row;\r\n if (this.allowSelectRow && this.table.rowChecked) {\r\n if (!Array.from((event as any).path).find((x: any) => x.localName == '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);\r\n }\r\n }\r\n this.activatedRowChange.emit(row);\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 <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, index)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick(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</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <tr\r\n *ngFor=\"let row of data; index as i; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick(row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [style.left.px]=\"column.left\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\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 ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableFootPrefix, XTableFootProperty } from './table.property';\r\nimport { removeNgTag } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTableFootPrefix}`,\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 @ViewChild('tfoot') tfoot!: ElementRef;\r\n @Input() table: any;\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.tfoot = this.tfoot!;\r\n }\r\n}\r\n","<tfoot></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 SimpleChanges,\r\n ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XTablePrefix, XTableProperty, XTableColumn, XTableRow, XTableCell, XTableCellConfigRule } from './table.property';\r\nimport { XIsChange, XIsEmpty, XResultList, XNumber, XSort, XConfigService } 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\n\r\n@Component({\r\n selector: `${XTablePrefix}`,\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 {\r\n get getScrollLeft() {\r\n return this.scrollLeft > 0;\r\n }\r\n get getScrollTop() {\r\n return this.scrollTop > 0;\r\n }\r\n thead!: ElementRef;\r\n tfoot!: ElementRef;\r\n virtualBody!: CdkVirtualScrollViewport;\r\n headChange!: () => void;\r\n bodyChange!: () => void;\r\n scrollContentEle!: HTMLElement;\r\n hasScrollY = false;\r\n scrollYWidth = 0;\r\n hasScrollX = false;\r\n scrollXHeight = 0;\r\n scrollXWidth!: number | null;\r\n scrollLeft = 0;\r\n scrollTop = 0;\r\n rowChecked!: XTableColumn;\r\n headCheckboxList!: XTableColumn[];\r\n dataIsFunc = false;\r\n getting = false;\r\n tableData: XTableRow[] = [];\r\n checkedValues: { [prop: string]: boolean } = {};\r\n indeterminate = '$$indeterminate';\r\n @ViewChild('table') table!: ElementRef;\r\n @ViewChild('pagination') pagination!: XPaginationComponent;\r\n private _unSubject = new Subject<void>();\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n this.setRowChecked();\r\n this.setMerge();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, checkedRow, columns, activatedRow, manual } = simples;\r\n XIsChange(data, checkedRow) && this.setData();\r\n XIsChange(columns, activatedRow) && this.cdr.detectChanges();\r\n XIsChange(manual) && this.setManual();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap = {\r\n [`${XTablePrefix}-row-size-${this.rowSize}`]: !XIsEmpty(this.rowSize)\r\n };\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getIndex(index: number) {\r\n return (Number(this.index) - 1) * Number(this.size) + index + 1;\r\n }\r\n\r\n setData() {\r\n if (Array.isArray(this.data)) {\r\n this.dataIsFunc = false;\r\n this.tableData = this.data;\r\n this.setChecked();\r\n this.setHeadCheckboxList();\r\n } else if (this.data instanceof Function) {\r\n this.dataIsFunc = true;\r\n this.getDataByFunc();\r\n }\r\n }\r\n\r\n getDataByFunc() {\r\n if (!this.manual) return;\r\n this.getting = true;\r\n this.cdr.detectChanges();\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 [this.tableData, this.total] = [x.list as XTableRow[], x.total as XNumber];\r\n if (this.virtualBody) {\r\n this.virtualBody.scrollToIndex(0);\r\n this.virtualBody.checkViewportSize();\r\n }\r\n this.getting = false;\r\n this.setChecked();\r\n this.setHeadCheckboxList();\r\n this.detectChanges();\r\n });\r\n }\r\n\r\n setManual() {\r\n if (this.dataIsFunc) this.getDataByFunc();\r\n }\r\n\r\n setRowChecked() {\r\n this.rowChecked = this.columns.find((x) => x.rowChecked) as XTableColumn;\r\n this.headCheckboxList = this.columns.filter((x) => x.type === 'checkbox' && x.headChecked);\r\n }\r\n\r\n setMerge() {\r\n if (!this.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 this.cellConfig.thead = setRule(this.cellConfig.thead);\r\n this.cellConfig.tbody = setRule(this.cellConfig.tbody);\r\n }\r\n\r\n change(index: number) {\r\n this.index = index;\r\n this.dataIsFunc && this.getDataByFunc();\r\n this.indexChange.emit(index);\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() {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(this.tableData) || !this.checkedRow) return;\r\n for (let key in this.checkedRow) {\r\n const arr = this.checkedRow[key];\r\n for (let item of this.tableData 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) this.tableData = [...result];\r\n this.detectChanges();\r\n }\r\n\r\n setHeadCheckboxList() {\r\n if (XIsEmpty(this.tableData) || !this.headCheckboxList) return;\r\n for (let column of this.headCheckboxList) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n checkSort(sort: XSort[]) {\r\n if (!this.dataIsFunc) return;\r\n if (typeof this.query === 'undefined') this.query = {};\r\n this.query.sort = sort;\r\n this.queryChange.emit(this.query);\r\n this.getDataByFunc();\r\n }\r\n\r\n headChecked(checked: boolean, column: XTableColumn) {\r\n this.tableData.forEach((x) => {\r\n x[column.id] = checked;\r\n });\r\n this.setCheckedValues(column);\r\n this.detectChanges();\r\n }\r\n\r\n bodyChecked(_checked: boolean, column: XTableColumn) {\r\n this.setCheckedValues(column);\r\n this.detectChanges();\r\n }\r\n\r\n setCheckedValues(column: XTableColumn) {\r\n const count = this.tableData.length;\r\n const checkedLen = this.tableData.filter((x) => x[column.id]).length;\r\n this.checkedValues[column.id] = count === checkedLen;\r\n this.checkedValues[column.id + this.indeterminate] = checkedLen > 0 && checkedLen < count;\r\n }\r\n\r\n detectChanges() {\r\n this.bodyChange && this.bodyChange();\r\n this.headChange && this.headChange();\r\n this.cdr.detectChanges();\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-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <x-table-head\r\n *ngIf=\"showHeader\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-foot [table]=\"this\"></x-table-foot>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenBorder\"\r\n>\r\n</x-pagination>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPaginationModule } from '@ng-nest/ui/pagination';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XEmptyModule } from '@ng-nest/ui/empty';\r\nimport { XCheckboxModule } from '@ng-nest/ui/checkbox';\r\nimport { XLoadingModule } from '@ng-nest/ui/loading';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XTableProperty, XTableHeadProperty, XTableBodyProperty, XTableFootProperty } from './table.property';\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\nimport { XDragDirective } from './drag.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDragDirective,\r\n XTableComponent,\r\n XTableProperty,\r\n XTableHeadComponent,\r\n XTableHeadProperty,\r\n XTableBodyComponent,\r\n XTableBodyProperty,\r\n XTableFootComponent,\r\n XTableFootProperty\r\n ],\r\n exports: [XTableComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n XPaginationModule,\r\n XOutletModule,\r\n XCheckboxModule,\r\n XIconModule,\r\n ScrollingModule,\r\n XEmptyModule,\r\n XLoadingModule\r\n ]\r\n})\r\nexport class XTableModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -43,6 +43,21 @@ export declare class XFindProperty extends XControlValueAccessor<any | any[]> im
43
43
  * @en_US Bullet title
44
44
  */
45
45
  dialogTitle: string;
46
+ /**
47
+ * @zh_CN 弹框表格选择列头名称
48
+ * @en_US Ball Form Select List Name
49
+ */
50
+ dialogCheckboxLabel: string;
51
+ /**
52
+ * @zh_CN 弹框表格选择列宽
53
+ * @en_US Ball Form Select List width
54
+ */
55
+ dialogCheckboxWidth: number;
56
+ /**
57
+ * @zh_CN 弹框选择数据为空的提示信息
58
+ * @en_US Ball box selection data empty prompt information
59
+ */
60
+ dialogEmptyContent: string;
46
61
  /**
47
62
  * @zh_CN 弹框宽度
48
63
  * @en_US Bullet frame width
@@ -211,7 +226,7 @@ export declare class XFindProperty extends XControlValueAccessor<any | any[]> im
211
226
  */
212
227
  search: XFindSearchOption;
213
228
  static ɵfac: i0.ɵɵFactoryDeclaration<XFindProperty, never>;
214
- static ɵcmp: i0.ɵɵComponentDeclaration<XFindProperty, "ng-component", never, { "size": "size"; "bordered": "bordered"; "multiple": "multiple"; "columnLabel": "columnLabel"; "dialogTitle": "dialogTitle"; "dialogWidth": "dialogWidth"; "dialogHeight": "dialogHeight"; "dialogVisible": "dialogVisible"; "dialogButtonsCenter": "dialogButtonsCenter"; "tableData": "tableData"; "tableIndex": "tableIndex"; "tableSize": "tableSize"; "tableQuery": "tableQuery"; "tableTotal": "tableTotal"; "tableColumns": "tableColumns"; "tableActivatedRow": "tableActivatedRow"; "tableCheckedRow": "tableCheckedRow"; "tableLoading": "tableLoading"; "tableVirtualScroll": "tableVirtualScroll"; "tableBodyHeight": "tableBodyHeight"; "tableMinBufferPx": "tableMinBufferPx"; "tableMaxBufferPx": "tableMaxBufferPx"; "tableAdaptionHeight": "tableAdaptionHeight"; "tableDocPercent": "tableDocPercent"; "tableRowHeight": "tableRowHeight"; "treeData": "treeData"; "treeActivatedId": "treeActivatedId"; "treeExpandedLevel": "treeExpandedLevel"; "treeChecked": "treeChecked"; "treeCheckbox": "treeCheckbox"; "treeTableConnect": "treeTableConnect"; "search": "search"; }, { "dialogVisibleChange": "dialogVisibleChange"; "tableIndexChange": "tableIndexChange"; "tableSizeChange": "tableSizeChange"; "tableSortChange": "tableSortChange"; "tableRowEmit": "tableRowEmit"; "treeActivatedChange": "treeActivatedChange"; }, never, never>;
229
+ static ɵcmp: i0.ɵɵComponentDeclaration<XFindProperty, "ng-component", never, { "size": "size"; "bordered": "bordered"; "multiple": "multiple"; "columnLabel": "columnLabel"; "dialogTitle": "dialogTitle"; "dialogCheckboxLabel": "dialogCheckboxLabel"; "dialogCheckboxWidth": "dialogCheckboxWidth"; "dialogEmptyContent": "dialogEmptyContent"; "dialogWidth": "dialogWidth"; "dialogHeight": "dialogHeight"; "dialogVisible": "dialogVisible"; "dialogButtonsCenter": "dialogButtonsCenter"; "tableData": "tableData"; "tableIndex": "tableIndex"; "tableSize": "tableSize"; "tableQuery": "tableQuery"; "tableTotal": "tableTotal"; "tableColumns": "tableColumns"; "tableActivatedRow": "tableActivatedRow"; "tableCheckedRow": "tableCheckedRow"; "tableLoading": "tableLoading"; "tableVirtualScroll": "tableVirtualScroll"; "tableBodyHeight": "tableBodyHeight"; "tableMinBufferPx": "tableMinBufferPx"; "tableMaxBufferPx": "tableMaxBufferPx"; "tableAdaptionHeight": "tableAdaptionHeight"; "tableDocPercent": "tableDocPercent"; "tableRowHeight": "tableRowHeight"; "treeData": "treeData"; "treeActivatedId": "treeActivatedId"; "treeExpandedLevel": "treeExpandedLevel"; "treeChecked": "treeChecked"; "treeCheckbox": "treeCheckbox"; "treeTableConnect": "treeTableConnect"; "search": "search"; }, { "dialogVisibleChange": "dialogVisibleChange"; "tableIndexChange": "tableIndexChange"; "tableSizeChange": "tableSizeChange"; "tableSortChange": "tableSortChange"; "tableRowEmit": "tableRowEmit"; "treeActivatedChange": "treeActivatedChange"; }, never, never>;
215
230
  }
216
231
  /**
217
232
  * Find Option
@@ -243,6 +258,21 @@ export interface XFindOption extends XFormOption {
243
258
  * @en_US Bullet title
244
259
  */
245
260
  dialogTitle?: string;
261
+ /**
262
+ * @zh_CN 弹框表格选择框列头名称
263
+ * @en_US Ball Form Select Box List Name
264
+ */
265
+ dialogCheckboxLabel?: string;
266
+ /**
267
+ * @zh_CN 弹框表格选择框列头宽度
268
+ * @en_US Ball Form Select Box List width
269
+ */
270
+ dialogCheckboxWidth?: number;
271
+ /**
272
+ * @zh_CN 弹框选择数据为空的提示内容
273
+ * @en_US Ball box selection data empty prompt information
274
+ */
275
+ dialogEmptyContent?: string;
246
276
  /**
247
277
  * @zh_CN 弹框宽度
248
278
  * @en_US Bullet frame width
@@ -0,0 +1,8 @@
1
+ import { XMessageOption } from './message.property';
2
+ export declare class XMessageRef {
3
+ option: XMessageOption;
4
+ constructor(option: XMessageOption);
5
+ close: () => void;
6
+ closeAll: () => void;
7
+ update: (_option: XMessageOption) => void;
8
+ }
@@ -1,11 +1,11 @@
1
1
  import { Renderer2, ElementRef, ChangeDetectorRef } from '@angular/core';
2
- import { XMessageOption, XMessageRef } from './message.property';
2
+ import { XMessageOption, XMessagePlacementRef } from './message.property';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class XMessageComponent {
5
5
  renderer: Renderer2;
6
6
  elementRef: ElementRef;
7
7
  cdr: ChangeDetectorRef;
8
- message: XMessageRef;
8
+ message: XMessagePlacementRef;
9
9
  constructor(renderer: Renderer2, elementRef: ElementRef, cdr: ChangeDetectorRef);
10
10
  onClose(item: XMessageOption): void;
11
11
  moveDone($event: {
@@ -13,7 +13,7 @@ export declare class XMessageComponent {
13
13
  }): void;
14
14
  onEnter(item: XMessageOption): void;
15
15
  onLeave(item: XMessageOption): void;
16
- trackByNode(_index: number, item: XMessageOption): string;
16
+ trackByNode(_index: number, item: XMessageOption): string | undefined;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<XMessageComponent, never>;
18
18
  static ɵcmp: i0.ɵɵComponentDeclaration<XMessageComponent, "x-message", never, {}, {}, never, never>;
19
19
  }
@@ -10,11 +10,16 @@ import { XMessageComponent } from './message.component';
10
10
  */
11
11
  export declare const XMessagePrefix = "x-message";
12
12
  export declare const XMessagePortal = "x-message-portal";
13
- export declare const X_CONFIG_NAME = "message";
13
+ export declare const X_MESSAGE_CONFIG_NAME = "message";
14
14
  /**
15
15
  * Message Option
16
16
  */
17
17
  export interface XMessageOption extends XAlertOption {
18
+ /**
19
+ * @zh_CN 消息框的 id
20
+ * @en_US Message id
21
+ */
22
+ id?: string;
18
23
  /**
19
24
  * @zh_CN 方位,九宫格
20
25
  * @en_US Direction, nine grid
@@ -98,12 +103,27 @@ export interface XMessageOverlayRef extends XPortalOverlayRef<XMessageComponent>
98
103
  * @en_US Message object in Jiugongge
99
104
  */
100
105
  export interface XMessagePlacement {
101
- [property: string]: XMessageRef;
106
+ [property: string]: XMessagePlacementRef;
102
107
  }
103
- export interface XMessageRef {
108
+ /**
109
+ * @zh_CN 九宫格中的消息对象
110
+ * @en_US Message object in Jiugongge
111
+ */
112
+ export interface XMessagePlacementRef {
113
+ /**
114
+ * @zh_CN 方位对应的 overlayRef
115
+ * @en_US Placement overlayRef
116
+ */
104
117
  ref: XMessageOverlayRef;
118
+ /**
119
+ * @zh_CN 对应的消息 list 数据
120
+ * @en_US Corresponding message list data
121
+ */
105
122
  list: XMessageOption[];
106
- currentClose: () => void;
123
+ /**
124
+ * @zh_CN 关闭所有数据
125
+ * @en_US Close all data
126
+ */
107
127
  closeAll: () => void;
108
128
  }
109
129
  /**
@@ -1,6 +1,7 @@
1
1
  import { XTemplate, XConfigService, XMessageConfig } from '@ng-nest/ui/core';
2
- import { XMessageOverlayRef, XMessagePlacement, XMessageRef, XMessageOption } from './message.property';
2
+ import { XMessageOverlayRef, XMessagePlacement, XMessageOption } from './message.property';
3
3
  import { XPortalService } from '@ng-nest/ui/portal';
4
+ import { XMessageRef } from './message-ref';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class XMessageService {
6
7
  portal: XPortalService;
@@ -13,6 +14,7 @@ export declare class XMessageService {
13
14
  success(option: XTemplate | XMessageOption): XMessageRef;
14
15
  warning(option: XTemplate | XMessageOption): XMessageRef;
15
16
  error(option: XTemplate | XMessageOption): XMessageRef;
17
+ loading(option: XTemplate | XMessageOption): XMessageRef;
16
18
  create(option: XMessageOption): XMessageOverlayRef;
17
19
  private createMessage;
18
20
  private closeAll;
@@ -20,6 +22,7 @@ export declare class XMessageService {
20
22
  private messageChange;
21
23
  private setDuration;
22
24
  private removeMessage;
25
+ private updateMessage;
23
26
  static ɵfac: i0.ɵɵFactoryDeclaration<XMessageService, never>;
24
27
  static ɵprov: i0.ɵɵInjectableDeclaration<XMessageService>;
25
28
  }
@@ -1,4 +1,5 @@
1
1
  export * from './message.component';
2
+ export * from './message-ref';
2
3
  export * from './message.service';
3
4
  export * from './message.module';
4
5
  export * from './message.property';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-nest/ui",
3
- "version": "12.0.10",
3
+ "version": "12.1.2",
4
4
  "homepage": "https://www.ngnest.com",
5
5
  "author": "ng-nest",
6
6
  "ng-update": {
@@ -1,9 +1,9 @@
1
- import { Renderer2, ElementRef, ChangeDetectorRef } from '@angular/core';
1
+ import { Renderer2, ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
2
2
  import { XPopconfirmProperty } from './popconfirm.property';
3
3
  import { XBoolean, XConfigService } from '@ng-nest/ui/core';
4
4
  import { XI18nService, XI18nPopconfirm } from '@ng-nest/ui/i18n';
5
5
  import * as i0 from "@angular/core";
6
- export declare class XPopconfirmComponent extends XPopconfirmProperty {
6
+ export declare class XPopconfirmComponent extends XPopconfirmProperty implements OnDestroy {
7
7
  renderer: Renderer2;
8
8
  elementRef: ElementRef;
9
9
  cdr: ChangeDetectorRef;
@@ -11,13 +11,17 @@ export declare class XPopconfirmComponent extends XPopconfirmProperty {
11
11
  i18n: XI18nService;
12
12
  visible: XBoolean;
13
13
  locale: XI18nPopconfirm;
14
+ loading: boolean;
14
15
  private _unSubject;
16
+ private _asyncUnSub;
15
17
  get getCancelText(): string | undefined;
16
18
  get getConfirmText(): string | undefined;
17
19
  constructor(renderer: Renderer2, elementRef: ElementRef, cdr: ChangeDetectorRef, configService: XConfigService, i18n: XI18nService);
18
20
  ngOnInit(): void;
21
+ ngOnDestroy(): void;
19
22
  onCancel(): void;
20
23
  onConfirm(): void;
24
+ onClick(): void;
21
25
  static ɵfac: i0.ɵɵFactoryDeclaration<XPopconfirmComponent, never>;
22
26
  static ɵcmp: i0.ɵɵComponentDeclaration<XPopconfirmComponent, "x-popconfirm", never, {}, {}, never, ["*"]>;
23
27
  }
@@ -1,6 +1,7 @@
1
- import { XPlacement, XTemplate, XProperty } from '@ng-nest/ui/core';
1
+ import { XPlacement, XTemplate, XProperty, XBoolean } from '@ng-nest/ui/core';
2
2
  import { XPopoverTrigger } from '@ng-nest/ui/popover';
3
3
  import { EventEmitter } from '@angular/core';
4
+ import { Observable } from 'rxjs';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
6
7
  * Popconfirm
@@ -57,6 +58,16 @@ export declare class XPopconfirmProperty extends XProperty {
57
58
  * @en_US Confirmed text
58
59
  */
59
60
  confirmText?: string;
61
+ /**
62
+ * @zh_CN 确认异步 Observable
63
+ * @en_US Confirm async
64
+ */
65
+ confirmAsync?: Observable<void>;
66
+ /**
67
+ * @zh_CN 条件触发
68
+ * @en_US condition trigger
69
+ */
70
+ condition?: XBoolean;
60
71
  /**
61
72
  * @zh_CN 取消的点击事件
62
73
  * @en_US Cancelled click event
@@ -68,5 +79,5 @@ export declare class XPopconfirmProperty extends XProperty {
68
79
  */
69
80
  confirm: EventEmitter<any>;
70
81
  static ɵfac: i0.ɵɵFactoryDeclaration<XPopconfirmProperty, never>;
71
- static ɵcmp: i0.ɵɵComponentDeclaration<XPopconfirmProperty, "ng-component", never, { "title": "title"; "content": "content"; "placement": "placement"; "trigger": "trigger"; "width": "width"; "icon": "icon"; "iconColor": "iconColor"; "cancelText": "cancelText"; "confirmText": "confirmText"; }, { "cancel": "cancel"; "confirm": "confirm"; }, never, never>;
82
+ static ɵcmp: i0.ɵɵComponentDeclaration<XPopconfirmProperty, "ng-component", never, { "title": "title"; "content": "content"; "placement": "placement"; "trigger": "trigger"; "width": "width"; "icon": "icon"; "iconColor": "iconColor"; "cancelText": "cancelText"; "confirmText": "confirmText"; "confirmAsync": "confirmAsync"; "condition": "condition"; }, { "cancel": "cancel"; "confirm": "confirm"; }, never, never>;
72
83
  }