@visactor/vtable 1.5.7-alpha.1 → 1.5.7

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 (239) hide show
  1. package/cjs/ListTable-all.js +5 -5
  2. package/cjs/ListTable-all.js.map +1 -1
  3. package/cjs/ListTable.d.ts +3 -0
  4. package/cjs/ListTable.js +41 -284
  5. package/cjs/ListTable.js.map +1 -1
  6. package/cjs/body-helper/style/Style.d.ts +2 -2
  7. package/cjs/body-helper/style/Style.js.map +1 -1
  8. package/cjs/components/title/title.js +3 -1
  9. package/cjs/components/title/title.js.map +1 -1
  10. package/cjs/core/BaseTable.d.ts +5 -3
  11. package/cjs/core/BaseTable.js +13 -83
  12. package/cjs/core/BaseTable.js.map +1 -1
  13. package/cjs/core/group-helper.d.ts +6 -0
  14. package/cjs/core/group-helper.js +22 -0
  15. package/cjs/core/group-helper.js.map +1 -0
  16. package/cjs/core/record-helper.d.ts +8 -0
  17. package/cjs/core/record-helper.js +337 -0
  18. package/cjs/core/record-helper.js.map +1 -0
  19. package/cjs/core/style-helper.d.ts +3 -0
  20. package/cjs/core/style-helper.js +110 -0
  21. package/cjs/core/style-helper.js.map +1 -0
  22. package/cjs/core/tableHelper.d.ts +0 -2
  23. package/cjs/core/tableHelper.js +15 -19
  24. package/cjs/core/tableHelper.js.map +1 -1
  25. package/cjs/data/CachedDataSource.d.ts +10 -1
  26. package/cjs/data/CachedDataSource.js +102 -3
  27. package/cjs/data/CachedDataSource.js.map +1 -1
  28. package/cjs/dataset/dataset.js +0 -1
  29. package/cjs/edit/edit-manager.js +2 -1
  30. package/cjs/event/event.js +3 -1
  31. package/cjs/event/event.js.map +1 -1
  32. package/cjs/header-helper/style/Style.d.ts +2 -2
  33. package/cjs/header-helper/style/Style.js.map +1 -1
  34. package/cjs/index.d.ts +3 -1
  35. package/cjs/index.js +25 -2
  36. package/cjs/index.js.map +1 -1
  37. package/cjs/layout/cell-range/simple-cell-range.d.ts +4 -0
  38. package/cjs/layout/cell-range/simple-cell-range.js +106 -0
  39. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -0
  40. package/cjs/layout/layout-helper.js +2 -2
  41. package/cjs/layout/layout-helper.js.map +1 -1
  42. package/cjs/layout/pivot-header-layout.js +4 -2
  43. package/cjs/layout/pivot-header-layout.js.map +1 -1
  44. package/cjs/layout/row-height-map.js +1 -0
  45. package/cjs/layout/simple-header-layout.d.ts +1 -2
  46. package/cjs/layout/simple-header-layout.js +6 -90
  47. package/cjs/layout/simple-header-layout.js.map +1 -1
  48. package/cjs/plugins/icons.js +1 -1
  49. package/cjs/plugins/list-tree-stick-cell.d.ts +16 -0
  50. package/cjs/plugins/list-tree-stick-cell.js +178 -0
  51. package/cjs/plugins/list-tree-stick-cell.js.map +1 -0
  52. package/cjs/plugins/themes.js +1 -1
  53. package/cjs/scenegraph/component/custom.js +1 -1
  54. package/cjs/scenegraph/component/custom.js.map +1 -1
  55. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +6 -3
  56. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  57. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.d.ts +1 -0
  58. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +48 -7
  59. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  60. package/cjs/scenegraph/graphic/group.js +1 -1
  61. package/cjs/scenegraph/graphic/group.js.map +1 -1
  62. package/cjs/scenegraph/group-creater/cell-helper.d.ts +2 -1
  63. package/cjs/scenegraph/group-creater/cell-helper.js +29 -10
  64. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  65. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +9 -1
  66. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  67. package/cjs/scenegraph/group-creater/column-helper.js +9 -2
  68. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  69. package/cjs/scenegraph/group-creater/init-scenegraph.js +2 -2
  70. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  71. package/cjs/scenegraph/layout/compute-col-width.js +2 -2
  72. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  73. package/cjs/scenegraph/layout/compute-row-height.js +2 -2
  74. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  75. package/cjs/scenegraph/layout/update-height.js +3 -1
  76. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  77. package/cjs/scenegraph/layout/update-width.js +5 -3
  78. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  79. package/cjs/scenegraph/scenegraph.js +54 -39
  80. package/cjs/scenegraph/scenegraph.js.map +1 -1
  81. package/cjs/scenegraph/stick-text/index.js +5 -6
  82. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  83. package/cjs/scenegraph/style/frame-border.d.ts +1 -1
  84. package/cjs/scenegraph/style/frame-border.js +27 -12
  85. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  86. package/cjs/scenegraph/utils/get-cell-merge.js +1 -1
  87. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
  88. package/cjs/scenegraph/utils/get-hierarchy-offset.js +6 -8
  89. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  90. package/cjs/scenegraph/utils/text-icon-layout.js +6 -4
  91. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  92. package/cjs/themes/theme.d.ts +2 -0
  93. package/cjs/themes/theme.js +13 -4
  94. package/cjs/themes/theme.js.map +1 -1
  95. package/cjs/tools/helper.d.ts +1 -1
  96. package/cjs/tools/helper.js +3 -3
  97. package/cjs/tools/helper.js.map +1 -1
  98. package/cjs/ts-types/base-table.d.ts +9 -0
  99. package/cjs/ts-types/base-table.js.map +1 -1
  100. package/cjs/ts-types/column/style.d.ts +2 -2
  101. package/cjs/ts-types/column/style.js.map +1 -1
  102. package/cjs/ts-types/component/index.d.ts +1 -0
  103. package/cjs/ts-types/component/index.js +21 -0
  104. package/cjs/ts-types/component/index.js.map +1 -0
  105. package/cjs/ts-types/index.d.ts +1 -0
  106. package/cjs/ts-types/index.js +1 -1
  107. package/cjs/ts-types/index.js.map +1 -1
  108. package/cjs/ts-types/list-table/layout-map/api.d.ts +1 -0
  109. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  110. package/cjs/ts-types/new-data-set.d.ts +1 -0
  111. package/cjs/ts-types/new-data-set.js.map +1 -1
  112. package/cjs/ts-types/table-engine.d.ts +10 -0
  113. package/cjs/ts-types/table-engine.js.map +1 -1
  114. package/cjs/ts-types/theme.d.ts +2 -1
  115. package/cjs/ts-types/theme.js.map +1 -1
  116. package/cjs/vrender.d.ts +1 -1
  117. package/cjs/vrender.js +2 -1
  118. package/cjs/vrender.js.map +1 -1
  119. package/dist/vtable.js +8405 -5360
  120. package/dist/vtable.min.js +2 -2
  121. package/es/ListTable-all.js +5 -3
  122. package/es/ListTable-all.js.map +1 -1
  123. package/es/ListTable.d.ts +3 -0
  124. package/es/ListTable.js +44 -286
  125. package/es/ListTable.js.map +1 -1
  126. package/es/body-helper/style/Style.d.ts +2 -2
  127. package/es/body-helper/style/Style.js.map +1 -1
  128. package/es/components/title/title.js +3 -1
  129. package/es/components/title/title.js.map +1 -1
  130. package/es/core/BaseTable.d.ts +5 -3
  131. package/es/core/BaseTable.js +16 -87
  132. package/es/core/BaseTable.js.map +1 -1
  133. package/es/core/group-helper.d.ts +6 -0
  134. package/es/core/group-helper.js +14 -0
  135. package/es/core/group-helper.js.map +1 -0
  136. package/es/core/record-helper.d.ts +8 -0
  137. package/es/core/record-helper.js +332 -0
  138. package/es/core/record-helper.js.map +1 -0
  139. package/es/core/style-helper.d.ts +3 -0
  140. package/es/core/style-helper.js +86 -0
  141. package/es/core/style-helper.js.map +1 -0
  142. package/es/core/tableHelper.d.ts +0 -2
  143. package/es/core/tableHelper.js +12 -17
  144. package/es/core/tableHelper.js.map +1 -1
  145. package/es/data/CachedDataSource.d.ts +10 -1
  146. package/es/data/CachedDataSource.js +103 -0
  147. package/es/data/CachedDataSource.js.map +1 -1
  148. package/es/dataset/dataset.js +1 -2
  149. package/es/edit/edit-manager.js +2 -1
  150. package/es/event/event.js +3 -1
  151. package/es/event/event.js.map +1 -1
  152. package/es/header-helper/style/Style.d.ts +2 -2
  153. package/es/header-helper/style/Style.js.map +1 -1
  154. package/es/index.d.ts +3 -1
  155. package/es/index.js +5 -1
  156. package/es/index.js.map +1 -1
  157. package/es/layout/cell-range/simple-cell-range.d.ts +4 -0
  158. package/es/layout/cell-range/simple-cell-range.js +99 -0
  159. package/es/layout/cell-range/simple-cell-range.js.map +1 -0
  160. package/es/layout/layout-helper.js +2 -2
  161. package/es/layout/layout-helper.js.map +1 -1
  162. package/es/layout/pivot-header-layout.js +4 -2
  163. package/es/layout/pivot-header-layout.js.map +1 -1
  164. package/es/layout/row-height-map.js +2 -1
  165. package/es/layout/simple-header-layout.d.ts +1 -2
  166. package/es/layout/simple-header-layout.js +7 -89
  167. package/es/layout/simple-header-layout.js.map +1 -1
  168. package/es/plugins/icons.js +1 -1
  169. package/es/plugins/list-tree-stick-cell.d.ts +16 -0
  170. package/es/plugins/list-tree-stick-cell.js +176 -0
  171. package/es/plugins/list-tree-stick-cell.js.map +1 -0
  172. package/es/plugins/themes.js +1 -1
  173. package/es/scenegraph/component/custom.js +1 -1
  174. package/es/scenegraph/component/custom.js.map +1 -1
  175. package/es/scenegraph/graphic/contributions/group-contribution-render.js +8 -3
  176. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  177. package/es/scenegraph/graphic/contributions/rect-contribution-render.d.ts +1 -0
  178. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +49 -5
  179. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  180. package/es/scenegraph/graphic/group.js +1 -1
  181. package/es/scenegraph/graphic/group.js.map +1 -1
  182. package/es/scenegraph/group-creater/cell-helper.d.ts +2 -1
  183. package/es/scenegraph/group-creater/cell-helper.js +23 -8
  184. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  185. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +9 -1
  186. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  187. package/es/scenegraph/group-creater/column-helper.js +8 -2
  188. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  189. package/es/scenegraph/group-creater/init-scenegraph.js +2 -2
  190. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  191. package/es/scenegraph/layout/compute-col-width.js +1 -3
  192. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  193. package/es/scenegraph/layout/compute-row-height.js +2 -2
  194. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  195. package/es/scenegraph/layout/update-height.js +3 -1
  196. package/es/scenegraph/layout/update-height.js.map +1 -1
  197. package/es/scenegraph/layout/update-width.js +5 -3
  198. package/es/scenegraph/layout/update-width.js.map +1 -1
  199. package/es/scenegraph/scenegraph.js +54 -39
  200. package/es/scenegraph/scenegraph.js.map +1 -1
  201. package/es/scenegraph/stick-text/index.js +5 -6
  202. package/es/scenegraph/stick-text/index.js.map +1 -1
  203. package/es/scenegraph/style/frame-border.d.ts +1 -1
  204. package/es/scenegraph/style/frame-border.js +27 -10
  205. package/es/scenegraph/style/frame-border.js.map +1 -1
  206. package/es/scenegraph/utils/get-cell-merge.js +1 -1
  207. package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
  208. package/es/scenegraph/utils/get-hierarchy-offset.js +7 -9
  209. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  210. package/es/scenegraph/utils/text-icon-layout.js +6 -4
  211. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  212. package/es/themes/theme.d.ts +2 -0
  213. package/es/themes/theme.js +13 -4
  214. package/es/themes/theme.js.map +1 -1
  215. package/es/tools/helper.d.ts +1 -1
  216. package/es/tools/helper.js +1 -1
  217. package/es/tools/helper.js.map +1 -1
  218. package/es/ts-types/base-table.d.ts +9 -0
  219. package/es/ts-types/base-table.js.map +1 -1
  220. package/es/ts-types/column/style.d.ts +2 -2
  221. package/es/ts-types/column/style.js.map +1 -1
  222. package/es/ts-types/component/index.d.ts +1 -0
  223. package/es/ts-types/component/index.js +2 -0
  224. package/es/ts-types/component/index.js.map +1 -0
  225. package/es/ts-types/index.d.ts +1 -0
  226. package/es/ts-types/index.js +2 -0
  227. package/es/ts-types/index.js.map +1 -1
  228. package/es/ts-types/list-table/layout-map/api.d.ts +1 -0
  229. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  230. package/es/ts-types/new-data-set.d.ts +1 -0
  231. package/es/ts-types/new-data-set.js.map +1 -1
  232. package/es/ts-types/table-engine.d.ts +10 -0
  233. package/es/ts-types/table-engine.js.map +1 -1
  234. package/es/ts-types/theme.d.ts +2 -1
  235. package/es/ts-types/theme.js.map +1 -1
  236. package/es/vrender.d.ts +1 -1
  237. package/es/vrender.js +3 -2
  238. package/es/vrender.js.map +1 -1
  239. package/package.json +9 -8
@@ -2,11 +2,13 @@ import { ListTable } from "./ListTable";
2
2
 
3
3
  import { registerAxis, registerEmptyTip, registerLegend, registerMenu, registerTitle, registerTooltip } from "./components";
4
4
 
5
+ import { registerListTreeStickCellPlugin } from "./plugins/list-tree-stick-cell";
6
+
5
7
  import { registerChartCell, registerCheckboxCell, registerImageCell, registerProgressBarCell, registerRadioCell, registerSparkLineCell, registerTextCell, registerVideoCell } from "./scenegraph/group-creater/cell-type";
6
8
 
7
9
  registerAxis(), registerEmptyTip(), registerLegend(), registerMenu(), registerTitle(),
8
- registerTooltip(), registerChartCell(), registerCheckboxCell(), registerImageCell(),
9
- registerProgressBarCell(), registerRadioCell(), registerSparkLineCell(), registerTextCell(),
10
- registerVideoCell();
10
+ registerTooltip(), registerListTreeStickCellPlugin(), registerChartCell(), registerCheckboxCell(),
11
+ registerImageCell(), registerProgressBarCell(), registerRadioCell(), registerSparkLineCell(),
12
+ registerTextCell(), registerVideoCell();
11
13
 
12
14
  export class ListTableAll extends ListTable {}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ListTable-all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EAAE,CAAC;AACf,gBAAgB,EAAE,CAAC;AACnB,cAAc,EAAE,CAAC;AACjB,YAAY,EAAE,CAAC;AACf,aAAa,EAAE,CAAC;AAChB,eAAe,EAAE,CAAC;AAElB,iBAAiB,EAAE,CAAC;AACpB,oBAAoB,EAAE,CAAC;AACvB,iBAAiB,EAAE,CAAC;AACpB,uBAAuB,EAAE,CAAC;AAC1B,iBAAiB,EAAE,CAAC;AACpB,qBAAqB,EAAE,CAAC;AACxB,gBAAgB,EAAE,CAAC;AACnB,iBAAiB,EAAE,CAAC;AACpB,MAAM,OAAO,YAAa,SAAQ,SAAS;CAAG","file":"ListTable-all.js","sourcesContent":["import { ListTable } from './ListTable';\nimport {\n registerAxis,\n registerEmptyTip,\n registerLegend,\n registerMenu,\n registerTitle,\n registerTooltip\n} from './components';\nimport {\n registerChartCell,\n registerCheckboxCell,\n registerImageCell,\n registerProgressBarCell,\n registerRadioCell,\n registerSparkLineCell,\n registerTextCell,\n registerVideoCell\n} from './scenegraph/group-creater/cell-type';\n\nregisterAxis();\nregisterEmptyTip();\nregisterLegend();\nregisterMenu();\nregisterTitle();\nregisterTooltip();\n\nregisterChartCell();\nregisterCheckboxCell();\nregisterImageCell();\nregisterProgressBarCell();\nregisterRadioCell();\nregisterSparkLineCell();\nregisterTextCell();\nregisterVideoCell();\nexport class ListTableAll extends ListTable {}\n"]}
1
+ {"version":3,"sources":["../src/ListTable-all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EAAE,CAAC;AACf,gBAAgB,EAAE,CAAC;AACnB,cAAc,EAAE,CAAC;AACjB,YAAY,EAAE,CAAC;AACf,aAAa,EAAE,CAAC;AAChB,eAAe,EAAE,CAAC;AAClB,+BAA+B,EAAE,CAAC;AAElC,iBAAiB,EAAE,CAAC;AACpB,oBAAoB,EAAE,CAAC;AACvB,iBAAiB,EAAE,CAAC;AACpB,uBAAuB,EAAE,CAAC;AAC1B,iBAAiB,EAAE,CAAC;AACpB,qBAAqB,EAAE,CAAC;AACxB,gBAAgB,EAAE,CAAC;AACnB,iBAAiB,EAAE,CAAC;AACpB,MAAM,OAAO,YAAa,SAAQ,SAAS;CAAG","file":"ListTable-all.js","sourcesContent":["import { ListTable } from './ListTable';\nimport {\n registerAxis,\n registerEmptyTip,\n registerLegend,\n registerMenu,\n registerTitle,\n registerTooltip\n} from './components';\nimport { registerListTreeStickCellPlugin } from './plugins/list-tree-stick-cell';\nimport {\n registerChartCell,\n registerCheckboxCell,\n registerImageCell,\n registerProgressBarCell,\n registerRadioCell,\n registerSparkLineCell,\n registerTextCell,\n registerVideoCell\n} from './scenegraph/group-creater/cell-type';\n\nregisterAxis();\nregisterEmptyTip();\nregisterLegend();\nregisterMenu();\nregisterTitle();\nregisterTooltip();\nregisterListTreeStickCellPlugin();\n\nregisterChartCell();\nregisterCheckboxCell();\nregisterImageCell();\nregisterProgressBarCell();\nregisterRadioCell();\nregisterSparkLineCell();\nregisterTextCell();\nregisterVideoCell();\nexport class ListTableAll extends ListTable {}\n"]}
package/es/ListTable.d.ts CHANGED
@@ -3,10 +3,12 @@ import { HierarchyState } from './ts-types';
3
3
  import { BaseTable } from './core';
4
4
  import type { ListTableProtected } from './ts-types/base-table';
5
5
  import type { IEditor } from '@visactor/vtable-editors';
6
+ import type { ListTreeStickCellPlugin } from './plugins/list-tree-stick-cell';
6
7
  export declare class ListTable extends BaseTable implements ListTableAPI {
7
8
  internalProps: ListTableProtected;
8
9
  options: ListTableConstructorOptions;
9
10
  showHeader: boolean;
11
+ listTreeStickCellPlugin?: ListTreeStickCellPlugin;
10
12
  constructor(options: ListTableConstructorOptions);
11
13
  constructor(container: HTMLElement, options: ListTableConstructorOptions);
12
14
  isListTable(): true;
@@ -85,4 +87,5 @@ export declare class ListTable extends BaseTable implements ListTableAPI {
85
87
  }[];
86
88
  }[];
87
89
  isAggregation(col: number, row: number): boolean;
90
+ getGroupTitleLevel(col: number, row: number): number | undefined;
88
91
  }
package/es/ListTable.js CHANGED
@@ -2,9 +2,9 @@ import { HierarchyState } from "./ts-types";
2
2
 
3
3
  import { SimpleHeaderLayoutMap } from "./layout";
4
4
 
5
- import { isValid } from "@visactor/vutils";
5
+ import { isArray, isValid } from "@visactor/vutils";
6
6
 
7
- import { _setDataSource, _setRecords, sortRecords } from "./core/tableHelper";
7
+ import { _setDataSource, _setRecords } from "./core/tableHelper";
8
8
 
9
9
  import { BaseTable } from "./core";
10
10
 
@@ -16,10 +16,6 @@ import * as editors from "./edit/editors";
16
16
 
17
17
  import { EditManeger } from "./edit/edit-manager";
18
18
 
19
- import { computeColWidth } from "./scenegraph/layout/compute-col-width";
20
-
21
- import { computeRowHeight } from "./scenegraph/layout/compute-row-height";
22
-
23
19
  import { defaultOrderFn } from "./tools/util";
24
20
 
25
21
  import { getCellRadioState, setCellRadioState } from "./state/radio/radio";
@@ -30,17 +26,23 @@ import { setCellCheckboxState } from "./state/checkbox/checkbox";
30
26
 
31
27
  import { Factory } from "./core/factory";
32
28
 
29
+ import { getGroupByDataConfig } from "./core/group-helper";
30
+
31
+ import { listTableAddRecord, listTableAddRecords, listTableChangeCellValue, listTableChangeCellValues, listTableDeleteRecords, listTableUpdateRecords, sortRecords } from "./core/record-helper";
32
+
33
33
  export class ListTable extends BaseTable {
34
34
  constructor(container, options) {
35
- var _a, _b;
35
+ var _a, _b, _c, _d;
36
36
  "node" === Env.mode ? (options = container, container = null) : container instanceof HTMLElement || (options = container,
37
37
  container = container.container ? container.container : null), super(container, options),
38
38
  this.showHeader = !0;
39
39
  const internalProps = this.internalProps;
40
40
  if (internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode, this.pagination = options.pagination,
41
- internalProps.sortState = options.sortState, internalProps.dataConfig = {}, internalProps.columns = options.columns ? cloneDeepSpec(options.columns, [ "children" ]) : options.header ? cloneDeepSpec(options.header, [ "children" ]) : [],
42
- this.internalProps.headerHelper.setTableColumnsEditor(), this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a,
43
- this.transpose = null !== (_b = options.transpose) && void 0 !== _b && _b, "node" !== Env.mode && (this.editorManager = new EditManeger(this)),
41
+ internalProps.sortState = options.sortState, internalProps.dataConfig = options.groupBy ? getGroupByDataConfig(options.groupBy) : {},
42
+ internalProps.columns = options.columns ? cloneDeepSpec(options.columns, [ "children" ]) : options.header ? cloneDeepSpec(options.header, [ "children" ]) : [],
43
+ internalProps.enableTreeNodeMerge = null !== (_b = null !== (_a = options.enableTreeNodeMerge) && void 0 !== _a ? _a : isValid(options.groupBy)) && void 0 !== _b && _b,
44
+ this.internalProps.headerHelper.setTableColumnsEditor(), this.showHeader = null === (_c = options.showHeader) || void 0 === _c || _c,
45
+ this.transpose = null !== (_d = options.transpose) && void 0 !== _d && _d, "node" !== Env.mode && (this.editorManager = new EditManeger(this)),
44
46
  this.refreshHeader(), this.internalProps.useOneRowHeightFillAll = !1, options.dataSource ? _setDataSource(this, options.dataSource) : options.records ? this.setRecords(options.records, {
45
47
  sortState: internalProps.sortState
46
48
  }) : this.setRecords([]), options.title) {
@@ -51,6 +53,10 @@ export class ListTable extends BaseTable {
51
53
  const EmptyTip = Factory.getComponent("emptyTip");
52
54
  this.internalProps.emptyTip = new EmptyTip(this.options.emptyTip, this), this.internalProps.emptyTip.resetVisible();
53
55
  }
56
+ if (options.enableTreeStickCell) {
57
+ const ListTreeStickCellPlugin = Factory.getComponent("listTreeStickCellPlugin");
58
+ this.listTreeStickCellPlugin = new ListTreeStickCellPlugin(this);
59
+ }
54
60
  setTimeout((() => {
55
61
  this.fireListeners(TABLE_EVENT_TYPE.INITIALIZED, null);
56
62
  }), 0);
@@ -221,8 +227,8 @@ export class ListTable extends BaseTable {
221
227
  const internalProps = this.internalProps;
222
228
  if (super.updateOption(options), internalProps.frozenColDragHeaderMode = options.frozenColDragHeaderMode,
223
229
  this.pagination = options.pagination, internalProps.sortState = options.sortState,
224
- internalProps.dataConfig = {}, this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a,
225
- internalProps.columns = options.columns ? cloneDeepSpec(options.columns, [ "children" ]) : options.header ? cloneDeepSpec(options.header, [ "children" ]) : [],
230
+ internalProps.dataConfig = options.groupBy ? getGroupByDataConfig(options.groupBy) : {},
231
+ this.showHeader = null === (_a = options.showHeader) || void 0 === _a || _a, internalProps.columns = options.columns ? cloneDeepSpec(options.columns, [ "children" ]) : options.header ? cloneDeepSpec(options.header, [ "children" ]) : [],
226
232
  this.internalProps.headerHelper.setTableColumnsEditor(), this.transpose = null !== (_b = options.transpose) && void 0 !== _b && _b,
227
233
  this.refreshHeader(), this.internalProps.useOneRowHeightFillAll = !1, internalProps.releaseList && (internalProps.releaseList.forEach((releaseObj => {
228
234
  var _a;
@@ -256,21 +262,21 @@ export class ListTable extends BaseTable {
256
262
  transpose || this.setMinMaxLimitWidth(!0), this.refreshRowColCount();
257
263
  }
258
264
  refreshRowColCount() {
259
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
265
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
260
266
  const table = this, {layoutMap: layoutMap} = table.internalProps;
261
267
  if (!layoutMap) return;
262
268
  const dataCount = null !== (_b = null === (_a = table.internalProps.dataSource) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0;
263
269
  layoutMap.recordsCount = dataCount + (dataCount > 0 ? layoutMap.hasAggregationOnTopCount + layoutMap.hasAggregationOnBottomCount : 0),
264
270
  table.transpose ? (table.rowCount = null !== (_c = layoutMap.rowCount) && void 0 !== _c ? _c : 0,
265
- table.colCount = null !== (_d = layoutMap.colCount) && void 0 !== _d ? _d : 0, table.frozenRowCount = 0,
266
- this.internalProps.frozenColCount = Math.max((null !== (_e = layoutMap.headerLevelCount) && void 0 !== _e ? _e : 0) + layoutMap.leftRowSeriesNumberColumnCount, null !== (_f = this.options.frozenColCount) && void 0 !== _f ? _f : 0),
267
- table.bottomFrozenRowCount !== (null !== (_g = this.options.bottomFrozenRowCount) && void 0 !== _g ? _g : 0) && (table.bottomFrozenRowCount = null !== (_h = this.options.bottomFrozenRowCount) && void 0 !== _h ? _h : 0),
268
- table.rightFrozenColCount !== (null !== (_j = this.options.rightFrozenColCount) && void 0 !== _j ? _j : 0) && (table.rightFrozenColCount = null !== (_k = this.options.rightFrozenColCount) && void 0 !== _k ? _k : 0)) : (table.colCount = null !== (_l = layoutMap.colCount) && void 0 !== _l ? _l : 0,
271
+ table.colCount = null !== (_d = layoutMap.colCount) && void 0 !== _d ? _d : 0, this.internalProps.frozenColCount = Math.max((null !== (_e = layoutMap.headerLevelCount) && void 0 !== _e ? _e : 0) + layoutMap.leftRowSeriesNumberColumnCount, null !== (_f = this.options.frozenColCount) && void 0 !== _f ? _f : 0),
272
+ this.internalProps.frozenRowCount = null !== (_g = this.options.frozenRowCount) && void 0 !== _g ? _g : 0,
273
+ table.bottomFrozenRowCount !== (null !== (_h = this.options.bottomFrozenRowCount) && void 0 !== _h ? _h : 0) && (table.bottomFrozenRowCount = null !== (_j = this.options.bottomFrozenRowCount) && void 0 !== _j ? _j : 0),
274
+ table.rightFrozenColCount !== (null !== (_k = this.options.rightFrozenColCount) && void 0 !== _k ? _k : 0) && (table.rightFrozenColCount = null !== (_l = this.options.rightFrozenColCount) && void 0 !== _l ? _l : 0)) : (table.colCount = null !== (_m = layoutMap.colCount) && void 0 !== _m ? _m : 0,
269
275
  table.rowCount = layoutMap.recordsCount * layoutMap.bodyRowSpanCount + layoutMap.headerLevelCount,
270
- this.internalProps.frozenColCount = null !== (_m = this.options.frozenColCount) && void 0 !== _m ? _m : 0,
271
- table.frozenRowCount = Math.max(layoutMap.headerLevelCount, null !== (_o = this.options.frozenRowCount) && void 0 !== _o ? _o : 0),
272
- table.bottomFrozenRowCount !== (null !== (_p = this.options.bottomFrozenRowCount) && void 0 !== _p ? _p : 0) && (table.bottomFrozenRowCount = null !== (_q = this.options.bottomFrozenRowCount) && void 0 !== _q ? _q : 0),
273
- table.rightFrozenColCount !== (null !== (_r = this.options.rightFrozenColCount) && void 0 !== _r ? _r : 0) && (table.rightFrozenColCount = null !== (_s = this.options.rightFrozenColCount) && void 0 !== _s ? _s : 0)),
276
+ this.internalProps.frozenColCount = null !== (_o = this.options.frozenColCount) && void 0 !== _o ? _o : 0,
277
+ table.frozenRowCount = Math.max(layoutMap.headerLevelCount, null !== (_p = this.options.frozenRowCount) && void 0 !== _p ? _p : 0),
278
+ table.bottomFrozenRowCount !== (null !== (_q = this.options.bottomFrozenRowCount) && void 0 !== _q ? _q : 0) && (table.bottomFrozenRowCount = null !== (_r = this.options.bottomFrozenRowCount) && void 0 !== _r ? _r : 0),
279
+ table.rightFrozenColCount !== (null !== (_s = this.options.rightFrozenColCount) && void 0 !== _s ? _s : 0) && (table.rightFrozenColCount = null !== (_t = this.options.rightFrozenColCount) && void 0 !== _t ? _t : 0)),
274
280
  this.stateManager.setFrozenCol(this.internalProps.frozenColCount);
275
281
  }
276
282
  getFieldData(field, col, row) {
@@ -344,7 +350,9 @@ export class ListTable extends BaseTable {
344
350
  return null;
345
351
  }
346
352
  getHierarchyState(col, row) {
347
- if (!this.getBodyColumnDefine(col, row).tree) return HierarchyState.none;
353
+ if (!this.options.groupBy) {
354
+ if (!this.getBodyColumnDefine(col, row).tree) return HierarchyState.none;
355
+ }
348
356
  const index = this.getRecordShowIndexByCell(col, row);
349
357
  return this.dataSource.getHierarchyState(index);
350
358
  }
@@ -524,280 +532,22 @@ export class ListTable extends BaseTable {
524
532
  return isValid(editorDefine);
525
533
  }
526
534
  changeCellValue(col, row, value, workOnEditableCell = !1) {
527
- if (workOnEditableCell && this.isHasEditorDefine(col, row) || !1 === workOnEditableCell) {
528
- const recordIndex = this.getRecordShowIndexByCell(col, row), {field: field} = this.internalProps.layoutMap.getBody(col, row), beforeChangeValue = this.getCellRawValue(col, row), oldValue = this.getCellOriginValue(col, row);
529
- this.isHeader(col, row) ? this.internalProps.layoutMap.updateColumnTitle(col, row, value) : this.dataSource.changeFieldValue(value, recordIndex, field, col, row, this);
530
- const range = this.getCellRange(col, row), aggregators = this.internalProps.layoutMap.getAggregatorsByCell(col, row);
531
- if (aggregators) {
532
- if (Array.isArray(aggregators)) for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate(); else aggregators.recalculate();
533
- const aggregatorCells = this.internalProps.layoutMap.getAggregatorCellAddress(range.start.col, range.start.row, range.end.col, range.end.row);
534
- for (let i = 0; i < aggregatorCells.length; i++) {
535
- const range = this.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);
536
- for (let sCol = range.start.col; sCol <= range.end.col; sCol++) for (let sRow = range.start.row; sRow <= range.end.row; sRow++) this.scenegraph.updateCellContent(sCol, sRow);
537
- }
538
- }
539
- for (let sCol = range.start.col; sCol <= range.end.col; sCol++) for (let sRow = range.start.row; sRow <= range.end.row; sRow++) this.scenegraph.updateCellContent(sCol, sRow);
540
- if ("adaptive" === this.widthMode || this.autoFillWidth && this.getAllColsWidth() <= this.tableNoFrameWidth) 0 === this.internalProps._widthResizedColMap.size && this.scenegraph.recalculateColWidths(); else if (!this.internalProps._widthResizedColMap.has(col)) {
541
- const oldWidth = this.getColWidth(col), newWidth = computeColWidth(col, 0, this.rowCount - 1, this, !1);
542
- newWidth !== oldWidth && this.scenegraph.updateColWidth(col, newWidth - oldWidth);
543
- }
544
- if ("adaptive" === this.heightMode || this.autoFillHeight && this.getAllRowsHeight() <= this.tableNoFrameHeight) 0 === this.internalProps._heightResizedRowMap.size && this.scenegraph.recalculateRowHeights(); else if ("autoHeight" === this.heightMode && !this.internalProps._heightResizedRowMap.has(row)) {
545
- const oldHeight = this.getRowHeight(row), newHeight = computeRowHeight(row, 0, this.colCount - 1, this);
546
- this.scenegraph.updateRowHeight(row, newHeight - oldHeight);
547
- }
548
- this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
549
- col: col,
550
- row: row,
551
- rawValue: beforeChangeValue,
552
- currentValue: oldValue,
553
- changedValue: this.getCellOriginValue(col, row)
554
- }), this.scenegraph.updateNextFrame();
555
- }
535
+ return listTableChangeCellValue(col, row, value, workOnEditableCell, this);
556
536
  }
557
537
  changeCellValues(startCol, startRow, values, workOnEditableCell = !1) {
558
- let pasteColEnd = startCol, pasteRowEnd = startRow;
559
- const beforeChangeValues = [], oldValues = [];
560
- for (let i = 0; i < values.length && !(startRow + i > this.rowCount - 1); i++) {
561
- const rowValues = values[i], rawRowValues = [], oldRowValues = [];
562
- beforeChangeValues.push(rawRowValues), oldValues.push(oldRowValues);
563
- for (let j = 0; j < rowValues.length && !(startCol + j > this.colCount - 1); j++) {
564
- const beforeChangeValue = this.getCellRawValue(startCol + j, startRow + i);
565
- rawRowValues.push(beforeChangeValue);
566
- const oldValue = this.getCellOriginValue(startCol + j, startRow + i);
567
- oldRowValues.push(oldValue);
568
- }
569
- }
570
- for (let i = 0; i < values.length && !(startRow + i > this.rowCount - 1); i++) {
571
- pasteRowEnd = startRow + i;
572
- const rowValues = values[i];
573
- let thisRowPasteColEnd = startCol;
574
- for (let j = 0; j < rowValues.length && !(startCol + j > this.colCount - 1); j++) if (thisRowPasteColEnd = startCol + j,
575
- workOnEditableCell && this.isHasEditorDefine(startCol + j, startRow + i) || !1 === workOnEditableCell) {
576
- const value = rowValues[j], recordIndex = this.getRecordShowIndexByCell(startCol + j, startRow + i), {field: field} = this.internalProps.layoutMap.getBody(startCol + j, startRow + i), beforeChangeValue = beforeChangeValues[i][j], oldValue = oldValues[i][j];
577
- this.isHeader(startCol + j, startRow + i) ? this.internalProps.layoutMap.updateColumnTitle(startCol + j, startRow + i, value) : this.dataSource.changeFieldValue(value, recordIndex, field, startCol + j, startRow + i, this),
578
- this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
579
- col: startCol + j,
580
- row: startRow + i,
581
- rawValue: beforeChangeValue,
582
- currentValue: oldValue,
583
- changedValue: this.getCellOriginValue(startCol + j, startRow + i)
584
- });
585
- }
586
- pasteColEnd = Math.max(pasteColEnd, thisRowPasteColEnd);
587
- }
588
- const startRange = this.getCellRange(startCol, startRow), range = this.getCellRange(pasteColEnd, pasteRowEnd), aggregators = this.internalProps.layoutMap.getAggregatorsByCellRange(startRange.start.col, startRange.start.row, range.end.col, range.end.row);
589
- if (aggregators) {
590
- for (let i = 0; i < (null == aggregators ? void 0 : aggregators.length); i++) aggregators[i].recalculate();
591
- const aggregatorCells = this.internalProps.layoutMap.getAggregatorCellAddress(startRange.start.col, startRange.start.row, range.end.col, range.end.row);
592
- for (let i = 0; i < aggregatorCells.length; i++) {
593
- const range = this.getCellRange(aggregatorCells[i].col, aggregatorCells[i].row);
594
- for (let sCol = range.start.col; sCol <= range.end.col; sCol++) for (let sRow = range.start.row; sRow <= range.end.row; sRow++) this.scenegraph.updateCellContent(sCol, sRow);
595
- }
596
- }
597
- for (let sCol = startRange.start.col; sCol <= range.end.col; sCol++) for (let sRow = startRange.start.row; sRow <= range.end.row; sRow++) this.scenegraph.updateCellContent(sCol, sRow);
598
- if ("adaptive" === this.widthMode || this.autoFillWidth && this.getAllColsWidth() <= this.tableNoFrameWidth) 0 === this.internalProps._widthResizedColMap.size && this.scenegraph.recalculateColWidths(); else for (let sCol = startCol; sCol <= range.end.col; sCol++) if (!this.internalProps._widthResizedColMap.has(sCol)) {
599
- const oldWidth = this.getColWidth(sCol), newWidth = computeColWidth(sCol, 0, this.rowCount - 1, this, !1);
600
- newWidth !== oldWidth && this.scenegraph.updateColWidth(sCol, newWidth - oldWidth);
601
- }
602
- if ("adaptive" === this.heightMode || this.autoFillHeight && this.getAllRowsHeight() <= this.tableNoFrameHeight) this.scenegraph.recalculateRowHeights(); else if ("autoHeight" === this.heightMode) {
603
- const rows = [], deltaYs = [];
604
- for (let sRow = startRow; sRow <= range.end.row; sRow++) if (this.rowHeightsMap.get(sRow)) {
605
- const oldHeight = this.getRowHeight(sRow), newHeight = computeRowHeight(sRow, 0, this.colCount - 1, this);
606
- rows.push(sRow), deltaYs.push(newHeight - oldHeight);
607
- }
608
- this.scenegraph.updateRowsHeight(rows, deltaYs);
609
- }
610
- this.scenegraph.updateNextFrame();
538
+ return listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, this);
611
539
  }
612
540
  addRecord(record, recordIndex) {
613
- if (this.sortState) this.dataSource.addRecordForSorted(record), sortRecords(this),
614
- this.refreshRowColCount(), this.scenegraph.clearCells(), this.scenegraph.createSceneGraph(); else {
615
- (void 0 === recordIndex || recordIndex > this.dataSource.sourceLength) && (recordIndex = this.dataSource.sourceLength);
616
- const headerCount = this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount;
617
- this.dataSource.addRecord(record, recordIndex);
618
- const oldRowCount = this.rowCount;
619
- if (this.refreshRowColCount(), 0 === this.scenegraph.proxy.totalActualBodyRowCount) return this.scenegraph.clearCells(),
620
- void this.scenegraph.createSceneGraph();
621
- const newRowCount = this.transpose ? this.colCount : this.rowCount;
622
- if (this.pagination) {
623
- const {perPageCount: perPageCount, currentPage: currentPage} = this.pagination, endIndex = perPageCount * (currentPage || 0) + perPageCount;
624
- if (recordIndex < endIndex) if (recordIndex < endIndex - perPageCount) this.scenegraph.clearCells(),
625
- this.scenegraph.createSceneGraph(); else {
626
- const rowNum = recordIndex - (endIndex - perPageCount) + headerCount;
627
- if (oldRowCount - headerCount === this.pagination.perPageCount) {
628
- const updateRows = [];
629
- for (let row = rowNum; row < newRowCount; row++) this.transpose ? updateRows.push({
630
- col: row,
631
- row: 0
632
- }) : updateRows.push({
633
- col: 0,
634
- row: row
635
- });
636
- this.transpose ? this.scenegraph.updateCol([], [], updateRows) : this.scenegraph.updateRow([], [], updateRows);
637
- } else {
638
- const addRows = [];
639
- for (let row = rowNum; row < Math.min(newRowCount, rowNum + 1); row++) this.transpose ? addRows.push({
640
- col: row,
641
- row: 0
642
- }) : addRows.push({
643
- col: 0,
644
- row: row
645
- });
646
- this.transpose ? this.scenegraph.updateCol([], addRows, []) : this.scenegraph.updateRow([], addRows, []);
647
- }
648
- }
649
- } else {
650
- const addRows = [];
651
- for (let row = recordIndex + headerCount; row < recordIndex + headerCount + 1; row++) this.transpose ? addRows.push({
652
- col: row,
653
- row: 0
654
- }) : addRows.push({
655
- col: 0,
656
- row: row
657
- });
658
- this.transpose ? this.scenegraph.updateCol([], addRows, []) : this.scenegraph.updateRow([], addRows, []);
659
- }
660
- }
541
+ listTableAddRecord(record, recordIndex, this);
661
542
  }
662
543
  addRecords(records, recordIndex) {
663
- if (this.sortState) this.dataSource.addRecordsForSorted(records), sortRecords(this),
664
- this.refreshRowColCount(), this.scenegraph.clearCells(), this.scenegraph.createSceneGraph(); else {
665
- void 0 === recordIndex || recordIndex > this.dataSource.sourceLength ? recordIndex = this.dataSource.sourceLength : recordIndex < 0 && (recordIndex = 0);
666
- const headerCount = this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount;
667
- this.dataSource.addRecords(records, recordIndex);
668
- const oldRowCount = this.transpose ? this.colCount : this.rowCount;
669
- if (this.refreshRowColCount(), 0 === this.scenegraph.proxy.totalActualBodyRowCount) return this.scenegraph.clearCells(),
670
- void this.scenegraph.createSceneGraph();
671
- const newRowCount = this.transpose ? this.colCount : this.rowCount;
672
- if (this.pagination) {
673
- const {perPageCount: perPageCount, currentPage: currentPage} = this.pagination, endIndex = perPageCount * (currentPage || 0) + perPageCount;
674
- if (recordIndex < endIndex) if (recordIndex < endIndex - perPageCount) this.scenegraph.clearCells(),
675
- this.scenegraph.createSceneGraph(); else {
676
- const rowNum = recordIndex - (endIndex - perPageCount) + headerCount;
677
- if (oldRowCount - headerCount === this.pagination.perPageCount) {
678
- const updateRows = [];
679
- for (let row = rowNum; row < newRowCount; row++) this.transpose ? updateRows.push({
680
- col: row,
681
- row: 0
682
- }) : updateRows.push({
683
- col: 0,
684
- row: row
685
- });
686
- this.transpose ? this.scenegraph.updateCol([], [], updateRows) : this.scenegraph.updateRow([], [], updateRows);
687
- } else {
688
- const addRows = [];
689
- for (let row = rowNum; row < Math.min(newRowCount, rowNum + (Array.isArray(records) ? records.length : 1)); row++) this.transpose ? addRows.push({
690
- col: row,
691
- row: 0
692
- }) : addRows.push({
693
- col: 0,
694
- row: row
695
- });
696
- this.transpose ? this.scenegraph.updateCol([], addRows, []) : this.scenegraph.updateRow([], addRows, []);
697
- }
698
- }
699
- } else {
700
- const addRows = [];
701
- for (let row = recordIndex + headerCount; row < recordIndex + headerCount + (Array.isArray(records) ? records.length : 1); row++) this.transpose ? addRows.push({
702
- col: row,
703
- row: 0
704
- }) : addRows.push({
705
- col: 0,
706
- row: row
707
- });
708
- this.transpose ? this.scenegraph.updateCol([], addRows, []) : this.scenegraph.updateRow([], addRows, []);
709
- }
710
- }
544
+ listTableAddRecords(records, recordIndex, this);
711
545
  }
712
546
  deleteRecords(recordIndexs) {
713
- if ((null == recordIndexs ? void 0 : recordIndexs.length) > 0) if (this.sortState) this.dataSource.deleteRecordsForSorted(recordIndexs),
714
- sortRecords(this), this.refreshRowColCount(), this.scenegraph.clearCells(), this.scenegraph.createSceneGraph(); else {
715
- const deletedRecordIndexs = this.dataSource.deleteRecords(recordIndexs);
716
- if (0 === deletedRecordIndexs.length) return;
717
- const oldRowCount = this.transpose ? this.colCount : this.rowCount;
718
- this.refreshRowColCount();
719
- const newRowCount = this.transpose ? this.colCount : this.rowCount, recordIndexsMinToMax = deletedRecordIndexs.sort(((a, b) => a - b)), minRecordIndex = recordIndexsMinToMax[0];
720
- if (this.pagination) {
721
- const {perPageCount: perPageCount, currentPage: currentPage} = this.pagination, endIndex = perPageCount * (currentPage || 0) + perPageCount;
722
- if (minRecordIndex < endIndex) if (minRecordIndex < endIndex - perPageCount) this.scenegraph.clearCells(),
723
- this.scenegraph.createSceneGraph(); else {
724
- const updateRows = [], delRows = [];
725
- for (let row = minRecordIndex - (endIndex - perPageCount) + (this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount); row < newRowCount; row++) this.transpose ? updateRows.push({
726
- col: row,
727
- row: 0
728
- }) : updateRows.push({
729
- col: 0,
730
- row: row
731
- });
732
- if (newRowCount < oldRowCount) for (let row = newRowCount; row < oldRowCount; row++) this.transpose ? delRows.push({
733
- col: row,
734
- row: 0
735
- }) : delRows.push({
736
- col: 0,
737
- row: row
738
- });
739
- this.transpose ? this.scenegraph.updateCol(delRows, [], updateRows) : this.scenegraph.updateRow(delRows, [], updateRows);
740
- }
741
- } else {
742
- const delRows = [];
743
- for (let index = 0; index < recordIndexsMinToMax.length; index++) {
744
- const rowNum = recordIndexsMinToMax[index] + (this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount);
745
- this.transpose ? delRows.push({
746
- col: rowNum,
747
- row: 0
748
- }) : delRows.push({
749
- col: 0,
750
- row: rowNum
751
- });
752
- }
753
- this.transpose ? this.scenegraph.updateCol(delRows, [], []) : this.scenegraph.updateRow(delRows, [], []);
754
- }
755
- }
547
+ listTableDeleteRecords(recordIndexs, this);
756
548
  }
757
549
  updateRecords(records, recordIndexs) {
758
- if ((null == recordIndexs ? void 0 : recordIndexs.length) > 0) if (this.sortState) this.dataSource.updateRecordsForSorted(records, recordIndexs),
759
- sortRecords(this), this.refreshRowColCount(), this.scenegraph.clearCells(), this.scenegraph.createSceneGraph(); else {
760
- const updateRecordIndexs = this.dataSource.updateRecords(records, recordIndexs);
761
- if (0 === updateRecordIndexs.length) return;
762
- const recordIndexsMinToMax = updateRecordIndexs.sort(((a, b) => a - b));
763
- if (this.pagination) {
764
- const {perPageCount: perPageCount, currentPage: currentPage} = this.pagination, endIndex = perPageCount * (currentPage || 0) + perPageCount, updateRows = [];
765
- for (let index = 0; index < recordIndexsMinToMax.length; index++) {
766
- const recordIndex = recordIndexsMinToMax[index];
767
- if (recordIndex < endIndex && recordIndex >= endIndex - perPageCount) {
768
- const rowNum = recordIndex - (endIndex - perPageCount) + (this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount);
769
- updateRows.push(rowNum);
770
- }
771
- }
772
- if (updateRows.length >= 1) {
773
- const updateRowCells = [];
774
- for (let index = 0; index < updateRows.length; index++) {
775
- const updateRow = updateRows[index];
776
- this.transpose ? updateRowCells.push({
777
- col: updateRow,
778
- row: 0
779
- }) : updateRowCells.push({
780
- col: 0,
781
- row: updateRow
782
- });
783
- }
784
- this.transpose ? this.scenegraph.updateCol([], [], updateRowCells) : this.scenegraph.updateRow([], [], updateRowCells);
785
- }
786
- } else {
787
- const updateRows = [];
788
- for (let index = 0; index < recordIndexsMinToMax.length; index++) {
789
- const rowNum = recordIndexsMinToMax[index] + (this.transpose ? this.rowHeaderLevelCount : this.columnHeaderLevelCount);
790
- this.transpose ? updateRows.push({
791
- col: rowNum,
792
- row: 0
793
- }) : updateRows.push({
794
- col: 0,
795
- row: rowNum
796
- });
797
- }
798
- this.transpose ? this.scenegraph.updateCol([], [], updateRows) : this.scenegraph.updateRow([], [], updateRows);
799
- }
800
- }
550
+ listTableUpdateRecords(records, recordIndexs, this);
801
551
  }
802
552
  _hasCustomRenderOrLayout() {
803
553
  var _a, _b, _c, _d;
@@ -833,5 +583,13 @@ export class ListTable extends BaseTable {
833
583
  isAggregation(col, row) {
834
584
  return this.internalProps.layoutMap.isAggregation(col, row);
835
585
  }
586
+ getGroupTitleLevel(col, row) {
587
+ var _a;
588
+ if (!this.options.groupBy) return;
589
+ const indexArr = this.dataSource.getIndexKey(this.getRecordShowIndexByCell(col, row)), groupLength = null !== (_a = this.dataSource.getGroupLength()) && void 0 !== _a ? _a : 0;
590
+ let indexArrLngth = isArray(indexArr) ? indexArr.length - 1 : 0;
591
+ return groupLength > 0 && indexArrLngth === groupLength && (indexArrLngth = void 0),
592
+ indexArrLngth;
593
+ }
836
594
  }
837
595
  //# sourceMappingURL=ListTable.js.map