@visactor/vtable 0.13.4 → 0.13.5

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 (311) hide show
  1. package/cjs/PivotTable.d.ts +2 -1
  2. package/cjs/PivotTable.js.map +1 -1
  3. package/cjs/body-helper/style/CheckboxStyle.d.ts +8 -2
  4. package/cjs/body-helper/style/CheckboxStyle.js +17 -3
  5. package/cjs/body-helper/style/CheckboxStyle.js.map +1 -1
  6. package/cjs/components/axis/get-axis-attributes.d.ts +7 -0
  7. package/cjs/components/axis/get-axis-attributes.js +13 -17
  8. package/cjs/components/axis/get-axis-attributes.js.map +1 -1
  9. package/cjs/components/legend/continue-legend/continue-legend.js +1 -0
  10. package/cjs/components/legend/continue-legend/continue-legend.js.map +1 -1
  11. package/cjs/components/legend/discrete-legend/discrete-legend.js +1 -0
  12. package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  13. package/cjs/components/title/title.js +7 -6
  14. package/cjs/components/title/title.js.map +1 -1
  15. package/cjs/core/BaseTable.d.ts +1 -0
  16. package/cjs/core/BaseTable.js +28 -2
  17. package/cjs/core/BaseTable.js.map +1 -1
  18. package/cjs/dataset/dataset.d.ts +0 -1
  19. package/cjs/dataset/dataset.js +3 -43
  20. package/cjs/dataset/dataset.js.map +1 -1
  21. package/cjs/header-helper/header-helper.d.ts +2 -1
  22. package/cjs/header-helper/style/CheckboxStyle.d.ts +8 -2
  23. package/cjs/header-helper/style/CheckboxStyle.js +15 -1
  24. package/cjs/header-helper/style/CheckboxStyle.js.map +1 -1
  25. package/cjs/index.d.ts +1 -1
  26. package/cjs/index.js +1 -1
  27. package/cjs/index.js.map +1 -1
  28. package/cjs/layout/chart-helper/get-axis-config.js +71 -35
  29. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  30. package/cjs/layout/chart-helper/get-axis-domain.d.ts +1 -1
  31. package/cjs/layout/chart-helper/get-axis-domain.js +18 -8
  32. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  33. package/cjs/layout/chart-helper/get-chart-spec.js +33 -17
  34. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  35. package/cjs/layout/chart-helper/zero-align.js.map +1 -0
  36. package/cjs/layout/pivot-header-layout.js +20 -11
  37. package/cjs/layout/pivot-header-layout.js.map +1 -1
  38. package/cjs/layout/simple-header-layout.js +2 -1
  39. package/cjs/layout/simple-header-layout.js.map +1 -1
  40. package/cjs/render/layout/arc.d.ts +10 -21
  41. package/cjs/render/layout/arc.js +7 -9
  42. package/cjs/render/layout/arc.js.map +1 -1
  43. package/cjs/render/layout/circle.d.ts +10 -17
  44. package/cjs/render/layout/circle.js +5 -6
  45. package/cjs/render/layout/circle.js.map +1 -1
  46. package/cjs/render/layout/container.d.ts +10 -48
  47. package/cjs/render/layout/container.js +15 -100
  48. package/cjs/render/layout/container.js.map +1 -1
  49. package/cjs/render/layout/group-element.d.ts +4 -24
  50. package/cjs/render/layout/group-element.js +4 -40
  51. package/cjs/render/layout/group-element.js.map +1 -1
  52. package/cjs/render/layout/group.d.ts +12 -0
  53. package/cjs/render/layout/group.js +18 -0
  54. package/cjs/render/layout/group.js.map +1 -0
  55. package/cjs/render/layout/icon.d.ts +10 -10
  56. package/cjs/render/layout/icon.js +11 -9
  57. package/cjs/render/layout/icon.js.map +1 -1
  58. package/cjs/render/layout/image.d.ts +10 -17
  59. package/cjs/render/layout/image.js +6 -7
  60. package/cjs/render/layout/image.js.map +1 -1
  61. package/cjs/render/layout/index.d.ts +2 -0
  62. package/cjs/render/layout/index.js +2 -1
  63. package/cjs/render/layout/index.js.map +1 -1
  64. package/cjs/render/layout/percent-calc.d.ts +1 -4
  65. package/cjs/render/layout/percent-calc.js.map +1 -1
  66. package/cjs/render/layout/rect.d.ts +10 -20
  67. package/cjs/render/layout/rect.js +5 -6
  68. package/cjs/render/layout/rect.js.map +1 -1
  69. package/cjs/render/layout/tag.d.ts +14 -0
  70. package/cjs/render/layout/tag.js +21 -0
  71. package/cjs/render/layout/tag.js.map +1 -0
  72. package/cjs/render/layout/text.d.ts +9 -46
  73. package/cjs/render/layout/text.js +8 -18
  74. package/cjs/render/layout/text.js.map +1 -1
  75. package/cjs/scenegraph/component/custom.d.ts +2 -2
  76. package/cjs/scenegraph/component/custom.js +14 -6
  77. package/cjs/scenegraph/component/custom.js.map +1 -1
  78. package/cjs/scenegraph/graphic/group.d.ts +6 -2
  79. package/cjs/scenegraph/graphic/group.js.map +1 -1
  80. package/cjs/scenegraph/group-creater/cell-helper.d.ts +3 -3
  81. package/cjs/scenegraph/group-creater/cell-helper.js +40 -40
  82. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  83. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  84. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  85. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +22 -3
  86. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  87. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +2 -2
  88. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +2 -2
  89. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  90. package/cjs/scenegraph/group-creater/column-helper.d.ts +3 -2
  91. package/cjs/scenegraph/group-creater/column-helper.js +78 -46
  92. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  93. package/cjs/scenegraph/group-creater/progress/proxy.js +1 -1
  94. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  95. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +2 -3
  96. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  97. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +4 -5
  98. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  99. package/cjs/scenegraph/icon/icon-update.d.ts +17 -0
  100. package/cjs/scenegraph/icon/icon-update.js +165 -0
  101. package/cjs/scenegraph/icon/icon-update.js.map +1 -0
  102. package/cjs/scenegraph/layout/compute-col-width.js +22 -15
  103. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  104. package/cjs/scenegraph/layout/compute-row-height.js +49 -15
  105. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  106. package/cjs/scenegraph/layout/move-cell.js +8 -27
  107. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  108. package/cjs/scenegraph/layout/update-height.js +39 -29
  109. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  110. package/cjs/scenegraph/layout/update-row.js +6 -2
  111. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  112. package/cjs/scenegraph/layout/update-width.js +43 -29
  113. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  114. package/cjs/scenegraph/scenegraph.d.ts +7 -13
  115. package/cjs/scenegraph/scenegraph.js +25 -141
  116. package/cjs/scenegraph/scenegraph.js.map +1 -1
  117. package/cjs/scenegraph/stick-text/index.js +77 -38
  118. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  119. package/cjs/scenegraph/utils/is-merge-cell-group.d.ts +2 -0
  120. package/cjs/scenegraph/utils/is-merge-cell-group.js +16 -0
  121. package/cjs/scenegraph/utils/is-merge-cell-group.js.map +1 -0
  122. package/cjs/scenegraph/utils/text-icon-layout.d.ts +1 -1
  123. package/cjs/scenegraph/utils/text-icon-layout.js +11 -5
  124. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  125. package/cjs/state/cell-move/index.js +14 -12
  126. package/cjs/state/cell-move/index.js.map +1 -1
  127. package/cjs/state/hover/is-cell-hover.js +4 -2
  128. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  129. package/cjs/state/hover/update-cell.js +10 -5
  130. package/cjs/state/hover/update-cell.js.map +1 -1
  131. package/cjs/state/state.js +1 -1
  132. package/cjs/state/state.js.map +1 -1
  133. package/cjs/themes/BRIGHT.js +2 -1
  134. package/cjs/themes/DARK.js +1 -2
  135. package/cjs/tools/calc.js +1 -1
  136. package/cjs/tools/util.js +1 -1
  137. package/cjs/tools/util.js.map +1 -1
  138. package/cjs/ts-types/base-table.d.ts +9 -1
  139. package/cjs/ts-types/base-table.js.map +1 -1
  140. package/cjs/ts-types/column/style.d.ts +4 -1
  141. package/cjs/ts-types/column/style.js.map +1 -1
  142. package/cjs/ts-types/common.d.ts +2 -0
  143. package/cjs/ts-types/common.js.map +1 -1
  144. package/cjs/ts-types/table-engine.d.ts +13 -0
  145. package/cjs/ts-types/table-engine.js.map +1 -1
  146. package/dist/vtable.js +22152 -11275
  147. package/dist/vtable.min.js +2 -2
  148. package/es/PivotTable.d.ts +2 -1
  149. package/es/PivotTable.js.map +1 -1
  150. package/es/body-helper/style/CheckboxStyle.d.ts +8 -2
  151. package/es/body-helper/style/CheckboxStyle.js +17 -3
  152. package/es/body-helper/style/CheckboxStyle.js.map +1 -1
  153. package/es/components/axis/get-axis-attributes.d.ts +7 -0
  154. package/es/components/axis/get-axis-attributes.js +1 -1
  155. package/es/components/axis/get-axis-attributes.js.map +1 -1
  156. package/es/components/legend/continue-legend/continue-legend.js +1 -0
  157. package/es/components/legend/continue-legend/continue-legend.js.map +1 -1
  158. package/es/components/legend/discrete-legend/discrete-legend.js +1 -0
  159. package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  160. package/es/components/title/title.js +6 -6
  161. package/es/components/title/title.js.map +1 -1
  162. package/es/core/BaseTable.d.ts +1 -0
  163. package/es/core/BaseTable.js +28 -2
  164. package/es/core/BaseTable.js.map +1 -1
  165. package/es/dataset/dataset.d.ts +0 -1
  166. package/es/dataset/dataset.js +2 -46
  167. package/es/dataset/dataset.js.map +1 -1
  168. package/es/header-helper/header-helper.d.ts +2 -1
  169. package/es/header-helper/style/CheckboxStyle.d.ts +8 -2
  170. package/es/header-helper/style/CheckboxStyle.js +15 -1
  171. package/es/header-helper/style/CheckboxStyle.js.map +1 -1
  172. package/es/index.d.ts +1 -1
  173. package/es/index.js +1 -1
  174. package/es/index.js.map +1 -1
  175. package/es/layout/chart-helper/get-axis-config.js +72 -33
  176. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  177. package/es/layout/chart-helper/get-axis-domain.d.ts +1 -1
  178. package/es/layout/chart-helper/get-axis-domain.js +20 -8
  179. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  180. package/es/layout/chart-helper/get-chart-spec.js +33 -12
  181. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  182. package/es/layout/chart-helper/zero-align.js.map +1 -0
  183. package/es/layout/pivot-header-layout.js +20 -11
  184. package/es/layout/pivot-header-layout.js.map +1 -1
  185. package/es/layout/simple-header-layout.js +2 -1
  186. package/es/layout/simple-header-layout.js.map +1 -1
  187. package/es/render/layout/arc.d.ts +10 -21
  188. package/es/render/layout/arc.js +7 -7
  189. package/es/render/layout/arc.js.map +1 -1
  190. package/es/render/layout/circle.d.ts +10 -17
  191. package/es/render/layout/circle.js +7 -6
  192. package/es/render/layout/circle.js.map +1 -1
  193. package/es/render/layout/container.d.ts +10 -48
  194. package/es/render/layout/container.js +16 -107
  195. package/es/render/layout/container.js.map +1 -1
  196. package/es/render/layout/group-element.d.ts +4 -24
  197. package/es/render/layout/group-element.js +4 -42
  198. package/es/render/layout/group-element.js.map +1 -1
  199. package/es/render/layout/group.d.ts +12 -0
  200. package/es/render/layout/group.js +12 -0
  201. package/es/render/layout/group.js.map +1 -0
  202. package/es/render/layout/icon.d.ts +10 -10
  203. package/es/render/layout/icon.js +12 -10
  204. package/es/render/layout/icon.js.map +1 -1
  205. package/es/render/layout/image.d.ts +10 -17
  206. package/es/render/layout/image.js +8 -7
  207. package/es/render/layout/image.js.map +1 -1
  208. package/es/render/layout/index.d.ts +2 -0
  209. package/es/render/layout/index.js +4 -0
  210. package/es/render/layout/index.js.map +1 -1
  211. package/es/render/layout/percent-calc.d.ts +1 -4
  212. package/es/render/layout/percent-calc.js.map +1 -1
  213. package/es/render/layout/rect.d.ts +10 -20
  214. package/es/render/layout/rect.js +7 -6
  215. package/es/render/layout/rect.js.map +1 -1
  216. package/es/render/layout/tag.d.ts +14 -0
  217. package/es/render/layout/tag.js +15 -0
  218. package/es/render/layout/tag.js.map +1 -0
  219. package/es/render/layout/text.d.ts +9 -46
  220. package/es/render/layout/text.js +10 -18
  221. package/es/render/layout/text.js.map +1 -1
  222. package/es/scenegraph/component/custom.d.ts +2 -2
  223. package/es/scenegraph/component/custom.js +15 -7
  224. package/es/scenegraph/component/custom.js.map +1 -1
  225. package/es/scenegraph/graphic/group.d.ts +6 -2
  226. package/es/scenegraph/graphic/group.js.map +1 -1
  227. package/es/scenegraph/group-creater/cell-helper.d.ts +3 -3
  228. package/es/scenegraph/group-creater/cell-helper.js +41 -40
  229. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  230. package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
  231. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  232. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +22 -2
  233. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  234. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +2 -2
  235. package/es/scenegraph/group-creater/cell-type/text-cell.js +2 -2
  236. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  237. package/es/scenegraph/group-creater/column-helper.d.ts +3 -2
  238. package/es/scenegraph/group-creater/column-helper.js +75 -44
  239. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  240. package/es/scenegraph/group-creater/progress/proxy.js +1 -1
  241. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  242. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +3 -4
  243. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  244. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +3 -6
  245. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  246. package/es/scenegraph/icon/icon-update.d.ts +17 -0
  247. package/es/scenegraph/icon/icon-update.js +154 -0
  248. package/es/scenegraph/icon/icon-update.js.map +1 -0
  249. package/es/scenegraph/layout/compute-col-width.js +23 -14
  250. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  251. package/es/scenegraph/layout/compute-row-height.js +51 -15
  252. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  253. package/es/scenegraph/layout/move-cell.js +8 -27
  254. package/es/scenegraph/layout/move-cell.js.map +1 -1
  255. package/es/scenegraph/layout/update-height.js +41 -27
  256. package/es/scenegraph/layout/update-height.js.map +1 -1
  257. package/es/scenegraph/layout/update-row.js +6 -1
  258. package/es/scenegraph/layout/update-row.js.map +1 -1
  259. package/es/scenegraph/layout/update-width.js +45 -27
  260. package/es/scenegraph/layout/update-width.js.map +1 -1
  261. package/es/scenegraph/scenegraph.d.ts +7 -13
  262. package/es/scenegraph/scenegraph.js +25 -142
  263. package/es/scenegraph/scenegraph.js.map +1 -1
  264. package/es/scenegraph/stick-text/index.js +75 -38
  265. package/es/scenegraph/stick-text/index.js.map +1 -1
  266. package/es/scenegraph/utils/is-merge-cell-group.d.ts +2 -0
  267. package/es/scenegraph/utils/is-merge-cell-group.js +6 -0
  268. package/es/scenegraph/utils/is-merge-cell-group.js.map +1 -0
  269. package/es/scenegraph/utils/text-icon-layout.d.ts +1 -1
  270. package/es/scenegraph/utils/text-icon-layout.js +11 -5
  271. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  272. package/es/state/cell-move/index.js +14 -12
  273. package/es/state/cell-move/index.js.map +1 -1
  274. package/es/state/hover/is-cell-hover.js +3 -1
  275. package/es/state/hover/is-cell-hover.js.map +1 -1
  276. package/es/state/hover/update-cell.js +4 -2
  277. package/es/state/hover/update-cell.js.map +1 -1
  278. package/es/state/state.js +1 -1
  279. package/es/state/state.js.map +1 -1
  280. package/es/themes/BRIGHT.js +2 -1
  281. package/es/themes/DARK.js +1 -2
  282. package/es/tools/calc.js +1 -1
  283. package/es/tools/util.js +1 -1
  284. package/es/tools/util.js.map +1 -1
  285. package/es/ts-types/base-table.d.ts +9 -1
  286. package/es/ts-types/base-table.js.map +1 -1
  287. package/es/ts-types/column/style.d.ts +4 -1
  288. package/es/ts-types/column/style.js.map +1 -1
  289. package/es/ts-types/common.d.ts +2 -0
  290. package/es/ts-types/common.js.map +1 -1
  291. package/es/ts-types/table-engine.d.ts +13 -0
  292. package/es/ts-types/table-engine.js.map +1 -1
  293. package/package.json +2 -2
  294. package/cjs/dataset/util/zero-align.js.map +0 -1
  295. package/cjs/scenegraph/header-icon/layout.d.ts +0 -3
  296. package/cjs/scenegraph/header-icon/layout.js +0 -75
  297. package/cjs/scenegraph/header-icon/layout.js.map +0 -1
  298. package/cjs/scenegraph/hover-state.d.ts +0 -14
  299. package/cjs/scenegraph/hover-state.js +0 -27
  300. package/cjs/scenegraph/hover-state.js.map +0 -1
  301. package/es/dataset/util/zero-align.js.map +0 -1
  302. package/es/scenegraph/header-icon/layout.d.ts +0 -3
  303. package/es/scenegraph/header-icon/layout.js +0 -69
  304. package/es/scenegraph/header-icon/layout.js.map +0 -1
  305. package/es/scenegraph/hover-state.d.ts +0 -14
  306. package/es/scenegraph/hover-state.js +0 -19
  307. package/es/scenegraph/hover-state.js.map +0 -1
  308. /package/cjs/{dataset/util → layout/chart-helper}/zero-align.d.ts +0 -0
  309. /package/cjs/{dataset/util → layout/chart-helper}/zero-align.js +0 -0
  310. /package/es/{dataset/util → layout/chart-helper}/zero-align.d.ts +0 -0
  311. /package/es/{dataset/util → layout/chart-helper}/zero-align.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/group-creater/progress/update-position/dynamic-set-y.ts"],"names":[],"mappings":"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","file":"dynamic-set-y.js","sourcesContent":["import type { Group } from '../../../graphic/group';\nimport { computeRowsHeight } from '../../../layout/compute-row-height';\nimport type { SceneProxy } from '../proxy';\nimport { updateAutoRow } from './update-auto-row';\nimport { checkFirstRowMerge } from './util';\n\nexport async function dynamicSetY(y: number, proxy: SceneProxy) {\n // 计算变动row range\n // const screenTopRow = proxy.table.getRowAt(y).row;\n // proxy.deltaY = 0;\n const screenTop = (proxy.table as any).getTargetRowAt(y + proxy.table.scenegraph.colHeaderGroup.attribute.height);\n if (!screenTop) {\n return;\n }\n const screenTopRow = screenTop.row;\n const screenTopY = screenTop.top;\n proxy.screenTopRow = screenTopRow;\n const deltaRow = screenTopRow - proxy.referenceRow;\n if (deltaRow > 0) {\n // 向下滚动,顶部cell group移到底部\n moveCell(deltaRow, 'up', screenTopRow, screenTopY, proxy);\n proxy.updateBody(y - proxy.deltaY);\n } else if (deltaRow < 0) {\n // 向上滚动,底部cell group移到顶部\n moveCell(-deltaRow, 'down', screenTopRow, screenTopY, proxy);\n proxy.updateBody(y - proxy.deltaY);\n } else {\n // 不改变row,更新body group范围\n proxy.updateBody(y - proxy.deltaY);\n }\n\n // proxy.table.scenegraph.updateNextFrame();\n}\n\nasync function moveCell(\n count: number,\n direction: 'up' | 'down',\n screenTopRow: number,\n screenTopY: number,\n proxy: SceneProxy\n) {\n // 限制count范围\n if (direction === 'up' && proxy.rowEnd + count > proxy.bodyBottomRow) {\n count = proxy.bodyBottomRow - proxy.rowEnd;\n } else if (direction === 'down' && proxy.rowStart - count < proxy.bodyTopRow) {\n count = proxy.rowStart - proxy.bodyTopRow;\n }\n\n // 两种更新模式\n // 1. count < rowEnd - rowStart:从顶/底部移动count数量的单元格到底/顶部\n // 2. count >= rowEnd - rowStart:整体移动到目标位置\n if (count < proxy.rowEnd - proxy.rowStart) {\n // 计算更新区域\n const startRow = direction === 'up' ? proxy.rowStart : proxy.rowEnd - count + 1;\n const endRow = direction === 'up' ? proxy.rowStart + count - 1 : proxy.rowEnd;\n const distStartRow = direction === 'up' ? proxy.rowEnd + 1 : proxy.rowStart - count;\n const distEndRow = direction === 'up' ? proxy.rowEnd + count : proxy.rowStart - 1;\n\n // 更新同步范围\n let syncTopRow;\n let syncBottomRow;\n if (proxy.table.heightMode === 'autoHeight') {\n syncTopRow = distStartRow;\n syncBottomRow = distEndRow;\n } else {\n const topRow = Math.max(proxy.bodyTopRow, screenTopRow - proxy.screenRowCount * 1);\n const bottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + proxy.screenRowCount * 2);\n // get coincide of distStartRow&distEndRow and topRow&BottomRow\n // syncTopRow = Math.max(distStartRow, topRow);\n // syncBottomRow = Math.min(distEndRow, bottomRow);\n syncTopRow = topRow;\n syncBottomRow = bottomRow;\n }\n\n // const syncTopRow = Math.max(proxy.bodyTopRow, screenTopRow - proxy.screenRowCount * 1);\n // const syncBottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + proxy.screenRowCount * 2);\n computeRowsHeight(proxy.table, syncTopRow, syncBottomRow);\n\n // console.log('move', startRow, endRow, direction);\n updatePartRowPosition(startRow, endRow, direction, proxy);\n\n proxy.rowStart = direction === 'up' ? proxy.rowStart + count : proxy.rowStart - count;\n proxy.rowEnd = direction === 'up' ? proxy.rowEnd + count : proxy.rowEnd - count;\n\n updateRowContent(syncTopRow, syncBottomRow, proxy);\n checkFirstRowMerge(syncTopRow, proxy);\n\n if (proxy.table.heightMode === 'autoHeight') {\n updateAutoRow(\n proxy.bodyLeftCol, // colStart\n proxy.bodyRightCol, // colEnd\n syncTopRow, // rowStart\n syncBottomRow, // rowEnd\n proxy.table,\n direction\n );\n\n const cellGroup = proxy.table.scenegraph.highPerformanceGetCell(proxy.bodyLeftCol, screenTopRow, true);\n const delaY =\n screenTopY - (cellGroup.attribute.y + proxy.table.getFrozenRowsHeight() + proxy.table.scenegraph.proxy.deltaY);\n proxy.table.scenegraph.proxy.deltaY += delaY;\n }\n\n proxy.currentRow = direction === 'up' ? proxy.currentRow + count : proxy.currentRow - count;\n proxy.totalRow = Math.max(\n 0,\n Math.min(proxy.table.rowCount - 1, direction === 'up' ? proxy.totalRow + count : proxy.totalRow - count)\n );\n proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2);\n proxy.rowUpdatePos = Math.min(proxy.rowUpdatePos, distStartRow);\n proxy.rowUpdateDirection = direction;\n\n proxy.table.scenegraph.updateNextFrame();\n if (proxy.table.heightMode !== 'autoHeight') {\n await proxy.progress();\n }\n } else {\n const distStartRow = direction === 'up' ? proxy.rowStart + count : proxy.rowStart - count;\n const distEndRow = direction === 'up' ? proxy.rowEnd + count : proxy.rowEnd - count;\n const distStartRowY = proxy.table.getRowsHeight(proxy.bodyTopRow, distStartRow - 1);\n\n let syncTopRow;\n let syncBottomRow;\n if (proxy.table.heightMode === 'autoHeight') {\n syncTopRow = distStartRow;\n syncBottomRow = distEndRow;\n } else {\n syncTopRow = Math.max(proxy.bodyTopRow, screenTopRow - proxy.screenRowCount * 1);\n syncBottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + proxy.screenRowCount * 2);\n }\n //console.log('更新同步范围', syncTopRow, syncBottomRow);\n\n computeRowsHeight(proxy.table, syncTopRow, syncBottomRow);\n\n // 更新同步范围\n updateAllRowPosition(distStartRowY, count, direction, proxy);\n\n proxy.rowStart = distStartRow;\n proxy.rowEnd = distEndRow;\n\n checkFirstRowMerge(syncTopRow, proxy);\n updateRowContent(syncTopRow, syncBottomRow, proxy);\n\n if (proxy.table.heightMode === 'autoHeight') {\n updateAutoRow(\n proxy.bodyLeftCol, // colStart\n proxy.bodyRightCol, // colEnd\n syncTopRow, // rowStart\n syncBottomRow, // rowEnd\n proxy.table,\n distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? 'down' : 'up' // 跳转到底部时,从下向上对齐\n );\n }\n proxy.table.scenegraph.proxy.deltaY = 0;\n\n proxy.currentRow = direction === 'up' ? proxy.currentRow + count : proxy.currentRow - count;\n proxy.totalRow = Math.max(\n 0,\n Math.min(proxy.table.rowCount - 1, direction === 'up' ? proxy.totalRow + count : proxy.totalRow - count)\n );\n proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2);\n proxy.rowUpdatePos = proxy.rowStart;\n proxy.rowUpdateDirection = distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? 'down' : 'up';\n\n proxy.table.scenegraph.updateNextFrame();\n if (proxy.table.heightMode !== 'autoHeight') {\n await proxy.progress();\n }\n }\n}\n\nfunction updatePartRowPosition(startRow: number, endRow: number, direction: 'up' | 'down', proxy: SceneProxy) {\n // row header group\n for (let col = 0; col < proxy.table.frozenColCount; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n if (!colGroup) {\n continue;\n }\n for (let row = startRow; row <= endRow; row++) {\n updateCellGroupPosition(colGroup, direction, proxy);\n }\n }\n // right frozen group\n for (let col = proxy.table.colCount - proxy.table.rightFrozenColCount; col < proxy.table.colCount; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n if (!colGroup) {\n continue;\n }\n for (let row = startRow; row <= endRow; row++) {\n updateCellGroupPosition(colGroup, direction, proxy);\n }\n }\n // body group\n for (let col = proxy.bodyLeftCol; col <= proxy.bodyRightCol; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n if (colGroup) {\n for (let row = startRow; row <= endRow; row++) {\n updateCellGroupPosition(colGroup, direction, proxy);\n }\n }\n }\n}\n\nfunction updateCellGroupPosition(colGroup: Group, direction: 'up' | 'down', proxy: SceneProxy) {\n if (direction === 'up') {\n const cellGroup = colGroup.firstChild as Group;\n proxy.updateCellGroupPosition(\n cellGroup,\n (colGroup.lastChild as Group).row + 1,\n (colGroup.lastChild as Group).attribute.y + proxy.table.getRowHeight((colGroup.lastChild as Group).row) // (colGroup.lastChild as Group).attribute.height\n );\n colGroup.appendChild(cellGroup);\n } else {\n const cellGroup = colGroup.lastChild as Group;\n proxy.updateCellGroupPosition(\n cellGroup,\n (colGroup.firstChild as Group).row - 1,\n (colGroup.firstChild as Group).attribute.y - proxy.table.getRowHeight((cellGroup as Group).row) // cellGroup.attribute.height\n );\n colGroup.insertBefore(cellGroup, colGroup.firstChild);\n }\n}\n\nfunction updateAllRowPosition(distStartRowY: number, count: number, direction: 'up' | 'down', proxy: SceneProxy) {\n // row header group\n for (let col = 0; col < proxy.table.frozenColCount; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n colGroup?.forEachChildren((cellGroup: Group, index) => {\n // 这里使用colGroup变量而不是for proxy.rowStart to proxy.rowEndproxy.rowEnd是因为在更新内可能出现row号码重复的情况\n proxy.updateCellGroupPosition(\n cellGroup,\n direction === 'up' ? cellGroup.row + count : cellGroup.row - count,\n index === 0 // row === proxy.rowStart\n ? distStartRowY\n : (cellGroup._prev as Group).attribute.y + proxy.table.getRowHeight((cellGroup._prev as Group).row)\n );\n });\n }\n // right frozen group\n for (let col = proxy.table.colCount - proxy.table.rightFrozenColCount; col < proxy.table.colCount; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n colGroup?.forEachChildren((cellGroup: Group, index) => {\n // 这里使用colGroup变量而不是for proxy.rowStart to proxy.rowEndproxy.rowEnd是因为在更新内可能出现row号码重复的情况\n proxy.updateCellGroupPosition(\n cellGroup,\n direction === 'up' ? cellGroup.row + count : cellGroup.row - count,\n index === 0 // row === proxy.rowStart\n ? distStartRowY\n : (cellGroup._prev as Group).attribute.y + proxy.table.getRowHeight((cellGroup._prev as Group).row)\n );\n });\n }\n // body group\n for (let col = proxy.bodyLeftCol; col <= proxy.bodyRightCol; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n colGroup?.forEachChildren((cellGroup: Group, index) => {\n // 这里使用colGroup变量而不是for proxy.rowStart to proxy.rowEndproxy.rowEnd是因为在更新内可能出现row号码重复的情况\n proxy.updateCellGroupPosition(\n cellGroup,\n direction === 'up' ? cellGroup.row + count : cellGroup.row - count,\n index === 0 // row === proxy.rowStart\n ? distStartRowY\n : (cellGroup._prev as Group).attribute.y + proxy.table.getRowHeight((cellGroup._prev as Group).row)\n );\n });\n }\n}\n\nexport function updateRowContent(syncTopRow: number, syncBottomRow: number, proxy: SceneProxy) {\n // row header group\n for (let col = 0; col < proxy.table.frozenColCount; col++) {\n for (let row = syncTopRow; row <= syncBottomRow; row++) {\n // const cellGroup = proxy.table.scenegraph.getCell(col, row);\n const cellGroup = proxy.highPerformanceGetCell(col, row, true);\n proxy.updateCellGroupContent(cellGroup);\n }\n }\n // right frozen group\n for (let col = proxy.table.colCount - proxy.table.rightFrozenColCount; col < proxy.table.colCount; col++) {\n for (let row = syncTopRow; row <= syncBottomRow; row++) {\n // const cellGroup = proxy.table.scenegraph.getCell(col, row);\n const cellGroup = proxy.highPerformanceGetCell(col, row);\n proxy.updateCellGroupContent(cellGroup);\n }\n }\n // body group\n for (let col = proxy.bodyLeftCol; col <= proxy.bodyRightCol; col++) {\n for (let row = syncTopRow; row <= syncBottomRow; row++) {\n // const cellGroup = proxy.table.scenegraph.getCell(col, row);\n const cellGroup = proxy.highPerformanceGetCell(col, row);\n proxy.updateCellGroupContent(cellGroup);\n }\n }\n proxy.table.scenegraph.updateNextFrame();\n}\n"]}
1
+ {"version":3,"sources":["scenegraph/group-creater/progress/update-position/dynamic-set-y.ts"],"names":[],"mappings":"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","file":"dynamic-set-y.js","sourcesContent":["import type { Group } from '../../../graphic/group';\nimport { computeRowsHeight } from '../../../layout/compute-row-height';\nimport type { SceneProxy } from '../proxy';\nimport { updateAutoRow } from './update-auto-row';\n\nexport async function dynamicSetY(y: number, proxy: SceneProxy) {\n // 计算变动row range\n // const screenTopRow = proxy.table.getRowAt(y).row;\n // proxy.deltaY = 0;\n const screenTop = (proxy.table as any).getTargetRowAt(y + proxy.table.scenegraph.colHeaderGroup.attribute.height);\n if (!screenTop) {\n return;\n }\n const screenTopRow = screenTop.row;\n const screenTopY = screenTop.top;\n proxy.screenTopRow = screenTopRow;\n const deltaRow = screenTopRow - proxy.referenceRow;\n if (deltaRow > 0) {\n // 向下滚动,顶部cell group移到底部\n moveCell(deltaRow, 'up', screenTopRow, screenTopY, proxy);\n proxy.updateBody(y - proxy.deltaY);\n } else if (deltaRow < 0) {\n // 向上滚动,底部cell group移到顶部\n moveCell(-deltaRow, 'down', screenTopRow, screenTopY, proxy);\n proxy.updateBody(y - proxy.deltaY);\n } else {\n // 不改变row,更新body group范围\n proxy.updateBody(y - proxy.deltaY);\n }\n\n // proxy.table.scenegraph.updateNextFrame();\n}\n\nasync function moveCell(\n count: number,\n direction: 'up' | 'down',\n screenTopRow: number,\n screenTopY: number,\n proxy: SceneProxy\n) {\n // 限制count范围\n if (direction === 'up' && proxy.rowEnd + count > proxy.bodyBottomRow) {\n count = proxy.bodyBottomRow - proxy.rowEnd;\n } else if (direction === 'down' && proxy.rowStart - count < proxy.bodyTopRow) {\n count = proxy.rowStart - proxy.bodyTopRow;\n }\n\n // 两种更新模式\n // 1. count < rowEnd - rowStart:从顶/底部移动count数量的单元格到底/顶部\n // 2. count >= rowEnd - rowStart:整体移动到目标位置\n if (count < proxy.rowEnd - proxy.rowStart) {\n // 计算更新区域\n const startRow = direction === 'up' ? proxy.rowStart : proxy.rowEnd - count + 1;\n const endRow = direction === 'up' ? proxy.rowStart + count - 1 : proxy.rowEnd;\n const distStartRow = direction === 'up' ? proxy.rowEnd + 1 : proxy.rowStart - count;\n const distEndRow = direction === 'up' ? proxy.rowEnd + count : proxy.rowStart - 1;\n\n // 更新同步范围\n let syncTopRow;\n let syncBottomRow;\n if (proxy.table.heightMode === 'autoHeight') {\n syncTopRow = distStartRow;\n syncBottomRow = distEndRow;\n } else {\n const topRow = Math.max(proxy.bodyTopRow, screenTopRow - proxy.screenRowCount * 1);\n const bottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + proxy.screenRowCount * 2);\n // get coincide of distStartRow&distEndRow and topRow&BottomRow\n // syncTopRow = Math.max(distStartRow, topRow);\n // syncBottomRow = Math.min(distEndRow, bottomRow);\n syncTopRow = topRow;\n syncBottomRow = bottomRow;\n }\n\n // const syncTopRow = Math.max(proxy.bodyTopRow, screenTopRow - proxy.screenRowCount * 1);\n // const syncBottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + proxy.screenRowCount * 2);\n computeRowsHeight(proxy.table, syncTopRow, syncBottomRow);\n\n // console.log('move', startRow, endRow, direction);\n updatePartRowPosition(startRow, endRow, direction, proxy);\n\n proxy.rowStart = direction === 'up' ? proxy.rowStart + count : proxy.rowStart - count;\n proxy.rowEnd = direction === 'up' ? proxy.rowEnd + count : proxy.rowEnd - count;\n\n updateRowContent(syncTopRow, syncBottomRow, proxy);\n\n if (proxy.table.heightMode === 'autoHeight') {\n updateAutoRow(\n proxy.bodyLeftCol, // colStart\n proxy.bodyRightCol, // colEnd\n syncTopRow, // rowStart\n syncBottomRow, // rowEnd\n proxy.table,\n direction\n );\n\n const cellGroup = proxy.table.scenegraph.highPerformanceGetCell(proxy.bodyLeftCol, screenTopRow, true);\n const delaY =\n screenTopY - (cellGroup.attribute.y + proxy.table.getFrozenRowsHeight() + proxy.table.scenegraph.proxy.deltaY);\n proxy.table.scenegraph.proxy.deltaY += delaY;\n }\n\n proxy.currentRow = direction === 'up' ? proxy.currentRow + count : proxy.currentRow - count;\n proxy.totalRow = Math.max(\n 0,\n Math.min(proxy.table.rowCount - 1, direction === 'up' ? proxy.totalRow + count : proxy.totalRow - count)\n );\n proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2);\n proxy.rowUpdatePos = Math.min(proxy.rowUpdatePos, distStartRow);\n proxy.rowUpdateDirection = direction;\n\n proxy.table.scenegraph.updateNextFrame();\n if (proxy.table.heightMode !== 'autoHeight') {\n await proxy.progress();\n }\n } else {\n const distStartRow = direction === 'up' ? proxy.rowStart + count : proxy.rowStart - count;\n const distEndRow = direction === 'up' ? proxy.rowEnd + count : proxy.rowEnd - count;\n const distStartRowY = proxy.table.getRowsHeight(proxy.bodyTopRow, distStartRow - 1);\n\n let syncTopRow;\n let syncBottomRow;\n if (proxy.table.heightMode === 'autoHeight') {\n syncTopRow = distStartRow;\n syncBottomRow = distEndRow;\n } else {\n syncTopRow = Math.max(proxy.bodyTopRow, screenTopRow - proxy.screenRowCount * 1);\n syncBottomRow = Math.min(proxy.bodyBottomRow, screenTopRow + proxy.screenRowCount * 2);\n }\n //console.log('更新同步范围', syncTopRow, syncBottomRow);\n\n computeRowsHeight(proxy.table, syncTopRow, syncBottomRow);\n\n // 更新同步范围\n updateAllRowPosition(distStartRowY, count, direction, proxy);\n\n proxy.rowStart = distStartRow;\n proxy.rowEnd = distEndRow;\n\n updateRowContent(syncTopRow, syncBottomRow, proxy);\n\n if (proxy.table.heightMode === 'autoHeight') {\n updateAutoRow(\n proxy.bodyLeftCol, // colStart\n proxy.bodyRightCol, // colEnd\n syncTopRow, // rowStart\n syncBottomRow, // rowEnd\n proxy.table,\n distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? 'down' : 'up' // 跳转到底部时,从下向上对齐\n );\n }\n proxy.table.scenegraph.proxy.deltaY = 0;\n\n proxy.currentRow = direction === 'up' ? proxy.currentRow + count : proxy.currentRow - count;\n proxy.totalRow = Math.max(\n 0,\n Math.min(proxy.table.rowCount - 1, direction === 'up' ? proxy.totalRow + count : proxy.totalRow - count)\n );\n proxy.referenceRow = proxy.rowStart + Math.floor((proxy.rowEnd - proxy.rowStart) / 2);\n proxy.rowUpdatePos = proxy.rowStart;\n proxy.rowUpdateDirection = distEndRow > proxy.bodyBottomRow - (proxy.rowEnd - proxy.rowStart + 1) ? 'down' : 'up';\n\n proxy.table.scenegraph.updateNextFrame();\n if (proxy.table.heightMode !== 'autoHeight') {\n await proxy.progress();\n }\n }\n}\n\nfunction updatePartRowPosition(startRow: number, endRow: number, direction: 'up' | 'down', proxy: SceneProxy) {\n // row header group\n for (let col = 0; col < proxy.table.frozenColCount; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n if (!colGroup) {\n continue;\n }\n for (let row = startRow; row <= endRow; row++) {\n updateCellGroupPosition(colGroup, direction, proxy);\n }\n }\n // right frozen group\n for (let col = proxy.table.colCount - proxy.table.rightFrozenColCount; col < proxy.table.colCount; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n if (!colGroup) {\n continue;\n }\n for (let row = startRow; row <= endRow; row++) {\n updateCellGroupPosition(colGroup, direction, proxy);\n }\n }\n // body group\n for (let col = proxy.bodyLeftCol; col <= proxy.bodyRightCol; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n if (colGroup) {\n for (let row = startRow; row <= endRow; row++) {\n updateCellGroupPosition(colGroup, direction, proxy);\n }\n }\n }\n}\n\nfunction updateCellGroupPosition(colGroup: Group, direction: 'up' | 'down', proxy: SceneProxy) {\n if (direction === 'up') {\n const cellGroup = colGroup.firstChild as Group;\n proxy.updateCellGroupPosition(\n cellGroup,\n (colGroup.lastChild as Group).row + 1,\n (colGroup.lastChild as Group).attribute.y + proxy.table.getRowHeight((colGroup.lastChild as Group).row) // (colGroup.lastChild as Group).attribute.height\n );\n colGroup.appendChild(cellGroup);\n } else {\n const cellGroup = colGroup.lastChild as Group;\n proxy.updateCellGroupPosition(\n cellGroup,\n (colGroup.firstChild as Group).row - 1,\n (colGroup.firstChild as Group).attribute.y - proxy.table.getRowHeight((cellGroup as Group).row) // cellGroup.attribute.height\n );\n colGroup.insertBefore(cellGroup, colGroup.firstChild);\n }\n}\n\nfunction updateAllRowPosition(distStartRowY: number, count: number, direction: 'up' | 'down', proxy: SceneProxy) {\n // row header group\n for (let col = 0; col < proxy.table.frozenColCount; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n colGroup?.forEachChildren((cellGroup: Group, index) => {\n // 这里使用colGroup变量而不是for proxy.rowStart to proxy.rowEndproxy.rowEnd是因为在更新内可能出现row号码重复的情况\n proxy.updateCellGroupPosition(\n cellGroup,\n direction === 'up' ? cellGroup.row + count : cellGroup.row - count,\n index === 0 // row === proxy.rowStart\n ? distStartRowY\n : (cellGroup._prev as Group).attribute.y + proxy.table.getRowHeight((cellGroup._prev as Group).row)\n );\n });\n }\n // right frozen group\n for (let col = proxy.table.colCount - proxy.table.rightFrozenColCount; col < proxy.table.colCount; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n colGroup?.forEachChildren((cellGroup: Group, index) => {\n // 这里使用colGroup变量而不是for proxy.rowStart to proxy.rowEndproxy.rowEnd是因为在更新内可能出现row号码重复的情况\n proxy.updateCellGroupPosition(\n cellGroup,\n direction === 'up' ? cellGroup.row + count : cellGroup.row - count,\n index === 0 // row === proxy.rowStart\n ? distStartRowY\n : (cellGroup._prev as Group).attribute.y + proxy.table.getRowHeight((cellGroup._prev as Group).row)\n );\n });\n }\n // body group\n for (let col = proxy.bodyLeftCol; col <= proxy.bodyRightCol; col++) {\n const colGroup = proxy.table.scenegraph.getColGroup(col);\n colGroup?.forEachChildren((cellGroup: Group, index) => {\n // 这里使用colGroup变量而不是for proxy.rowStart to proxy.rowEndproxy.rowEnd是因为在更新内可能出现row号码重复的情况\n proxy.updateCellGroupPosition(\n cellGroup,\n direction === 'up' ? cellGroup.row + count : cellGroup.row - count,\n index === 0 // row === proxy.rowStart\n ? distStartRowY\n : (cellGroup._prev as Group).attribute.y + proxy.table.getRowHeight((cellGroup._prev as Group).row)\n );\n });\n }\n}\n\nexport function updateRowContent(syncTopRow: number, syncBottomRow: number, proxy: SceneProxy) {\n // row header group\n for (let col = 0; col < proxy.table.frozenColCount; col++) {\n for (let row = syncTopRow; row <= syncBottomRow; row++) {\n // const cellGroup = proxy.table.scenegraph.getCell(col, row);\n const cellGroup = proxy.highPerformanceGetCell(col, row, true);\n proxy.updateCellGroupContent(cellGroup);\n }\n }\n // right frozen group\n for (let col = proxy.table.colCount - proxy.table.rightFrozenColCount; col < proxy.table.colCount; col++) {\n for (let row = syncTopRow; row <= syncBottomRow; row++) {\n // const cellGroup = proxy.table.scenegraph.getCell(col, row);\n const cellGroup = proxy.highPerformanceGetCell(col, row);\n proxy.updateCellGroupContent(cellGroup);\n }\n }\n // body group\n for (let col = proxy.bodyLeftCol; col <= proxy.bodyRightCol; col++) {\n for (let row = syncTopRow; row <= syncBottomRow; row++) {\n // const cellGroup = proxy.table.scenegraph.getCell(col, row);\n const cellGroup = proxy.highPerformanceGetCell(col, row);\n proxy.updateCellGroupContent(cellGroup);\n }\n }\n proxy.table.scenegraph.updateNextFrame();\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import type { Group } from '../graphic/group';
2
+ import type { Scenegraph } from '../scenegraph';
3
+ import type { ColumnIconOption, SortOrder } from '../../ts-types';
4
+ import type { Icon } from '../graphic/icon';
5
+ export declare function hideHoverIcon(col: number, row: number, scene: Scenegraph): void;
6
+ export declare function showHoverIcon(col: number, row: number, scene: Scenegraph): void;
7
+ export declare function hideClickIcon(col: number, row: number, scene: Scenegraph): void;
8
+ export declare function showClickIcon(col: number, row: number, scene: Scenegraph): void;
9
+ export declare function getIconByXY(col: number, row: number, x: number, y: number, scene: Scenegraph): Icon | undefined;
10
+ export declare function setIconHoverStyle(baseIcon: Icon, col: number, row: number, cellGroup: Group, scene: Scenegraph): void;
11
+ export declare function setIconNormalStyle(baseIcon: Icon, col: number, row: number, scene: Scenegraph): void;
12
+ export declare function updateIcon(baseIcon: Icon, iconConfig: ColumnIconOption, col: number, row: number, scene: Scenegraph): void;
13
+ export declare function updateSortIcon(col: number, row: number, iconMark: Icon, order: SortOrder, oldSortCol: number, oldSortRow: number, oldIconMark: Icon | undefined, scene: Scenegraph): void;
14
+ export declare function updateFrozenIcon(scene: Scenegraph): void;
15
+ export declare function updateHierarchyIcon(col: number, row: number, scene: Scenegraph): void;
16
+ export declare function updateCellGroupIcon(cellGroup: Group, filter: (icon: Icon) => boolean, dealer: (icon: Icon) => void): void;
17
+ export declare function updateCellRangeIcon(col: number, row: number, filter: (icon: Icon) => boolean, dealer: (icon: Icon) => void, scene: Scenegraph): void;
@@ -0,0 +1,154 @@
1
+ import { isValid } from "@visactor/vutils";
2
+
3
+ import { IconFuncTypeEnum } from "../../ts-types";
4
+
5
+ import { IContainPointMode, createRect } from "@visactor/vrender";
6
+
7
+ import { dealWithIcon } from "../utils/text-icon-layout";
8
+
9
+ export function hideHoverIcon(col, row, scene) {
10
+ -1 !== col && -1 !== row && (updateCellRangeIcon(col, row, (icon => "mouseenter_cell" === icon.attribute.visibleTime), (icon => {
11
+ icon.setAttribute("visible", !1);
12
+ }), scene), scene.updateNextFrame());
13
+ }
14
+
15
+ export function showHoverIcon(col, row, scene) {
16
+ -1 !== col && -1 !== row && (updateCellRangeIcon(col, row, (icon => "mouseenter_cell" === icon.attribute.visibleTime), (icon => {
17
+ icon.setAttribute("visible", !0);
18
+ }), scene), scene.updateNextFrame());
19
+ }
20
+
21
+ export function hideClickIcon(col, row, scene) {
22
+ -1 !== col && -1 !== row && (updateCellRangeIcon(col, row, (icon => "click_cell" === icon.attribute.visibleTime), (icon => {
23
+ icon.setAttribute("visible", !1);
24
+ }), scene), scene.updateNextFrame());
25
+ }
26
+
27
+ export function showClickIcon(col, row, scene) {
28
+ -1 !== col && -1 !== row && (updateCellRangeIcon(col, row, (icon => "click_cell" === icon.attribute.visibleTime), (icon => {
29
+ icon.setAttribute("visible", !0);
30
+ }), scene), scene.updateNextFrame());
31
+ }
32
+
33
+ export function getIconByXY(col, row, x, y, scene) {
34
+ let pickMark;
35
+ return scene.getCell(col, row).forEachChildren((mark => {
36
+ mark.role && mark.role.startsWith("icon") && mark.containsPoint(x, y, IContainPointMode.GLOBAL) && (pickMark = mark);
37
+ })), pickMark;
38
+ }
39
+
40
+ export function setIconHoverStyle(baseIcon, col, row, cellGroup, scene) {
41
+ var _a, _b;
42
+ if ((baseIcon.attribute.backgroundColor || baseIcon.attribute.hoverImage) && updateCellRangeIcon(col, row, (icon => icon.name === baseIcon.name), (icon => {
43
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
44
+ if (icon.attribute.backgroundColor) {
45
+ let iconBack = icon.parent.getChildByName("icon-back");
46
+ iconBack ? iconBack.setAttributes({
47
+ x: (null !== (_a = icon.attribute.x) && void 0 !== _a ? _a : 0) + (null !== (_b = icon.attribute.dx) && void 0 !== _b ? _b : 0) + (icon.AABBBounds.width() - icon.backgroundWidth) / 2,
48
+ y: (null !== (_c = icon.attribute.y) && void 0 !== _c ? _c : 0) + (icon.AABBBounds.height() - icon.backgroundHeight) / 2,
49
+ dx: null !== (_d = icon.attribute.dx) && void 0 !== _d ? _d : 0,
50
+ dy: null !== (_e = icon.attribute.dy) && void 0 !== _e ? _e : 0,
51
+ width: icon.backgroundWidth,
52
+ height: icon.backgroundHeight,
53
+ fill: icon.attribute.backgroundColor,
54
+ cornerRadius: 5,
55
+ visible: !0
56
+ }) : (iconBack = createRect({
57
+ x: (null !== (_f = icon.attribute.x) && void 0 !== _f ? _f : 0) + (null !== (_g = icon.attribute.dx) && void 0 !== _g ? _g : 0) + (icon.AABBBounds.width() - icon.backgroundWidth) / 2,
58
+ y: (null !== (_h = icon.attribute.y) && void 0 !== _h ? _h : 0) + (icon.AABBBounds.height() - icon.backgroundHeight) / 2,
59
+ dx: null !== (_j = icon.attribute.dx) && void 0 !== _j ? _j : 0,
60
+ dy: null !== (_k = icon.attribute.dy) && void 0 !== _k ? _k : 0,
61
+ width: icon.backgroundWidth,
62
+ height: icon.backgroundHeight,
63
+ fill: icon.attribute.backgroundColor,
64
+ cornerRadius: 5,
65
+ pickable: !1,
66
+ visible: !0
67
+ }), iconBack.name = "icon-back"), icon.parent.insertBefore(iconBack, icon);
68
+ }
69
+ icon.attribute.hoverImage && icon.attribute.image !== icon.attribute.hoverImage && (icon.image = icon.attribute.hoverImage);
70
+ }), scene), baseIcon.tooltip) {
71
+ const {x1: left, x2: right, y1: top, y2: bottom} = baseIcon.globalAABBBounds, tooltipOptions = {
72
+ content: baseIcon.tooltip.title,
73
+ referencePosition: {
74
+ rect: {
75
+ left: left,
76
+ right: right,
77
+ top: top,
78
+ bottom: bottom,
79
+ width: baseIcon.globalAABBBounds.width(),
80
+ height: baseIcon.globalAABBBounds.height()
81
+ },
82
+ placement: baseIcon.tooltip.placement
83
+ },
84
+ style: Object.assign({}, null === (_a = scene.table.internalProps.theme) || void 0 === _a ? void 0 : _a.tooltipStyle, null === (_b = baseIcon.tooltip) || void 0 === _b ? void 0 : _b.style)
85
+ };
86
+ scene.table.internalProps.tooltipHandler.isBinded(tooltipOptions) || scene.table.showTooltip(col, row, tooltipOptions);
87
+ }
88
+ }
89
+
90
+ export function setIconNormalStyle(baseIcon, col, row, scene) {
91
+ (baseIcon.attribute.backgroundColor || baseIcon.attribute.hoverImage) && updateCellRangeIcon(col, row, (icon => icon.name === baseIcon.name), (icon => {
92
+ const iconBack = icon.parent.getChildByName("icon-back");
93
+ iconBack && iconBack.setAttribute("visible", !1), icon.attribute.hoverImage && icon.attribute.image !== icon.attribute.originImage && (icon.image = icon.attribute.originImage);
94
+ }), scene);
95
+ }
96
+
97
+ export function updateIcon(baseIcon, iconConfig, col, row, scene) {
98
+ updateCellRangeIcon(col, row, (icon => icon.name === baseIcon.name), (icon => {
99
+ dealWithIcon(iconConfig, icon), icon.name = iconConfig.name;
100
+ }), scene), scene.updateNextFrame();
101
+ }
102
+
103
+ function resetSortIcon(oldSortCol, oldSortRow, iconConfig, scene) {
104
+ const oldSortCell = scene.getCell(oldSortCol, oldSortRow);
105
+ if (isValid(oldSortCell.mergeStartCol) && isValid(oldSortCell.mergeStartRow) && isValid(oldSortCell.mergeEndCol) && isValid(oldSortCell.mergeEndRow)) for (let col = oldSortCell.mergeStartCol; col <= oldSortCell.mergeEndCol; col++) for (let row = oldSortCell.mergeStartRow; row <= oldSortCell.mergeEndRow; row++) {
106
+ let oldIconMark;
107
+ scene.getCell(col, row).forEachChildren((mark => "sort" === mark.attribute.funcType && (oldIconMark = mark,
108
+ !0))), oldIconMark && (dealWithIcon(iconConfig, oldIconMark), oldIconMark.name = iconConfig.name);
109
+ } else {
110
+ let oldIconMark;
111
+ oldSortCell.forEachChildren((mark => "sort" === mark.attribute.funcType && (oldIconMark = mark,
112
+ !0))), oldIconMark && (dealWithIcon(iconConfig, oldIconMark), oldIconMark.name = iconConfig.name);
113
+ }
114
+ }
115
+
116
+ function checkSameCell(col1, row1, col2, row2, table) {
117
+ const range1 = table.getCellRange(col1, row1), range2 = table.getCellRange(col2, row2);
118
+ return range1.start.col === range2.start.col && range1.start.row === range2.start.row && range1.end.col === range2.end.col && range1.end.row === range2.end.row;
119
+ }
120
+
121
+ export function updateSortIcon(col, row, iconMark, order, oldSortCol, oldSortRow, oldIconMark, scene) {
122
+ const icon = scene.table.internalProps.headerHelper.getSortIcon(order, scene.table, col, row);
123
+ if (iconMark && updateIcon(iconMark, icon, col, row, scene), !checkSameCell(col, row, oldSortCol, oldSortRow, scene.table)) {
124
+ const oldIcon = scene.table.internalProps.headerHelper.getSortIcon("normal", scene.table, oldSortCol, oldSortRow);
125
+ oldIconMark ? updateIcon(oldIconMark, oldIcon, oldSortCol, oldSortRow, scene) : resetSortIcon(oldSortCol, oldSortRow, oldIcon, scene);
126
+ }
127
+ }
128
+
129
+ export function updateFrozenIcon(scene) {
130
+ for (let col = 0; col < scene.table.colCount; col++) for (let row = 0; row < scene.table.columnHeaderLevelCount; row++) updateCellRangeIcon(col, row, (icon => "frozen" === icon.attribute.funcType), (icon => {
131
+ const iconConfig = scene.table.internalProps.headerHelper.getFrozenIcon(col, row);
132
+ dealWithIcon(iconConfig, icon), icon.name = iconConfig.name;
133
+ }), scene);
134
+ }
135
+
136
+ export function updateHierarchyIcon(col, row, scene) {
137
+ let iconConfig;
138
+ iconConfig = scene.table.isHeader(col, row) ? scene.table.internalProps.headerHelper.getHierarchyIcon(col, row) : scene.table.internalProps.bodyHelper.getHierarchyIcon(col, row),
139
+ updateCellRangeIcon(col, row, (icon => icon.attribute.funcType === IconFuncTypeEnum.collapse || icon.attribute.funcType === IconFuncTypeEnum.expand), (icon => {
140
+ dealWithIcon(iconConfig, icon), icon.name = iconConfig.name;
141
+ }), scene);
142
+ }
143
+
144
+ export function updateCellGroupIcon(cellGroup, filter, dealer) {
145
+ cellGroup.forEachChildren((child => {
146
+ "group" === child.type ? updateCellGroupIcon(child, filter, dealer) : filter(child) && dealer(child);
147
+ }));
148
+ }
149
+
150
+ export function updateCellRangeIcon(col, row, filter, dealer, scene) {
151
+ const cellGroup = scene.getCell(col, row);
152
+ if (isValid(cellGroup.mergeStartCol) && isValid(cellGroup.mergeStartRow) && isValid(cellGroup.mergeEndCol) && isValid(cellGroup.mergeEndRow)) for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) updateCellGroupIcon(scene.getCell(col, row), filter, dealer); else updateCellGroupIcon(cellGroup, filter, dealer);
153
+ }
154
+ //# sourceMappingURL=icon-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/icon/icon-update.ts"],"names":[],"mappings":"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","file":"icon-update.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { Group } from '../graphic/group';\nimport type { Scenegraph } from '../scenegraph';\nimport type { ColumnIconOption, SortOrder, SvgIcon } from '../../ts-types';\nimport { IconFuncTypeEnum } from '../../ts-types';\nimport type { Icon } from '../graphic/icon';\nimport type { TooltipOptions } from '../../ts-types/tooltip';\nimport type { IRect } from '@visactor/vrender';\nimport { IContainPointMode, createRect } from '@visactor/vrender';\nimport { dealWithIcon } from '../utils/text-icon-layout';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function hideHoverIcon(col: number, row: number, scene: Scenegraph) {\n if (col === -1 || row === -1) {\n return;\n }\n // const cellGroup = scene.getCell(col, row);\n // hideIcon(scene, cellGroup, 'mouseenter_cell');\n\n // hideIcon\n updateCellRangeIcon(\n col,\n row,\n (icon: Icon) => icon.attribute.visibleTime === 'mouseenter_cell',\n (icon: Icon) => {\n icon.setAttribute('visible', false);\n },\n scene\n );\n scene.updateNextFrame();\n}\n\nexport function showHoverIcon(col: number, row: number, scene: Scenegraph) {\n if (col === -1 || row === -1) {\n return;\n }\n // const cellGroup = scene.getCell(col, row);\n // showIcon(scene, cellGroup, 'mouseenter_cell');\n\n // showIcon\n updateCellRangeIcon(\n col,\n row,\n (icon: Icon) => icon.attribute.visibleTime === 'mouseenter_cell',\n (icon: Icon) => {\n icon.setAttribute('visible', true);\n },\n scene\n );\n scene.updateNextFrame();\n}\n\nexport function hideClickIcon(col: number, row: number, scene: Scenegraph) {\n if (col === -1 || row === -1) {\n return;\n }\n // const cellGroup = scene.getCell(col, row);\n // hideIcon(scene, cellGroup, 'click_cell');\n\n // hideIcon\n updateCellRangeIcon(\n col,\n row,\n (icon: Icon) => icon.attribute.visibleTime === 'click_cell',\n (icon: Icon) => {\n icon.setAttribute('visible', false);\n },\n scene\n );\n scene.updateNextFrame();\n}\n\nexport function showClickIcon(col: number, row: number, scene: Scenegraph) {\n if (col === -1 || row === -1) {\n return;\n }\n // const cellGroup = scene.getCell(col, row);\n // showIcon(scene, cellGroup, 'click_cell');\n\n // showIcon\n updateCellRangeIcon(\n col,\n row,\n (icon: Icon) => icon.attribute.visibleTime === 'click_cell',\n (icon: Icon) => {\n icon.setAttribute('visible', true);\n },\n scene\n );\n scene.updateNextFrame();\n}\n\n/**\n * @description: 获取指定单元格指定位置的icon mark\n * @param {number} col\n * @param {number} row\n * @param {number} x\n * @param {number} y\n * @return {*}\n */\nexport function getIconByXY(col: number, row: number, x: number, y: number, scene: Scenegraph): Icon | undefined {\n const cellGroup = scene.getCell(col, row);\n let pickMark;\n cellGroup.forEachChildren((mark: Icon) => {\n if (mark.role && mark.role.startsWith('icon') && mark.containsPoint(x, y, IContainPointMode.GLOBAL)) {\n pickMark = mark;\n }\n });\n return pickMark;\n}\n\n/**\n * @description: 将指定icon mark设置为Hover样式\n * @param {Icon} icon\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function setIconHoverStyle(baseIcon: Icon, col: number, row: number, cellGroup: Group, scene: Scenegraph) {\n if (baseIcon.attribute.backgroundColor || baseIcon.attribute.hoverImage) {\n updateCellRangeIcon(\n col,\n row,\n // filter\n (icon: Icon) => icon.name === baseIcon.name,\n (icon: Icon) => {\n // hover展示背景\n if (icon.attribute.backgroundColor) {\n let iconBack = icon.parent.getChildByName('icon-back') as IRect;\n if (iconBack) {\n iconBack.setAttributes({\n x:\n (icon.attribute.x ?? 0) +\n (icon.attribute.dx ?? 0) +\n (icon.AABBBounds.width() - icon.backgroundWidth) / 2,\n y: (icon.attribute.y ?? 0) + (icon.AABBBounds.height() - icon.backgroundHeight) / 2,\n dx: icon.attribute.dx ?? 0,\n dy: icon.attribute.dy ?? 0,\n width: icon.backgroundWidth,\n height: icon.backgroundHeight,\n fill: icon.attribute.backgroundColor,\n cornerRadius: 5,\n visible: true\n });\n } else {\n iconBack = createRect({\n x:\n (icon.attribute.x ?? 0) +\n (icon.attribute.dx ?? 0) +\n (icon.AABBBounds.width() - icon.backgroundWidth) / 2,\n y: (icon.attribute.y ?? 0) + (icon.AABBBounds.height() - icon.backgroundHeight) / 2,\n dx: icon.attribute.dx ?? 0,\n dy: icon.attribute.dy ?? 0,\n width: icon.backgroundWidth,\n height: icon.backgroundHeight,\n fill: icon.attribute.backgroundColor,\n cornerRadius: 5,\n pickable: false,\n visible: true\n }) as IRect;\n iconBack.name = 'icon-back';\n // cellGroup.appendChild(iconBack);\n }\n icon.parent.insertBefore(iconBack, icon);\n }\n\n // hover更换图片\n if (icon.attribute.hoverImage && icon.attribute.image !== icon.attribute.hoverImage) {\n icon.image = icon.attribute.hoverImage;\n }\n },\n scene\n );\n }\n // hover展示tooltip\n if (baseIcon.tooltip) {\n const { x1: left, x2: right, y1: top, y2: bottom } = baseIcon.globalAABBBounds;\n const tooltipOptions: TooltipOptions = {\n content: baseIcon.tooltip.title,\n referencePosition: {\n rect: {\n left: left,\n right: right,\n top: top,\n bottom: bottom,\n width: baseIcon.globalAABBBounds.width(),\n height: baseIcon.globalAABBBounds.height()\n },\n placement: baseIcon.tooltip.placement\n },\n style: Object.assign({}, scene.table.internalProps.theme?.tooltipStyle, baseIcon.tooltip?.style)\n };\n if (!scene.table.internalProps.tooltipHandler.isBinded(tooltipOptions)) {\n scene.table.showTooltip(col, row, tooltipOptions);\n }\n }\n}\n\n/**\n * @description: 将指定icon mark设置为Normal样式\n * @param {Icon} icon\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function setIconNormalStyle(baseIcon: Icon, col: number, row: number, scene: Scenegraph) {\n if (baseIcon.attribute.backgroundColor || baseIcon.attribute.hoverImage) {\n updateCellRangeIcon(\n col,\n row,\n // filter\n (icon: Icon) => icon.name === baseIcon.name,\n (icon: Icon) => {\n const iconBack = icon.parent.getChildByName('icon-back') as IRect;\n if (iconBack) {\n iconBack.setAttribute('visible', false);\n }\n\n // hover更换图片\n if (icon.attribute.hoverImage && icon.attribute.image !== icon.attribute.originImage) {\n icon.image = icon.attribute.originImage;\n }\n },\n scene\n );\n }\n}\n\nexport function updateIcon(baseIcon: Icon, iconConfig: ColumnIconOption, col: number, row: number, scene: Scenegraph) {\n // 直接更新mark attribute\n // dealWithIcon(iconConfig, icon);\n // icon.name = iconConfig.name;\n // scene.updateNextFrame();\n\n updateCellRangeIcon(\n col,\n row,\n // filter\n (icon: Icon) => icon.name === baseIcon.name,\n // dealer\n (icon: Icon) => {\n dealWithIcon(iconConfig, icon);\n icon.name = iconConfig.name;\n },\n scene\n );\n\n scene.updateNextFrame();\n}\n\nfunction resetSortIcon(oldSortCol: number, oldSortRow: number, iconConfig: ColumnIconOption, scene: Scenegraph) {\n const oldSortCell = scene.getCell(oldSortCol, oldSortRow);\n if (\n isValid(oldSortCell.mergeStartCol) &&\n isValid(oldSortCell.mergeStartRow) &&\n isValid(oldSortCell.mergeEndCol) &&\n isValid(oldSortCell.mergeEndRow)\n ) {\n for (let col = oldSortCell.mergeStartCol; col <= oldSortCell.mergeEndCol; col++) {\n for (let row = oldSortCell.mergeStartRow; row <= oldSortCell.mergeEndRow; row++) {\n let oldIconMark: Icon;\n scene.getCell(col, row).forEachChildren((mark: Icon) => {\n if (mark.attribute.funcType === 'sort') {\n oldIconMark = mark;\n return true;\n }\n return false;\n });\n if (oldIconMark) {\n dealWithIcon(iconConfig, oldIconMark);\n oldIconMark.name = iconConfig.name;\n }\n }\n }\n } else {\n let oldIconMark: Icon;\n oldSortCell.forEachChildren((mark: Icon) => {\n if (mark.attribute.funcType === 'sort') {\n oldIconMark = mark;\n return true;\n }\n return false;\n });\n if (oldIconMark) {\n // updateIcon(oldIconMark, oldIcon);\n dealWithIcon(iconConfig, oldIconMark);\n oldIconMark.name = iconConfig.name;\n }\n }\n}\n\nfunction checkSameCell(col1: number, row1: number, col2: number, row2: number, table: BaseTableAPI) {\n const range1 = table.getCellRange(col1, row1);\n const range2 = table.getCellRange(col2, row2);\n if (\n range1.start.col === range2.start.col &&\n range1.start.row === range2.start.row &&\n range1.end.col === range2.end.col &&\n range1.end.row === range2.end.row\n ) {\n return true;\n }\n return false;\n}\n\nexport function updateSortIcon(\n col: number,\n row: number,\n iconMark: Icon,\n order: SortOrder,\n oldSortCol: number,\n oldSortRow: number,\n oldIconMark: Icon | undefined,\n scene: Scenegraph\n) {\n // 更新icon\n const icon = scene.table.internalProps.headerHelper.getSortIcon(order, scene.table, col, row);\n if (iconMark) {\n updateIcon(iconMark, icon, col, row, scene);\n }\n\n // 更新旧frozen icon\n if (!checkSameCell(col, row, oldSortCol, oldSortRow, scene.table)) {\n const oldIcon = scene.table.internalProps.headerHelper.getSortIcon('normal', scene.table, oldSortCol, oldSortRow);\n if (oldIconMark) {\n updateIcon(oldIconMark, oldIcon, oldSortCol, oldSortRow, scene);\n } else {\n resetSortIcon(oldSortCol, oldSortRow, oldIcon, scene);\n }\n }\n}\n\nexport function updateFrozenIcon(scene: Scenegraph) {\n // 依据新旧冻结列确定更新范围\n for (let col = 0; col < scene.table.colCount; col++) {\n for (let row = 0; row < scene.table.columnHeaderLevelCount; row++) {\n updateCellRangeIcon(\n col,\n row,\n // filter\n (icon: Icon) => icon.attribute.funcType === 'frozen',\n // dealer\n (icon: Icon) => {\n const iconConfig = scene.table.internalProps.headerHelper.getFrozenIcon(col, row);\n dealWithIcon(iconConfig, icon);\n icon.name = iconConfig.name;\n },\n scene\n );\n }\n }\n}\n\nexport function updateHierarchyIcon(col: number, row: number, scene: Scenegraph) {\n let iconConfig: SvgIcon;\n if (scene.table.isHeader(col, row)) {\n iconConfig = scene.table.internalProps.headerHelper.getHierarchyIcon(col, row);\n } else {\n iconConfig = scene.table.internalProps.bodyHelper.getHierarchyIcon(col, row);\n }\n\n updateCellRangeIcon(\n col,\n row,\n // filter\n (icon: Icon) =>\n icon.attribute.funcType === IconFuncTypeEnum.collapse || icon.attribute.funcType === IconFuncTypeEnum.expand,\n // dealer\n (icon: Icon) => {\n dealWithIcon(iconConfig, icon);\n icon.name = iconConfig.name;\n },\n scene\n );\n}\n\nexport function updateCellGroupIcon(cellGroup: Group, filter: (icon: Icon) => boolean, dealer: (icon: Icon) => void) {\n cellGroup.forEachChildren((child: any) => {\n if (child.type === 'group') {\n updateCellGroupIcon(child, filter, dealer);\n } else if (filter(child)) {\n dealer(child);\n }\n });\n}\n\nexport function updateCellRangeIcon(\n col: number,\n row: number,\n filter: (icon: Icon) => boolean,\n dealer: (icon: Icon) => void,\n scene: Scenegraph\n) {\n const cellGroup = scene.getCell(col, row);\n if (\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) {\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n updateCellGroupIcon(scene.getCell(col, row), filter, dealer);\n }\n }\n } else {\n updateCellGroupIcon(cellGroup, filter, dealer);\n }\n}\n"]}
@@ -14,6 +14,8 @@ import { computeAxisComponentWidth } from "../../components/axis/get-axis-compon
14
14
 
15
15
  import { Group as VGroup } from "@visactor/vrender";
16
16
 
17
+ import { isObject } from "@visactor/vutils";
18
+
17
19
  import { decodeReactDom } from "../component/custom";
18
20
 
19
21
  export function computeColsWidth(table, colStart, colEnd, update) {
@@ -105,7 +107,7 @@ function computeAutoColWidth(widthDeifne, col, startRow, endRow, forceCompute, t
105
107
  continue;
106
108
  }
107
109
  const cellType = table.isHeader(col, row) ? null === (_a = table._getHeaderLayoutMap(col, row)) || void 0 === _a ? void 0 : _a.headerType : table.getBodyColumnType(col, row);
108
- if ("text" !== cellType && "link" !== cellType && "progressbar" !== cellType) {
110
+ if ("text" !== cellType && "link" !== cellType && "progressbar" !== cellType && "checkbox" !== cellType) {
109
111
  maxWidth = Math.max(maxWidth, table.getColWidthDefinedNumber(col) || 0);
110
112
  continue;
111
113
  }
@@ -122,7 +124,7 @@ function computeAutoColWidth(widthDeifne, col, startRow, endRow, forceCompute, t
122
124
  cellHierarchyIndent = Array.isArray(indexArr) && table.getHierarchyState(col, row) !== HierarchyState.none ? (indexArr.length - 1) * (null !== (_e = layoutMap.hierarchyIndent) && void 0 !== _e ? _e : 0) : 0;
123
125
  }
124
126
  }
125
- const textWidth = computeTextWidth(col, row, table);
127
+ const textWidth = computeTextWidth(col, row, cellType, table);
126
128
  maxWidth = Math.max(textWidth + cellHierarchyIndent, maxWidth);
127
129
  }
128
130
  const colMinWidth = table.getMinColWidth(col), colMaxWidth = table.getMaxColWidth(col);
@@ -130,7 +132,7 @@ function computeAutoColWidth(widthDeifne, col, startRow, endRow, forceCompute, t
130
132
  }
131
133
 
132
134
  function computeCustomRenderWidth(col, row, table) {
133
- var _a, _b, _c, _d, _e;
135
+ var _a, _b, _c, _d;
134
136
  const customRender = table.getCustomRender(col, row), customLayout = table.getCustomLayout(col, row);
135
137
  if (customRender || customLayout) {
136
138
  let spanCol = 1, width = 0;
@@ -148,15 +150,12 @@ function computeCustomRenderWidth(col, row, table) {
148
150
  };
149
151
  if (customLayout) {
150
152
  const customLayoutObj = customLayout(arg);
151
- if (customLayoutObj.rootContainer && (customLayoutObj.rootContainer = decodeReactDom(customLayoutObj.rootContainer)),
152
- customLayoutObj.rootContainer instanceof VGroup) width = null !== (_b = customLayoutObj.rootContainer.AABBBounds.width()) && void 0 !== _b ? _b : 0; else if (customLayoutObj.rootContainer) {
153
- customLayoutObj.rootContainer.isRoot = !0;
154
- width = null !== (_c = customLayoutObj.rootContainer.getContentSize().width) && void 0 !== _c ? _c : 0;
155
- } else width = 0;
153
+ customLayoutObj.rootContainer && (customLayoutObj.rootContainer = decodeReactDom(customLayoutObj.rootContainer)),
154
+ width = customLayoutObj.rootContainer instanceof VGroup && null !== (_b = customLayoutObj.rootContainer.AABBBounds.width()) && void 0 !== _b ? _b : 0;
156
155
  } else if ("function" == typeof customRender) {
157
156
  const customRenderObj = customRender(arg);
158
- width = null !== (_d = null == customRenderObj ? void 0 : customRenderObj.expectedWidth) && void 0 !== _d ? _d : 0;
159
- } else width = null !== (_e = null == customRender ? void 0 : customRender.expectedWidth) && void 0 !== _e ? _e : 0;
157
+ width = null !== (_c = null == customRenderObj ? void 0 : customRenderObj.expectedWidth) && void 0 !== _c ? _c : 0;
158
+ } else width = null !== (_d = null == customRender ? void 0 : customRender.expectedWidth) && void 0 !== _d ? _d : 0;
160
159
  return width / spanCol;
161
160
  }
162
161
  }
@@ -171,7 +170,7 @@ function computeIndicatorWidth(col, row, forceCompute, table) {
171
170
  }
172
171
  }
173
172
 
174
- function computeTextWidth(col, row, table) {
173
+ function computeTextWidth(col, row, cellType, table) {
175
174
  var _a;
176
175
  let maxWidth = 0;
177
176
  const cellValue = table.getCellValue(col, row), actStyle = table._getCellStyle(col, row);
@@ -189,8 +188,11 @@ function computeTextWidth(col, row, table) {
189
188
  const cellRange = table.getCellRange(col, row);
190
189
  spanCol = cellRange.end.col - cellRange.start.col + 1;
191
190
  }
192
- const padding = getQuadProps(getProp("padding", actStyle, col, row, table)), paddingWidth = padding[1] + padding[3], fontSize = getProp("fontSize", actStyle, col, row, table), fontFamily = getProp("fontFamily", actStyle, col, row, table), fontWeight = getProp("fontWeight", actStyle, col, row, table), lines = validToString(cellValue).split("\n") || [];
193
- return lines.length >= 1 ? lines.forEach((line => {
191
+ const padding = getQuadProps(getProp("padding", actStyle, col, row, table)), paddingWidth = padding[1] + padding[3], fontSize = getProp("fontSize", actStyle, col, row, table), fontFamily = getProp("fontFamily", actStyle, col, row, table), fontWeight = getProp("fontWeight", actStyle, col, row, table);
192
+ let text;
193
+ text = "checkbox" === cellType && isObject(cellValue) ? cellValue.text : cellValue;
194
+ const lines = validToString(text).split("\n") || [];
195
+ if (lines.length >= 1 ? lines.forEach((line => {
194
196
  const width = table.measureText(line.slice(0, table.options.maxCharactersNumber || 200), {
195
197
  fontSize: fontSize,
196
198
  fontFamily: fontFamily,
@@ -198,7 +200,14 @@ function computeTextWidth(col, row, table) {
198
200
  }).width;
199
201
  maxWidth = Math.max((width + paddingWidth + 4 + iconWidth) / spanCol, maxWidth);
200
202
  })) : maxWidth = Math.max((paddingWidth + 4 + iconWidth) / spanCol, maxWidth), !1 !== table.internalProps.limitMaxAutoWidth && (maxWidth = Math.min("number" == typeof table.internalProps.limitMaxAutoWidth ? table.internalProps.limitMaxAutoWidth : 450, maxWidth)),
201
- maxWidth;
203
+ "checkbox" === cellType) {
204
+ const size = getProp("size", actStyle, col, row, table);
205
+ if (maxWidth += size, text) {
206
+ const spaceBetweenTextAndIcon = getProp("spaceBetweenTextAndIcon", actStyle, col, row, table);
207
+ maxWidth += spaceBetweenTextAndIcon;
208
+ }
209
+ }
210
+ return maxWidth;
202
211
  }
203
212
 
204
213
  function getCellRect(col, row, table) {