@ng-nest/ui 15.0.5 → 15.0.6

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 (482) hide show
  1. package/anchor/anchor.component.d.ts +5 -5
  2. package/api/api.component.d.ts +1 -1
  3. package/auto-complete/auto-complete.component.d.ts +1 -1
  4. package/avatar/avatar.component.d.ts +3 -3
  5. package/back-top/back-top.component.d.ts +2 -2
  6. package/badge/badge.component.d.ts +2 -2
  7. package/border/border.component.d.ts +1 -1
  8. package/button/button.component.d.ts +2 -2
  9. package/button/buttons.component.d.ts +1 -1
  10. package/calendar/calendar.component.d.ts +2 -2
  11. package/card/card.component.d.ts +2 -2
  12. package/carousel/carousel-panel.component.d.ts +2 -2
  13. package/carousel/carousel.component.d.ts +4 -4
  14. package/cascade/cascade.component.d.ts +1 -1
  15. package/checkbox/checkbox.component.d.ts +3 -3
  16. package/collapse/collapse-panel.component.d.ts +2 -2
  17. package/collapse/collapse.component.d.ts +2 -2
  18. package/color/color.component.d.ts +1 -1
  19. package/color-picker/color-picker-portal.component.d.ts +4 -4
  20. package/color-picker/color-picker.component.d.ts +1 -1
  21. package/comment/comment-reply.component.d.ts +2 -2
  22. package/comment/comment.component.d.ts +2 -2
  23. package/container/aside.component.d.ts +1 -1
  24. package/container/container.component.d.ts +1 -1
  25. package/container/footer.component.d.ts +1 -1
  26. package/container/header.component.d.ts +1 -1
  27. package/container/main.component.d.ts +1 -1
  28. package/core/config/config.d.ts +1 -0
  29. package/core/functions/chunk.d.ts +1 -0
  30. package/core/functions/flex.d.ts +1 -1
  31. package/core/functions/group-by.d.ts +1 -0
  32. package/core/functions/guid.d.ts +4 -0
  33. package/core/functions/public-api.d.ts +4 -0
  34. package/core/{util → functions}/resize.d.ts +0 -0
  35. package/core/util/public-api.d.ts +0 -4
  36. package/date-picker/date-picker.component.d.ts +1 -1
  37. package/date-picker/date-range.component.d.ts +1 -1
  38. package/dialog/dialog.component.d.ts +2 -2
  39. package/drawer/drawer.component.d.ts +2 -2
  40. package/dropdown/dropdown-portal.component.d.ts +2 -2
  41. package/dropdown/dropdown.component.d.ts +3 -3
  42. package/esm2020/anchor/anchor.component.mjs +1 -2
  43. package/esm2020/api/api.component.mjs +1 -1
  44. package/esm2020/auto-complete/auto-complete.component.mjs +1 -1
  45. package/esm2020/avatar/avatar.component.mjs +1 -1
  46. package/esm2020/back-top/back-top.component.mjs +1 -1
  47. package/esm2020/badge/badge.component.mjs +1 -1
  48. package/esm2020/base-form/base-form.component.mjs +3 -3
  49. package/esm2020/border/border.component.mjs +1 -1
  50. package/esm2020/button/button.component.mjs +1 -1
  51. package/esm2020/button/buttons.component.mjs +1 -1
  52. package/esm2020/calendar/calendar.component.mjs +1 -1
  53. package/esm2020/card/card.component.mjs +1 -1
  54. package/esm2020/carousel/carousel-panel.component.mjs +1 -1
  55. package/esm2020/carousel/carousel.component.mjs +1 -1
  56. package/esm2020/cascade/cascade.component.mjs +1 -1
  57. package/esm2020/checkbox/checkbox.component.mjs +1 -1
  58. package/esm2020/collapse/collapse-panel.component.mjs +1 -1
  59. package/esm2020/collapse/collapse.component.mjs +1 -1
  60. package/esm2020/color/color.component.mjs +1 -1
  61. package/esm2020/color-picker/color-picker-portal.component.mjs +1 -1
  62. package/esm2020/color-picker/color-picker.component.mjs +1 -1
  63. package/esm2020/comment/comment-reply.component.mjs +1 -1
  64. package/esm2020/comment/comment.component.mjs +1 -1
  65. package/esm2020/container/aside.component.mjs +1 -1
  66. package/esm2020/container/container.component.mjs +1 -1
  67. package/esm2020/container/footer.component.mjs +1 -1
  68. package/esm2020/container/header.component.mjs +1 -1
  69. package/esm2020/container/main.component.mjs +1 -1
  70. package/esm2020/core/config/config.mjs +1 -1
  71. package/esm2020/core/functions/chunk.mjs +14 -0
  72. package/esm2020/core/functions/flex.mjs +2 -2
  73. package/esm2020/core/functions/group-by.mjs +10 -0
  74. package/esm2020/core/functions/guid.mjs +10 -0
  75. package/esm2020/core/functions/order-by.mjs +24 -3
  76. package/esm2020/core/functions/public-api.mjs +5 -1
  77. package/esm2020/core/functions/resize.mjs +17 -0
  78. package/esm2020/core/util/public-api.mjs +1 -5
  79. package/esm2020/date-picker/date-picker-portal.component.mjs +2 -2
  80. package/esm2020/date-picker/date-picker.component.mjs +1 -1
  81. package/esm2020/date-picker/date-range.component.mjs +1 -1
  82. package/esm2020/date-picker/picker-date.component.mjs +3 -3
  83. package/esm2020/date-picker/picker-month.component.mjs +3 -3
  84. package/esm2020/date-picker/picker-year.component.mjs +3 -3
  85. package/esm2020/dialog/dialog.component.mjs +2 -2
  86. package/esm2020/drawer/drawer.component.mjs +1 -1
  87. package/esm2020/dropdown/dropdown-portal.component.mjs +1 -1
  88. package/esm2020/dropdown/dropdown.component.mjs +1 -1
  89. package/esm2020/find/find.component.mjs +1 -1
  90. package/esm2020/form/control.component.mjs +2 -2
  91. package/esm2020/form/form.component.mjs +8 -1
  92. package/esm2020/highlight/highlight.component.mjs +2 -2
  93. package/esm2020/i18n/i18n.property.mjs +1 -1
  94. package/esm2020/i18n/languages/en_GB.mjs +44 -18
  95. package/esm2020/i18n/languages/en_US.mjs +8 -2
  96. package/esm2020/i18n/languages/zh_CN.mjs +8 -2
  97. package/esm2020/i18n/languages/zh_TW.mjs +9 -3
  98. package/esm2020/icon/icon.component.mjs +1 -1
  99. package/esm2020/image/image-preview.component.mjs +1 -1
  100. package/esm2020/image/image.component.mjs +1 -1
  101. package/esm2020/inner/inner.component.mjs +1 -1
  102. package/esm2020/input/input-group.component.mjs +1 -1
  103. package/esm2020/input/input.component.mjs +1 -1
  104. package/esm2020/input-number/input-number.component.mjs +1 -1
  105. package/esm2020/link/link.component.mjs +1 -1
  106. package/esm2020/list/list-option.component.mjs +1 -1
  107. package/esm2020/list/list.component.mjs +2 -2
  108. package/esm2020/loading/loading.component.mjs +2 -2
  109. package/esm2020/menu/menu-node.component.mjs +1 -1
  110. package/esm2020/menu/menu.component.mjs +3 -3
  111. package/esm2020/message/message.component.mjs +1 -1
  112. package/esm2020/message-box/message-box.component.mjs +1 -1
  113. package/esm2020/notification/notification.component.mjs +1 -1
  114. package/esm2020/pagination/pagination.component.mjs +1 -1
  115. package/esm2020/popconfirm/popconfirm.component.mjs +1 -1
  116. package/esm2020/popover/popover-portal.component.mjs +1 -1
  117. package/esm2020/progress/progress.component.mjs +1 -1
  118. package/esm2020/radio/radio.component.mjs +1 -1
  119. package/esm2020/rate/rate.component.mjs +1 -1
  120. package/esm2020/result/result.component.mjs +1 -1
  121. package/esm2020/select/select.component.mjs +3 -3
  122. package/esm2020/skeleton/skeleton.component.mjs +1 -1
  123. package/esm2020/slider/slider.component.mjs +1 -1
  124. package/esm2020/slider-select/slider-select.component.mjs +1 -1
  125. package/esm2020/steps/steps.component.mjs +1 -1
  126. package/esm2020/switch/switch.component.mjs +1 -1
  127. package/esm2020/table/table-body.component.mjs +1 -1
  128. package/esm2020/table/table-foot.component.mjs +1 -1
  129. package/esm2020/table/table-head.component.mjs +1 -1
  130. package/esm2020/table/table.component.mjs +1 -1
  131. package/esm2020/tabs/tab-content.component.mjs +1 -1
  132. package/esm2020/tabs/tab.component.mjs +3 -3
  133. package/esm2020/tabs/tabs.component.mjs +3 -3
  134. package/esm2020/tag/tag.component.mjs +1 -1
  135. package/esm2020/text-retract/text-retract.component.mjs +1 -1
  136. package/esm2020/textarea/textarea.component.mjs +1 -1
  137. package/esm2020/time-picker/time-picker-frame.component.mjs +188 -55
  138. package/esm2020/time-picker/time-picker-portal.component.mjs +30 -8
  139. package/esm2020/time-picker/time-picker.component.mjs +36 -9
  140. package/esm2020/time-picker/time-picker.module.mjs +8 -4
  141. package/esm2020/time-picker/time-picker.property.mjs +37 -3
  142. package/esm2020/timeline/timeline.component.mjs +1 -1
  143. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  144. package/esm2020/transfer/transfer.component.mjs +3 -3
  145. package/esm2020/transfer/transfer.module.mjs +8 -4
  146. package/esm2020/tree/tree-node.component.mjs +1 -1
  147. package/esm2020/tree/tree.component.mjs +1 -1
  148. package/esm2020/tree-file/tree-file.component.mjs +1 -1
  149. package/esm2020/tree-select/tree-select.component.mjs +1 -1
  150. package/esm2020/upload/upload-portal.component.mjs +5 -1
  151. package/esm2020/upload/upload.component.mjs +1 -1
  152. package/fesm2015/ng-nest-ui-anchor.mjs +0 -2
  153. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  154. package/fesm2015/ng-nest-ui-api.mjs +0 -1
  155. package/fesm2015/ng-nest-ui-api.mjs.map +1 -1
  156. package/fesm2015/ng-nest-ui-auto-complete.mjs +0 -1
  157. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  158. package/fesm2015/ng-nest-ui-avatar.mjs +0 -1
  159. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  160. package/fesm2015/ng-nest-ui-back-top.mjs +0 -1
  161. package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
  162. package/fesm2015/ng-nest-ui-badge.mjs +0 -1
  163. package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
  164. package/fesm2015/ng-nest-ui-base-form.mjs +2 -3
  165. package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
  166. package/fesm2015/ng-nest-ui-border.mjs +0 -1
  167. package/fesm2015/ng-nest-ui-border.mjs.map +1 -1
  168. package/fesm2015/ng-nest-ui-button.mjs +0 -1
  169. package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
  170. package/fesm2015/ng-nest-ui-calendar.mjs +0 -1
  171. package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
  172. package/fesm2015/ng-nest-ui-card.mjs +0 -1
  173. package/fesm2015/ng-nest-ui-card.mjs.map +1 -1
  174. package/fesm2015/ng-nest-ui-carousel.mjs +0 -1
  175. package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
  176. package/fesm2015/ng-nest-ui-cascade.mjs +0 -1
  177. package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
  178. package/fesm2015/ng-nest-ui-checkbox.mjs +0 -1
  179. package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
  180. package/fesm2015/ng-nest-ui-collapse.mjs +0 -1
  181. package/fesm2015/ng-nest-ui-collapse.mjs.map +1 -1
  182. package/fesm2015/ng-nest-ui-color-picker.mjs +0 -1
  183. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  184. package/fesm2015/ng-nest-ui-color.mjs +0 -1
  185. package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
  186. package/fesm2015/ng-nest-ui-comment.mjs +0 -1
  187. package/fesm2015/ng-nest-ui-comment.mjs.map +1 -1
  188. package/fesm2015/ng-nest-ui-container.mjs +0 -1
  189. package/fesm2015/ng-nest-ui-container.mjs.map +1 -1
  190. package/fesm2015/ng-nest-ui-core.mjs +76 -56
  191. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  192. package/fesm2015/ng-nest-ui-date-picker.mjs +5 -6
  193. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  194. package/fesm2015/ng-nest-ui-dialog.mjs +1 -2
  195. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  196. package/fesm2015/ng-nest-ui-drawer.mjs +0 -1
  197. package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
  198. package/fesm2015/ng-nest-ui-dropdown.mjs +0 -1
  199. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  200. package/fesm2015/ng-nest-ui-find.mjs +0 -1
  201. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  202. package/fesm2015/ng-nest-ui-form.mjs +8 -2
  203. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  204. package/fesm2015/ng-nest-ui-highlight.mjs +1 -2
  205. package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
  206. package/fesm2015/ng-nest-ui-i18n.mjs +65 -22
  207. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  208. package/fesm2015/ng-nest-ui-icon.mjs +0 -1
  209. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  210. package/fesm2015/ng-nest-ui-image.mjs +0 -1
  211. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  212. package/fesm2015/ng-nest-ui-inner.mjs +0 -1
  213. package/fesm2015/ng-nest-ui-inner.mjs.map +1 -1
  214. package/fesm2015/ng-nest-ui-input-number.mjs +0 -1
  215. package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
  216. package/fesm2015/ng-nest-ui-input.mjs +0 -1
  217. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  218. package/fesm2015/ng-nest-ui-link.mjs +0 -1
  219. package/fesm2015/ng-nest-ui-link.mjs.map +1 -1
  220. package/fesm2015/ng-nest-ui-list.mjs +1 -2
  221. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  222. package/fesm2015/ng-nest-ui-loading.mjs +1 -2
  223. package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
  224. package/fesm2015/ng-nest-ui-menu.mjs +2 -3
  225. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  226. package/fesm2015/ng-nest-ui-message-box.mjs +0 -1
  227. package/fesm2015/ng-nest-ui-message-box.mjs.map +1 -1
  228. package/fesm2015/ng-nest-ui-message.mjs +0 -1
  229. package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
  230. package/fesm2015/ng-nest-ui-notification.mjs +0 -1
  231. package/fesm2015/ng-nest-ui-notification.mjs.map +1 -1
  232. package/fesm2015/ng-nest-ui-pagination.mjs +0 -1
  233. package/fesm2015/ng-nest-ui-pagination.mjs.map +1 -1
  234. package/fesm2015/ng-nest-ui-popconfirm.mjs +0 -1
  235. package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
  236. package/fesm2015/ng-nest-ui-popover.mjs +0 -1
  237. package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
  238. package/fesm2015/ng-nest-ui-progress.mjs +0 -1
  239. package/fesm2015/ng-nest-ui-progress.mjs.map +1 -1
  240. package/fesm2015/ng-nest-ui-radio.mjs +0 -1
  241. package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
  242. package/fesm2015/ng-nest-ui-rate.mjs +0 -1
  243. package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
  244. package/fesm2015/ng-nest-ui-result.mjs +0 -1
  245. package/fesm2015/ng-nest-ui-result.mjs.map +1 -1
  246. package/fesm2015/ng-nest-ui-select.mjs +2 -3
  247. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  248. package/fesm2015/ng-nest-ui-skeleton.mjs +0 -1
  249. package/fesm2015/ng-nest-ui-skeleton.mjs.map +1 -1
  250. package/fesm2015/ng-nest-ui-slider-select.mjs +0 -1
  251. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  252. package/fesm2015/ng-nest-ui-slider.mjs +0 -1
  253. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  254. package/fesm2015/ng-nest-ui-steps.mjs +0 -1
  255. package/fesm2015/ng-nest-ui-steps.mjs.map +1 -1
  256. package/fesm2015/ng-nest-ui-switch.mjs +0 -1
  257. package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
  258. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  259. package/fesm2015/ng-nest-ui-tabs.mjs +4 -5
  260. package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
  261. package/fesm2015/ng-nest-ui-tag.mjs +0 -1
  262. package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
  263. package/fesm2015/ng-nest-ui-text-retract.mjs +0 -1
  264. package/fesm2015/ng-nest-ui-text-retract.mjs.map +1 -1
  265. package/fesm2015/ng-nest-ui-textarea.mjs +0 -1
  266. package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
  267. package/fesm2015/ng-nest-ui-time-picker.mjs +292 -81
  268. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  269. package/fesm2015/ng-nest-ui-timeline.mjs +0 -1
  270. package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
  271. package/fesm2015/ng-nest-ui-tooltip.mjs +2 -3
  272. package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
  273. package/fesm2015/ng-nest-ui-transfer.mjs +9 -6
  274. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  275. package/fesm2015/ng-nest-ui-tree-file.mjs +0 -1
  276. package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
  277. package/fesm2015/ng-nest-ui-tree-select.mjs +0 -1
  278. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
  279. package/fesm2015/ng-nest-ui-tree.mjs +0 -1
  280. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  281. package/fesm2015/ng-nest-ui-upload.mjs +4 -1
  282. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  283. package/fesm2020/ng-nest-ui-anchor.mjs +0 -2
  284. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  285. package/fesm2020/ng-nest-ui-api.mjs +0 -1
  286. package/fesm2020/ng-nest-ui-api.mjs.map +1 -1
  287. package/fesm2020/ng-nest-ui-auto-complete.mjs +0 -1
  288. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  289. package/fesm2020/ng-nest-ui-avatar.mjs +0 -1
  290. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  291. package/fesm2020/ng-nest-ui-back-top.mjs +0 -1
  292. package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
  293. package/fesm2020/ng-nest-ui-badge.mjs +0 -1
  294. package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
  295. package/fesm2020/ng-nest-ui-base-form.mjs +2 -3
  296. package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
  297. package/fesm2020/ng-nest-ui-border.mjs +0 -1
  298. package/fesm2020/ng-nest-ui-border.mjs.map +1 -1
  299. package/fesm2020/ng-nest-ui-button.mjs +0 -1
  300. package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
  301. package/fesm2020/ng-nest-ui-calendar.mjs +0 -1
  302. package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
  303. package/fesm2020/ng-nest-ui-card.mjs +0 -1
  304. package/fesm2020/ng-nest-ui-card.mjs.map +1 -1
  305. package/fesm2020/ng-nest-ui-carousel.mjs +0 -1
  306. package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
  307. package/fesm2020/ng-nest-ui-cascade.mjs +0 -1
  308. package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
  309. package/fesm2020/ng-nest-ui-checkbox.mjs +0 -1
  310. package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
  311. package/fesm2020/ng-nest-ui-collapse.mjs +0 -1
  312. package/fesm2020/ng-nest-ui-collapse.mjs.map +1 -1
  313. package/fesm2020/ng-nest-ui-color-picker.mjs +0 -1
  314. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  315. package/fesm2020/ng-nest-ui-color.mjs +0 -1
  316. package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
  317. package/fesm2020/ng-nest-ui-comment.mjs +0 -1
  318. package/fesm2020/ng-nest-ui-comment.mjs.map +1 -1
  319. package/fesm2020/ng-nest-ui-container.mjs +0 -1
  320. package/fesm2020/ng-nest-ui-container.mjs.map +1 -1
  321. package/fesm2020/ng-nest-ui-core.mjs +76 -56
  322. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  323. package/fesm2020/ng-nest-ui-date-picker.mjs +5 -6
  324. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  325. package/fesm2020/ng-nest-ui-dialog.mjs +1 -2
  326. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  327. package/fesm2020/ng-nest-ui-drawer.mjs +0 -1
  328. package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
  329. package/fesm2020/ng-nest-ui-dropdown.mjs +0 -1
  330. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  331. package/fesm2020/ng-nest-ui-find.mjs +0 -1
  332. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  333. package/fesm2020/ng-nest-ui-form.mjs +8 -2
  334. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  335. package/fesm2020/ng-nest-ui-highlight.mjs +1 -2
  336. package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
  337. package/fesm2020/ng-nest-ui-i18n.mjs +65 -22
  338. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  339. package/fesm2020/ng-nest-ui-icon.mjs +0 -1
  340. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  341. package/fesm2020/ng-nest-ui-image.mjs +0 -1
  342. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  343. package/fesm2020/ng-nest-ui-inner.mjs +0 -1
  344. package/fesm2020/ng-nest-ui-inner.mjs.map +1 -1
  345. package/fesm2020/ng-nest-ui-input-number.mjs +0 -1
  346. package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
  347. package/fesm2020/ng-nest-ui-input.mjs +0 -1
  348. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  349. package/fesm2020/ng-nest-ui-link.mjs +0 -1
  350. package/fesm2020/ng-nest-ui-link.mjs.map +1 -1
  351. package/fesm2020/ng-nest-ui-list.mjs +1 -2
  352. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  353. package/fesm2020/ng-nest-ui-loading.mjs +1 -2
  354. package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
  355. package/fesm2020/ng-nest-ui-menu.mjs +2 -3
  356. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  357. package/fesm2020/ng-nest-ui-message-box.mjs +0 -1
  358. package/fesm2020/ng-nest-ui-message-box.mjs.map +1 -1
  359. package/fesm2020/ng-nest-ui-message.mjs +0 -1
  360. package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
  361. package/fesm2020/ng-nest-ui-notification.mjs +0 -1
  362. package/fesm2020/ng-nest-ui-notification.mjs.map +1 -1
  363. package/fesm2020/ng-nest-ui-pagination.mjs +0 -1
  364. package/fesm2020/ng-nest-ui-pagination.mjs.map +1 -1
  365. package/fesm2020/ng-nest-ui-popconfirm.mjs +0 -1
  366. package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
  367. package/fesm2020/ng-nest-ui-popover.mjs +0 -1
  368. package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
  369. package/fesm2020/ng-nest-ui-progress.mjs +0 -1
  370. package/fesm2020/ng-nest-ui-progress.mjs.map +1 -1
  371. package/fesm2020/ng-nest-ui-radio.mjs +0 -1
  372. package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
  373. package/fesm2020/ng-nest-ui-rate.mjs +0 -1
  374. package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
  375. package/fesm2020/ng-nest-ui-result.mjs +0 -1
  376. package/fesm2020/ng-nest-ui-result.mjs.map +1 -1
  377. package/fesm2020/ng-nest-ui-select.mjs +2 -3
  378. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  379. package/fesm2020/ng-nest-ui-skeleton.mjs +0 -1
  380. package/fesm2020/ng-nest-ui-skeleton.mjs.map +1 -1
  381. package/fesm2020/ng-nest-ui-slider-select.mjs +0 -1
  382. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  383. package/fesm2020/ng-nest-ui-slider.mjs +0 -1
  384. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  385. package/fesm2020/ng-nest-ui-steps.mjs +0 -1
  386. package/fesm2020/ng-nest-ui-steps.mjs.map +1 -1
  387. package/fesm2020/ng-nest-ui-switch.mjs +0 -1
  388. package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
  389. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  390. package/fesm2020/ng-nest-ui-tabs.mjs +4 -5
  391. package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
  392. package/fesm2020/ng-nest-ui-tag.mjs +0 -1
  393. package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
  394. package/fesm2020/ng-nest-ui-text-retract.mjs +0 -1
  395. package/fesm2020/ng-nest-ui-text-retract.mjs.map +1 -1
  396. package/fesm2020/ng-nest-ui-textarea.mjs +0 -1
  397. package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
  398. package/fesm2020/ng-nest-ui-time-picker.mjs +291 -78
  399. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  400. package/fesm2020/ng-nest-ui-timeline.mjs +0 -1
  401. package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
  402. package/fesm2020/ng-nest-ui-tooltip.mjs +2 -3
  403. package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
  404. package/fesm2020/ng-nest-ui-transfer.mjs +9 -6
  405. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  406. package/fesm2020/ng-nest-ui-tree-file.mjs +0 -1
  407. package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
  408. package/fesm2020/ng-nest-ui-tree-select.mjs +0 -1
  409. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
  410. package/fesm2020/ng-nest-ui-tree.mjs +0 -1
  411. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  412. package/fesm2020/ng-nest-ui-upload.mjs +4 -1
  413. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  414. package/find/find.component.d.ts +1 -1
  415. package/form/form.component.d.ts +1 -0
  416. package/highlight/highlight.component.d.ts +3 -3
  417. package/i18n/i18n.property.d.ts +6 -0
  418. package/i18n/languages/en_GB.d.ts +26 -0
  419. package/i18n/languages/en_US.d.ts +6 -0
  420. package/i18n/languages/zh_CN.d.ts +6 -0
  421. package/i18n/languages/zh_TW.d.ts +6 -0
  422. package/icon/icon.component.d.ts +2 -2
  423. package/image/image-preview.component.d.ts +2 -2
  424. package/image/image.component.d.ts +2 -2
  425. package/inner/inner.component.d.ts +1 -1
  426. package/input/input-group.component.d.ts +2 -2
  427. package/input/input.component.d.ts +5 -5
  428. package/input-number/input-number.component.d.ts +1 -1
  429. package/link/link.component.d.ts +2 -2
  430. package/list/list-option.component.d.ts +2 -2
  431. package/list/list.component.d.ts +7 -7
  432. package/loading/loading.component.d.ts +2 -2
  433. package/menu/menu-node.component.d.ts +2 -2
  434. package/menu/menu.component.d.ts +3 -3
  435. package/message/message.component.d.ts +2 -2
  436. package/message-box/message-box.component.d.ts +2 -2
  437. package/notification/notification.component.d.ts +2 -2
  438. package/package.json +1 -1
  439. package/pagination/pagination.component.d.ts +2 -2
  440. package/popconfirm/popconfirm.component.d.ts +2 -2
  441. package/popover/popover-portal.component.d.ts +2 -2
  442. package/progress/progress.component.d.ts +2 -2
  443. package/radio/radio.component.d.ts +3 -3
  444. package/rate/rate.component.d.ts +3 -3
  445. package/result/result.component.d.ts +2 -2
  446. package/select/select.component.d.ts +1 -1
  447. package/skeleton/skeleton.component.d.ts +2 -2
  448. package/slider/slider.component.d.ts +4 -4
  449. package/slider-select/slider-select.component.d.ts +6 -6
  450. package/steps/steps.component.d.ts +2 -2
  451. package/switch/switch.component.d.ts +1 -1
  452. package/table/table-body.component.d.ts +3 -3
  453. package/table/table-foot.component.d.ts +3 -3
  454. package/table/table-head.component.d.ts +3 -3
  455. package/table/table.component.d.ts +12 -12
  456. package/tabs/tab-content.component.d.ts +1 -1
  457. package/tabs/tabs.component.d.ts +1 -1
  458. package/tag/tag.component.d.ts +2 -2
  459. package/text-retract/text-retract.component.d.ts +2 -2
  460. package/textarea/textarea.component.d.ts +4 -4
  461. package/time-picker/time-picker-frame.component.d.ts +30 -23
  462. package/time-picker/time-picker-portal.component.d.ts +13 -3
  463. package/time-picker/time-picker.component.d.ts +6 -3
  464. package/time-picker/time-picker.module.d.ts +2 -1
  465. package/time-picker/time-picker.property.d.ts +38 -2
  466. package/timeline/timeline.component.d.ts +2 -2
  467. package/tooltip/tooltip-portal.component.d.ts +3 -3
  468. package/transfer/transfer.component.d.ts +2 -2
  469. package/transfer/transfer.module.d.ts +2 -1
  470. package/tree/tree-node.component.d.ts +2 -2
  471. package/tree/tree.component.d.ts +3 -3
  472. package/tree-file/tree-file.component.d.ts +2 -2
  473. package/tree-select/tree-select.component.d.ts +1 -1
  474. package/upload/upload-portal.component.d.ts +6 -6
  475. package/upload/upload.component.d.ts +3 -3
  476. package/core/util/chunk.d.ts +0 -1
  477. package/core/util/group-by.d.ts +0 -1
  478. package/core/util/guid.d.ts +0 -4
  479. package/esm2020/core/util/chunk.mjs +0 -14
  480. package/esm2020/core/util/group-by.mjs +0 -10
  481. package/esm2020/core/util/guid.mjs +0 -10
  482. package/esm2020/core/util/resize.mjs +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-table.mjs","sources":["../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/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 XSort,\r\n XInputBoolean,\r\n XBoolean,\r\n XData,\r\n XWithConfig,\r\n XTextAlign,\r\n XSize,\r\n XParentIdentityProperty,\r\n XIdentityProperty,\r\n XTemplate\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 Whether to display the column headers\r\n */\r\n @Input() @XWithConfig<XTableHeaderPosition>(X_CONFIG_NAME, 'top') headerPosition!: XTableHeaderPosition;\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 列头自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column header custom template\r\n */\r\n @Input() headColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 列内容自定义模板,通过 key-value 的方式指定每列的模版\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 Custom template of cells\r\n */\r\n @Input() bodyTdTpl?: XTemplate;\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 Line head search custom template\r\n */\r\n @Input() headSearchTpl?: XTemplate;\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 列头 checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n @Output() headCheckboxChange = new EventEmitter<{ [property: string]: boolean }>();\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 允许行点击选中 checkbox\r\n * @en_US Allow lines to click checkbox\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() allowCheckRow!: 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 Table header\r\n */\r\n @Input() header?: XTemplate;\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n @Input() footer?: XTemplate;\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 * @zh_CN 分页器位置\r\n * @en_US Pagination position\r\n */\r\n @Input() paginationPosition: XPaginationPosition = 'bottom-left';\r\n /**\r\n * @zh_CN 隐藏表格外边框\r\n * @en_US Hidden table wrap border\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() hiddenWrapBorder?: XBoolean;\r\n /**\r\n * @zh_CN 隐藏分页器按钮边框\r\n * @en_US Hidden pagination button border\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() hiddenPaginationBorder?: XBoolean;\r\n /**\r\n * @zh_CN 显示分页器\r\n * @en_US Pagination position\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() showPagination?: XBoolean;\r\n /**\r\n * @zh_CN 树形表格\r\n * @en_US Tree table\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() treeTable?: XBoolean;\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() expandedAll?: XBoolean;\r\n /**\r\n * @zh_CN 默认展开的层级,-1 不展开\r\n * @en_US Default expanded level\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, -1) @XInputNumber() expandedLevel!: XNumber;\r\n /**\r\n * @zh_CN 展开的节点\r\n * @en_US Expanded node\r\n */\r\n @Input() expanded: any[] = [];\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n @Input() expandTpl?: XTemplate;\r\n /**\r\n * @zh_CN 列头拖动开始事件,返回拖动的列\r\n * @en_US Column Header Drag End Event\r\n */\r\n @Output() columnDragStarted = new EventEmitter<XTableColumn>();\r\n /**\r\n * @zh_CN 列头拖动结束事件,返回拖动的列\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n @Output() columnDragEnded = new EventEmitter<XTableColumn>();\r\n /**\r\n * @zh_CN 当用户把一个条目投放进该容器时就会触发,拖动放开的事件,返回拖动排序后的列数据\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n @Output() columnDropListDropped = new EventEmitter<XTableColumn[]>();\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 XParentIdentityProperty<XTableRow> {\r\n /**\r\n * @zh_CN 展开\r\n * @en_US Unfold\r\n */\r\n expanded?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列参数\r\n * @en_US Column parameter\r\n */\r\nexport interface XTableColumn extends XIdentityProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XColumnType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN flex 布局宽度\r\n * @en_US Flex layout width\r\n */\r\n flex?: number;\r\n /**\r\n * @zh_CN 查询字段\r\n * @en_US Query field\r\n */\r\n search?: boolean;\r\n /**\r\n * @zh_CN 排序字段\r\n * @en_US Sort field\r\n */\r\n sort?: boolean;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 操作按钮\r\n * @en_US Operation button\r\n */\r\n action?: boolean;\r\n /**\r\n * @zh_CN type 为 checkbox 时绑定行点击选中事件\r\n * @en_US Bind row click selection event when type is checkbox\r\n */\r\n rowChecked?: boolean;\r\n /**\r\n * @zh_CN type 为 expand 时绑定行点击展开事件\r\n * @en_US Bind row click selection event when type is expand\r\n */\r\n rowExpand?: boolean;\r\n /**\r\n * @zh_CN 文字对齐方式\r\n * @en_US Text alignment\r\n */\r\n textAlign?: XTextAlign;\r\n /**\r\n * @zh_CN 拖动列宽,需要设置列的初始宽度 width\r\n * @en_US Drag the column width, you need to set the initial width of the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 拖动列\r\n * @en_US Drag the column\r\n */\r\n dragColumn?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列\r\n * @en_US Dragging column\r\n */\r\n dragging?: boolean;\r\n /**\r\n * @zh_CN 头部显示 checkbox\r\n * @en_US Head shows checkbox\r\n */\r\n headChecked?: boolean;\r\n /**\r\n * @zh_CN 头部显示 expand\r\n * @en_US Head shows expand\r\n */\r\n headExpand?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\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 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 对应列的 id\r\n * @en_US The id of the corresponding column\r\n */\r\n id?: string;\r\n /**\r\n * @zh_CN 拖动列宽\r\n * @en_US Drag the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列类型\r\n * @en_US Column type\r\n */\r\nexport type XColumnType = 'label' | 'index' | 'checkbox' | 'expand';\r\n\r\n/**\r\n * @zh_CN 列头显示位置\r\n * @en_US Line head display position\r\n */\r\nexport type XTableHeaderPosition = 'top' | 'bottom' | 'top-bottom';\r\n\r\n/**\r\n * @zh_CN 分页器位置\r\n * @en_US Paging position\r\n */\r\nexport type XPaginationPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\r\n\r\n/**\r\n * @zh_CN 模板\r\n * @en_US Template\r\n */\r\nexport type XTableTemplate = { [property: string]: TemplateRef<any> };\r\n\r\n/**\r\n * Table Head\r\n * @selector x-table-head\r\n * @decorator component\r\n */\r\nexport const XTableHeadPrefix = 'x-table-head';\r\n\r\n/**\r\n * Table Head Property\r\n */\r\n@Component({ 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 * @zh_CN 显示的位置\r\n * @en_US Display position\r\n */\r\n @Input() position?: string;\r\n}\r\n\r\n/**\r\n * Table Body\r\n * @selector x-table-body\r\n * @decorator component\r\n */\r\nexport const XTableBodyPrefix = 'x-table-body';\r\n\r\n/**\r\n * Table Body Property\r\n */\r\n@Component({ 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 * @zh_CN 树形表格下的层级\r\n * @en_US The level under the tree table\r\n */\r\n @Input() level: number = 0;\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n @Input() @XInputBoolean() expandedAll?: XBoolean;\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n @Input() expandTpl?: XTemplate;\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 /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n @Input() rowHeight!: number;\r\n}\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, XTablePrefix } from './table.property';\r\nimport { removeNgTag, XIsEmpty, XSort, XIsChange, XConfigService, XNumber, XClassMap } from '@ng-nest/ui/core';\r\nimport { CdkDragDrop, CdkDragSortEvent, CdkDragStart, moveItemInArray } from '@angular/cdk/drag-drop';\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 thClassMap: XClassMap = {};\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.theads.push(this.thead);\r\n this.table.theadsChange.push(() => this.cdr.detectChanges());\r\n this.setThClassMap();\r\n }\r\n\r\n setThClassMap() {\r\n this.thClassMap = {\r\n [`${XTablePrefix}-th-${this.table.rowSize}`]: !XIsEmpty(this.table.rowSize)\r\n };\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getColumnRight(right?: number) {\r\n if (Number(right) >= 0) {\r\n if (Number(this.scrollYWidth) >= 0) {\r\n return Number(right) + Number(this.scrollYWidth);\r\n }\r\n return Number(right);\r\n }\r\n // return right;\r\n return '';\r\n }\r\n\r\n getColumnWidth(column: XTableColumn) {\r\n // if (Number(column.right) === 0) {\r\n // if (Number(this.scrollYWidth) >= 0) {\r\n // return Number(column.width) + Number(this.scrollYWidth);\r\n // }\r\n // return column.width;\r\n // }\r\n return column.width;\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 dropListDropped(_event: CdkDragDrop<XTableColumn[]>) {\r\n this.dragChange();\r\n this.table.columnDropListDropped.emit(this.columns);\r\n }\r\n\r\n dropListSorted(event: CdkDragSortEvent<XTableColumn[]>) {\r\n const previous = this.columns[event.previousIndex];\r\n const current = this.columns[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\r\n this.dragChange();\r\n }\r\n\r\n dragStarted(_event: CdkDragStart, column: XTableColumn) {\r\n column.dragging = true;\r\n this.dragChange();\r\n this.table.theadsChanges();\r\n this.table.columnDragStarted.emit(column);\r\n }\r\n\r\n dragEnded(column: XTableColumn) {\r\n column.dragging = false;\r\n this.dragChange();\r\n this.table.theadsChanges();\r\n this.table.columnDragEnded.emit(column);\r\n }\r\n\r\n dragChange() {\r\n this.table.bodyChange();\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\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n","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, expandedAll, adaptionHeight } = simples;\r\n XIsChange(data, columns, activatedRow, mergeRule, expandedAll) && this.cdr.detectChanges();\r\n XIsChange(adaptionHeight) && this.setAdaptionHeight();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n if (this.level > 0) removeNgTag(this.tbody.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.theads.length > 0) {\r\n for (let thead of this.table.theads) {\r\n thead.nativeElement.scrollLeft = this.table.scrollLeft;\r\n }\r\n }\r\n this.table.scrollLeftMax = ele.scrollLeft + ele.clientWidth === ele.scrollWidth;\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 captionHeight = this.table.tcaption?.nativeElement.clientHeight || 0;\r\n let headHeight = 0;\r\n for (let thead of this.table.theads) {\r\n headHeight += thead.nativeElement.clientHeight;\r\n }\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 captionHeight -\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(event: Event, row: XTableRow) {\r\n if (row.disabled) return;\r\n this.activatedRow = row;\r\n if (this.table.allowCheckRow && 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 onExpanded(_event: Event, node: XTableRow) {\r\n node.expanded = !node.expanded;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByItem(_index: number, item: XTableRow | XTableColumn) {\r\n return item.id;\r\n }\r\n}\r\n","<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty && level === 0\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight 为 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 <ng-container *ngFor=\"let row of data; index as i; trackBy: trackByItem\">\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl\" *ngIf=\"table.treeTable && row.children && row.expanded\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns\"\r\n [itemSize]=\"table.itemSize\"\r\n [rowHeight]=\"table.rowHeight\"\r\n [columnTpl]=\"table.bodyColumnTpl\"\r\n [allowSelectRow]=\"table.allowSelectRow\"\r\n [rowClass]=\"table.rowClass\"\r\n [cellConfig]=\"table.cellConfig?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n (activatedRowChange)=\"table.activatedRowChange.emit($event)\"\r\n [level]=\"row.level! + 1\"\r\n [table]=\"table\"\r\n ></x-table-body>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngIf=\"level > 0 && expandTpl\">\r\n <ng-container *xOutlet=\"expandTpl; context: { $row: row, $index: i, $level: level }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"level === 0 || !expandTpl\">\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level }\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"table.isExpandColumn(column)\">\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n </ng-container>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <ng-container *xOutlet=\"table.bodyTdTpl; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpandNext && table.rowExpandNext.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n","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 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 ) {\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 class=\"x-table-footer\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"footer\">{{ footer }}</ng-container>\r\n</tfoot>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n 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, XIsUndefined } 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 get getRowHeight() {\r\n return this.rowHeight == 0 ? '' : this.rowHeight;\r\n }\r\n get getStickyTopScrollTop() {\r\n return this.tcaption ? this.tcaption.nativeElement.offsetHeight : 0;\r\n }\r\n get getStickyBottomScrollTop() {\r\n let top = 0;\r\n if (this.footer && this.tfoot) {\r\n top += this.tfoot?.nativeElement.clientHeight + 1;\r\n }\r\n return top;\r\n }\r\n get getStickyTopRightEleHeight() {\r\n if (this.stickyTopRightEle) {\r\n return this.stickyTopRightEle.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n get getStickyBottomRightEleHeight() {\r\n if (this.stickyBottomRightEle) {\r\n return this.stickyBottomRightEle.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n tcaption!: ElementRef;\r\n theads: ElementRef[] = [];\r\n tfoot!: ElementRef;\r\n virtualBody!: CdkVirtualScrollViewport;\r\n theadsChange: (() => 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 scrollLeftMax = false;\r\n scrollTop = 0;\r\n rowChecked!: XTableColumn;\r\n headCheckboxList!: XTableColumn[];\r\n rowExpand!: XTableColumn;\r\n headExpandList!: XTableColumn[];\r\n dataIsFunc = false;\r\n getting = false;\r\n tableData: XTableRow[] = [];\r\n treeTableData: XTableRow[] = [];\r\n checkedValues: { [prop: string]: boolean } = {};\r\n indeterminate = '$$indeterminate';\r\n @ViewChild('table') table!: ElementRef;\r\n @ViewChild('caption') caption!: ElementRef;\r\n @ViewChild('pagination') pagination!: XPaginationComponent;\r\n @ViewChild('stickyTopRightEle') stickyTopRightEle!: ElementRef;\r\n @ViewChild('stickyBottomRightEle') stickyBottomRightEle!: ElementRef;\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.setRowExpand();\r\n this.setPaginationPosition();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, checkedRow, columns, activatedRow, manual, showPagination, expandedAll, cellConfig } = simples;\r\n XIsChange(expandedAll) && this.setExpandedAll();\r\n XIsChange(data, checkedRow) && this.setData();\r\n XIsChange(columns, activatedRow, showPagination) && this.cdr.detectChanges();\r\n XIsChange(manual) && this.setManual();\r\n XIsChange(cellConfig) && this.setMerge();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.tcaption = this.caption;\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 setPaginationPosition() {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-table-${this.paginationPosition}`);\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return this.getStickyLeft(column) || this.getStickyRight(column);\r\n }\r\n\r\n getStickyLeft(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getStickyLeftLast(column: XTableColumn | XTableCell) {\r\n let lefts = this.columns.filter((x) => Number(x.left) >= 0);\r\n if (lefts.length === 0) return false;\r\n return lefts[lefts.length - 1].id === column.id;\r\n }\r\n\r\n getStickyRight(column: XTableColumn | XTableCell) {\r\n return Number(column.right) >= 0;\r\n }\r\n\r\n getStickyRightFirst(column: XTableColumn | XTableCell) {\r\n let rights = this.columns.filter((x) => Number(x.right) >= 0);\r\n if (rights.length === 0) return false;\r\n return rights[0].id === column.id;\r\n }\r\n\r\n hasStickyTopRight() {\r\n return (\r\n this.showHeader &&\r\n (this.headerPosition === 'top' || this.headerPosition === 'top-bottom') &&\r\n this.columns.some((x) => Number(x.right) >= 0)\r\n );\r\n }\r\n\r\n hasStickyTopRightSearch() {\r\n return this.headSearchTpl ? true : false;\r\n }\r\n\r\n hasStickyBottomRight() {\r\n return (\r\n this.showHeader &&\r\n (this.headerPosition === 'bottom' || this.headerPosition === 'top-bottom') &&\r\n this.columns.some((x) => Number(x.right) >= 0)\r\n );\r\n }\r\n\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(this.data);\r\n this.setHeadCheckboxList(this.data);\r\n this.setExpand(this.data);\r\n this.setHeadExpandList();\r\n this.detectChanges();\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 let [data, 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.tableData = data;\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.setHeadExpandList();\r\n this.total = total;\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 setRowExpand() {\r\n this.rowExpand = this.columns.find((x) => x.rowExpand) as XTableColumn;\r\n }\r\n\r\n isExpandColumn(column: XTableColumn) {\r\n let expandColumn = this.columns.find((x) => x.id === column.id && x.type === 'expand');\r\n if (expandColumn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n 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(data: XTableRow[]) {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(data) || !this.checkedRow) return;\r\n for (let key in this.checkedRow) {\r\n const arr = this.checkedRow[key];\r\n for (let item of data as any[]) {\r\n item[key] = arr.includes(item.id);\r\n result = [...result, item];\r\n }\r\n }\r\n if (result.length > 0) data = [...result];\r\n }\r\n\r\n setHeadCheckboxList(data: XTableRow[]) {\r\n if (XIsEmpty(data) || !this.headCheckboxList) return;\r\n for (let column of this.headCheckboxList) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n setExpand(data: XTableRow[]) {\r\n const getChildren = (node: XTableRow, level: number) => {\r\n node.level = level;\r\n node.expanded = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.includes(node.id);\r\n if (XIsUndefined(node.children)) node.children = data.filter((y) => y.pid === node.id);\r\n if (XIsUndefined(node.leaf)) node.leaf = (node.children?.length as number) > 0;\r\n if (node.leaf) node.children?.map((y) => getChildren(y, level + 1));\r\n return node;\r\n };\r\n this.treeTableData = data\r\n .filter((x) => XIsEmpty(x.pid))\r\n .map((x, index) => {\r\n if (XIsUndefined(x.id)) x.id = index + 1;\r\n return getChildren(x, 0);\r\n });\r\n }\r\n\r\n setExpandedAll() {\r\n if (!this.treeTable || this.treeTableData?.length === 0) return;\r\n const setChildren = (nodes: XTableRow[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.expanded = Boolean(this.expandedAll);\r\n setChildren(x.children as XTableRow[]);\r\n });\r\n };\r\n setChildren(this.treeTableData);\r\n this.detectChanges();\r\n }\r\n\r\n setHeadExpandList() {}\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 if (!x.disabled) {\r\n x[column.id] = checked;\r\n }\r\n });\r\n this.setCheckedValues(column);\r\n this.headCheckboxChange.emit(this.checkedValues);\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 notDisabled = this.tableData.filter((x) => !x.disabled);\r\n const count = notDisabled.length;\r\n const checkedLen = notDisabled.filter((x) => x[column.id]).length;\r\n this.checkedValues[column.id] = count === checkedLen && count !== 0;\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.theadsChanges();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n theadsChanges() {\r\n if (this.theadsChange && this.theadsChange.length > 0) {\r\n for (let item of this.theadsChange) {\r\n item();\r\n }\r\n }\r\n }\r\n}\r\n","<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n>\r\n</x-pagination>\r\n","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\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\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 XButtonModule,\r\n ScrollingModule,\r\n DragDropModule,\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":["i8.XDragDirective","i6","i7","i1","i3","i5","i6.XTableHeadComponent","i7.XTableBodyComponent","i8.XTableFootComponent"],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-table.mjs","sources":["../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/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 XSort,\r\n XInputBoolean,\r\n XBoolean,\r\n XData,\r\n XWithConfig,\r\n XTextAlign,\r\n XSize,\r\n XParentIdentityProperty,\r\n XIdentityProperty,\r\n XTemplate\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 Whether to display the column headers\r\n */\r\n @Input() @XWithConfig<XTableHeaderPosition>(X_CONFIG_NAME, 'top') headerPosition!: XTableHeaderPosition;\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 列头自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column header custom template\r\n */\r\n @Input() headColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 列内容自定义模板,通过 key-value 的方式指定每列的模版\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 Custom template of cells\r\n */\r\n @Input() bodyTdTpl?: XTemplate;\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 Line head search custom template\r\n */\r\n @Input() headSearchTpl?: XTemplate;\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 列头 checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n @Output() headCheckboxChange = new EventEmitter<{ [property: string]: boolean }>();\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 允许行点击选中 checkbox\r\n * @en_US Allow lines to click checkbox\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() allowCheckRow!: 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 Table header\r\n */\r\n @Input() header?: XTemplate;\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n @Input() footer?: XTemplate;\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 * @zh_CN 分页器位置\r\n * @en_US Pagination position\r\n */\r\n @Input() paginationPosition: XPaginationPosition = 'bottom-left';\r\n /**\r\n * @zh_CN 隐藏表格外边框\r\n * @en_US Hidden table wrap border\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() hiddenWrapBorder?: XBoolean;\r\n /**\r\n * @zh_CN 隐藏分页器按钮边框\r\n * @en_US Hidden pagination button border\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() hiddenPaginationBorder?: XBoolean;\r\n /**\r\n * @zh_CN 显示分页器\r\n * @en_US Pagination position\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() showPagination?: XBoolean;\r\n /**\r\n * @zh_CN 树形表格\r\n * @en_US Tree table\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() treeTable?: XBoolean;\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() expandedAll?: XBoolean;\r\n /**\r\n * @zh_CN 默认展开的层级,-1 不展开\r\n * @en_US Default expanded level\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, -1) @XInputNumber() expandedLevel!: XNumber;\r\n /**\r\n * @zh_CN 展开的节点\r\n * @en_US Expanded node\r\n */\r\n @Input() expanded: any[] = [];\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n @Input() expandTpl?: XTemplate;\r\n /**\r\n * @zh_CN 列头拖动开始事件,返回拖动的列\r\n * @en_US Column Header Drag End Event\r\n */\r\n @Output() columnDragStarted = new EventEmitter<XTableColumn>();\r\n /**\r\n * @zh_CN 列头拖动结束事件,返回拖动的列\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n @Output() columnDragEnded = new EventEmitter<XTableColumn>();\r\n /**\r\n * @zh_CN 当用户把一个条目投放进该容器时就会触发,拖动放开的事件,返回拖动排序后的列数据\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n @Output() columnDropListDropped = new EventEmitter<XTableColumn[]>();\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 XParentIdentityProperty<XTableRow> {\r\n /**\r\n * @zh_CN 展开\r\n * @en_US Unfold\r\n */\r\n expanded?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列参数\r\n * @en_US Column parameter\r\n */\r\nexport interface XTableColumn extends XIdentityProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XColumnType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN flex 布局宽度\r\n * @en_US Flex layout width\r\n */\r\n flex?: number;\r\n /**\r\n * @zh_CN 查询字段\r\n * @en_US Query field\r\n */\r\n search?: boolean;\r\n /**\r\n * @zh_CN 排序字段\r\n * @en_US Sort field\r\n */\r\n sort?: boolean;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 操作按钮\r\n * @en_US Operation button\r\n */\r\n action?: boolean;\r\n /**\r\n * @zh_CN type 为 checkbox 时绑定行点击选中事件\r\n * @en_US Bind row click selection event when type is checkbox\r\n */\r\n rowChecked?: boolean;\r\n /**\r\n * @zh_CN type 为 expand 时绑定行点击展开事件\r\n * @en_US Bind row click selection event when type is expand\r\n */\r\n rowExpand?: boolean;\r\n /**\r\n * @zh_CN 文字对齐方式\r\n * @en_US Text alignment\r\n */\r\n textAlign?: XTextAlign;\r\n /**\r\n * @zh_CN 拖动列宽,需要设置列的初始宽度 width\r\n * @en_US Drag the column width, you need to set the initial width of the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 拖动列\r\n * @en_US Drag the column\r\n */\r\n dragColumn?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列\r\n * @en_US Dragging column\r\n */\r\n dragging?: boolean;\r\n /**\r\n * @zh_CN 头部显示 checkbox\r\n * @en_US Head shows checkbox\r\n */\r\n headChecked?: boolean;\r\n /**\r\n * @zh_CN 头部显示 expand\r\n * @en_US Head shows expand\r\n */\r\n headExpand?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\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 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 对应列的 id\r\n * @en_US The id of the corresponding column\r\n */\r\n id?: string;\r\n /**\r\n * @zh_CN 拖动列宽\r\n * @en_US Drag the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列类型\r\n * @en_US Column type\r\n */\r\nexport type XColumnType = 'label' | 'index' | 'checkbox' | 'expand';\r\n\r\n/**\r\n * @zh_CN 列头显示位置\r\n * @en_US Line head display position\r\n */\r\nexport type XTableHeaderPosition = 'top' | 'bottom' | 'top-bottom';\r\n\r\n/**\r\n * @zh_CN 分页器位置\r\n * @en_US Paging position\r\n */\r\nexport type XPaginationPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\r\n\r\n/**\r\n * @zh_CN 模板\r\n * @en_US Template\r\n */\r\nexport type XTableTemplate = { [property: string]: TemplateRef<any> };\r\n\r\n/**\r\n * Table Head\r\n * @selector x-table-head\r\n * @decorator component\r\n */\r\nexport const XTableHeadPrefix = 'x-table-head';\r\n\r\n/**\r\n * Table Head Property\r\n */\r\n@Component({ 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 * @zh_CN 显示的位置\r\n * @en_US Display position\r\n */\r\n @Input() position?: string;\r\n}\r\n\r\n/**\r\n * Table Body\r\n * @selector x-table-body\r\n * @decorator component\r\n */\r\nexport const XTableBodyPrefix = 'x-table-body';\r\n\r\n/**\r\n * Table Body Property\r\n */\r\n@Component({ 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 * @zh_CN 树形表格下的层级\r\n * @en_US The level under the tree table\r\n */\r\n @Input() level: number = 0;\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n @Input() @XInputBoolean() expandedAll?: XBoolean;\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n @Input() expandTpl?: XTemplate;\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 /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n @Input() rowHeight!: number;\r\n}\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, XTablePrefix } from './table.property';\r\nimport { removeNgTag, XIsEmpty, XSort, XIsChange, XConfigService, XNumber, XClassMap } from '@ng-nest/ui/core';\r\nimport { CdkDragDrop, CdkDragSortEvent, CdkDragStart, moveItemInArray } from '@angular/cdk/drag-drop';\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 thClassMap: XClassMap = {};\r\n @ViewChild('thead') thead!: ElementRef<HTMLElement>;\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<HTMLElement>,\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.theads.push(this.thead);\r\n this.table.theadsChange.push(() => this.cdr.detectChanges());\r\n this.setThClassMap();\r\n }\r\n\r\n setThClassMap() {\r\n this.thClassMap = {\r\n [`${XTablePrefix}-th-${this.table.rowSize}`]: !XIsEmpty(this.table.rowSize)\r\n };\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getColumnRight(right?: number) {\r\n if (Number(right) >= 0) {\r\n if (Number(this.scrollYWidth) >= 0) {\r\n return Number(right) + Number(this.scrollYWidth);\r\n }\r\n return Number(right);\r\n }\r\n // return right;\r\n return '';\r\n }\r\n\r\n getColumnWidth(column: XTableColumn) {\r\n // if (Number(column.right) === 0) {\r\n // if (Number(this.scrollYWidth) >= 0) {\r\n // return Number(column.width) + Number(this.scrollYWidth);\r\n // }\r\n // return column.width;\r\n // }\r\n return column.width;\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 dropListDropped(_event: CdkDragDrop<XTableColumn[]>) {\r\n this.dragChange();\r\n this.table.columnDropListDropped.emit(this.columns);\r\n }\r\n\r\n dropListSorted(event: CdkDragSortEvent<XTableColumn[]>) {\r\n const previous = this.columns[event.previousIndex];\r\n const current = this.columns[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\r\n this.dragChange();\r\n }\r\n\r\n dragStarted(_event: CdkDragStart, column: XTableColumn) {\r\n column.dragging = true;\r\n this.dragChange();\r\n this.table.theadsChanges();\r\n this.table.columnDragStarted.emit(column);\r\n }\r\n\r\n dragEnded(column: XTableColumn) {\r\n column.dragging = false;\r\n this.dragChange();\r\n this.table.theadsChanges();\r\n this.table.columnDragEnded.emit(column);\r\n }\r\n\r\n dragChange() {\r\n this.table.bodyChange();\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\" [class.x-table-head-top]=\"position === 'top'\" [class.x-table-head-bottom]=\"position === 'bottom'\">\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight\">\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div *ngIf=\"column.dragWidth\" class=\"x-table-drag-width\" xDrag (draging)=\"dragWidth($event, column)\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n","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<HTMLElement>;\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<HTMLElement>,\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, expandedAll, adaptionHeight } = simples;\r\n XIsChange(data, columns, activatedRow, mergeRule, expandedAll) && this.cdr.detectChanges();\r\n XIsChange(adaptionHeight) && this.setAdaptionHeight();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n if (this.level > 0) removeNgTag(this.tbody.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.theads.length > 0) {\r\n for (let thead of this.table.theads) {\r\n thead.nativeElement.scrollLeft = this.table.scrollLeft;\r\n }\r\n }\r\n this.table.scrollLeftMax = ele.scrollLeft + ele.clientWidth === ele.scrollWidth;\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 captionHeight = this.table.tcaption?.nativeElement.clientHeight || 0;\r\n let headHeight = 0;\r\n for (let thead of this.table.theads) {\r\n headHeight += thead.nativeElement.clientHeight;\r\n }\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 captionHeight -\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(event: Event, row: XTableRow) {\r\n if (row.disabled) return;\r\n this.activatedRow = row;\r\n if (this.table.allowCheckRow && 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 onExpanded(_event: Event, node: XTableRow) {\r\n node.expanded = !node.expanded;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByItem(_index: number, item: XTableRow | XTableColumn) {\r\n return item.id;\r\n }\r\n}\r\n","<tbody #tbody>\r\n <ng-container *ngIf=\"cellConfig; else virtualScrollTpl\">\r\n <tr *ngFor=\"let row of data; index as i; trackBy: trackByItem\" [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\">\r\n <td\r\n *ngFor=\"let column of cellConfig.cells; index as j\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <x-empty *ngIf=\"isEmpty && level === 0\"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf=\"virtualScroll; else bodyTpl\"\r\n [itemSize]=\"getItemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"bodyHeight\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data; let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <!-- rowHeight 为 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 <ng-container *ngFor=\"let row of data; index as i; trackBy: trackByItem\">\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow && activatedRow?.id === row.id\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n (click)=\"rowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl\" *ngIf=\"table.treeTable && row.children && row.expanded\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns\"\r\n [itemSize]=\"table.itemSize\"\r\n [rowHeight]=\"table.rowHeight\"\r\n [columnTpl]=\"table.bodyColumnTpl\"\r\n [allowSelectRow]=\"table.allowSelectRow\"\r\n [rowClass]=\"table.rowClass\"\r\n [cellConfig]=\"table.cellConfig?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n (activatedRowChange)=\"table.activatedRowChange.emit($event)\"\r\n [level]=\"row.level! + 1\"\r\n [table]=\"table\"\r\n ></x-table-body>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngIf=\"level > 0 && expandTpl\">\r\n <ng-container *xOutlet=\"expandTpl; context: { $row: row, $index: i, $level: level }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"level === 0 || !expandTpl\">\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level }\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n <ng-container *ngFor=\"let column of columns; index as j; trackBy: trackByItem\">\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass ? {} : rowClass(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column)\"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"table.isExpandColumn(column)\">\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n </ng-container>\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <ng-container *xOutlet=\"table.bodyTdTpl; context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n <div [innerHTML]=\"row[column.id]\" [style.text-align]=\"column.textAlign\"></div>\r\n {{ table.rowExpandNext && table.rowExpandNext.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n","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<HTMLElement>;\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<HTMLElement>,\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 class=\"x-table-footer\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"footer\">{{ footer }}</ng-container>\r\n</tfoot>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n 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, XIsUndefined } 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 get getRowHeight() {\r\n return this.rowHeight == 0 ? '' : this.rowHeight;\r\n }\r\n get getStickyTopScrollTop() {\r\n return this.tcaption ? this.tcaption.nativeElement.offsetHeight : 0;\r\n }\r\n get getStickyBottomScrollTop() {\r\n let top = 0;\r\n if (this.footer && this.tfoot) {\r\n top += this.tfoot?.nativeElement.clientHeight + 1;\r\n }\r\n return top;\r\n }\r\n get getStickyTopRightEleHeight() {\r\n if (this.stickyTopRightEle) {\r\n return this.stickyTopRightEle.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n get getStickyBottomRightEleHeight() {\r\n if (this.stickyBottomRightEle) {\r\n return this.stickyBottomRightEle.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n tcaption!: ElementRef<HTMLElement>;\r\n theads: ElementRef<HTMLElement>[] = [];\r\n tfoot!: ElementRef<HTMLElement>;\r\n virtualBody!: CdkVirtualScrollViewport;\r\n theadsChange: (() => 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 scrollLeftMax = false;\r\n scrollTop = 0;\r\n rowChecked!: XTableColumn;\r\n headCheckboxList!: XTableColumn[];\r\n rowExpand!: XTableColumn;\r\n headExpandList!: XTableColumn[];\r\n dataIsFunc = false;\r\n getting = false;\r\n tableData: XTableRow[] = [];\r\n treeTableData: XTableRow[] = [];\r\n checkedValues: { [prop: string]: boolean } = {};\r\n indeterminate = '$$indeterminate';\r\n @ViewChild('table') table!: ElementRef<HTMLElement>;\r\n @ViewChild('caption') caption!: ElementRef<HTMLElement>;\r\n @ViewChild('pagination') pagination!: XPaginationComponent;\r\n @ViewChild('stickyTopRightEle') stickyTopRightEle!: ElementRef<HTMLElement>;\r\n @ViewChild('stickyBottomRightEle') stickyBottomRightEle!: ElementRef<HTMLElement>;\r\n private _unSubject = new Subject<void>();\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef<HTMLElement>,\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.setRowExpand();\r\n this.setPaginationPosition();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, checkedRow, columns, activatedRow, manual, showPagination, expandedAll, cellConfig } = simples;\r\n XIsChange(expandedAll) && this.setExpandedAll();\r\n XIsChange(data, checkedRow) && this.setData();\r\n XIsChange(columns, activatedRow, showPagination) && this.cdr.detectChanges();\r\n XIsChange(manual) && this.setManual();\r\n XIsChange(cellConfig) && this.setMerge();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.tcaption = this.caption;\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 setPaginationPosition() {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-table-${this.paginationPosition}`);\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return this.getStickyLeft(column) || this.getStickyRight(column);\r\n }\r\n\r\n getStickyLeft(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getStickyLeftLast(column: XTableColumn | XTableCell) {\r\n let lefts = this.columns.filter((x) => Number(x.left) >= 0);\r\n if (lefts.length === 0) return false;\r\n return lefts[lefts.length - 1].id === column.id;\r\n }\r\n\r\n getStickyRight(column: XTableColumn | XTableCell) {\r\n return Number(column.right) >= 0;\r\n }\r\n\r\n getStickyRightFirst(column: XTableColumn | XTableCell) {\r\n let rights = this.columns.filter((x) => Number(x.right) >= 0);\r\n if (rights.length === 0) return false;\r\n return rights[0].id === column.id;\r\n }\r\n\r\n hasStickyTopRight() {\r\n return (\r\n this.showHeader &&\r\n (this.headerPosition === 'top' || this.headerPosition === 'top-bottom') &&\r\n this.columns.some((x) => Number(x.right) >= 0)\r\n );\r\n }\r\n\r\n hasStickyTopRightSearch() {\r\n return this.headSearchTpl ? true : false;\r\n }\r\n\r\n hasStickyBottomRight() {\r\n return (\r\n this.showHeader &&\r\n (this.headerPosition === 'bottom' || this.headerPosition === 'top-bottom') &&\r\n this.columns.some((x) => Number(x.right) >= 0)\r\n );\r\n }\r\n\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(this.data);\r\n this.setHeadCheckboxList(this.data);\r\n this.setExpand(this.data);\r\n this.setHeadExpandList();\r\n this.detectChanges();\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 let [data, 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.tableData = data;\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.setHeadExpandList();\r\n this.total = total;\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 setRowExpand() {\r\n this.rowExpand = this.columns.find((x) => x.rowExpand) as XTableColumn;\r\n }\r\n\r\n isExpandColumn(column: XTableColumn) {\r\n let expandColumn = this.columns.find((x) => x.id === column.id && x.type === 'expand');\r\n if (expandColumn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n 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(data: XTableRow[]) {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(data) || !this.checkedRow) return;\r\n for (let key in this.checkedRow) {\r\n const arr = this.checkedRow[key];\r\n for (let item of data as any[]) {\r\n item[key] = arr.includes(item.id);\r\n result = [...result, item];\r\n }\r\n }\r\n if (result.length > 0) data = [...result];\r\n }\r\n\r\n setHeadCheckboxList(data: XTableRow[]) {\r\n if (XIsEmpty(data) || !this.headCheckboxList) return;\r\n for (let column of this.headCheckboxList) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n setExpand(data: XTableRow[]) {\r\n const getChildren = (node: XTableRow, level: number) => {\r\n node.level = level;\r\n node.expanded = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.includes(node.id);\r\n if (XIsUndefined(node.children)) node.children = data.filter((y) => y.pid === node.id);\r\n if (XIsUndefined(node.leaf)) node.leaf = (node.children?.length as number) > 0;\r\n if (node.leaf) node.children?.map((y) => getChildren(y, level + 1));\r\n return node;\r\n };\r\n this.treeTableData = data\r\n .filter((x) => XIsEmpty(x.pid))\r\n .map((x, index) => {\r\n if (XIsUndefined(x.id)) x.id = index + 1;\r\n return getChildren(x, 0);\r\n });\r\n }\r\n\r\n setExpandedAll() {\r\n if (!this.treeTable || this.treeTableData?.length === 0) return;\r\n const setChildren = (nodes: XTableRow[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.expanded = Boolean(this.expandedAll);\r\n setChildren(x.children as XTableRow[]);\r\n });\r\n };\r\n setChildren(this.treeTableData);\r\n this.detectChanges();\r\n }\r\n\r\n setHeadExpandList() {}\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 if (!x.disabled) {\r\n x[column.id] = checked;\r\n }\r\n });\r\n this.setCheckedValues(column);\r\n this.headCheckboxChange.emit(this.checkedValues);\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 notDisabled = this.tableData.filter((x) => !x.disabled);\r\n const count = notDisabled.length;\r\n const checkedLen = notDisabled.filter((x) => x[column.id]).length;\r\n this.checkedValues[column.id] = count === checkedLen && count !== 0;\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.theadsChanges();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n theadsChanges() {\r\n if (this.theadsChange && this.theadsChange.length > 0) {\r\n for (let item of this.theadsChange) {\r\n item();\r\n }\r\n }\r\n }\r\n}\r\n","<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-head\r\n *ngIf=\"showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-foot *ngIf=\"footer\" [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n <div\r\n *ngIf=\"hasStickyTopRight()\"\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyTopRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight()\"\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n <div\r\n *ngIf=\"hasStickyBottomRight() && headSearchTpl\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n>\r\n</x-pagination>\r\n","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\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\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 XButtonModule,\r\n ScrollingModule,\r\n DragDropModule,\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":["i8.XDragDirective","i6","i7","i1","i3","i5","i6.XTableHeadComponent","i7.XTableBodyComponent","i8.XTableFootComponent"],"mappings":"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"}