@visactor/vtable 1.17.3-alpha.9 → 1.17.3

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 (225) hide show
  1. package/cjs/ListTable.js.map +1 -1
  2. package/cjs/PivotTable.d.ts +5 -0
  3. package/cjs/PivotTable.js +15 -2
  4. package/cjs/PivotTable.js.map +1 -1
  5. package/cjs/components/react/react-custom-layout.js +3 -2
  6. package/cjs/components/react/react-custom-layout.js.map +1 -1
  7. package/cjs/core/BaseTable.js +36 -21
  8. package/cjs/core/BaseTable.js.map +1 -1
  9. package/cjs/core/TABLE_EVENT_TYPE.d.ts +1 -0
  10. package/cjs/core/TABLE_EVENT_TYPE.js +1 -0
  11. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  12. package/cjs/core/record-helper.js +2 -2
  13. package/cjs/core/record-helper.js.map +1 -1
  14. package/cjs/core/tableHelper.js +1 -1
  15. package/cjs/core/tableHelper.js.map +1 -1
  16. package/cjs/dataset/dataset.js +6 -4
  17. package/cjs/dataset/dataset.js.map +1 -1
  18. package/cjs/event/event.js +7 -35
  19. package/cjs/event/event.js.map +1 -1
  20. package/cjs/event/listener/container-dom.js +1 -1
  21. package/cjs/event/listener/container-dom.js.map +1 -1
  22. package/cjs/event/listener/table-group.js +2 -2
  23. package/cjs/event/listener/table-group.js.map +1 -1
  24. package/cjs/event/scroll.js +1 -2
  25. package/cjs/event/self-event-listener/base-table/dbclick-auto-column-width.d.ts +2 -0
  26. package/cjs/event/self-event-listener/base-table/dbclick-auto-column-width.js +31 -0
  27. package/cjs/event/self-event-listener/base-table/dbclick-auto-column-width.js.map +1 -0
  28. package/cjs/event/self-event-listener/base-table/dropdown-menu.d.ts +2 -0
  29. package/cjs/event/self-event-listener/base-table/dropdown-menu.js +16 -0
  30. package/cjs/event/self-event-listener/base-table/dropdown-menu.js.map +1 -0
  31. package/cjs/event/self-event-listener/base-table/icon.d.ts +2 -0
  32. package/cjs/event/self-event-listener/base-table/icon.js +23 -0
  33. package/cjs/event/self-event-listener/base-table/icon.js.map +1 -0
  34. package/cjs/event/self-event-listener/base-table/right-button-click.d.ts +2 -0
  35. package/cjs/event/self-event-listener/base-table/right-button-click.js +25 -0
  36. package/cjs/event/self-event-listener/base-table/right-button-click.js.map +1 -0
  37. package/cjs/event/{list-table → self-event-listener/list-table}/checkbox.d.ts +1 -1
  38. package/cjs/event/{list-table → self-event-listener/list-table}/checkbox.js +1 -1
  39. package/cjs/event/self-event-listener/list-table/checkbox.js.map +1 -0
  40. package/{es/event → cjs/event/self-event-listener}/pivot-chart/axis-click.d.ts +1 -1
  41. package/cjs/event/{pivot-chart → self-event-listener/pivot-chart}/axis-click.js +1 -1
  42. package/cjs/event/self-event-listener/pivot-chart/axis-click.js.map +1 -0
  43. package/cjs/event/{pivot-chart → self-event-listener/pivot-chart}/axis-hover.d.ts +1 -1
  44. package/cjs/event/{pivot-chart → self-event-listener/pivot-chart}/axis-hover.js +1 -1
  45. package/cjs/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -0
  46. package/cjs/event/self-event-listener/pivot-table/drill.d.ts +1 -0
  47. package/cjs/event/self-event-listener/pivot-table/drill.js +3 -0
  48. package/cjs/event/self-event-listener/pivot-table/drill.js.map +1 -0
  49. package/cjs/index.d.ts +1 -1
  50. package/cjs/index.js +1 -1
  51. package/cjs/index.js.map +1 -1
  52. package/cjs/layout/chart-helper/get-axis-config.js +5 -7
  53. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  54. package/cjs/layout/index.js +2 -1
  55. package/cjs/layout/pivot-header-layout.js +13 -8
  56. package/cjs/layout/pivot-header-layout.js.map +1 -1
  57. package/cjs/layout/simple-header-layout.js +5 -5
  58. package/cjs/layout/simple-header-layout.js.map +1 -1
  59. package/cjs/plugins/chartModules.js +1 -1
  60. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  61. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +4 -4
  62. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  63. package/cjs/scenegraph/group-creater/cell-helper.js +3 -1
  64. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  65. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js +1 -1
  66. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  67. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +4 -2
  68. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  69. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +1 -1
  70. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  71. package/cjs/scenegraph/group-creater/progress/proxy.js +6 -6
  72. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  73. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
  74. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  75. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +5 -4
  76. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  77. package/cjs/scenegraph/layout/compute-col-width.js +2 -1
  78. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  79. package/cjs/scenegraph/layout/compute-row-height.js +9 -8
  80. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  81. package/cjs/scenegraph/layout/frozen.js +5 -5
  82. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  83. package/cjs/scenegraph/layout/update-row.js +5 -5
  84. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  85. package/cjs/scenegraph/scenegraph.js +1 -1
  86. package/cjs/scenegraph/scenegraph.js.map +1 -1
  87. package/cjs/scenegraph/select/create-select-border.js +13 -2
  88. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  89. package/cjs/scenegraph/select/update-select-border.js +5 -1
  90. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  91. package/cjs/state/select/update-position.js +2 -2
  92. package/cjs/state/select/update-position.js.map +1 -1
  93. package/cjs/state/state.js +117 -37
  94. package/cjs/state/state.js.map +1 -1
  95. package/cjs/ts-types/base-table.d.ts +1 -0
  96. package/cjs/ts-types/base-table.js.map +1 -1
  97. package/cjs/ts-types/common.d.ts +3 -1
  98. package/cjs/ts-types/common.js.map +1 -1
  99. package/cjs/ts-types/customElement.d.ts +1 -0
  100. package/cjs/ts-types/customElement.js.map +1 -1
  101. package/cjs/ts-types/events.d.ts +17 -0
  102. package/cjs/ts-types/events.js.map +1 -1
  103. package/cjs/ts-types/list-table/layout-map/api.d.ts +1 -1
  104. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  105. package/cjs/ts-types/table-engine.d.ts +2 -1
  106. package/cjs/ts-types/table-engine.js.map +1 -1
  107. package/cjs/ts-types/theme.js.map +1 -1
  108. package/cjs/vrender.js.map +1 -1
  109. package/dist/vtable.js +514 -213
  110. package/dist/vtable.min.js +2 -2
  111. package/es/ListTable.js.map +1 -1
  112. package/es/PivotTable.d.ts +5 -0
  113. package/es/PivotTable.js +15 -2
  114. package/es/PivotTable.js.map +1 -1
  115. package/es/components/react/react-custom-layout.js +3 -2
  116. package/es/components/react/react-custom-layout.js.map +1 -1
  117. package/es/core/BaseTable.js +35 -20
  118. package/es/core/BaseTable.js.map +1 -1
  119. package/es/core/TABLE_EVENT_TYPE.d.ts +1 -0
  120. package/es/core/TABLE_EVENT_TYPE.js +1 -0
  121. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  122. package/es/core/record-helper.js +2 -2
  123. package/es/core/record-helper.js.map +1 -1
  124. package/es/core/tableHelper.js +1 -1
  125. package/es/core/tableHelper.js.map +1 -1
  126. package/es/dataset/dataset.js +6 -4
  127. package/es/dataset/dataset.js.map +1 -1
  128. package/es/event/event.js +16 -39
  129. package/es/event/event.js.map +1 -1
  130. package/es/event/listener/container-dom.js +1 -1
  131. package/es/event/listener/container-dom.js.map +1 -1
  132. package/es/event/listener/table-group.js +2 -2
  133. package/es/event/listener/table-group.js.map +1 -1
  134. package/es/event/scroll.js +1 -2
  135. package/es/event/self-event-listener/base-table/dbclick-auto-column-width.d.ts +2 -0
  136. package/es/event/self-event-listener/base-table/dbclick-auto-column-width.js +25 -0
  137. package/es/event/self-event-listener/base-table/dbclick-auto-column-width.js.map +1 -0
  138. package/es/event/self-event-listener/base-table/dropdown-menu.d.ts +2 -0
  139. package/es/event/self-event-listener/base-table/dropdown-menu.js +8 -0
  140. package/es/event/self-event-listener/base-table/dropdown-menu.js.map +1 -0
  141. package/es/event/self-event-listener/base-table/icon.d.ts +2 -0
  142. package/es/event/self-event-listener/base-table/icon.js +18 -0
  143. package/es/event/self-event-listener/base-table/icon.js.map +1 -0
  144. package/es/event/self-event-listener/base-table/right-button-click.d.ts +2 -0
  145. package/es/event/self-event-listener/base-table/right-button-click.js +17 -0
  146. package/es/event/self-event-listener/base-table/right-button-click.js.map +1 -0
  147. package/es/event/{list-table → self-event-listener/list-table}/checkbox.d.ts +1 -1
  148. package/es/event/{list-table → self-event-listener/list-table}/checkbox.js +2 -2
  149. package/es/event/self-event-listener/list-table/checkbox.js.map +1 -0
  150. package/{cjs/event → es/event/self-event-listener}/pivot-chart/axis-click.d.ts +1 -1
  151. package/es/event/{pivot-chart → self-event-listener/pivot-chart}/axis-click.js +2 -2
  152. package/es/event/self-event-listener/pivot-chart/axis-click.js.map +1 -0
  153. package/es/event/{pivot-chart → self-event-listener/pivot-chart}/axis-hover.d.ts +1 -1
  154. package/es/event/{pivot-chart → self-event-listener/pivot-chart}/axis-hover.js +1 -1
  155. package/es/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -0
  156. package/es/event/self-event-listener/pivot-table/drill.d.ts +1 -0
  157. package/es/event/self-event-listener/pivot-table/drill.js +3 -0
  158. package/es/event/self-event-listener/pivot-table/drill.js.map +1 -0
  159. package/es/index.d.ts +1 -1
  160. package/es/index.js +1 -1
  161. package/es/index.js.map +1 -1
  162. package/es/layout/chart-helper/get-axis-config.js +5 -7
  163. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  164. package/es/layout/index.js +2 -1
  165. package/es/layout/pivot-header-layout.js +12 -8
  166. package/es/layout/pivot-header-layout.js.map +1 -1
  167. package/es/layout/simple-header-layout.js +5 -5
  168. package/es/layout/simple-header-layout.js.map +1 -1
  169. package/es/plugins/chartModules.js +1 -1
  170. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  171. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +4 -4
  172. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  173. package/es/scenegraph/group-creater/cell-helper.js +3 -1
  174. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  175. package/es/scenegraph/group-creater/cell-type/radio-cell.js +1 -1
  176. package/es/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  177. package/es/scenegraph/group-creater/cell-type/video-cell.js +4 -2
  178. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  179. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +1 -1
  180. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  181. package/es/scenegraph/group-creater/progress/proxy.js +6 -6
  182. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  183. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
  184. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  185. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +5 -4
  186. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  187. package/es/scenegraph/layout/compute-col-width.js +2 -1
  188. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  189. package/es/scenegraph/layout/compute-row-height.js +9 -8
  190. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  191. package/es/scenegraph/layout/frozen.js +5 -5
  192. package/es/scenegraph/layout/frozen.js.map +1 -1
  193. package/es/scenegraph/layout/update-row.js +5 -5
  194. package/es/scenegraph/layout/update-row.js.map +1 -1
  195. package/es/scenegraph/scenegraph.js +1 -1
  196. package/es/scenegraph/scenegraph.js.map +1 -1
  197. package/es/scenegraph/select/create-select-border.js +13 -2
  198. package/es/scenegraph/select/create-select-border.js.map +1 -1
  199. package/es/scenegraph/select/update-select-border.js +5 -1
  200. package/es/scenegraph/select/update-select-border.js.map +1 -1
  201. package/es/state/select/update-position.js +2 -2
  202. package/es/state/select/update-position.js.map +1 -1
  203. package/es/state/state.js +117 -37
  204. package/es/state/state.js.map +1 -1
  205. package/es/ts-types/base-table.d.ts +1 -0
  206. package/es/ts-types/base-table.js.map +1 -1
  207. package/es/ts-types/common.d.ts +3 -1
  208. package/es/ts-types/common.js.map +1 -1
  209. package/es/ts-types/customElement.d.ts +1 -0
  210. package/es/ts-types/customElement.js.map +1 -1
  211. package/es/ts-types/events.d.ts +17 -0
  212. package/es/ts-types/events.js.map +1 -1
  213. package/es/ts-types/list-table/layout-map/api.d.ts +1 -1
  214. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  215. package/es/ts-types/table-engine.d.ts +2 -1
  216. package/es/ts-types/table-engine.js.map +1 -1
  217. package/es/ts-types/theme.js.map +1 -1
  218. package/es/vrender.js.map +1 -1
  219. package/package.json +3 -3
  220. package/cjs/event/list-table/checkbox.js.map +0 -1
  221. package/cjs/event/pivot-chart/axis-click.js.map +0 -1
  222. package/cjs/event/pivot-chart/axis-hover.js.map +0 -1
  223. package/es/event/list-table/checkbox.js.map +0 -1
  224. package/es/event/pivot-chart/axis-click.js.map +0 -1
  225. package/es/event/pivot-chart/axis-hover.js.map +0 -1
@@ -26,6 +26,7 @@ export interface TableEvents {
26
26
  AFTER_SORT: 'after_sort';
27
27
  FREEZE_CLICK: 'freeze_click';
28
28
  SCROLL: 'scroll';
29
+ CAN_SCROLL: 'can_scroll';
29
30
  SCROLL_HORIZONTAL_END: 'scroll_horizontal_end';
30
31
  SCROLL_VERTICAL_END: 'scroll_vertical_end';
31
32
  DROPDOWN_MENU_CLICK: 'dropdown_menu_click';
@@ -30,6 +30,7 @@ Object.defineProperty(exports, "__esModule", {
30
30
  AFTER_SORT: "after_sort",
31
31
  FREEZE_CLICK: "freeze_click",
32
32
  SCROLL: "scroll",
33
+ CAN_SCROLL: "can_scroll",
33
34
  SCROLL_HORIZONTAL_END: "scroll_horizontal_end",
34
35
  SCROLL_VERTICAL_END: "scroll_vertical_end",
35
36
  DROPDOWN_MENU_CLICK: "dropdown_menu_click",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/TABLE_EVENT_TYPE.ts"],"names":[],"mappings":";;;AAqMa,QAAA,gBAAgB,GAAgB;IAC3C,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,4BAA4B,EAAE,8BAA8B;IAC5D,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,2BAA2B,EAAE,6BAA6B;IAC1D,UAAU,EAAE,YAAY;IAIxB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,qBAAqB,EAAE,uBAAuB;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAClC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAE1C,2BAA2B,EAAE,6BAA6B;IAE1D,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IAEtB,UAAU,EAAE,YAAY;IAExB,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,eAAe;IAE9B,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAElC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,oBAAoB,EAAE,sBAAsB;IAE5C,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IAExC,YAAY,EAAE,cAAc;CACd,CAAC","file":"TABLE_EVENT_TYPE.js","sourcesContent":["export interface TableEvents {\n /**\n * 鼠标点击单元格事件\n */\n CLICK_CELL: 'click_cell';\n /**\n * 鼠标双击单元格事件\n */\n DBLCLICK_CELL: 'dblclick_cell';\n /**\n * 单元格上鼠标按下事件\n */\n MOUSEDOWN_CELL: 'mousedown_cell';\n /**\n * 单元格鼠标松开事件\n */\n MOUSEUP_CELL: 'mouseup_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CELL: 'selected_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CLEAR: 'selected_clear';\n /**\n * 键盘按下事件\n */\n KEYDOWN: 'keydown';\n /**\n * 鼠标进入表格事件\n */\n MOUSEENTER_TABLE: 'mouseenter_table';\n /**\n * 鼠标离开表格事件\n */\n MOUSELEAVE_TABLE: 'mouseleave_table';\n /**\n * 鼠标点击表格事件\n */\n MOUSEDOWN_TABLE: 'mousedown_table';\n /**\n * 鼠标在表格上移动事件\n */\n MOUSEMOVE_TABLE: 'mousemove_table';\n /**\n * 鼠标在某个单元格上移动事件\n */\n MOUSEMOVE_CELL: 'mousemove_cell';\n /**\n * 鼠标进入单元格事件\n */\n MOUSEENTER_CELL: 'mouseenter_cell';\n /**\n * 鼠标离开单元格事件\n */\n MOUSELEAVE_CELL: 'mouseleave_cell';\n /**\n * 单元格右键事件\n */\n CONTEXTMENU_CELL: 'contextmenu_cell';\n /**\n * 列宽调整事件\n */\n RESIZE_COLUMN: 'resize_column';\n /**\n * 列宽调整结束事件\n */\n RESIZE_COLUMN_END: 'resize_column_end';\n /**\n * 行高调整事件\n */\n RESIZE_ROW: 'resize_row';\n /**\n * 行高调整结束事件\n */\n RESIZE_ROW_END: 'resize_row_end';\n /**\n * 拖拽表头移动位置的事件\n */\n CHANGE_HEADER_POSITION: 'change_header_position';\n CHANGE_HEADER_POSITION_START: 'change_header_position_start';\n CHANGING_HEADER_POSITION: 'changing_header_position';\n CHANGE_HEADER_POSITION_FAIL: 'change_header_position_fail';\n /**\n * 点击排序图标事件\n */\n SORT_CLICK: 'sort_click';\n /**\n * 执行完排序\n */\n AFTER_SORT: 'after_sort';\n /**\n * 点击固定列图标 冻结或者解冻事件\n */\n FREEZE_CLICK: 'freeze_click';\n /**\n * 滚动表格事件\n */\n SCROLL: 'scroll';\n /**\n * 横向滚动条滚动到结束位\n */\n SCROLL_HORIZONTAL_END: 'scroll_horizontal_end';\n /**\n * 竖向滚动条滚动到结束位\n */\n SCROLL_VERTICAL_END: 'scroll_vertical_end';\n /**\n * 点击下拉菜单图标事件\n */\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click';\n /**\n * 鼠标经过迷你图标记事件\n */\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol';\n\n /**\n * 拖拽框选单元格鼠标松开事件\n */\n DRAG_SELECT_END: 'drag_select_end';\n /** 复制完成 */\n COPY_DATA: 'copy_data';\n /**\n * 点击下拉菜单按钮\n */\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click';\n /**\n * 清空下拉菜单事件(菜单显示时点击其他区域)\n */\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear';\n\n /**\n * 树形结构展开收起的点击事件\n */\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change';\n\n SHOW_MENU: 'show_menu';\n HIDE_MENU: 'hide_menu';\n /**\n * icon图标点击事件\n */\n ICON_CLICK: 'icon_click';\n\n // legend component\n LEGEND_ITEM_CLICK: 'legend_item_click';\n LEGEND_ITEM_HOVER: 'legend_item_hover';\n LEGEND_ITEM_UNHOVER: 'legend_item_unHover';\n LEGEND_CHANGE: 'legend_change';\n\n MOUSEENTER_AXIS: 'mouseenter_axis';\n MOUSELEAVE_AXIS: 'mouseleave_axis';\n\n CHECKBOX_STATE_CHANGE: 'checkbox_state_change';\n RADIO_STATE_CHANGE: 'radio_state_change';\n SWITCH_STATE_CHANGE: 'switch_state_change';\n //#region lifecircle\n /** 每次渲染完成触发 */\n AFTER_RENDER: 'after_render';\n /** 表格实例初始化完成 */\n INITIALIZED: 'initialized';\n //#endregion\n\n CHANGE_CELL_VALUE: 'change_cell_value';\n\n /**\n * 鼠标按下填充柄事件\n */\n MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle';\n /**\n * 拖拽填充柄结束事件\n */\n DRAG_FILL_HANDLE_END: 'drag_fill_handle_end';\n /**\n * 双击填充柄事件\n */\n DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle';\n\n /**\n * 空数据提示点击事件\n */\n EMPTY_TIP_CLICK: 'empty_tip_click';\n /**\n * 空数据提示双击事件\n */\n EMPTY_TIP_DBLCLICK: 'empty_tip_dblclick';\n\n /**\n * 按钮点击事件\n */\n BUTTON_CLICK: 'button_click';\n}\n/**\n * Table event types\n */\nexport const TABLE_EVENT_TYPE: TableEvents = {\n CLICK_CELL: 'click_cell',\n DBLCLICK_CELL: 'dblclick_cell',\n MOUSEDOWN_CELL: 'mousedown_cell',\n MOUSEUP_CELL: 'mouseup_cell',\n SELECTED_CELL: 'selected_cell',\n SELECTED_CLEAR: 'selected_clear',\n KEYDOWN: 'keydown',\n MOUSEENTER_TABLE: 'mouseenter_table',\n MOUSELEAVE_TABLE: 'mouseleave_table',\n MOUSEDOWN_TABLE: 'mousedown_table',\n MOUSEMOVE_TABLE: 'mousemove_table',\n MOUSEMOVE_CELL: 'mousemove_cell',\n MOUSEENTER_CELL: 'mouseenter_cell',\n MOUSELEAVE_CELL: 'mouseleave_cell',\n CONTEXTMENU_CELL: 'contextmenu_cell',\n RESIZE_COLUMN: 'resize_column',\n RESIZE_COLUMN_END: 'resize_column_end',\n RESIZE_ROW: 'resize_row',\n RESIZE_ROW_END: 'resize_row_end',\n CHANGE_HEADER_POSITION_START: 'change_header_position_start',\n CHANGE_HEADER_POSITION: 'change_header_position',\n CHANGING_HEADER_POSITION: 'changing_header_position',\n CHANGE_HEADER_POSITION_FAIL: 'change_header_position_fail',\n SORT_CLICK: 'sort_click',\n /**\n * 执行完排序\n */\n AFTER_SORT: 'after_sort',\n FREEZE_CLICK: 'freeze_click',\n SCROLL: 'scroll',\n SCROLL_HORIZONTAL_END: 'scroll_horizontal_end',\n SCROLL_VERTICAL_END: 'scroll_vertical_end',\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click',\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol',\n DRAG_SELECT_END: 'drag_select_end',\n COPY_DATA: 'copy_data',\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click', // 点击下拉菜单按钮\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear', // 清空下拉菜单事件(菜单显示时点击其他区域)\n\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change', //树形结构展开收起的点击事件\n\n SHOW_MENU: 'show_menu',\n HIDE_MENU: 'hide_menu',\n\n ICON_CLICK: 'icon_click',\n\n LEGEND_ITEM_CLICK: 'legend_item_click',\n LEGEND_ITEM_HOVER: 'legend_item_hover',\n LEGEND_ITEM_UNHOVER: 'legend_item_unHover',\n LEGEND_CHANGE: 'legend_change',\n\n MOUSEENTER_AXIS: 'mouseenter_axis',\n MOUSELEAVE_AXIS: 'mouseleave_axis',\n\n CHECKBOX_STATE_CHANGE: 'checkbox_state_change',\n RADIO_STATE_CHANGE: 'radio_state_change',\n SWITCH_STATE_CHANGE: 'switch_state_change',\n AFTER_RENDER: 'after_render',\n INITIALIZED: 'initialized',\n CHANGE_CELL_VALUE: 'change_cell_value',\n DRAG_FILL_HANDLE_END: 'drag_fill_handle_end',\n MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle',\n DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle',\n\n EMPTY_TIP_CLICK: 'empty_tip_click',\n EMPTY_TIP_DBLCLICK: 'empty_tip_dblclick',\n\n BUTTON_CLICK: 'button_click'\n} as TableEvents;\n"]}
1
+ {"version":3,"sources":["../src/core/TABLE_EVENT_TYPE.ts"],"names":[],"mappings":";;;AAsMa,QAAA,gBAAgB,GAAgB;IAC3C,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,4BAA4B,EAAE,8BAA8B;IAC5D,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,2BAA2B,EAAE,6BAA6B;IAC1D,UAAU,EAAE,YAAY;IAIxB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAClC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAE1C,2BAA2B,EAAE,6BAA6B;IAE1D,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IAEtB,UAAU,EAAE,YAAY;IAExB,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,eAAe;IAE9B,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAElC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,oBAAoB,EAAE,sBAAsB;IAE5C,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IAExC,YAAY,EAAE,cAAc;CACd,CAAC","file":"TABLE_EVENT_TYPE.js","sourcesContent":["export interface TableEvents {\n /**\n * 鼠标点击单元格事件\n */\n CLICK_CELL: 'click_cell';\n /**\n * 鼠标双击单元格事件\n */\n DBLCLICK_CELL: 'dblclick_cell';\n /**\n * 单元格上鼠标按下事件\n */\n MOUSEDOWN_CELL: 'mousedown_cell';\n /**\n * 单元格鼠标松开事件\n */\n MOUSEUP_CELL: 'mouseup_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CELL: 'selected_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CLEAR: 'selected_clear';\n /**\n * 键盘按下事件\n */\n KEYDOWN: 'keydown';\n /**\n * 鼠标进入表格事件\n */\n MOUSEENTER_TABLE: 'mouseenter_table';\n /**\n * 鼠标离开表格事件\n */\n MOUSELEAVE_TABLE: 'mouseleave_table';\n /**\n * 鼠标点击表格事件\n */\n MOUSEDOWN_TABLE: 'mousedown_table';\n /**\n * 鼠标在表格上移动事件\n */\n MOUSEMOVE_TABLE: 'mousemove_table';\n /**\n * 鼠标在某个单元格上移动事件\n */\n MOUSEMOVE_CELL: 'mousemove_cell';\n /**\n * 鼠标进入单元格事件\n */\n MOUSEENTER_CELL: 'mouseenter_cell';\n /**\n * 鼠标离开单元格事件\n */\n MOUSELEAVE_CELL: 'mouseleave_cell';\n /**\n * 单元格右键事件\n */\n CONTEXTMENU_CELL: 'contextmenu_cell';\n /**\n * 列宽调整事件\n */\n RESIZE_COLUMN: 'resize_column';\n /**\n * 列宽调整结束事件\n */\n RESIZE_COLUMN_END: 'resize_column_end';\n /**\n * 行高调整事件\n */\n RESIZE_ROW: 'resize_row';\n /**\n * 行高调整结束事件\n */\n RESIZE_ROW_END: 'resize_row_end';\n /**\n * 拖拽表头移动位置的事件\n */\n CHANGE_HEADER_POSITION: 'change_header_position';\n CHANGE_HEADER_POSITION_START: 'change_header_position_start';\n CHANGING_HEADER_POSITION: 'changing_header_position';\n CHANGE_HEADER_POSITION_FAIL: 'change_header_position_fail';\n /**\n * 点击排序图标事件\n */\n SORT_CLICK: 'sort_click';\n /**\n * 执行完排序\n */\n AFTER_SORT: 'after_sort';\n /**\n * 点击固定列图标 冻结或者解冻事件\n */\n FREEZE_CLICK: 'freeze_click';\n /**\n * 滚动表格事件\n */\n SCROLL: 'scroll';\n CAN_SCROLL: 'can_scroll';\n /**\n * 横向滚动条滚动到结束位\n */\n SCROLL_HORIZONTAL_END: 'scroll_horizontal_end';\n /**\n * 竖向滚动条滚动到结束位\n */\n SCROLL_VERTICAL_END: 'scroll_vertical_end';\n /**\n * 点击下拉菜单图标事件\n */\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click';\n /**\n * 鼠标经过迷你图标记事件\n */\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol';\n\n /**\n * 拖拽框选单元格鼠标松开事件\n */\n DRAG_SELECT_END: 'drag_select_end';\n /** 复制完成 */\n COPY_DATA: 'copy_data';\n /**\n * 点击下拉菜单按钮\n */\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click';\n /**\n * 清空下拉菜单事件(菜单显示时点击其他区域)\n */\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear';\n\n /**\n * 树形结构展开收起的点击事件\n */\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change';\n\n SHOW_MENU: 'show_menu';\n HIDE_MENU: 'hide_menu';\n /**\n * icon图标点击事件\n */\n ICON_CLICK: 'icon_click';\n\n // legend component\n LEGEND_ITEM_CLICK: 'legend_item_click';\n LEGEND_ITEM_HOVER: 'legend_item_hover';\n LEGEND_ITEM_UNHOVER: 'legend_item_unHover';\n LEGEND_CHANGE: 'legend_change';\n\n MOUSEENTER_AXIS: 'mouseenter_axis';\n MOUSELEAVE_AXIS: 'mouseleave_axis';\n\n CHECKBOX_STATE_CHANGE: 'checkbox_state_change';\n RADIO_STATE_CHANGE: 'radio_state_change';\n SWITCH_STATE_CHANGE: 'switch_state_change';\n //#region lifecircle\n /** 每次渲染完成触发 */\n AFTER_RENDER: 'after_render';\n /** 表格实例初始化完成 */\n INITIALIZED: 'initialized';\n //#endregion\n\n CHANGE_CELL_VALUE: 'change_cell_value';\n\n /**\n * 鼠标按下填充柄事件\n */\n MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle';\n /**\n * 拖拽填充柄结束事件\n */\n DRAG_FILL_HANDLE_END: 'drag_fill_handle_end';\n /**\n * 双击填充柄事件\n */\n DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle';\n\n /**\n * 空数据提示点击事件\n */\n EMPTY_TIP_CLICK: 'empty_tip_click';\n /**\n * 空数据提示双击事件\n */\n EMPTY_TIP_DBLCLICK: 'empty_tip_dblclick';\n\n /**\n * 按钮点击事件\n */\n BUTTON_CLICK: 'button_click';\n}\n/**\n * Table event types\n */\nexport const TABLE_EVENT_TYPE: TableEvents = {\n CLICK_CELL: 'click_cell',\n DBLCLICK_CELL: 'dblclick_cell',\n MOUSEDOWN_CELL: 'mousedown_cell',\n MOUSEUP_CELL: 'mouseup_cell',\n SELECTED_CELL: 'selected_cell',\n SELECTED_CLEAR: 'selected_clear',\n KEYDOWN: 'keydown',\n MOUSEENTER_TABLE: 'mouseenter_table',\n MOUSELEAVE_TABLE: 'mouseleave_table',\n MOUSEDOWN_TABLE: 'mousedown_table',\n MOUSEMOVE_TABLE: 'mousemove_table',\n MOUSEMOVE_CELL: 'mousemove_cell',\n MOUSEENTER_CELL: 'mouseenter_cell',\n MOUSELEAVE_CELL: 'mouseleave_cell',\n CONTEXTMENU_CELL: 'contextmenu_cell',\n RESIZE_COLUMN: 'resize_column',\n RESIZE_COLUMN_END: 'resize_column_end',\n RESIZE_ROW: 'resize_row',\n RESIZE_ROW_END: 'resize_row_end',\n CHANGE_HEADER_POSITION_START: 'change_header_position_start',\n CHANGE_HEADER_POSITION: 'change_header_position',\n CHANGING_HEADER_POSITION: 'changing_header_position',\n CHANGE_HEADER_POSITION_FAIL: 'change_header_position_fail',\n SORT_CLICK: 'sort_click',\n /**\n * 执行完排序\n */\n AFTER_SORT: 'after_sort',\n FREEZE_CLICK: 'freeze_click',\n SCROLL: 'scroll',\n CAN_SCROLL: 'can_scroll',\n SCROLL_HORIZONTAL_END: 'scroll_horizontal_end',\n SCROLL_VERTICAL_END: 'scroll_vertical_end',\n DROPDOWN_MENU_CLICK: 'dropdown_menu_click',\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol',\n DRAG_SELECT_END: 'drag_select_end',\n COPY_DATA: 'copy_data',\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click', // 点击下拉菜单按钮\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear', // 清空下拉菜单事件(菜单显示时点击其他区域)\n\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change', //树形结构展开收起的点击事件\n\n SHOW_MENU: 'show_menu',\n HIDE_MENU: 'hide_menu',\n\n ICON_CLICK: 'icon_click',\n\n LEGEND_ITEM_CLICK: 'legend_item_click',\n LEGEND_ITEM_HOVER: 'legend_item_hover',\n LEGEND_ITEM_UNHOVER: 'legend_item_unHover',\n LEGEND_CHANGE: 'legend_change',\n\n MOUSEENTER_AXIS: 'mouseenter_axis',\n MOUSELEAVE_AXIS: 'mouseleave_axis',\n\n CHECKBOX_STATE_CHANGE: 'checkbox_state_change',\n RADIO_STATE_CHANGE: 'radio_state_change',\n SWITCH_STATE_CHANGE: 'switch_state_change',\n AFTER_RENDER: 'after_render',\n INITIALIZED: 'initialized',\n CHANGE_CELL_VALUE: 'change_cell_value',\n DRAG_FILL_HANDLE_END: 'drag_fill_handle_end',\n MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle',\n DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle',\n\n EMPTY_TIP_CLICK: 'empty_tip_click',\n EMPTY_TIP_DBLCLICK: 'empty_tip_dblclick',\n\n BUTTON_CLICK: 'button_click'\n} as TableEvents;\n"]}
@@ -24,7 +24,7 @@ function listTableChangeCellValue(col, row, value, workOnEditableCell, table) {
24
24
  const oldWidth = table.getColWidth(col), newWidth = (0, compute_col_width_1.computeColWidth)(col, 0, table.rowCount - 1, table, !1);
25
25
  newWidth !== oldWidth && table.scenegraph.updateColWidth(col, newWidth - oldWidth);
26
26
  }
27
- if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) 0 === table.internalProps._heightResizedRowMap.size && table.scenegraph.recalculateRowHeights(); else if (table.isAutoRowHeight() && !table.internalProps._heightResizedRowMap.has(row)) {
27
+ if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) 0 === table.internalProps._heightResizedRowMap.size && table.scenegraph.recalculateRowHeights(); else if (table.isAutoRowHeight(row) && !table.internalProps._heightResizedRowMap.has(row)) {
28
28
  const oldHeight = table.getRowHeight(row), newHeight = (0, compute_row_height_1.computeRowHeight)(row, 0, table.colCount - 1, table);
29
29
  table.scenegraph.updateRowHeight(row, newHeight - oldHeight);
30
30
  }
@@ -101,7 +101,7 @@ function listTableChangeCellValues(startCol, startRow, values, workOnEditableCel
101
101
  const oldWidth = table.getColWidth(sCol), newWidth = (0, compute_col_width_1.computeColWidth)(sCol, 0, table.rowCount - 1, table, !1);
102
102
  newWidth !== oldWidth && table.scenegraph.updateColWidth(sCol, newWidth - oldWidth);
103
103
  }
104
- if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) table.scenegraph.recalculateRowHeights(); else if (table.isAutoRowHeight()) {
104
+ if ("adaptive" === table.heightMode || table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight) table.scenegraph.recalculateRowHeights(); else if (table.isAutoRowHeight(startRow)) {
105
105
  const rows = [], deltaYs = [];
106
106
  for (let sRow = startRow; sRow <= range.end.row; sRow++) if (table.rowHeightsMap.get(sRow)) {
107
107
  const oldHeight = table.getRowHeight(sRow), newHeight = (0, compute_row_height_1.computeRowHeight)(sRow, 0, table.colCount - 1, table);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/record-helper.ts"],"names":[],"mappings":"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","file":"record-helper.js","sourcesContent":["/* eslint-disable max-depth */\nimport type { ListTable } from '../ListTable';\nimport type { CachedDataSource } from '../data';\nimport { computeColWidth } from '../scenegraph/layout/compute-col-width';\nimport { computeRowHeight } from '../scenegraph/layout/compute-row-height';\nimport { isPromise } from '../tools/helper';\nimport { defaultOrderFn } from '../tools/util';\nimport type { SortState } from '../ts-types';\nimport { TABLE_EVENT_TYPE } from './TABLE_EVENT_TYPE';\n\n/**\n * 更改单元格数据 会触发change_cell_value事件\n * @param col\n * @param row\n * @param value 更改后的值\n * @param workOnEditableCell 限制只能更改配置了编辑器的单元格值。快捷键paste这里配置的true,限制只能修改可编辑单元格值\n */\nexport function listTableChangeCellValue(\n col: number,\n row: number,\n value: string | number | null,\n workOnEditableCell: boolean,\n table: ListTable\n) {\n if ((workOnEditableCell && table.isHasEditorDefine(col, row)) || workOnEditableCell === false) {\n const recordIndex = table.getRecordShowIndexByCell(col, row);\n const { field } = table.internalProps.layoutMap.getBody(col, row);\n const beforeChangeValue = table.getCellRawValue(col, row);\n const oldValue = table.getCellOriginValue(col, row);\n if (table.isHeader(col, row)) {\n table.internalProps.layoutMap.updateColumnTitle(col, row, value as string);\n } else {\n table.dataSource.changeFieldValue(value, recordIndex, field, col, row, table);\n }\n const range = table.getCellRange(col, row);\n //改变单元格的值后 聚合值做重新计算\n const aggregators = table.internalProps.layoutMap.getAggregatorsByCell(col, row);\n if (aggregators) {\n if (Array.isArray(aggregators)) {\n for (let i = 0; i < aggregators?.length; i++) {\n aggregators[i].recalculate();\n }\n } else {\n aggregators.recalculate();\n }\n const aggregatorCells = table.internalProps.layoutMap.getAggregatorCellAddress(\n range.start.col,\n range.start.row,\n range.end.col,\n range.end.row\n );\n for (let i = 0; i < aggregatorCells.length; i++) {\n const range = table.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);\n for (let sCol = range.start.col; sCol <= range.end.col; sCol++) {\n for (let sRow = range.start.row; sRow <= range.end.row; sRow++) {\n table.scenegraph.updateCellContent(sCol, sRow);\n }\n }\n }\n }\n\n // const cell_value = table.getCellValue(col, row);\n\n for (let sCol = range.start.col; sCol <= range.end.col; sCol++) {\n for (let sRow = range.start.row; sRow <= range.end.row; sRow++) {\n table.scenegraph.updateCellContent(sCol, sRow);\n }\n }\n if (table.widthMode === 'adaptive' || (table.autoFillWidth && table.getAllColsWidth() <= table.tableNoFrameWidth)) {\n if (table.internalProps._widthResizedColMap.size === 0) {\n //如果没有手动调整过行高列宽 则重新计算一遍并重新分配\n table.scenegraph.recalculateColWidths();\n }\n } else if (!table.internalProps._widthResizedColMap.has(col)) {\n const oldWidth = table.getColWidth(col);\n const newWidth = computeColWidth(col, 0, table.rowCount - 1, table, false);\n if (newWidth !== oldWidth) {\n table.scenegraph.updateColWidth(col, newWidth - oldWidth);\n }\n }\n if (\n table.heightMode === 'adaptive' ||\n (table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight)\n ) {\n if (table.internalProps._heightResizedRowMap.size === 0) {\n table.scenegraph.recalculateRowHeights();\n }\n } else if (table.isAutoRowHeight() && !table.internalProps._heightResizedRowMap.has(row)) {\n const oldHeight = table.getRowHeight(row);\n const newHeight = computeRowHeight(row, 0, table.colCount - 1, table);\n table.scenegraph.updateRowHeight(row, newHeight - oldHeight);\n }\n const changedValue = table.getCellOriginValue(col, row);\n if (oldValue !== changedValue) {\n table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {\n col,\n row,\n rawValue: beforeChangeValue,\n currentValue: oldValue,\n changedValue\n });\n }\n table.scenegraph.updateNextFrame();\n }\n}\n/**\n * 批量更新多个单元格的数据\n * @param col 粘贴数据的起始列号\n * @param row 粘贴数据的起始行号\n * @param values 多个单元格的数据数组\n * @param workOnEditableCell 是否仅更改可编辑单元格\n */\nexport function listTableChangeCellValues(\n startCol: number,\n startRow: number,\n values: (string | number)[][],\n workOnEditableCell: boolean,\n table: ListTable\n) {\n let pasteColEnd = startCol;\n let pasteRowEnd = startRow;\n // const rowCount = values.length;\n //#region 提前组织好未更改前的数据\n const beforeChangeValues: (string | number)[][] = [];\n const oldValues: (string | number)[][] = [];\n let cellUpdateType: 'normal' | 'sort' | 'group';\n\n for (let i = 0; i < values.length; i++) {\n if (startRow + i > table.rowCount - 1) {\n break;\n }\n const rowValues = values[i];\n const rawRowValues: (string | number)[] = [];\n const oldRowValues: (string | number)[] = [];\n beforeChangeValues.push(rawRowValues);\n oldValues.push(oldRowValues);\n for (let j = 0; j < rowValues.length; j++) {\n if (startCol + j > table.colCount - 1) {\n break;\n }\n cellUpdateType = getCellUpdateType(startCol + j, startRow + i, table, cellUpdateType);\n const beforeChangeValue = table.getCellRawValue(startCol + j, startRow + i);\n rawRowValues.push(beforeChangeValue);\n const oldValue = table.getCellOriginValue(startCol + j, startRow + i);\n oldRowValues.push(oldValue);\n }\n }\n //#endregion\n for (let i = 0; i < values.length; i++) {\n if (startRow + i > table.rowCount - 1) {\n break;\n }\n pasteRowEnd = startRow + i;\n const rowValues = values[i];\n let thisRowPasteColEnd = startCol;\n for (let j = 0; j < rowValues.length; j++) {\n if (startCol + j > table.colCount - 1) {\n break;\n }\n thisRowPasteColEnd = startCol + j;\n let isCanChange = false;\n if (workOnEditableCell === false) {\n isCanChange = true;\n } else {\n if (table.isHasEditorDefine(startCol + j, startRow + i)) {\n const editor = table.getEditor(startCol + j, startRow + i);\n const oldValue = oldValues[i][j];\n const value = rowValues[j];\n const maybePromiseOrValue = editor?.validateValue?.(value, oldValue) ?? true;\n if (isPromise(maybePromiseOrValue)) {\n //TODO 处理promise的情况\n isCanChange = true;\n } else {\n isCanChange =\n maybePromiseOrValue === true ||\n maybePromiseOrValue === 'validate-exit' ||\n maybePromiseOrValue === 'invalidate-exit';\n }\n }\n }\n // if ((workOnEditableCell && table.isHasEditorDefine(startCol + j, startRow + i)) || workOnEditableCell === false) {\n if (isCanChange) {\n const value = rowValues[j];\n const recordIndex = table.getRecordShowIndexByCell(startCol + j, startRow + i);\n const { field } = table.internalProps.layoutMap.getBody(startCol + j, startRow + i);\n // const beforeChangeValue = table.getCellRawValue(startCol + j, startRow + i);\n // const oldValue = table.getCellOriginValue(startCol + j, startRow + i);\n const beforeChangeValue = beforeChangeValues[i][j];\n const oldValue = oldValues[i][j];\n if (table.isHeader(startCol + j, startRow + i)) {\n table.internalProps.layoutMap.updateColumnTitle(startCol + j, startRow + i, value as string);\n } else {\n table.dataSource.changeFieldValue(value, recordIndex, field, startCol + j, startRow + i, table);\n }\n const changedValue = table.getCellOriginValue(startCol + j, startRow + i);\n if (oldValue !== changedValue) {\n table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {\n col: startCol + j,\n row: startRow + i,\n rawValue: beforeChangeValue,\n currentValue: oldValue,\n changedValue\n });\n }\n }\n }\n pasteColEnd = Math.max(pasteColEnd, thisRowPasteColEnd);\n }\n\n // const cell_value = table.getCellValue(col, row);\n const startRange = table.getCellRange(startCol, startRow);\n const range = table.getCellRange(pasteColEnd, pasteRowEnd);\n\n //改变单元格的值后 聚合值做重新计算\n const aggregators = table.internalProps.layoutMap.getAggregatorsByCellRange(\n startRange.start.col,\n startRange.start.row,\n range.end.col,\n range.end.row\n );\n\n if (aggregators) {\n for (let i = 0; i < aggregators?.length; i++) {\n aggregators[i].recalculate();\n }\n\n if (cellUpdateType === 'normal') {\n const aggregatorCells = table.internalProps.layoutMap.getAggregatorCellAddress(\n startRange.start.col,\n startRange.start.row,\n range.end.col,\n range.end.row\n );\n for (let i = 0; i < aggregatorCells.length; i++) {\n const range = table.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);\n for (let sCol = range.start.col; sCol <= range.end.col; sCol++) {\n for (let sRow = range.start.row; sRow <= range.end.row; sRow++) {\n table.scenegraph.updateCellContent(sCol, sRow);\n }\n }\n }\n }\n }\n\n if (cellUpdateType === 'group') {\n (table.dataSource as CachedDataSource).updateRecordsForGroup([], []);\n }\n\n if (cellUpdateType === 'sort' || cellUpdateType === 'group') {\n (table.dataSource as any).sortedIndexMap.clear();\n sortRecords(table);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n return;\n }\n\n for (let sCol = startRange.start.col; sCol <= range.end.col; sCol++) {\n for (let sRow = startRange.start.row; sRow <= range.end.row; sRow++) {\n table.scenegraph.updateCellContent(sCol, sRow);\n }\n }\n if (table.widthMode === 'adaptive' || (table.autoFillWidth && table.getAllColsWidth() <= table.tableNoFrameWidth)) {\n if (table.internalProps._widthResizedColMap.size === 0) {\n //如果没有手动调整过行高列宽 则重新计算一遍并重新分配\n table.scenegraph.recalculateColWidths();\n }\n } else {\n for (let sCol = startCol; sCol <= range.end.col; sCol++) {\n if (!table.internalProps._widthResizedColMap.has(sCol)) {\n const oldWidth = table.getColWidth(sCol);\n const newWidth = computeColWidth(sCol, 0, table.rowCount - 1, table, false);\n if (newWidth !== oldWidth) {\n table.scenegraph.updateColWidth(sCol, newWidth - oldWidth);\n }\n }\n }\n }\n if (\n table.heightMode === 'adaptive' ||\n (table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight)\n ) {\n table.scenegraph.recalculateRowHeights();\n } else if (table.isAutoRowHeight()) {\n const rows: number[] = [];\n const deltaYs: number[] = [];\n for (let sRow = startRow; sRow <= range.end.row; sRow++) {\n if (table.rowHeightsMap.get(sRow)) {\n // 已经计算过行高的才走更新逻辑\n const oldHeight = table.getRowHeight(sRow);\n const newHeight = computeRowHeight(sRow, 0, table.colCount - 1, table);\n rows.push(sRow);\n deltaYs.push(newHeight - oldHeight);\n }\n }\n table.scenegraph.updateRowsHeight(rows, deltaYs);\n }\n\n table.scenegraph.updateNextFrame();\n}\n\ntype CellUpdateType = 'normal' | 'sort' | 'group';\nfunction getCellUpdateType(\n col: number,\n row: number,\n table: ListTable,\n oldCellUpdateType: CellUpdateType | undefined\n): CellUpdateType {\n if (oldCellUpdateType === 'group') {\n return oldCellUpdateType;\n }\n if (oldCellUpdateType === 'sort' && !table.options.groupBy) {\n return oldCellUpdateType;\n }\n let cellUpdateType: CellUpdateType = 'normal';\n if (table.options.groupBy) {\n cellUpdateType = 'group';\n } else if (!table.isHeader(col, row) && (table.dataSource as any).lastOrderField) {\n const field = table.getBodyField(col, row);\n if (field === (table.dataSource as any).lastOrderField) {\n cellUpdateType = 'sort';\n }\n }\n return cellUpdateType;\n}\n\nexport function sortRecords(table: ListTable) {\n let sortState = table.sortState;\n sortState = !sortState || Array.isArray(sortState) ? sortState : [sortState];\n\n if (sortState) {\n sortState = (sortState as SortState[]).map(item => {\n item.orderFn = table._getSortFuncFromHeaderOption(undefined, item.field) ?? defaultOrderFn;\n //const hd = table.internalProps.layoutMap.headerObjects.find((col: any) => col && col.field === item.field);\n return item;\n });\n\n table.dataSource.sort(sortState);\n }\n}\n\n/**\n * 添加数据 单条数据\n * @param record 数据\n * @param recordIndex 向数据源中要插入的位置,从0开始。不设置recordIndex的话 默认追加到最后。\n * 如果设置了排序规则recordIndex无效,会自动适应排序逻辑确定插入顺序。\n * recordIndex 可以通过接口getRecordShowIndexByCell获取\n */\nexport function listTableAddRecord(record: any, recordIndex: number | number[], table: ListTable) {\n if (table.options.groupBy) {\n (table.dataSource as CachedDataSource).addRecordsForGroup?.([record], recordIndex);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if ((table.dataSource as CachedDataSource).rowHierarchyType === 'tree') {\n (table.dataSource as CachedDataSource).addRecordsForTree?.([record], recordIndex);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if (table.sortState) {\n table.dataSource.addRecordForSorted(record);\n sortRecords(table);\n table.refreshRowColCount();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n recordIndex = recordIndex as number;\n if (recordIndex === undefined || recordIndex > table.dataSource.sourceLength) {\n recordIndex = table.dataSource.sourceLength;\n }\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n table.dataSource.addRecord(record, recordIndex);\n const oldRowCount = table.rowCount;\n table.refreshRowColCount();\n if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n return;\n }\n const newRowCount = table.transpose ? table.colCount : table.rowCount;\n if (table.pagination) {\n const { perPageCount, currentPage } = table.pagination;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n if (recordIndex < endIndex) {\n //插入当前页或者前面的数据才需要更新 如果是插入的是当前页后面的数据不需要更新场景树\n if (recordIndex < endIndex - perPageCount) {\n // 如果是当页之前的数据 则整个场景树都更新\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n //如果是插入当前页数据\n const rowNum = recordIndex - (endIndex - perPageCount) + headerCount;\n if (oldRowCount - headerCount === table.pagination.perPageCount) {\n //如果当页数据是满的 则更新插入的部分行\n const updateRows = [];\n for (let row = rowNum; row < newRowCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], [], updateRows)\n : table.scenegraph.updateRow([], [], updateRows);\n } else {\n //如果当页数据不是满的 则插入新数据\n const addRows = [];\n for (let row = rowNum; row < Math.min(newRowCount, rowNum + 1); row++) {\n if (table.transpose) {\n addRows.push({ col: row, row: 0 });\n } else {\n addRows.push({ col: 0, row });\n }\n }\n table.transpose ? table.scenegraph.updateCol([], addRows, []) : table.scenegraph.updateRow([], addRows, []);\n }\n }\n }\n } else {\n const addRows = [];\n for (let row = recordIndex + headerCount; row < recordIndex + headerCount + 1; row++) {\n if (table.transpose) {\n addRows.push({ col: row, row: 0 });\n } else {\n addRows.push({ col: 0, row });\n }\n }\n const updateRows = [];\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n for (\n let row = (table.transpose ? table.colCount : table.rowCount) - bottomAggregationCount;\n row < (table.transpose ? table.colCount : table.rowCount);\n row++\n ) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose ? table.scenegraph.updateCol([], addRows, []) : table.scenegraph.updateRow([], addRows, []);\n }\n }\n // table.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, { row });\n}\n\n/**\n * 添加数据 支持多条数据\n * @param records 多条数据\n * @param recordIndex 向数据源中要插入的位置,从0开始。不设置recordIndex的话 默认追加到最后。\n * 如果设置了排序规则recordIndex无效,会自动适应排序逻辑确定插入顺序。\n * recordIndex 可以通过接口getRecordShowIndexByCell获取\n */\nexport function listTableAddRecords(records: any[], recordIndex: number | number[], table: ListTable) {\n if (table.options.groupBy) {\n (table.dataSource as CachedDataSource).addRecordsForGroup?.(records, recordIndex);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if ((table.dataSource as CachedDataSource).rowHierarchyType === 'tree') {\n (table.dataSource as CachedDataSource).addRecordsForTree?.(records, recordIndex);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if (table.sortState) {\n table.dataSource.addRecordsForSorted(records);\n sortRecords(table);\n table.refreshRowColCount();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n recordIndex = recordIndex as number;\n if (recordIndex === undefined || recordIndex > table.dataSource.sourceLength) {\n recordIndex = table.dataSource.sourceLength;\n } else if (recordIndex < 0) {\n recordIndex = 0;\n }\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n table.dataSource.addRecords(records, recordIndex);\n const oldRowCount = table.transpose ? table.colCount : table.rowCount;\n table.refreshRowColCount();\n if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n return;\n }\n const newRowCount = table.transpose ? table.colCount : table.rowCount;\n if (table.pagination) {\n const { perPageCount, currentPage } = table.pagination;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n if (recordIndex < endIndex) {\n //插入当前页或者前面的数据才需要更新 如果是插入的是当前页后面的数据不需要更新场景树\n if (recordIndex < endIndex - perPageCount) {\n // 如果是当页之前的数据 则整个场景树都更新\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n //如果是插入当前页数据\n\n const rowNum = recordIndex - (endIndex - perPageCount) + headerCount;\n if (oldRowCount - headerCount === table.pagination.perPageCount) {\n //如果当页数据是满的 则更新插入的部分行\n const updateRows = [];\n for (let row = rowNum; row < newRowCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], [], updateRows)\n : table.scenegraph.updateRow([], [], updateRows);\n } else {\n //如果当页数据不是满的 则插入新数据\n const addRows = [];\n for (\n let row = rowNum;\n row < Math.min(newRowCount, rowNum + (Array.isArray(records) ? records.length : 1));\n row++\n ) {\n if (table.transpose) {\n addRows.push({ col: row, row: 0 });\n } else {\n addRows.push({ col: 0, row });\n }\n }\n table.transpose ? table.scenegraph.updateCol([], addRows, []) : table.scenegraph.updateRow([], addRows, []);\n }\n }\n }\n } else {\n const addRows = [];\n for (\n let row = recordIndex + headerCount;\n row < recordIndex + headerCount + (Array.isArray(records) ? records.length : 1);\n row++\n ) {\n if (table.transpose) {\n addRows.push({ col: row, row: 0 });\n } else {\n addRows.push({ col: 0, row });\n }\n }\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;\n const updateRows = [];\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n for (\n let row = (table.transpose ? table.colCount : table.rowCount) - bottomAggregationCount;\n row < (table.transpose ? table.colCount : table.rowCount);\n row++\n ) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], addRows, updateRows)\n : table.scenegraph.updateRow([], addRows, updateRows);\n }\n }\n // table.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, { row });\n}\n\n/**\n * 删除数据 支持多条数据\n * @param recordIndexs 要删除数据的索引(显示在body中的索引,即要修改的是body部分的第几行数据)\n */\nexport function listTableDeleteRecords(recordIndexs: number[] | number[][], table: ListTable) {\n if (recordIndexs?.length > 0) {\n if (table.options.groupBy) {\n (table.dataSource as CachedDataSource).deleteRecordsForGroup?.(recordIndexs);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if ((table.dataSource as CachedDataSource).rowHierarchyType === 'tree') {\n (table.dataSource as CachedDataSource).deleteRecordsForTree?.(recordIndexs);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if (table.sortState) {\n table.dataSource.deleteRecordsForSorted(recordIndexs as number[]);\n sortRecords(table);\n table.refreshRowColCount();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n const deletedRecordIndexs = table.dataSource.deleteRecords(recordIndexs as number[]);\n if (deletedRecordIndexs.length === 0) {\n return;\n }\n const oldRowCount = table.transpose ? table.colCount : table.rowCount;\n table.refreshRowColCount();\n const newRowCount = table.transpose ? table.colCount : table.rowCount;\n const recordIndexsMinToMax = deletedRecordIndexs.sort((a, b) => a - b);\n const minRecordIndex = recordIndexsMinToMax[0];\n if (table.pagination) {\n const { perPageCount, currentPage } = table.pagination;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n if (minRecordIndex < endIndex) {\n //删除当前页或者前面的数据才需要更新 如果是删除的是当前页后面的数据不需要更新场景树\n if (minRecordIndex < endIndex - perPageCount) {\n // 如果删除包含当页之前的数据 则整个场景树都更新\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n //如果是仅删除当前页数据\n const minRowNum =\n minRecordIndex -\n (endIndex - perPageCount) +\n (table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount) +\n topAggregationCount;\n //如果当页数据是满的 则更新影响的部分行\n const updateRows = [];\n const delRows = [];\n\n for (let row = minRowNum; row < newRowCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n\n if (newRowCount < oldRowCount) {\n //如果如果删除后不满 需要有删除数据\n for (let row = newRowCount; row < oldRowCount; row++) {\n if (table.transpose) {\n delRows.push({ col: row, row: 0 });\n } else {\n delRows.push({ col: 0, row });\n }\n }\n }\n table.reactCustomLayout?.clearCache();\n table.transpose\n ? table.scenegraph.updateCol(delRows, [], updateRows)\n : table.scenegraph.updateRow(delRows, [], updateRows);\n table.reactCustomLayout?.updateAllCustomCell();\n }\n }\n } else {\n const delRows = [];\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;\n for (let index = 0; index < recordIndexsMinToMax.length; index++) {\n const recordIndex = recordIndexsMinToMax[index];\n const rowNum = recordIndex + headerCount + topAggregationCount;\n if (table.transpose) {\n delRows.push({ col: rowNum, row: 0 });\n } else {\n delRows.push({ col: 0, row: rowNum });\n }\n }\n const updateRows = [];\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n for (\n let row = (table.transpose ? table.colCount : table.rowCount) - bottomAggregationCount;\n row < (table.transpose ? table.colCount : table.rowCount);\n row++\n ) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n\n table.reactCustomLayout?.clearCache();\n table.transpose\n ? table.scenegraph.updateCol(delRows, [], updateRows)\n : table.scenegraph.updateRow(delRows, [], updateRows);\n table.reactCustomLayout?.updateAllCustomCell();\n }\n }\n // table.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, { row });\n }\n}\n\n/**\n * 修改数据 支持多条数据\n * @param records 修改数据条目\n * @param recordIndexs 对应修改数据的索引(显示在body中的索引,即要修改的是body部分的第几行数据)\n */\nexport function listTableUpdateRecords(records: any[], recordIndexs: (number | number[])[], table: ListTable) {\n if (recordIndexs?.length > 0) {\n if (table.options.groupBy) {\n (table.dataSource as CachedDataSource).updateRecordsForGroup?.(records, recordIndexs as number[]);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if ((table.dataSource as CachedDataSource).rowHierarchyType === 'tree') {\n (table.dataSource as CachedDataSource).updateRecordsForTree?.(records, recordIndexs as number[]);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if (table.sortState) {\n table.dataSource.updateRecordsForSorted(records, recordIndexs as number[]);\n sortRecords(table);\n table.refreshRowColCount();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n const updateRecordIndexs = table.dataSource.updateRecords(records, recordIndexs);\n if (updateRecordIndexs.length === 0) {\n return;\n }\n const bodyRowIndex = updateRecordIndexs.map(index => table.getBodyRowIndexByRecordIndex(index));\n const recordIndexsMinToMax = bodyRowIndex.sort((a, b) => a - b);\n if (table.pagination) {\n const { perPageCount, currentPage } = table.pagination;\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n const updateRows = [];\n for (let index = 0; index < recordIndexsMinToMax.length; index++) {\n const recordIndex = recordIndexsMinToMax[index];\n if (recordIndex < endIndex && recordIndex >= endIndex - perPageCount) {\n const rowNum =\n recordIndex -\n (endIndex - perPageCount) +\n (table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount) +\n topAggregationCount;\n updateRows.push(rowNum);\n }\n }\n if (updateRows.length >= 1) {\n const updateRowCells = [];\n for (let index = 0; index < updateRows.length; index++) {\n const updateRow = updateRows[index];\n if (table.transpose) {\n updateRowCells.push({ col: updateRow, row: 0 });\n } else {\n updateRowCells.push({ col: 0, row: updateRow });\n }\n }\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRowCells.push({ col: row, row: 0 });\n } else {\n updateRowCells.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], [], updateRowCells)\n : table.scenegraph.updateRow([], [], updateRowCells);\n }\n } else {\n const updateRows = [];\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;\n for (let index = 0; index < recordIndexsMinToMax.length; index++) {\n const recordIndex = recordIndexsMinToMax[index];\n const rowNum = recordIndex + headerCount + topAggregationCount;\n if (table.transpose) {\n updateRows.push({ col: rowNum, row: 0 });\n } else {\n updateRows.push({ col: 0, row: rowNum });\n }\n }\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n for (\n let row = (table.transpose ? table.colCount : table.rowCount) - bottomAggregationCount;\n row < (table.transpose ? table.colCount : table.rowCount);\n row++\n ) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], [], updateRows)\n : table.scenegraph.updateRow([], [], updateRows);\n }\n }\n // table.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, { row });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/record-helper.ts"],"names":[],"mappings":"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","file":"record-helper.js","sourcesContent":["/* eslint-disable max-depth */\nimport type { ListTable } from '../ListTable';\nimport type { CachedDataSource } from '../data';\nimport { computeColWidth } from '../scenegraph/layout/compute-col-width';\nimport { computeRowHeight } from '../scenegraph/layout/compute-row-height';\nimport { isPromise } from '../tools/helper';\nimport { defaultOrderFn } from '../tools/util';\nimport type { SortState } from '../ts-types';\nimport { TABLE_EVENT_TYPE } from './TABLE_EVENT_TYPE';\n\n/**\n * 更改单元格数据 会触发change_cell_value事件\n * @param col\n * @param row\n * @param value 更改后的值\n * @param workOnEditableCell 限制只能更改配置了编辑器的单元格值。快捷键paste这里配置的true,限制只能修改可编辑单元格值\n */\nexport function listTableChangeCellValue(\n col: number,\n row: number,\n value: string | number | null,\n workOnEditableCell: boolean,\n table: ListTable\n) {\n if ((workOnEditableCell && table.isHasEditorDefine(col, row)) || workOnEditableCell === false) {\n const recordIndex = table.getRecordShowIndexByCell(col, row);\n const { field } = table.internalProps.layoutMap.getBody(col, row);\n const beforeChangeValue = table.getCellRawValue(col, row);\n const oldValue = table.getCellOriginValue(col, row);\n if (table.isHeader(col, row)) {\n table.internalProps.layoutMap.updateColumnTitle(col, row, value as string);\n } else {\n table.dataSource.changeFieldValue(value, recordIndex, field, col, row, table);\n }\n const range = table.getCellRange(col, row);\n //改变单元格的值后 聚合值做重新计算\n const aggregators = table.internalProps.layoutMap.getAggregatorsByCell(col, row);\n if (aggregators) {\n if (Array.isArray(aggregators)) {\n for (let i = 0; i < aggregators?.length; i++) {\n aggregators[i].recalculate();\n }\n } else {\n aggregators.recalculate();\n }\n const aggregatorCells = table.internalProps.layoutMap.getAggregatorCellAddress(\n range.start.col,\n range.start.row,\n range.end.col,\n range.end.row\n );\n for (let i = 0; i < aggregatorCells.length; i++) {\n const range = table.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);\n for (let sCol = range.start.col; sCol <= range.end.col; sCol++) {\n for (let sRow = range.start.row; sRow <= range.end.row; sRow++) {\n table.scenegraph.updateCellContent(sCol, sRow);\n }\n }\n }\n }\n\n // const cell_value = table.getCellValue(col, row);\n\n for (let sCol = range.start.col; sCol <= range.end.col; sCol++) {\n for (let sRow = range.start.row; sRow <= range.end.row; sRow++) {\n table.scenegraph.updateCellContent(sCol, sRow);\n }\n }\n if (table.widthMode === 'adaptive' || (table.autoFillWidth && table.getAllColsWidth() <= table.tableNoFrameWidth)) {\n if (table.internalProps._widthResizedColMap.size === 0) {\n //如果没有手动调整过行高列宽 则重新计算一遍并重新分配\n table.scenegraph.recalculateColWidths();\n }\n } else if (!table.internalProps._widthResizedColMap.has(col)) {\n const oldWidth = table.getColWidth(col);\n const newWidth = computeColWidth(col, 0, table.rowCount - 1, table, false);\n if (newWidth !== oldWidth) {\n table.scenegraph.updateColWidth(col, newWidth - oldWidth);\n }\n }\n if (\n table.heightMode === 'adaptive' ||\n (table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight)\n ) {\n if (table.internalProps._heightResizedRowMap.size === 0) {\n table.scenegraph.recalculateRowHeights();\n }\n } else if (table.isAutoRowHeight(row) && !table.internalProps._heightResizedRowMap.has(row)) {\n const oldHeight = table.getRowHeight(row);\n const newHeight = computeRowHeight(row, 0, table.colCount - 1, table);\n table.scenegraph.updateRowHeight(row, newHeight - oldHeight);\n }\n const changedValue = table.getCellOriginValue(col, row);\n if (oldValue !== changedValue) {\n table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {\n col,\n row,\n rawValue: beforeChangeValue,\n currentValue: oldValue,\n changedValue\n });\n }\n table.scenegraph.updateNextFrame();\n }\n}\n/**\n * 批量更新多个单元格的数据\n * @param col 粘贴数据的起始列号\n * @param row 粘贴数据的起始行号\n * @param values 多个单元格的数据数组\n * @param workOnEditableCell 是否仅更改可编辑单元格\n */\nexport function listTableChangeCellValues(\n startCol: number,\n startRow: number,\n values: (string | number)[][],\n workOnEditableCell: boolean,\n table: ListTable\n) {\n let pasteColEnd = startCol;\n let pasteRowEnd = startRow;\n // const rowCount = values.length;\n //#region 提前组织好未更改前的数据\n const beforeChangeValues: (string | number)[][] = [];\n const oldValues: (string | number)[][] = [];\n let cellUpdateType: 'normal' | 'sort' | 'group';\n\n for (let i = 0; i < values.length; i++) {\n if (startRow + i > table.rowCount - 1) {\n break;\n }\n const rowValues = values[i];\n const rawRowValues: (string | number)[] = [];\n const oldRowValues: (string | number)[] = [];\n beforeChangeValues.push(rawRowValues);\n oldValues.push(oldRowValues);\n for (let j = 0; j < rowValues.length; j++) {\n if (startCol + j > table.colCount - 1) {\n break;\n }\n cellUpdateType = getCellUpdateType(startCol + j, startRow + i, table, cellUpdateType);\n const beforeChangeValue = table.getCellRawValue(startCol + j, startRow + i);\n rawRowValues.push(beforeChangeValue);\n const oldValue = table.getCellOriginValue(startCol + j, startRow + i);\n oldRowValues.push(oldValue);\n }\n }\n //#endregion\n for (let i = 0; i < values.length; i++) {\n if (startRow + i > table.rowCount - 1) {\n break;\n }\n pasteRowEnd = startRow + i;\n const rowValues = values[i];\n let thisRowPasteColEnd = startCol;\n for (let j = 0; j < rowValues.length; j++) {\n if (startCol + j > table.colCount - 1) {\n break;\n }\n thisRowPasteColEnd = startCol + j;\n let isCanChange = false;\n if (workOnEditableCell === false) {\n isCanChange = true;\n } else {\n if (table.isHasEditorDefine(startCol + j, startRow + i)) {\n const editor = table.getEditor(startCol + j, startRow + i);\n const oldValue = oldValues[i][j];\n const value = rowValues[j];\n const maybePromiseOrValue = editor?.validateValue?.(value, oldValue) ?? true;\n if (isPromise(maybePromiseOrValue)) {\n //TODO 处理promise的情况\n isCanChange = true;\n } else {\n isCanChange =\n maybePromiseOrValue === true ||\n maybePromiseOrValue === 'validate-exit' ||\n maybePromiseOrValue === 'invalidate-exit';\n }\n }\n }\n // if ((workOnEditableCell && table.isHasEditorDefine(startCol + j, startRow + i)) || workOnEditableCell === false) {\n if (isCanChange) {\n const value = rowValues[j];\n const recordIndex = table.getRecordShowIndexByCell(startCol + j, startRow + i);\n const { field } = table.internalProps.layoutMap.getBody(startCol + j, startRow + i);\n // const beforeChangeValue = table.getCellRawValue(startCol + j, startRow + i);\n // const oldValue = table.getCellOriginValue(startCol + j, startRow + i);\n const beforeChangeValue = beforeChangeValues[i][j];\n const oldValue = oldValues[i][j];\n if (table.isHeader(startCol + j, startRow + i)) {\n table.internalProps.layoutMap.updateColumnTitle(startCol + j, startRow + i, value as string);\n } else {\n table.dataSource.changeFieldValue(value, recordIndex, field, startCol + j, startRow + i, table);\n }\n const changedValue = table.getCellOriginValue(startCol + j, startRow + i);\n if (oldValue !== changedValue) {\n table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {\n col: startCol + j,\n row: startRow + i,\n rawValue: beforeChangeValue,\n currentValue: oldValue,\n changedValue\n });\n }\n }\n }\n pasteColEnd = Math.max(pasteColEnd, thisRowPasteColEnd);\n }\n\n // const cell_value = table.getCellValue(col, row);\n const startRange = table.getCellRange(startCol, startRow);\n const range = table.getCellRange(pasteColEnd, pasteRowEnd);\n\n //改变单元格的值后 聚合值做重新计算\n const aggregators = table.internalProps.layoutMap.getAggregatorsByCellRange(\n startRange.start.col,\n startRange.start.row,\n range.end.col,\n range.end.row\n );\n\n if (aggregators) {\n for (let i = 0; i < aggregators?.length; i++) {\n aggregators[i].recalculate();\n }\n\n if (cellUpdateType === 'normal') {\n const aggregatorCells = table.internalProps.layoutMap.getAggregatorCellAddress(\n startRange.start.col,\n startRange.start.row,\n range.end.col,\n range.end.row\n );\n for (let i = 0; i < aggregatorCells.length; i++) {\n const range = table.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);\n for (let sCol = range.start.col; sCol <= range.end.col; sCol++) {\n for (let sRow = range.start.row; sRow <= range.end.row; sRow++) {\n table.scenegraph.updateCellContent(sCol, sRow);\n }\n }\n }\n }\n }\n\n if (cellUpdateType === 'group') {\n (table.dataSource as CachedDataSource).updateRecordsForGroup([], []);\n }\n\n if (cellUpdateType === 'sort' || cellUpdateType === 'group') {\n (table.dataSource as any).sortedIndexMap.clear();\n sortRecords(table);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n return;\n }\n\n for (let sCol = startRange.start.col; sCol <= range.end.col; sCol++) {\n for (let sRow = startRange.start.row; sRow <= range.end.row; sRow++) {\n table.scenegraph.updateCellContent(sCol, sRow);\n }\n }\n if (table.widthMode === 'adaptive' || (table.autoFillWidth && table.getAllColsWidth() <= table.tableNoFrameWidth)) {\n if (table.internalProps._widthResizedColMap.size === 0) {\n //如果没有手动调整过行高列宽 则重新计算一遍并重新分配\n table.scenegraph.recalculateColWidths();\n }\n } else {\n for (let sCol = startCol; sCol <= range.end.col; sCol++) {\n if (!table.internalProps._widthResizedColMap.has(sCol)) {\n const oldWidth = table.getColWidth(sCol);\n const newWidth = computeColWidth(sCol, 0, table.rowCount - 1, table, false);\n if (newWidth !== oldWidth) {\n table.scenegraph.updateColWidth(sCol, newWidth - oldWidth);\n }\n }\n }\n }\n if (\n table.heightMode === 'adaptive' ||\n (table.autoFillHeight && table.getAllRowsHeight() <= table.tableNoFrameHeight)\n ) {\n table.scenegraph.recalculateRowHeights();\n } else if (table.isAutoRowHeight(startRow)) {\n const rows: number[] = [];\n const deltaYs: number[] = [];\n for (let sRow = startRow; sRow <= range.end.row; sRow++) {\n if (table.rowHeightsMap.get(sRow)) {\n // 已经计算过行高的才走更新逻辑\n const oldHeight = table.getRowHeight(sRow);\n const newHeight = computeRowHeight(sRow, 0, table.colCount - 1, table);\n rows.push(sRow);\n deltaYs.push(newHeight - oldHeight);\n }\n }\n table.scenegraph.updateRowsHeight(rows, deltaYs);\n }\n\n table.scenegraph.updateNextFrame();\n}\n\ntype CellUpdateType = 'normal' | 'sort' | 'group';\nfunction getCellUpdateType(\n col: number,\n row: number,\n table: ListTable,\n oldCellUpdateType: CellUpdateType | undefined\n): CellUpdateType {\n if (oldCellUpdateType === 'group') {\n return oldCellUpdateType;\n }\n if (oldCellUpdateType === 'sort' && !table.options.groupBy) {\n return oldCellUpdateType;\n }\n let cellUpdateType: CellUpdateType = 'normal';\n if (table.options.groupBy) {\n cellUpdateType = 'group';\n } else if (!table.isHeader(col, row) && (table.dataSource as any).lastOrderField) {\n const field = table.getBodyField(col, row);\n if (field === (table.dataSource as any).lastOrderField) {\n cellUpdateType = 'sort';\n }\n }\n return cellUpdateType;\n}\n\nexport function sortRecords(table: ListTable) {\n let sortState = table.sortState;\n sortState = !sortState || Array.isArray(sortState) ? sortState : [sortState];\n\n if (sortState) {\n sortState = (sortState as SortState[]).map(item => {\n item.orderFn = table._getSortFuncFromHeaderOption(undefined, item.field) ?? defaultOrderFn;\n //const hd = table.internalProps.layoutMap.headerObjects.find((col: any) => col && col.field === item.field);\n return item;\n });\n\n table.dataSource.sort(sortState);\n }\n}\n\n/**\n * 添加数据 单条数据\n * @param record 数据\n * @param recordIndex 向数据源中要插入的位置,从0开始。不设置recordIndex的话 默认追加到最后。\n * 如果设置了排序规则recordIndex无效,会自动适应排序逻辑确定插入顺序。\n * recordIndex 可以通过接口getRecordShowIndexByCell获取\n */\nexport function listTableAddRecord(record: any, recordIndex: number | number[], table: ListTable) {\n if (table.options.groupBy) {\n (table.dataSource as CachedDataSource).addRecordsForGroup?.([record], recordIndex);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if ((table.dataSource as CachedDataSource).rowHierarchyType === 'tree') {\n (table.dataSource as CachedDataSource).addRecordsForTree?.([record], recordIndex);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if (table.sortState) {\n table.dataSource.addRecordForSorted(record);\n sortRecords(table);\n table.refreshRowColCount();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n recordIndex = recordIndex as number;\n if (recordIndex === undefined || recordIndex > table.dataSource.sourceLength) {\n recordIndex = table.dataSource.sourceLength;\n }\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n table.dataSource.addRecord(record, recordIndex);\n const oldRowCount = table.rowCount;\n table.refreshRowColCount();\n if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n return;\n }\n const newRowCount = table.transpose ? table.colCount : table.rowCount;\n if (table.pagination) {\n const { perPageCount, currentPage } = table.pagination;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n if (recordIndex < endIndex) {\n //插入当前页或者前面的数据才需要更新 如果是插入的是当前页后面的数据不需要更新场景树\n if (recordIndex < endIndex - perPageCount) {\n // 如果是当页之前的数据 则整个场景树都更新\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n //如果是插入当前页数据\n const rowNum = recordIndex - (endIndex - perPageCount) + headerCount;\n if (oldRowCount - headerCount === table.pagination.perPageCount) {\n //如果当页数据是满的 则更新插入的部分行\n const updateRows = [];\n for (let row = rowNum; row < newRowCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], [], updateRows)\n : table.scenegraph.updateRow([], [], updateRows);\n } else {\n //如果当页数据不是满的 则插入新数据\n const addRows = [];\n for (let row = rowNum; row < Math.min(newRowCount, rowNum + 1); row++) {\n if (table.transpose) {\n addRows.push({ col: row, row: 0 });\n } else {\n addRows.push({ col: 0, row });\n }\n }\n table.transpose ? table.scenegraph.updateCol([], addRows, []) : table.scenegraph.updateRow([], addRows, []);\n }\n }\n }\n } else {\n const addRows = [];\n for (let row = recordIndex + headerCount; row < recordIndex + headerCount + 1; row++) {\n if (table.transpose) {\n addRows.push({ col: row, row: 0 });\n } else {\n addRows.push({ col: 0, row });\n }\n }\n const updateRows = [];\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n for (\n let row = (table.transpose ? table.colCount : table.rowCount) - bottomAggregationCount;\n row < (table.transpose ? table.colCount : table.rowCount);\n row++\n ) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose ? table.scenegraph.updateCol([], addRows, []) : table.scenegraph.updateRow([], addRows, []);\n }\n }\n // table.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, { row });\n}\n\n/**\n * 添加数据 支持多条数据\n * @param records 多条数据\n * @param recordIndex 向数据源中要插入的位置,从0开始。不设置recordIndex的话 默认追加到最后。\n * 如果设置了排序规则recordIndex无效,会自动适应排序逻辑确定插入顺序。\n * recordIndex 可以通过接口getRecordShowIndexByCell获取\n */\nexport function listTableAddRecords(records: any[], recordIndex: number | number[], table: ListTable) {\n if (table.options.groupBy) {\n (table.dataSource as CachedDataSource).addRecordsForGroup?.(records, recordIndex);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if ((table.dataSource as CachedDataSource).rowHierarchyType === 'tree') {\n (table.dataSource as CachedDataSource).addRecordsForTree?.(records, recordIndex);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if (table.sortState) {\n table.dataSource.addRecordsForSorted(records);\n sortRecords(table);\n table.refreshRowColCount();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n recordIndex = recordIndex as number;\n if (recordIndex === undefined || recordIndex > table.dataSource.sourceLength) {\n recordIndex = table.dataSource.sourceLength;\n } else if (recordIndex < 0) {\n recordIndex = 0;\n }\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n table.dataSource.addRecords(records, recordIndex);\n const oldRowCount = table.transpose ? table.colCount : table.rowCount;\n table.refreshRowColCount();\n if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n return;\n }\n const newRowCount = table.transpose ? table.colCount : table.rowCount;\n if (table.pagination) {\n const { perPageCount, currentPage } = table.pagination;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n if (recordIndex < endIndex) {\n //插入当前页或者前面的数据才需要更新 如果是插入的是当前页后面的数据不需要更新场景树\n if (recordIndex < endIndex - perPageCount) {\n // 如果是当页之前的数据 则整个场景树都更新\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n //如果是插入当前页数据\n\n const rowNum = recordIndex - (endIndex - perPageCount) + headerCount;\n if (oldRowCount - headerCount === table.pagination.perPageCount) {\n //如果当页数据是满的 则更新插入的部分行\n const updateRows = [];\n for (let row = rowNum; row < newRowCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], [], updateRows)\n : table.scenegraph.updateRow([], [], updateRows);\n } else {\n //如果当页数据不是满的 则插入新数据\n const addRows = [];\n for (\n let row = rowNum;\n row < Math.min(newRowCount, rowNum + (Array.isArray(records) ? records.length : 1));\n row++\n ) {\n if (table.transpose) {\n addRows.push({ col: row, row: 0 });\n } else {\n addRows.push({ col: 0, row });\n }\n }\n table.transpose ? table.scenegraph.updateCol([], addRows, []) : table.scenegraph.updateRow([], addRows, []);\n }\n }\n }\n } else {\n const addRows = [];\n for (\n let row = recordIndex + headerCount;\n row < recordIndex + headerCount + (Array.isArray(records) ? records.length : 1);\n row++\n ) {\n if (table.transpose) {\n addRows.push({ col: row, row: 0 });\n } else {\n addRows.push({ col: 0, row });\n }\n }\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;\n const updateRows = [];\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n for (\n let row = (table.transpose ? table.colCount : table.rowCount) - bottomAggregationCount;\n row < (table.transpose ? table.colCount : table.rowCount);\n row++\n ) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], addRows, updateRows)\n : table.scenegraph.updateRow([], addRows, updateRows);\n }\n }\n // table.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, { row });\n}\n\n/**\n * 删除数据 支持多条数据\n * @param recordIndexs 要删除数据的索引(显示在body中的索引,即要修改的是body部分的第几行数据)\n */\nexport function listTableDeleteRecords(recordIndexs: number[] | number[][], table: ListTable) {\n if (recordIndexs?.length > 0) {\n if (table.options.groupBy) {\n (table.dataSource as CachedDataSource).deleteRecordsForGroup?.(recordIndexs);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if ((table.dataSource as CachedDataSource).rowHierarchyType === 'tree') {\n (table.dataSource as CachedDataSource).deleteRecordsForTree?.(recordIndexs);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if (table.sortState) {\n table.dataSource.deleteRecordsForSorted(recordIndexs as number[]);\n sortRecords(table);\n table.refreshRowColCount();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n const deletedRecordIndexs = table.dataSource.deleteRecords(recordIndexs as number[]);\n if (deletedRecordIndexs.length === 0) {\n return;\n }\n const oldRowCount = table.transpose ? table.colCount : table.rowCount;\n table.refreshRowColCount();\n const newRowCount = table.transpose ? table.colCount : table.rowCount;\n const recordIndexsMinToMax = deletedRecordIndexs.sort((a, b) => a - b);\n const minRecordIndex = recordIndexsMinToMax[0];\n if (table.pagination) {\n const { perPageCount, currentPage } = table.pagination;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n if (minRecordIndex < endIndex) {\n //删除当前页或者前面的数据才需要更新 如果是删除的是当前页后面的数据不需要更新场景树\n if (minRecordIndex < endIndex - perPageCount) {\n // 如果删除包含当页之前的数据 则整个场景树都更新\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n //如果是仅删除当前页数据\n const minRowNum =\n minRecordIndex -\n (endIndex - perPageCount) +\n (table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount) +\n topAggregationCount;\n //如果当页数据是满的 则更新影响的部分行\n const updateRows = [];\n const delRows = [];\n\n for (let row = minRowNum; row < newRowCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n\n if (newRowCount < oldRowCount) {\n //如果如果删除后不满 需要有删除数据\n for (let row = newRowCount; row < oldRowCount; row++) {\n if (table.transpose) {\n delRows.push({ col: row, row: 0 });\n } else {\n delRows.push({ col: 0, row });\n }\n }\n }\n table.reactCustomLayout?.clearCache();\n table.transpose\n ? table.scenegraph.updateCol(delRows, [], updateRows)\n : table.scenegraph.updateRow(delRows, [], updateRows);\n table.reactCustomLayout?.updateAllCustomCell();\n }\n }\n } else {\n const delRows = [];\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;\n for (let index = 0; index < recordIndexsMinToMax.length; index++) {\n const recordIndex = recordIndexsMinToMax[index];\n const rowNum = recordIndex + headerCount + topAggregationCount;\n if (table.transpose) {\n delRows.push({ col: rowNum, row: 0 });\n } else {\n delRows.push({ col: 0, row: rowNum });\n }\n }\n const updateRows = [];\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n for (\n let row = (table.transpose ? table.colCount : table.rowCount) - bottomAggregationCount;\n row < (table.transpose ? table.colCount : table.rowCount);\n row++\n ) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n\n table.reactCustomLayout?.clearCache();\n table.transpose\n ? table.scenegraph.updateCol(delRows, [], updateRows)\n : table.scenegraph.updateRow(delRows, [], updateRows);\n table.reactCustomLayout?.updateAllCustomCell();\n }\n }\n // table.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, { row });\n }\n}\n\n/**\n * 修改数据 支持多条数据\n * @param records 修改数据条目\n * @param recordIndexs 对应修改数据的索引(显示在body中的索引,即要修改的是body部分的第几行数据)\n */\nexport function listTableUpdateRecords(records: any[], recordIndexs: (number | number[])[], table: ListTable) {\n if (recordIndexs?.length > 0) {\n if (table.options.groupBy) {\n (table.dataSource as CachedDataSource).updateRecordsForGroup?.(records, recordIndexs as number[]);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if ((table.dataSource as CachedDataSource).rowHierarchyType === 'tree') {\n (table.dataSource as CachedDataSource).updateRecordsForTree?.(records, recordIndexs as number[]);\n table.refreshRowColCount();\n table.internalProps.layoutMap.clearCellRangeMap();\n table.sortState && sortRecords(table);\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else if (table.sortState) {\n table.dataSource.updateRecordsForSorted(records, recordIndexs as number[]);\n sortRecords(table);\n table.refreshRowColCount();\n // 更新整个场景树\n table.scenegraph.clearCells();\n table.scenegraph.createSceneGraph();\n } else {\n const updateRecordIndexs = table.dataSource.updateRecords(records, recordIndexs);\n if (updateRecordIndexs.length === 0) {\n return;\n }\n const bodyRowIndex = updateRecordIndexs.map(index => table.getBodyRowIndexByRecordIndex(index));\n const recordIndexsMinToMax = bodyRowIndex.sort((a, b) => a - b);\n if (table.pagination) {\n const { perPageCount, currentPage } = table.pagination;\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const startIndex = perPageCount * (currentPage || 0);\n const endIndex = startIndex + perPageCount;\n const updateRows = [];\n for (let index = 0; index < recordIndexsMinToMax.length; index++) {\n const recordIndex = recordIndexsMinToMax[index];\n if (recordIndex < endIndex && recordIndex >= endIndex - perPageCount) {\n const rowNum =\n recordIndex -\n (endIndex - perPageCount) +\n (table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount) +\n topAggregationCount;\n updateRows.push(rowNum);\n }\n }\n if (updateRows.length >= 1) {\n const updateRowCells = [];\n for (let index = 0; index < updateRows.length; index++) {\n const updateRow = updateRows[index];\n if (table.transpose) {\n updateRowCells.push({ col: updateRow, row: 0 });\n } else {\n updateRowCells.push({ col: 0, row: updateRow });\n }\n }\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRowCells.push({ col: row, row: 0 });\n } else {\n updateRowCells.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], [], updateRowCells)\n : table.scenegraph.updateRow([], [], updateRowCells);\n }\n } else {\n const updateRows = [];\n const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;\n const topAggregationCount = table.internalProps.layoutMap.hasAggregationOnTopCount;\n const bottomAggregationCount = table.internalProps.layoutMap.hasAggregationOnBottomCount;\n for (let index = 0; index < recordIndexsMinToMax.length; index++) {\n const recordIndex = recordIndexsMinToMax[index];\n const rowNum = recordIndex + headerCount + topAggregationCount;\n if (table.transpose) {\n updateRows.push({ col: rowNum, row: 0 });\n } else {\n updateRows.push({ col: 0, row: rowNum });\n }\n }\n for (let row = headerCount; row < headerCount + topAggregationCount; row++) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n for (\n let row = (table.transpose ? table.colCount : table.rowCount) - bottomAggregationCount;\n row < (table.transpose ? table.colCount : table.rowCount);\n row++\n ) {\n if (table.transpose) {\n updateRows.push({ col: row, row: 0 });\n } else {\n updateRows.push({ col: 0, row });\n }\n }\n table.transpose\n ? table.scenegraph.updateCol([], [], updateRows)\n : table.scenegraph.updateRow([], [], updateRows);\n }\n }\n // table.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, { row });\n }\n}\n"]}
@@ -196,7 +196,7 @@ function getStyleTheme(headerStyle, table, col, row, getProp, needGetTheme = !0)
196
196
 
197
197
  function getCellCornerRadius(col, row, table) {
198
198
  const tableCornerRadius = table.theme.frameStyle.cornerRadius;
199
- if (Array.isArray(tableCornerRadius)) {
199
+ if (table.theme.cellInnerBorder) if (Array.isArray(tableCornerRadius)) {
200
200
  if (0 === col && 0 === row) return [ tableCornerRadius[0], 0, 0, 0 ];
201
201
  if (col === table.colCount - 1 && 0 === row) return [ 0, tableCornerRadius[1], 0, 0 ];
202
202
  if (0 === col && row === table.rowCount - 1) return [ 0, 0, 0, tableCornerRadius[3] ];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/tableHelper.ts"],"names":[],"mappings":"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","file":"tableHelper.js","sourcesContent":["import type { IThemeSpec } from './../vrender';\nimport type { BaseTable } from '../core';\nimport { CachedDataSource, DataSource } from '../data';\nimport { parseFont } from '../scenegraph/utils/font';\nimport { getQuadProps } from '../scenegraph/utils/padding';\nimport { Rect } from '../tools/Rect';\nimport * as calc from '../tools/calc';\nimport type {\n Aggregation,\n ColumnsDefine,\n CustomAggregation,\n FullExtendStyle,\n ListTableAPI,\n ListTableConstructorOptions,\n SortState\n} from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { defaultOrderFn } from '../tools/util';\nimport type { ListTable } from '../ListTable';\nimport { isValid } from '@visactor/vutils';\n\nexport function createRootElement(padding: any, className: string = 'vtable'): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('tabindex', '0');\n element.classList.add(className);\n element.style.outline = 'none';\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n\n return element;\n}\nexport function updateRootElementPadding(element: HTMLElement, padding: any): void {\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n}\nexport function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void {\n const { dataSourceEventIds } = table.internalProps;\n\n if (dataSourceEventIds) {\n dataSourceEventIds.forEach((id: any) => table.internalProps.handler.off(id));\n }\n\n fn(table);\n\n table.internalProps.dataSourceEventIds = [\n table.internalProps.handler.on(table.internalProps.dataSource, DataSource.EVENT_TYPE.CHANGE_ORDER, () => {\n if (table.dataSource.hierarchyExpandLevel) {\n table.refreshRowColCount();\n }\n table.render();\n })\n ];\n}\n/** @private */\nexport function _setRecords(table: ListTableAPI, records: any[] = []): void {\n _dealWithUpdateDataSource(table, () => {\n table.internalProps.records = records;\n const newDataSource = (table.internalProps.dataSource = CachedDataSource.ofArray(\n records,\n table.internalProps.dataConfig,\n table.pagination,\n table.internalProps.columns,\n table.internalProps.layoutMap.rowHierarchyType,\n getHierarchyExpandLevel(table)\n ));\n table.addReleaseObj(newDataSource);\n });\n}\n\nfunction getHierarchyExpandLevel(table: ListTableAPI) {\n if ((table.options as ListTableConstructorOptions).hierarchyExpandLevel) {\n return (table.options as ListTableConstructorOptions).hierarchyExpandLevel;\n } else if (table.options.groupBy) {\n return Infinity;\n }\n return table._hasHierarchyTreeHeader?.() ? 1 : undefined;\n}\n\nexport function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void {\n _dealWithUpdateDataSource(table, () => {\n table.internalProps.dataSource && table.internalProps.dataSource.release?.();\n if (dataSource) {\n if (dataSource instanceof DataSource) {\n table.internalProps.dataSource = dataSource;\n table.internalProps.dataSource.supplementConfig(\n table.pagination,\n (table.options as ListTableConstructorOptions).columns,\n table.internalProps.layoutMap.rowHierarchyType,\n getHierarchyExpandLevel(table as ListTableAPI)\n );\n } else {\n table.internalProps.dataSource = new CachedDataSource(dataSource);\n }\n } else {\n table.internalProps.dataSource = DataSource.EMPTY;\n }\n table.addReleaseObj(table.internalProps.dataSource);\n table.internalProps.records = null;\n });\n}\nexport function _getTargetFrozenRowAt(\n table: BaseTableAPI,\n absoluteY: number\n): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n} | null {\n if (!table.internalProps.frozenRowCount) {\n return null;\n }\n let { scrollTop } = table;\n const rowCount = table.internalProps.frozenRowCount;\n for (let row = 0; row < rowCount; row++) {\n const height = table.getRowHeight(row);\n const bottom = scrollTop + height;\n if (bottom > absoluteY) {\n return {\n top: scrollTop,\n row,\n bottom,\n height\n };\n }\n scrollTop = bottom;\n }\n return null;\n}\n\nexport function _getTargetFrozenColAt(\n table: BaseTableAPI,\n absoluteX: number\n): {\n left: number;\n col: number;\n right: number;\n width: number;\n} | null {\n if (!table.internalProps.frozenColCount) {\n return null;\n }\n let { scrollLeft } = table;\n const colCount = table.internalProps.frozenColCount;\n for (let col = 0; col < colCount; col++) {\n const width = table.getColWidth(col);\n const right = scrollLeft + width;\n if (right > absoluteX) {\n return {\n left: scrollLeft,\n col,\n right,\n width\n };\n }\n scrollLeft = right;\n }\n return null;\n}\n\nexport function _toPxWidth(table: BaseTable, width: string | number): number {\n return Math.round(calc.toPx(width, table.internalProps.calcWidthContext));\n}\n\nexport function _applyColWidthLimits(limits: { min?: number; max?: number } | void | null, orgWidth: number): number {\n if (!limits) {\n return orgWidth;\n }\n\n if (limits.min) {\n if (limits.min > orgWidth) {\n return limits.min;\n }\n }\n if (limits.max) {\n if (limits.max < orgWidth) {\n return limits.max;\n }\n }\n return orgWidth;\n}\n/**\n * 检查设置的width是否为'auto'\n * @param {string|number} width width definition\n * @returns {boolean}\n */\nexport function isAutoDefine(width: string | number): width is 'auto' {\n return Boolean(width && typeof width === 'string' && width.toLowerCase() === 'auto');\n}\n\nexport function _getScrollableVisibleRect(table: BaseTableAPI): Rect {\n let frozenColsWidth = 0;\n let rightFrozenColsWidth = 0;\n if (table.frozenColCount > 0) {\n //有固定列时绘制固定列\n frozenColsWidth = table.getFrozenColsWidth();\n }\n if (table.rightFrozenColCount > 0) {\n //有固定列时绘制固定列\n rightFrozenColsWidth = table.getRightFrozenColsWidth();\n }\n let frozenRowsHeight = 0;\n let bottomFrozenRowsHeight = 0;\n if (table.frozenRowCount > 0) {\n //有固定列时绘制固定列\n frozenRowsHeight = table.getFrozenRowsHeight();\n }\n if (table.bottomFrozenRowCount > 0) {\n //有固定列时绘制固定列\n bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n }\n return new Rect(\n table.scrollLeft + frozenColsWidth,\n table.scrollTop + frozenRowsHeight,\n table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth,\n table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight\n );\n}\n/**\n * @description: 从style对象里获取theme所需要的属性\n * @param {FullExtendStyle} headerStyle\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @param {any} getProp\n * @return {*}\n */\nexport function getStyleTheme(\n headerStyle: FullExtendStyle,\n table: BaseTableAPI,\n col: number,\n row: number,\n getProp: any,\n needGetTheme = true\n) {\n // 属性参考IStyleOption\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const bgColor = getProp('bgColor', headerStyle, col, row, table);\n\n const font = getProp('font', headerStyle, col, row, table);\n let fontFamily;\n let fontSize;\n let fontWeight;\n let fontStyle;\n let fontVariant;\n if (font) {\n // 后期会弃用直接设置font,而使用fontFamily fontSize fontWeight 等属性\n const { family, size, weight, style, variant } = parseFont(font);\n fontFamily = family.join(' ');\n fontSize = size;\n fontWeight = weight;\n fontStyle = style;\n fontStyle = variant;\n } else {\n fontFamily = getProp('fontFamily', headerStyle, col, row, table);\n fontSize = getProp('fontSize', headerStyle, col, row, table);\n fontWeight = getProp('fontWeight', headerStyle, col, row, table);\n fontStyle = getProp('fontStyle', headerStyle, col, row, table);\n fontVariant = getProp('fontVariant', headerStyle, col, row, table);\n }\n\n // const fontSize = getFontSize(font);\n // const fontWeight = getFontWeight(font);\n\n const textAlign = getProp('textAlign', headerStyle, col, row, table);\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table);\n const color = getProp('color', headerStyle, col, row, table);\n const strokeColor = getProp('strokeColor', headerStyle, col, row, table);\n\n const lineHeight = getProp('lineHeight', headerStyle, col, row, table);\n const underline = getProp('underline', headerStyle, col, row, table); // boolean\n // const underlineColor = getProp('underlineColor', headerStyle, col, row, table);\n const underlineDash = getProp('underlineDash', headerStyle, col, row, table);\n const underlineOffset = getProp('underlineOffset', headerStyle, col, row, table);\n const lineThrough = getProp('lineThrough', headerStyle, col, row, table); // boolean\n // const lineThroughColor = getProp('lineThroughColor', headerStyle, col, row, table);\n // const lineThroughDash = getProp('lineThroughDash', headerStyle, col, row, table);\n const textDecorationWidth = Math.max(1, Math.floor(fontSize / 10));\n\n const textOverflow = getProp('textOverflow', headerStyle, col, row, table); // 'clip' | 'ellipsis' | string\n const borderColor = getProp('borderColor', headerStyle, col, row, table); // string | string[]\n const borderLineWidth = getProp('borderLineWidth', headerStyle, col, row, table); // number | number[]\n const borderLineDash = getProp('borderLineDash', headerStyle, col, row, table); // number[] | (number[] | null)[]\n\n const marked = getProp('marked', headerStyle, col, row, table); // boolean\n const cursor = getProp('cursor', headerStyle, col, row, table); // boolean\n\n const hasFunctionPros =\n !padding ||\n !bgColor ||\n !font ||\n !textAlign ||\n !textBaseline ||\n !color ||\n !textOverflow ||\n !borderColor ||\n !borderLineWidth ||\n !borderLineDash ||\n typeof underline !== 'boolean' ||\n typeof lineThrough !== 'boolean' ||\n typeof marked !== 'boolean';\n if (!needGetTheme) {\n return { hasFunctionPros };\n }\n const theme: IThemeSpec & { _vtable: any } = {\n text: {\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n fontVariant,\n fill: color,\n stroke: strokeColor ?? false,\n textAlign,\n textBaseline,\n lineHeight: lineHeight ?? fontSize,\n underline: underline ? textDecorationWidth : undefined,\n underlineDash,\n underlineOffset,\n lineThrough: lineThrough ? textDecorationWidth : undefined,\n ellipsis:\n textOverflow === 'clip'\n ? ''\n : textOverflow === 'ellipsis'\n ? '...'\n : isValid(textOverflow)\n ? textOverflow\n : undefined\n },\n group: {\n fill: bgColor,\n lineDash: borderLineDash,\n lineWidth: borderLineWidth,\n stroke: borderColor,\n cursor: cursor === 'auto' || cursor === 'default' ? undefined : cursor\n // cornerRadius: getCellCornerRadius(col, row, table)\n },\n _vtable: {\n padding,\n marked\n }\n };\n\n if (Array.isArray(borderLineWidth)) {\n (theme.group as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n }\n if (Array.isArray(borderColor)) {\n const strokeColors = getQuadProps(borderColor);\n (theme.group as any).stroke = strokeColors.every(color => !color) ? false : strokeColors; // deal width strokeColor: [null, null, null, null]\n (theme.group as any).strokeArrayColor = getQuadProps(borderColor);\n }\n\n return {\n theme,\n hasFunctionPros\n };\n}\n\nexport function getCellCornerRadius(col: number, row: number, table: BaseTableAPI) {\n const tableCornerRadius = table.theme.frameStyle.cornerRadius;\n if (Array.isArray(tableCornerRadius)) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius[0], 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius[1], 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius[3]];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius[2], 0];\n }\n } else if (tableCornerRadius) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius, 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius, 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius, 0];\n }\n }\n return 0;\n}\n\nexport function parseMarkLineGetExtendRange(markLine: any): number | 'sum' | 'max' {\n if (markLine) {\n if (Array.isArray(markLine)) {\n let extendRange: number | 'sum' | 'max';\n for (let i = 0; i < markLine.length; i++) {\n if (markLine[i].autoRange) {\n if (\n markLine[i].y === 'sum' ||\n markLine[i].x === 'sum' ||\n markLine[i].y1 === 'sum' ||\n markLine[i].x1 === 'sum'\n ) {\n return 'sum';\n }\n if (\n markLine[i].y === 'max' ||\n markLine[i].x === 'max' ||\n markLine[i].y1 === 'max' ||\n markLine[i].x1 === 'max'\n ) {\n extendRange = 'max';\n }\n if (typeof markLine[i].y === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].y);\n }\n if (typeof markLine[i].x === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].x);\n }\n if (typeof markLine[i].y1 === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].y1);\n }\n if (typeof markLine[i].x1 === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].x1);\n }\n }\n }\n return extendRange;\n } else if (markLine.autoRange) {\n if (markLine.y === 'sum' || markLine.x === 'sum' || markLine.y1 === 'sum' || markLine.x1 === 'sum') {\n return 'sum';\n }\n if (markLine.y === 'max' || markLine.x === 'max' || markLine.y1 === 'max' || markLine.x1 === 'max') {\n return 'max';\n }\n if (typeof markLine.y === 'number') {\n return markLine.y;\n }\n if (typeof markLine.x === 'number') {\n return markLine.x;\n }\n if (typeof markLine.y1 === 'number') {\n return markLine.y1;\n }\n if (typeof markLine.x1 === 'number') {\n return markLine.x1;\n }\n }\n }\n return undefined;\n}\n\nexport function generateAggregationForColumn(table: ListTable) {\n for (let col = 0; col < table.internalProps.columns.length; col++) {\n const colDef = table.internalProps.columns[col];\n if (colDef.aggregation) {\n } else if (table.options.aggregation) {\n let aggregation;\n if (typeof table.options.aggregation === 'function') {\n aggregation = table.options.aggregation({\n col: col,\n field: colDef.field as string\n });\n } else {\n aggregation = table.options.aggregation;\n }\n\n if (aggregation) {\n if (Array.isArray(aggregation)) {\n const aggregations: (Aggregation | CustomAggregation)[] = [];\n aggregation.forEach(item => {\n aggregations.push(Object.assign({ showOnTop: false }, item));\n });\n colDef.aggregation = aggregations;\n } else {\n colDef.aggregation = Object.assign({ showOnTop: false }, aggregation);\n }\n }\n }\n }\n}\n\nexport function checkHasAggregationOnColumnDefine(colDefs: ColumnsDefine) {\n for (let i = 0; i < colDefs.length; i++) {\n const colDef = colDefs[i];\n if (colDef.aggregation) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 检查是否有列设置了autoWidth\n * @param table\n * @returns\n */\nexport function checkHasColumnAutoWidth(table: BaseTableAPI) {\n if (table.options.widthMode === 'autoWidth') {\n return true;\n }\n if (\n table.options.defaultHeaderColWidth === 'auto' ||\n (Array.isArray(table.options.defaultHeaderColWidth) && table.options.defaultHeaderColWidth.includes('auto'))\n ) {\n return true;\n }\n const columnObjects = table.internalProps.layoutMap.columnObjects;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if (column.width === 'auto') {\n return true;\n }\n }\n\n return false;\n}\n"]}
1
+ {"version":3,"sources":["../src/core/tableHelper.ts"],"names":[],"mappings":"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","file":"tableHelper.js","sourcesContent":["import type { IThemeSpec } from './../vrender';\nimport type { BaseTable } from '../core';\nimport { CachedDataSource, DataSource } from '../data';\nimport { parseFont } from '../scenegraph/utils/font';\nimport { getQuadProps } from '../scenegraph/utils/padding';\nimport { Rect } from '../tools/Rect';\nimport * as calc from '../tools/calc';\nimport type {\n Aggregation,\n ColumnsDefine,\n CustomAggregation,\n FullExtendStyle,\n ListTableAPI,\n ListTableConstructorOptions,\n SortState\n} from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { defaultOrderFn } from '../tools/util';\nimport type { ListTable } from '../ListTable';\nimport { isValid } from '@visactor/vutils';\n\nexport function createRootElement(padding: any, className: string = 'vtable'): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('tabindex', '0');\n element.classList.add(className);\n element.style.outline = 'none';\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n\n return element;\n}\nexport function updateRootElementPadding(element: HTMLElement, padding: any): void {\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n}\nexport function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void {\n const { dataSourceEventIds } = table.internalProps;\n\n if (dataSourceEventIds) {\n dataSourceEventIds.forEach((id: any) => table.internalProps.handler.off(id));\n }\n\n fn(table);\n\n table.internalProps.dataSourceEventIds = [\n table.internalProps.handler.on(table.internalProps.dataSource, DataSource.EVENT_TYPE.CHANGE_ORDER, () => {\n if (table.dataSource.hierarchyExpandLevel) {\n table.refreshRowColCount();\n }\n table.render();\n })\n ];\n}\n/** @private */\nexport function _setRecords(table: ListTableAPI, records: any[] = []): void {\n _dealWithUpdateDataSource(table, () => {\n table.internalProps.records = records;\n const newDataSource = (table.internalProps.dataSource = CachedDataSource.ofArray(\n records,\n table.internalProps.dataConfig,\n table.pagination,\n table.internalProps.columns,\n table.internalProps.layoutMap.rowHierarchyType,\n getHierarchyExpandLevel(table)\n ));\n table.addReleaseObj(newDataSource);\n });\n}\n\nfunction getHierarchyExpandLevel(table: ListTableAPI) {\n if ((table.options as ListTableConstructorOptions).hierarchyExpandLevel) {\n return (table.options as ListTableConstructorOptions).hierarchyExpandLevel;\n } else if (table.options.groupBy) {\n return Infinity;\n }\n return table._hasHierarchyTreeHeader?.() ? 1 : undefined;\n}\n\nexport function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void {\n _dealWithUpdateDataSource(table, () => {\n table.internalProps.dataSource && table.internalProps.dataSource.release?.();\n if (dataSource) {\n if (dataSource instanceof DataSource) {\n table.internalProps.dataSource = dataSource;\n table.internalProps.dataSource.supplementConfig(\n table.pagination,\n (table.options as ListTableConstructorOptions).columns,\n table.internalProps.layoutMap.rowHierarchyType,\n getHierarchyExpandLevel(table as ListTableAPI)\n );\n } else {\n table.internalProps.dataSource = new CachedDataSource(dataSource);\n }\n } else {\n table.internalProps.dataSource = DataSource.EMPTY;\n }\n table.addReleaseObj(table.internalProps.dataSource);\n table.internalProps.records = null;\n });\n}\nexport function _getTargetFrozenRowAt(\n table: BaseTableAPI,\n absoluteY: number\n): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n} | null {\n if (!table.internalProps.frozenRowCount) {\n return null;\n }\n let { scrollTop } = table;\n const rowCount = table.internalProps.frozenRowCount;\n for (let row = 0; row < rowCount; row++) {\n const height = table.getRowHeight(row);\n const bottom = scrollTop + height;\n if (bottom > absoluteY) {\n return {\n top: scrollTop,\n row,\n bottom,\n height\n };\n }\n scrollTop = bottom;\n }\n return null;\n}\n\nexport function _getTargetFrozenColAt(\n table: BaseTableAPI,\n absoluteX: number\n): {\n left: number;\n col: number;\n right: number;\n width: number;\n} | null {\n if (!table.internalProps.frozenColCount) {\n return null;\n }\n let { scrollLeft } = table;\n const colCount = table.internalProps.frozenColCount;\n for (let col = 0; col < colCount; col++) {\n const width = table.getColWidth(col);\n const right = scrollLeft + width;\n if (right > absoluteX) {\n return {\n left: scrollLeft,\n col,\n right,\n width\n };\n }\n scrollLeft = right;\n }\n return null;\n}\n\nexport function _toPxWidth(table: BaseTable, width: string | number): number {\n return Math.round(calc.toPx(width, table.internalProps.calcWidthContext));\n}\n\nexport function _applyColWidthLimits(limits: { min?: number; max?: number } | void | null, orgWidth: number): number {\n if (!limits) {\n return orgWidth;\n }\n\n if (limits.min) {\n if (limits.min > orgWidth) {\n return limits.min;\n }\n }\n if (limits.max) {\n if (limits.max < orgWidth) {\n return limits.max;\n }\n }\n return orgWidth;\n}\n/**\n * 检查设置的width是否为'auto'\n * @param {string|number} width width definition\n * @returns {boolean}\n */\nexport function isAutoDefine(width: string | number): width is 'auto' {\n return Boolean(width && typeof width === 'string' && width.toLowerCase() === 'auto');\n}\n\nexport function _getScrollableVisibleRect(table: BaseTableAPI): Rect {\n let frozenColsWidth = 0;\n let rightFrozenColsWidth = 0;\n if (table.frozenColCount > 0) {\n //有固定列时绘制固定列\n frozenColsWidth = table.getFrozenColsWidth();\n }\n if (table.rightFrozenColCount > 0) {\n //有固定列时绘制固定列\n rightFrozenColsWidth = table.getRightFrozenColsWidth();\n }\n let frozenRowsHeight = 0;\n let bottomFrozenRowsHeight = 0;\n if (table.frozenRowCount > 0) {\n //有固定列时绘制固定列\n frozenRowsHeight = table.getFrozenRowsHeight();\n }\n if (table.bottomFrozenRowCount > 0) {\n //有固定列时绘制固定列\n bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n }\n return new Rect(\n table.scrollLeft + frozenColsWidth,\n table.scrollTop + frozenRowsHeight,\n table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth,\n table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight\n );\n}\n/**\n * @description: 从style对象里获取theme所需要的属性\n * @param {FullExtendStyle} headerStyle\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @param {any} getProp\n * @return {*}\n */\nexport function getStyleTheme(\n headerStyle: FullExtendStyle,\n table: BaseTableAPI,\n col: number,\n row: number,\n getProp: any,\n needGetTheme = true\n) {\n // 属性参考IStyleOption\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const bgColor = getProp('bgColor', headerStyle, col, row, table);\n\n const font = getProp('font', headerStyle, col, row, table);\n let fontFamily;\n let fontSize;\n let fontWeight;\n let fontStyle;\n let fontVariant;\n if (font) {\n // 后期会弃用直接设置font,而使用fontFamily fontSize fontWeight 等属性\n const { family, size, weight, style, variant } = parseFont(font);\n fontFamily = family.join(' ');\n fontSize = size;\n fontWeight = weight;\n fontStyle = style;\n fontStyle = variant;\n } else {\n fontFamily = getProp('fontFamily', headerStyle, col, row, table);\n fontSize = getProp('fontSize', headerStyle, col, row, table);\n fontWeight = getProp('fontWeight', headerStyle, col, row, table);\n fontStyle = getProp('fontStyle', headerStyle, col, row, table);\n fontVariant = getProp('fontVariant', headerStyle, col, row, table);\n }\n\n // const fontSize = getFontSize(font);\n // const fontWeight = getFontWeight(font);\n\n const textAlign = getProp('textAlign', headerStyle, col, row, table);\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table);\n const color = getProp('color', headerStyle, col, row, table);\n const strokeColor = getProp('strokeColor', headerStyle, col, row, table);\n\n const lineHeight = getProp('lineHeight', headerStyle, col, row, table);\n const underline = getProp('underline', headerStyle, col, row, table); // boolean\n // const underlineColor = getProp('underlineColor', headerStyle, col, row, table);\n const underlineDash = getProp('underlineDash', headerStyle, col, row, table);\n const underlineOffset = getProp('underlineOffset', headerStyle, col, row, table);\n const lineThrough = getProp('lineThrough', headerStyle, col, row, table); // boolean\n // const lineThroughColor = getProp('lineThroughColor', headerStyle, col, row, table);\n // const lineThroughDash = getProp('lineThroughDash', headerStyle, col, row, table);\n const textDecorationWidth = Math.max(1, Math.floor(fontSize / 10));\n\n const textOverflow = getProp('textOverflow', headerStyle, col, row, table); // 'clip' | 'ellipsis' | string\n const borderColor = getProp('borderColor', headerStyle, col, row, table); // string | string[]\n const borderLineWidth = getProp('borderLineWidth', headerStyle, col, row, table); // number | number[]\n const borderLineDash = getProp('borderLineDash', headerStyle, col, row, table); // number[] | (number[] | null)[]\n\n const marked = getProp('marked', headerStyle, col, row, table); // boolean\n const cursor = getProp('cursor', headerStyle, col, row, table); // boolean\n\n const hasFunctionPros =\n !padding ||\n !bgColor ||\n !font ||\n !textAlign ||\n !textBaseline ||\n !color ||\n !textOverflow ||\n !borderColor ||\n !borderLineWidth ||\n !borderLineDash ||\n typeof underline !== 'boolean' ||\n typeof lineThrough !== 'boolean' ||\n typeof marked !== 'boolean';\n if (!needGetTheme) {\n return { hasFunctionPros };\n }\n const theme: IThemeSpec & { _vtable: any } = {\n text: {\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n fontVariant,\n fill: color,\n stroke: strokeColor ?? false,\n textAlign,\n textBaseline,\n lineHeight: lineHeight ?? fontSize,\n underline: underline ? textDecorationWidth : undefined,\n underlineDash,\n underlineOffset,\n lineThrough: lineThrough ? textDecorationWidth : undefined,\n ellipsis:\n textOverflow === 'clip'\n ? ''\n : textOverflow === 'ellipsis'\n ? '...'\n : isValid(textOverflow)\n ? textOverflow\n : undefined\n },\n group: {\n fill: bgColor,\n lineDash: borderLineDash,\n lineWidth: borderLineWidth,\n stroke: borderColor,\n cursor: cursor === 'auto' || cursor === 'default' ? undefined : cursor\n // cornerRadius: getCellCornerRadius(col, row, table)\n },\n _vtable: {\n padding,\n marked\n }\n };\n\n if (Array.isArray(borderLineWidth)) {\n (theme.group as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n }\n if (Array.isArray(borderColor)) {\n const strokeColors = getQuadProps(borderColor);\n (theme.group as any).stroke = strokeColors.every(color => !color) ? false : strokeColors; // deal width strokeColor: [null, null, null, null]\n (theme.group as any).strokeArrayColor = getQuadProps(borderColor);\n }\n\n return {\n theme,\n hasFunctionPros\n };\n}\n\nexport function getCellCornerRadius(col: number, row: number, table: BaseTableAPI) {\n const tableCornerRadius = table.theme.frameStyle.cornerRadius;\n if (table.theme.cellInnerBorder) {\n if (Array.isArray(tableCornerRadius)) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius[0], 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius[1], 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius[3]];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius[2], 0];\n }\n } else if (tableCornerRadius) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius, 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius, 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius, 0];\n }\n }\n }\n return 0;\n}\n\nexport function parseMarkLineGetExtendRange(markLine: any): number | 'sum' | 'max' {\n if (markLine) {\n if (Array.isArray(markLine)) {\n let extendRange: number | 'sum' | 'max';\n for (let i = 0; i < markLine.length; i++) {\n if (markLine[i].autoRange) {\n if (\n markLine[i].y === 'sum' ||\n markLine[i].x === 'sum' ||\n markLine[i].y1 === 'sum' ||\n markLine[i].x1 === 'sum'\n ) {\n return 'sum';\n }\n if (\n markLine[i].y === 'max' ||\n markLine[i].x === 'max' ||\n markLine[i].y1 === 'max' ||\n markLine[i].x1 === 'max'\n ) {\n extendRange = 'max';\n }\n if (typeof markLine[i].y === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].y);\n }\n if (typeof markLine[i].x === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].x);\n }\n if (typeof markLine[i].y1 === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].y1);\n }\n if (typeof markLine[i].x1 === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].x1);\n }\n }\n }\n return extendRange;\n } else if (markLine.autoRange) {\n if (markLine.y === 'sum' || markLine.x === 'sum' || markLine.y1 === 'sum' || markLine.x1 === 'sum') {\n return 'sum';\n }\n if (markLine.y === 'max' || markLine.x === 'max' || markLine.y1 === 'max' || markLine.x1 === 'max') {\n return 'max';\n }\n if (typeof markLine.y === 'number') {\n return markLine.y;\n }\n if (typeof markLine.x === 'number') {\n return markLine.x;\n }\n if (typeof markLine.y1 === 'number') {\n return markLine.y1;\n }\n if (typeof markLine.x1 === 'number') {\n return markLine.x1;\n }\n }\n }\n return undefined;\n}\n\nexport function generateAggregationForColumn(table: ListTable) {\n for (let col = 0; col < table.internalProps.columns.length; col++) {\n const colDef = table.internalProps.columns[col];\n if (colDef.aggregation) {\n } else if (table.options.aggregation) {\n let aggregation;\n if (typeof table.options.aggregation === 'function') {\n aggregation = table.options.aggregation({\n col: col,\n field: colDef.field as string\n });\n } else {\n aggregation = table.options.aggregation;\n }\n\n if (aggregation) {\n if (Array.isArray(aggregation)) {\n const aggregations: (Aggregation | CustomAggregation)[] = [];\n aggregation.forEach(item => {\n aggregations.push(Object.assign({ showOnTop: false }, item));\n });\n colDef.aggregation = aggregations;\n } else {\n colDef.aggregation = Object.assign({ showOnTop: false }, aggregation);\n }\n }\n }\n }\n}\n\nexport function checkHasAggregationOnColumnDefine(colDefs: ColumnsDefine) {\n for (let i = 0; i < colDefs.length; i++) {\n const colDef = colDefs[i];\n if (colDef.aggregation) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 检查是否有列设置了autoWidth\n * @param table\n * @returns\n */\nexport function checkHasColumnAutoWidth(table: BaseTableAPI) {\n if (table.options.widthMode === 'autoWidth') {\n return true;\n }\n if (\n table.options.defaultHeaderColWidth === 'auto' ||\n (Array.isArray(table.options.defaultHeaderColWidth) && table.options.defaultHeaderColWidth.includes('auto'))\n ) {\n return true;\n }\n const columnObjects = table.internalProps.layoutMap.columnObjects;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if (column.width === 'auto') {\n return true;\n }\n }\n\n return false;\n}\n"]}