@visactor/vtable 0.18.0-alpha.0 → 0.18.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/cjs/ListTable.d.ts +3 -0
  2. package/cjs/ListTable.js +74 -16
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.d.ts +2 -4
  5. package/cjs/PivotChart.js +42 -17
  6. package/cjs/PivotChart.js.map +1 -1
  7. package/cjs/PivotTable.d.ts +5 -0
  8. package/cjs/PivotTable.js +109 -14
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/body-helper/body-helper.js +2 -1
  11. package/cjs/body-helper/body-helper.js.map +1 -1
  12. package/cjs/components/axis/axis.js +4 -1
  13. package/cjs/components/axis/axis.js.map +1 -1
  14. package/cjs/components/axis/get-axis-attributes.d.ts +1 -0
  15. package/cjs/components/axis/get-axis-attributes.js +2 -1
  16. package/cjs/components/axis/get-axis-attributes.js.map +1 -1
  17. package/cjs/components/axis/label-overlap.js.map +1 -1
  18. package/cjs/components/axis/linear-scale.js +1 -0
  19. package/cjs/components/axis/linear-scale.js.map +1 -1
  20. package/cjs/components/tooltip/TooltipHandler.js +2 -5
  21. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  22. package/cjs/core/BaseTable.d.ts +24 -4
  23. package/cjs/core/BaseTable.js +83 -52
  24. package/cjs/core/BaseTable.js.map +1 -1
  25. package/cjs/core/style.js +1 -2
  26. package/cjs/core/tableHelper.d.ts +3 -2
  27. package/cjs/core/tableHelper.js +20 -7
  28. package/cjs/core/tableHelper.js.map +1 -1
  29. package/cjs/dataset/dataset.js +8 -13
  30. package/cjs/dataset/dataset.js.map +1 -1
  31. package/cjs/edit/edit-manager.d.ts +1 -1
  32. package/cjs/edit/edit-manager.js +9 -12
  33. package/cjs/edit/edit-manager.js.map +1 -1
  34. package/cjs/event/EventHandler.d.ts +1 -0
  35. package/cjs/event/EventHandler.js +1 -1
  36. package/cjs/event/EventHandler.js.map +1 -1
  37. package/cjs/event/event.d.ts +12 -1
  38. package/cjs/event/event.js +8 -3
  39. package/cjs/event/event.js.map +1 -1
  40. package/cjs/event/listener/container-dom.js +51 -8
  41. package/cjs/event/listener/container-dom.js.map +1 -1
  42. package/cjs/event/listener/scroll-bar.js +24 -8
  43. package/cjs/event/listener/scroll-bar.js.map +1 -1
  44. package/cjs/event/listener/table-group.js +50 -42
  45. package/cjs/event/listener/table-group.js.map +1 -1
  46. package/cjs/event/listener/touch.js.map +1 -1
  47. package/cjs/event/media-click.js +5 -2
  48. package/cjs/event/media-click.js.map +1 -1
  49. package/cjs/event/pivot-chart/axis-click.js.map +1 -1
  50. package/cjs/event/scroll.js +1 -0
  51. package/cjs/event/util.d.ts +1 -1
  52. package/cjs/event/util.js.map +1 -1
  53. package/cjs/index.d.ts +5 -2
  54. package/cjs/index.js +29 -2
  55. package/cjs/index.js.map +1 -1
  56. package/cjs/layout/chart-helper/get-chart-spec.d.ts +1 -0
  57. package/cjs/layout/chart-helper/get-chart-spec.js +13 -2
  58. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  59. package/cjs/layout/pivot-header-layout.d.ts +5 -4
  60. package/cjs/layout/pivot-header-layout.js +20 -16
  61. package/cjs/layout/pivot-header-layout.js.map +1 -1
  62. package/cjs/layout/pivot-layout-helper.d.ts +1 -0
  63. package/cjs/layout/pivot-layout-helper.js +16 -6
  64. package/cjs/layout/pivot-layout-helper.js.map +1 -1
  65. package/cjs/layout/simple-header-layout.d.ts +6 -4
  66. package/cjs/layout/simple-header-layout.js +44 -13
  67. package/cjs/layout/simple-header-layout.js.map +1 -1
  68. package/cjs/render/jsx/index.d.ts +2 -3
  69. package/cjs/render/jsx/index.js +1 -1
  70. package/cjs/render/jsx/index.js.map +1 -1
  71. package/cjs/render/layout/arc.d.ts +2 -2
  72. package/cjs/render/layout/arc.js +1 -1
  73. package/cjs/render/layout/arc.js.map +1 -1
  74. package/cjs/render/layout/circle.d.ts +2 -2
  75. package/cjs/render/layout/circle.js +1 -1
  76. package/cjs/render/layout/circle.js.map +1 -1
  77. package/cjs/render/layout/container.d.ts +2 -2
  78. package/cjs/render/layout/container.js +1 -1
  79. package/cjs/render/layout/container.js.map +1 -1
  80. package/cjs/render/layout/group.d.ts +2 -2
  81. package/cjs/render/layout/group.js +1 -1
  82. package/cjs/render/layout/group.js.map +1 -1
  83. package/cjs/render/layout/icon.d.ts +2 -2
  84. package/cjs/render/layout/icon.js +1 -1
  85. package/cjs/render/layout/icon.js.map +1 -1
  86. package/cjs/render/layout/image.d.ts +2 -2
  87. package/cjs/render/layout/image.js +1 -1
  88. package/cjs/render/layout/image.js.map +1 -1
  89. package/cjs/render/layout/rect.d.ts +2 -2
  90. package/cjs/render/layout/rect.js +1 -1
  91. package/cjs/render/layout/rect.js.map +1 -1
  92. package/cjs/render/layout/text.d.ts +3 -3
  93. package/cjs/render/layout/text.js +2 -2
  94. package/cjs/render/layout/text.js.map +1 -1
  95. package/cjs/scenegraph/component/cell-content.d.ts +4 -4
  96. package/cjs/scenegraph/component/cell-content.js +7 -6
  97. package/cjs/scenegraph/component/cell-content.js.map +1 -1
  98. package/cjs/scenegraph/component/cell-mover.d.ts +1 -1
  99. package/cjs/scenegraph/component/cell-mover.js +1 -1
  100. package/cjs/scenegraph/component/cell-mover.js.map +1 -1
  101. package/cjs/scenegraph/component/custom.d.ts +1 -1
  102. package/cjs/scenegraph/component/custom.js +34 -17
  103. package/cjs/scenegraph/component/custom.js.map +1 -1
  104. package/cjs/scenegraph/component/drill-icon.js.map +1 -1
  105. package/cjs/scenegraph/component/menu.d.ts +1 -1
  106. package/cjs/scenegraph/component/menu.js +1 -1
  107. package/cjs/scenegraph/component/menu.js.map +1 -1
  108. package/cjs/scenegraph/component/table-component.d.ts +1 -1
  109. package/cjs/scenegraph/component/table-component.js +13 -12
  110. package/cjs/scenegraph/component/table-component.js.map +1 -1
  111. package/cjs/scenegraph/debug-tool/debug-tool.d.ts +1 -1
  112. package/cjs/scenegraph/debug-tool/debug-tool.js +1 -1
  113. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
  114. package/cjs/scenegraph/debug-tool/index.d.ts +1 -1
  115. package/cjs/scenegraph/debug-tool/index.js.map +1 -1
  116. package/cjs/scenegraph/graphic/chart.d.ts +2 -2
  117. package/cjs/scenegraph/graphic/chart.js +12 -5
  118. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  119. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +5 -5
  120. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  121. package/cjs/scenegraph/graphic/contributions/chart-render.d.ts +1 -1
  122. package/cjs/scenegraph/graphic/contributions/chart-render.js +1 -1
  123. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  124. package/cjs/scenegraph/graphic/contributions/group-contribution-render.d.ts +18 -3
  125. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +62 -6
  126. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  127. package/cjs/scenegraph/graphic/contributions/image-contribution-render.d.ts +2 -2
  128. package/cjs/scenegraph/graphic/contributions/image-contribution-render.js +1 -1
  129. package/cjs/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -1
  130. package/cjs/scenegraph/graphic/contributions/index.d.ts +1 -1
  131. package/cjs/scenegraph/graphic/contributions/index.js +6 -2
  132. package/cjs/scenegraph/graphic/contributions/index.js.map +1 -1
  133. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.d.ts +2 -2
  134. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +2 -2
  135. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  136. package/cjs/scenegraph/graphic/group.d.ts +4 -2
  137. package/cjs/scenegraph/graphic/group.js +4 -2
  138. package/cjs/scenegraph/graphic/group.js.map +1 -1
  139. package/cjs/scenegraph/graphic/icon.d.ts +2 -2
  140. package/cjs/scenegraph/graphic/icon.js +1 -1
  141. package/cjs/scenegraph/graphic/icon.js.map +1 -1
  142. package/cjs/scenegraph/graphic/text.d.ts +2 -2
  143. package/cjs/scenegraph/graphic/text.js +2 -2
  144. package/cjs/scenegraph/graphic/text.js.map +1 -1
  145. package/cjs/scenegraph/group-creater/cell-helper.d.ts +1 -1
  146. package/cjs/scenegraph/group-creater/cell-helper.js +16 -11
  147. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  148. package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
  149. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
  150. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  151. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +1 -1
  152. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -3
  153. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  154. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
  155. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +44 -19
  156. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  157. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +1 -1
  158. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  159. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +1 -1
  160. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +3 -2
  161. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  162. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  163. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +3 -2
  164. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  165. package/cjs/scenegraph/group-creater/cell-type/video-cell.d.ts +1 -1
  166. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +3 -2
  167. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  168. package/cjs/scenegraph/group-creater/column-helper.d.ts +5 -2
  169. package/cjs/scenegraph/group-creater/column-helper.js +8 -3
  170. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  171. package/cjs/scenegraph/group-creater/init-scenegraph.js +11 -11
  172. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  173. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +4 -3
  174. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  175. package/cjs/scenegraph/group-creater/progress/proxy.js +7 -6
  176. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  177. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +2 -2
  178. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  179. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +4 -3
  180. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  181. package/cjs/scenegraph/icon/icon-update.d.ts +2 -0
  182. package/cjs/scenegraph/icon/icon-update.js +19 -4
  183. package/cjs/scenegraph/icon/icon-update.js.map +1 -1
  184. package/cjs/scenegraph/layout/compute-col-width.js +12 -9
  185. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  186. package/cjs/scenegraph/layout/compute-row-height.js +24 -14
  187. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  188. package/cjs/scenegraph/layout/frozen.js +3 -1
  189. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  190. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  191. package/cjs/scenegraph/layout/update-col.js +6 -5
  192. package/cjs/scenegraph/layout/update-col.js.map +1 -1
  193. package/cjs/scenegraph/layout/update-height.d.ts +1 -1
  194. package/cjs/scenegraph/layout/update-height.js +7 -5
  195. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  196. package/cjs/scenegraph/layout/update-row.js +50 -14
  197. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  198. package/cjs/scenegraph/layout/update-width.d.ts +1 -1
  199. package/cjs/scenegraph/layout/update-width.js +12 -11
  200. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  201. package/cjs/scenegraph/refresh-node/update-chart.js +11 -1
  202. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  203. package/cjs/scenegraph/scenegraph.d.ts +7 -3
  204. package/cjs/scenegraph/scenegraph.js +54 -60
  205. package/cjs/scenegraph/scenegraph.js.map +1 -1
  206. package/cjs/scenegraph/select/create-select-border.js +1 -1
  207. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  208. package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
  209. package/cjs/scenegraph/select/update-select-border.js +34 -17
  210. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  211. package/cjs/scenegraph/stick-text/index.js +9 -4
  212. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  213. package/cjs/scenegraph/style/corner-cell.js.map +1 -1
  214. package/cjs/scenegraph/style/frame-border.d.ts +3 -1
  215. package/cjs/scenegraph/style/frame-border.js +21 -3
  216. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  217. package/cjs/scenegraph/utils/get-cell-merge.js +1 -1
  218. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
  219. package/cjs/scenegraph/utils/padding.js +1 -1
  220. package/cjs/scenegraph/utils/padding.js.map +1 -1
  221. package/cjs/scenegraph/utils/render-service.d.ts +1 -1
  222. package/cjs/scenegraph/utils/render-service.js +1 -1
  223. package/cjs/scenegraph/utils/render-service.js.map +1 -1
  224. package/cjs/scenegraph/utils/text-icon-layout.d.ts +1 -1
  225. package/cjs/scenegraph/utils/text-icon-layout.js +13 -10
  226. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  227. package/cjs/scenegraph/utils/text-measure.d.ts +2 -2
  228. package/cjs/scenegraph/utils/text-measure.js +1 -1
  229. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  230. package/cjs/scenegraph/utils/text-pos.d.ts +1 -1
  231. package/cjs/scenegraph/utils/text-pos.js.map +1 -1
  232. package/cjs/state/cell-move/adjust-header.js.map +1 -1
  233. package/cjs/state/cell-move/index.js +2 -1
  234. package/cjs/state/cell-move/index.js.map +1 -1
  235. package/cjs/state/select/update-position.js +60 -65
  236. package/cjs/state/select/update-position.js.map +1 -1
  237. package/cjs/state/spark-line/index.js +10 -6
  238. package/cjs/state/spark-line/index.js.map +1 -1
  239. package/cjs/state/state.d.ts +1 -1
  240. package/cjs/state/state.js +12 -16
  241. package/cjs/state/state.js.map +1 -1
  242. package/cjs/themes/ARCO.js +7 -2
  243. package/cjs/themes/ARCO.js.map +1 -1
  244. package/cjs/themes/BRIGHT.js +8 -1
  245. package/cjs/themes/BRIGHT.js.map +1 -1
  246. package/cjs/themes/DARK.js +7 -1
  247. package/cjs/themes/DARK.js.map +1 -1
  248. package/cjs/themes/DEFAULT.js +6 -0
  249. package/cjs/themes/DEFAULT.js.map +1 -1
  250. package/cjs/themes/SIMPLIFY.js +6 -0
  251. package/cjs/themes/SIMPLIFY.js.map +1 -1
  252. package/cjs/themes/component.d.ts +27 -0
  253. package/cjs/themes/component.js +29 -2
  254. package/cjs/themes/component.js.map +1 -1
  255. package/cjs/themes/theme.d.ts +2 -0
  256. package/cjs/themes/theme.js +29 -1
  257. package/cjs/themes/theme.js.map +1 -1
  258. package/cjs/tools/NumberMap.d.ts +4 -0
  259. package/cjs/tools/NumberMap.js +17 -1
  260. package/cjs/tools/NumberMap.js.map +1 -1
  261. package/cjs/ts-types/base-table.d.ts +10 -3
  262. package/cjs/ts-types/base-table.js.map +1 -1
  263. package/cjs/ts-types/common.d.ts +1 -0
  264. package/cjs/ts-types/common.js.map +1 -1
  265. package/cjs/ts-types/component/title.d.ts +1 -1
  266. package/cjs/ts-types/component/title.js.map +1 -1
  267. package/cjs/ts-types/customElement.d.ts +1 -1
  268. package/cjs/ts-types/customElement.js.map +1 -1
  269. package/cjs/ts-types/customLayout.d.ts +1 -1
  270. package/cjs/ts-types/customLayout.js.map +1 -1
  271. package/cjs/ts-types/events.d.ts +3 -4
  272. package/cjs/ts-types/events.js.map +1 -1
  273. package/cjs/ts-types/list-table/define/basic-define.d.ts +5 -1
  274. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  275. package/cjs/ts-types/list-table/define/image-define.d.ts +2 -0
  276. package/cjs/ts-types/list-table/define/image-define.js.map +1 -1
  277. package/cjs/ts-types/list-table/define/multilinetext-define.d.ts +0 -1
  278. package/cjs/ts-types/list-table/define/multilinetext-define.js.map +1 -1
  279. package/cjs/ts-types/pivot-table/dimension/image-dimension.d.ts +1 -0
  280. package/cjs/ts-types/pivot-table/dimension/image-dimension.js.map +1 -1
  281. package/cjs/ts-types/pivot-table/indicator/image-indicator.d.ts +2 -0
  282. package/cjs/ts-types/pivot-table/indicator/image-indicator.js.map +1 -1
  283. package/cjs/ts-types/table-engine.d.ts +17 -0
  284. package/cjs/ts-types/table-engine.js.map +1 -1
  285. package/cjs/ts-types/theme.d.ts +7 -0
  286. package/cjs/ts-types/theme.js.map +1 -1
  287. package/cjs/vrender.d.ts +4 -0
  288. package/cjs/vrender.js +40 -0
  289. package/cjs/vrender.js.map +1 -0
  290. package/dist/vtable.js +28869 -46496
  291. package/dist/vtable.min.js +2 -2
  292. package/es/ListTable.d.ts +3 -0
  293. package/es/ListTable.js +73 -16
  294. package/es/ListTable.js.map +1 -1
  295. package/es/PivotChart.d.ts +2 -4
  296. package/es/PivotChart.js +42 -17
  297. package/es/PivotChart.js.map +1 -1
  298. package/es/PivotTable.d.ts +5 -0
  299. package/es/PivotTable.js +109 -14
  300. package/es/PivotTable.js.map +1 -1
  301. package/es/body-helper/body-helper.js +2 -1
  302. package/es/body-helper/body-helper.js.map +1 -1
  303. package/es/components/axis/axis.js +4 -1
  304. package/es/components/axis/axis.js.map +1 -1
  305. package/es/components/axis/get-axis-attributes.d.ts +1 -0
  306. package/es/components/axis/get-axis-attributes.js +2 -1
  307. package/es/components/axis/get-axis-attributes.js.map +1 -1
  308. package/es/components/axis/label-overlap.js.map +1 -1
  309. package/es/components/axis/linear-scale.js +1 -0
  310. package/es/components/axis/linear-scale.js.map +1 -1
  311. package/es/components/tooltip/TooltipHandler.js +2 -5
  312. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  313. package/es/core/BaseTable.d.ts +24 -4
  314. package/es/core/BaseTable.js +87 -55
  315. package/es/core/BaseTable.js.map +1 -1
  316. package/es/core/style.js +1 -2
  317. package/es/core/tableHelper.d.ts +3 -2
  318. package/es/core/tableHelper.js +19 -6
  319. package/es/core/tableHelper.js.map +1 -1
  320. package/es/dataset/dataset.js +8 -13
  321. package/es/dataset/dataset.js.map +1 -1
  322. package/es/edit/edit-manager.d.ts +1 -1
  323. package/es/edit/edit-manager.js +9 -12
  324. package/es/edit/edit-manager.js.map +1 -1
  325. package/es/event/EventHandler.d.ts +1 -0
  326. package/es/event/EventHandler.js +1 -1
  327. package/es/event/EventHandler.js.map +1 -1
  328. package/es/event/event.d.ts +12 -1
  329. package/es/event/event.js +8 -3
  330. package/es/event/event.js.map +1 -1
  331. package/es/event/listener/container-dom.js +51 -8
  332. package/es/event/listener/container-dom.js.map +1 -1
  333. package/es/event/listener/scroll-bar.js +24 -8
  334. package/es/event/listener/scroll-bar.js.map +1 -1
  335. package/es/event/listener/table-group.js +50 -42
  336. package/es/event/listener/table-group.js.map +1 -1
  337. package/es/event/listener/touch.js.map +1 -1
  338. package/es/event/media-click.js +5 -2
  339. package/es/event/media-click.js.map +1 -1
  340. package/es/event/pivot-chart/axis-click.js.map +1 -1
  341. package/es/event/scroll.js +2 -1
  342. package/es/event/util.d.ts +1 -1
  343. package/es/event/util.js.map +1 -1
  344. package/es/index.d.ts +5 -2
  345. package/es/index.js +10 -2
  346. package/es/index.js.map +1 -1
  347. package/es/layout/chart-helper/get-chart-spec.d.ts +1 -0
  348. package/es/layout/chart-helper/get-chart-spec.js +11 -0
  349. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  350. package/es/layout/pivot-header-layout.d.ts +5 -4
  351. package/es/layout/pivot-header-layout.js +20 -16
  352. package/es/layout/pivot-header-layout.js.map +1 -1
  353. package/es/layout/pivot-layout-helper.d.ts +1 -0
  354. package/es/layout/pivot-layout-helper.js +16 -6
  355. package/es/layout/pivot-layout-helper.js.map +1 -1
  356. package/es/layout/simple-header-layout.d.ts +6 -4
  357. package/es/layout/simple-header-layout.js +45 -14
  358. package/es/layout/simple-header-layout.js.map +1 -1
  359. package/es/render/jsx/index.d.ts +2 -3
  360. package/es/render/jsx/index.js +1 -1
  361. package/es/render/jsx/index.js.map +1 -1
  362. package/es/render/layout/arc.d.ts +2 -2
  363. package/es/render/layout/arc.js +1 -1
  364. package/es/render/layout/arc.js.map +1 -1
  365. package/es/render/layout/circle.d.ts +2 -2
  366. package/es/render/layout/circle.js +1 -1
  367. package/es/render/layout/circle.js.map +1 -1
  368. package/es/render/layout/container.d.ts +2 -2
  369. package/es/render/layout/container.js +1 -1
  370. package/es/render/layout/container.js.map +1 -1
  371. package/es/render/layout/group.d.ts +2 -2
  372. package/es/render/layout/group.js +1 -1
  373. package/es/render/layout/group.js.map +1 -1
  374. package/es/render/layout/icon.d.ts +2 -2
  375. package/es/render/layout/icon.js +1 -1
  376. package/es/render/layout/icon.js.map +1 -1
  377. package/es/render/layout/image.d.ts +2 -2
  378. package/es/render/layout/image.js +1 -1
  379. package/es/render/layout/image.js.map +1 -1
  380. package/es/render/layout/rect.d.ts +2 -2
  381. package/es/render/layout/rect.js +1 -1
  382. package/es/render/layout/rect.js.map +1 -1
  383. package/es/render/layout/text.d.ts +3 -3
  384. package/es/render/layout/text.js +2 -2
  385. package/es/render/layout/text.js.map +1 -1
  386. package/es/scenegraph/component/cell-content.d.ts +4 -4
  387. package/es/scenegraph/component/cell-content.js +7 -8
  388. package/es/scenegraph/component/cell-content.js.map +1 -1
  389. package/es/scenegraph/component/cell-mover.d.ts +1 -1
  390. package/es/scenegraph/component/cell-mover.js +1 -1
  391. package/es/scenegraph/component/cell-mover.js.map +1 -1
  392. package/es/scenegraph/component/custom.d.ts +1 -1
  393. package/es/scenegraph/component/custom.js +35 -20
  394. package/es/scenegraph/component/custom.js.map +1 -1
  395. package/es/scenegraph/component/drill-icon.js.map +1 -1
  396. package/es/scenegraph/component/menu.d.ts +1 -1
  397. package/es/scenegraph/component/menu.js +1 -1
  398. package/es/scenegraph/component/menu.js.map +1 -1
  399. package/es/scenegraph/component/table-component.d.ts +1 -1
  400. package/es/scenegraph/component/table-component.js +13 -12
  401. package/es/scenegraph/component/table-component.js.map +1 -1
  402. package/es/scenegraph/debug-tool/debug-tool.d.ts +1 -1
  403. package/es/scenegraph/debug-tool/debug-tool.js +1 -1
  404. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
  405. package/es/scenegraph/debug-tool/index.d.ts +1 -1
  406. package/es/scenegraph/debug-tool/index.js.map +1 -1
  407. package/es/scenegraph/graphic/chart.d.ts +2 -2
  408. package/es/scenegraph/graphic/chart.js +12 -5
  409. package/es/scenegraph/graphic/chart.js.map +1 -1
  410. package/es/scenegraph/graphic/contributions/chart-render-helper.js +5 -5
  411. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  412. package/es/scenegraph/graphic/contributions/chart-render.d.ts +1 -1
  413. package/es/scenegraph/graphic/contributions/chart-render.js +1 -1
  414. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  415. package/es/scenegraph/graphic/contributions/group-contribution-render.d.ts +18 -3
  416. package/es/scenegraph/graphic/contributions/group-contribution-render.js +58 -3
  417. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  418. package/es/scenegraph/graphic/contributions/image-contribution-render.d.ts +2 -2
  419. package/es/scenegraph/graphic/contributions/image-contribution-render.js +1 -1
  420. package/es/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -1
  421. package/es/scenegraph/graphic/contributions/index.d.ts +1 -1
  422. package/es/scenegraph/graphic/contributions/index.js +5 -3
  423. package/es/scenegraph/graphic/contributions/index.js.map +1 -1
  424. package/es/scenegraph/graphic/contributions/rect-contribution-render.d.ts +2 -2
  425. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +2 -2
  426. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  427. package/es/scenegraph/graphic/group.d.ts +4 -2
  428. package/es/scenegraph/graphic/group.js +4 -2
  429. package/es/scenegraph/graphic/group.js.map +1 -1
  430. package/es/scenegraph/graphic/icon.d.ts +2 -2
  431. package/es/scenegraph/graphic/icon.js +1 -1
  432. package/es/scenegraph/graphic/icon.js.map +1 -1
  433. package/es/scenegraph/graphic/text.d.ts +2 -2
  434. package/es/scenegraph/graphic/text.js +1 -1
  435. package/es/scenegraph/graphic/text.js.map +1 -1
  436. package/es/scenegraph/group-creater/cell-helper.d.ts +1 -1
  437. package/es/scenegraph/group-creater/cell-helper.js +13 -10
  438. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  439. package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
  440. package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
  441. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  442. package/es/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +1 -1
  443. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -3
  444. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  445. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -1
  446. package/es/scenegraph/group-creater/cell-type/image-cell.js +39 -17
  447. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  448. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +1 -1
  449. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  450. package/es/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +1 -1
  451. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +3 -2
  452. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  453. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  454. package/es/scenegraph/group-creater/cell-type/text-cell.js +3 -2
  455. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  456. package/es/scenegraph/group-creater/cell-type/video-cell.d.ts +1 -1
  457. package/es/scenegraph/group-creater/cell-type/video-cell.js +3 -2
  458. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  459. package/es/scenegraph/group-creater/column-helper.d.ts +5 -2
  460. package/es/scenegraph/group-creater/column-helper.js +10 -5
  461. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  462. package/es/scenegraph/group-creater/init-scenegraph.js +11 -11
  463. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  464. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +3 -2
  465. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  466. package/es/scenegraph/group-creater/progress/proxy.js +6 -6
  467. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  468. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +2 -2
  469. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  470. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +5 -4
  471. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  472. package/es/scenegraph/icon/icon-update.d.ts +2 -0
  473. package/es/scenegraph/icon/icon-update.js +16 -2
  474. package/es/scenegraph/icon/icon-update.js.map +1 -1
  475. package/es/scenegraph/layout/compute-col-width.js +12 -9
  476. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  477. package/es/scenegraph/layout/compute-row-height.js +25 -17
  478. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  479. package/es/scenegraph/layout/frozen.js +3 -1
  480. package/es/scenegraph/layout/frozen.js.map +1 -1
  481. package/es/scenegraph/layout/move-cell.js.map +1 -1
  482. package/es/scenegraph/layout/update-col.js +6 -5
  483. package/es/scenegraph/layout/update-col.js.map +1 -1
  484. package/es/scenegraph/layout/update-height.d.ts +1 -1
  485. package/es/scenegraph/layout/update-height.js +7 -5
  486. package/es/scenegraph/layout/update-height.js.map +1 -1
  487. package/es/scenegraph/layout/update-row.js +50 -14
  488. package/es/scenegraph/layout/update-row.js.map +1 -1
  489. package/es/scenegraph/layout/update-width.d.ts +1 -1
  490. package/es/scenegraph/layout/update-width.js +12 -11
  491. package/es/scenegraph/layout/update-width.js.map +1 -1
  492. package/es/scenegraph/refresh-node/update-chart.js +11 -1
  493. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  494. package/es/scenegraph/scenegraph.d.ts +7 -3
  495. package/es/scenegraph/scenegraph.js +54 -58
  496. package/es/scenegraph/scenegraph.js.map +1 -1
  497. package/es/scenegraph/select/create-select-border.js +1 -1
  498. package/es/scenegraph/select/create-select-border.js.map +1 -1
  499. package/es/scenegraph/select/delete-select-border.js.map +1 -1
  500. package/es/scenegraph/select/update-select-border.js +34 -17
  501. package/es/scenegraph/select/update-select-border.js.map +1 -1
  502. package/es/scenegraph/stick-text/index.js +9 -4
  503. package/es/scenegraph/stick-text/index.js.map +1 -1
  504. package/es/scenegraph/style/corner-cell.js.map +1 -1
  505. package/es/scenegraph/style/frame-border.d.ts +3 -1
  506. package/es/scenegraph/style/frame-border.js +18 -1
  507. package/es/scenegraph/style/frame-border.js.map +1 -1
  508. package/es/scenegraph/utils/get-cell-merge.js +1 -1
  509. package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
  510. package/es/scenegraph/utils/padding.js +1 -1
  511. package/es/scenegraph/utils/padding.js.map +1 -1
  512. package/es/scenegraph/utils/render-service.d.ts +1 -1
  513. package/es/scenegraph/utils/render-service.js +1 -1
  514. package/es/scenegraph/utils/render-service.js.map +1 -1
  515. package/es/scenegraph/utils/text-icon-layout.d.ts +1 -1
  516. package/es/scenegraph/utils/text-icon-layout.js +13 -12
  517. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  518. package/es/scenegraph/utils/text-measure.d.ts +2 -2
  519. package/es/scenegraph/utils/text-measure.js +1 -1
  520. package/es/scenegraph/utils/text-measure.js.map +1 -1
  521. package/es/scenegraph/utils/text-pos.d.ts +1 -1
  522. package/es/scenegraph/utils/text-pos.js.map +1 -1
  523. package/es/state/cell-move/adjust-header.js.map +1 -1
  524. package/es/state/cell-move/index.js +2 -1
  525. package/es/state/cell-move/index.js.map +1 -1
  526. package/es/state/select/update-position.js +60 -65
  527. package/es/state/select/update-position.js.map +1 -1
  528. package/es/state/spark-line/index.js +10 -6
  529. package/es/state/spark-line/index.js.map +1 -1
  530. package/es/state/state.d.ts +1 -1
  531. package/es/state/state.js +14 -17
  532. package/es/state/state.js.map +1 -1
  533. package/es/themes/ARCO.js +7 -2
  534. package/es/themes/ARCO.js.map +1 -1
  535. package/es/themes/BRIGHT.js +8 -1
  536. package/es/themes/BRIGHT.js.map +1 -1
  537. package/es/themes/DARK.js +7 -1
  538. package/es/themes/DARK.js.map +1 -1
  539. package/es/themes/DEFAULT.js +6 -0
  540. package/es/themes/DEFAULT.js.map +1 -1
  541. package/es/themes/SIMPLIFY.js +6 -0
  542. package/es/themes/SIMPLIFY.js.map +1 -1
  543. package/es/themes/component.d.ts +27 -0
  544. package/es/themes/component.js +28 -0
  545. package/es/themes/component.js.map +1 -1
  546. package/es/themes/theme.d.ts +2 -0
  547. package/es/themes/theme.js +29 -2
  548. package/es/themes/theme.js.map +1 -1
  549. package/es/tools/NumberMap.d.ts +4 -0
  550. package/es/tools/NumberMap.js +17 -1
  551. package/es/tools/NumberMap.js.map +1 -1
  552. package/es/ts-types/base-table.d.ts +10 -3
  553. package/es/ts-types/base-table.js.map +1 -1
  554. package/es/ts-types/common.d.ts +1 -0
  555. package/es/ts-types/common.js.map +1 -1
  556. package/es/ts-types/component/title.d.ts +1 -1
  557. package/es/ts-types/component/title.js.map +1 -1
  558. package/es/ts-types/customElement.d.ts +1 -1
  559. package/es/ts-types/customElement.js.map +1 -1
  560. package/es/ts-types/customLayout.d.ts +1 -1
  561. package/es/ts-types/customLayout.js.map +1 -1
  562. package/es/ts-types/events.d.ts +3 -4
  563. package/es/ts-types/events.js.map +1 -1
  564. package/es/ts-types/list-table/define/basic-define.d.ts +5 -1
  565. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  566. package/es/ts-types/list-table/define/image-define.d.ts +2 -0
  567. package/es/ts-types/list-table/define/image-define.js.map +1 -1
  568. package/es/ts-types/list-table/define/multilinetext-define.d.ts +0 -1
  569. package/es/ts-types/list-table/define/multilinetext-define.js.map +1 -1
  570. package/es/ts-types/pivot-table/dimension/image-dimension.d.ts +1 -0
  571. package/es/ts-types/pivot-table/dimension/image-dimension.js.map +1 -1
  572. package/es/ts-types/pivot-table/indicator/image-indicator.d.ts +2 -0
  573. package/es/ts-types/pivot-table/indicator/image-indicator.js.map +1 -1
  574. package/es/ts-types/table-engine.d.ts +17 -0
  575. package/es/ts-types/table-engine.js.map +1 -1
  576. package/es/ts-types/theme.d.ts +7 -0
  577. package/es/ts-types/theme.js.map +1 -1
  578. package/es/vrender.d.ts +4 -0
  579. package/es/vrender.js +22 -0
  580. package/es/vrender.js.map +1 -0
  581. package/package.json +13 -12
@@ -1,5 +1,5 @@
1
- import type { IRect, IContext2d, IRectGraphicAttribute, IMarkAttribute, IGraphicAttribute, IThemeAttribute, IRectRenderContribution, IDrawContext } from '@visactor/vrender';
2
- import { BaseRenderContributionTime } from '@visactor/vrender';
1
+ import type { IRect, IContext2d, IRectGraphicAttribute, IMarkAttribute, IGraphicAttribute, IThemeAttribute, IRectRenderContribution, IDrawContext } from './../../../vrender';
2
+ import { BaseRenderContributionTime } from './../../../vrender';
3
3
  export declare class SplitRectBeforeRenderContribution implements IRectRenderContribution {
4
4
  time: BaseRenderContributionTime;
5
5
  useStyle: boolean;
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", {
10
10
  value: !0
11
11
  }), exports.SplitRectAfterRenderContribution = exports.SplitRectBeforeRenderContribution = void 0;
12
12
 
13
- const vrender_1 = require("@visactor/vrender"), group_contribution_render_1 = require("./group-contribution-render");
13
+ const vrender_1 = require("./../../../vrender"), group_contribution_render_1 = require("./group-contribution-render");
14
14
 
15
15
  let SplitRectBeforeRenderContribution = class {
16
16
  constructor() {
@@ -33,7 +33,7 @@ let SplitRectAfterRenderContribution = class {
33
33
  }
34
34
  drawShape(rect, context, x, y, doFill, doStroke, fVisible, sVisible, rectAttribute, drawContext, fillCb, strokeCb) {
35
35
  const {width: width = rectAttribute.width, height: height = rectAttribute.height, stroke: stroke = rectAttribute.stroke, strokeArrayColor: strokeArrayColor = rectAttribute.strokeArrayColor, strokeArrayWidth: strokeArrayWidth = rectAttribute.strokeArrayWidth, lineWidth: lineWidth = rectAttribute.lineWidth, strokeColor: strokeColor = rectAttribute.stroke} = rect.attribute;
36
- stroke && (Array.isArray(strokeArrayWidth) || 0 !== lineWidth) && (Array.isArray(stroke) || Array.isArray(strokeArrayColor) || Array.isArray(strokeArrayWidth)) && (("number" == typeof lineWidth && 1 & lineWidth || Array.isArray(strokeArrayWidth) && strokeArrayWidth.some((width => 1 & width))) && (x = Math.floor(x) + .5,
36
+ stroke && (Array.isArray(strokeArrayWidth) || 0 !== lineWidth) && (Array.isArray(stroke) || Array.isArray(strokeArrayColor) || Array.isArray(strokeArrayWidth)) && ("border-rect" !== rect.name && "table-border-rect" !== rect.name && ("number" == typeof lineWidth && 1 & lineWidth || Array.isArray(strokeArrayWidth) && strokeArrayWidth.some((width => 1 & width))) && (x = Math.floor(x) + .5,
37
37
  y = Math.floor(y) + .5), (0, group_contribution_render_1.renderStroke)(rect, context, x, y, rectAttribute, stroke, strokeArrayWidth || lineWidth, strokeArrayColor || strokeColor, Math.ceil(width), Math.ceil(height)));
38
38
  }
39
39
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/contributions/rect-contribution-render.ts"],"names":[],"mappings":"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","file":"rect-contribution-render.js","sourcesContent":["import type {\n IRect,\n IContext2d,\n IRectGraphicAttribute,\n IMarkAttribute,\n IGraphicAttribute,\n IThemeAttribute,\n IRectRenderContribution,\n IGroup,\n IGroupGraphicAttribute,\n IDrawContext\n} from '@visactor/vrender';\nimport { BaseRenderContributionTime, injectable } from '@visactor/vrender';\nimport { renderStroke } from './group-contribution-render';\n\n@injectable()\nexport class SplitRectBeforeRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n doFillOrStroke?: { doFill: boolean; doStroke: boolean }\n ) {\n // const { stroke = rectAttribute.stroke } = group.attribute as any;\n\n // if (Array.isArray(stroke)) {\n // doFillOrStroke.doStroke = false;\n // }\n\n const {\n stroke = rectAttribute.stroke,\n strokeArrayWidth = (rectAttribute as any).strokeArrayWidth,\n strokeArrayColor = (rectAttribute as any).strokeArrayColor\n } = rect.attribute as any;\n\n if (stroke && (Array.isArray(stroke) || Array.isArray(strokeArrayWidth) || Array.isArray(strokeArrayColor))) {\n doFillOrStroke.doStroke = false;\n }\n }\n}\n\n@injectable()\nexport class SplitRectAfterRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const {\n // width = rectAttribute.width,\n // height = rectAttribute.height,\n // stroke = rectAttribute.stroke\n // } = group.attribute as any;\n\n // if (!Array.isArray(stroke)) {\n // return;\n // }\n\n // context.setStrokeStyle(group, group.attribute, x, y, rectAttribute);\n // // 单独处理每条边界,目前不考虑圆角\n // context.beginPath();\n // context.moveTo(x, y);\n // // top\n // if (stroke[0]) {\n // context.lineTo(x + width, y);\n // } else {\n // context.moveTo(x + width, y);\n // }\n // // right\n // if (stroke[1]) {\n // context.lineTo(x + width, y + height);\n // } else {\n // context.moveTo(x + width, y + height);\n // }\n // // bottom\n // if (stroke[2]) {\n // context.lineTo(x, y + height);\n // } else {\n // context.moveTo(x, y + height);\n // }\n // // left\n // if (stroke[3]) {\n // // 没有close path是,起点和终点不连续,需要调整y保证不出现缺口\n // const adjustY = stroke[0] ? y - context.lineWidth / 2 : y;\n // context.lineTo(x, adjustY);\n // } else {\n // context.moveTo(x, y);\n // }\n\n // context.stroke();\n\n const {\n width = rectAttribute.width,\n height = rectAttribute.height,\n // 基础border\n stroke = rectAttribute.stroke,\n strokeArrayColor = (rectAttribute as any).strokeArrayColor,\n strokeArrayWidth = (rectAttribute as any).strokeArrayWidth,\n\n lineWidth = rectAttribute.lineWidth,\n strokeColor = rectAttribute.stroke\n // // select & hover border\n // highlightStroke = (rectAttribute as any).highlightStroke,\n // highlightStrokeArrayColor = (rectAttribute as any).highlightStrokeArrayColor,\n // highlightStrokeArrayWidth = (rectAttribute as any).highlightStrokeArrayWidth,\n // highlightStrokeArrayPart = (rectAttribute as any).highlightStrokeArrayPart,\n } = rect.attribute as any;\n\n if (!stroke || (!Array.isArray(strokeArrayWidth) && lineWidth === 0)) {\n return;\n }\n\n if (Array.isArray(stroke) || Array.isArray(strokeArrayColor) || Array.isArray(strokeArrayWidth)) {\n // let dx = 0;\n // let dy = 0;\n if (\n (typeof lineWidth === 'number' && lineWidth & 1) ||\n (Array.isArray(strokeArrayWidth) && strokeArrayWidth.some(width => width & 1))\n ) {\n x = Math.floor(x) + 0.5;\n y = Math.floor(y) + 0.5;\n }\n renderStroke(\n rect as IGroup,\n context,\n x,\n y,\n rectAttribute as Required<IGroupGraphicAttribute>,\n stroke,\n strokeArrayWidth || lineWidth,\n strokeArrayColor || strokeColor,\n Math.ceil(width),\n Math.ceil(height)\n );\n }\n }\n}\n\n// 判断是否为整数,如果是整数,需要偏移0.5px\nfunction isInteger(num: number) {\n return num % 1 === 0;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/contributions/rect-contribution-render.ts"],"names":[],"mappings":"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","file":"rect-contribution-render.js","sourcesContent":["import type {\n IRect,\n IContext2d,\n IRectGraphicAttribute,\n IMarkAttribute,\n IGraphicAttribute,\n IThemeAttribute,\n IRectRenderContribution,\n IGroup,\n IGroupGraphicAttribute,\n IDrawContext\n} from './../../../vrender';\nimport { BaseRenderContributionTime, injectable } from './../../../vrender';\nimport { renderStroke } from './group-contribution-render';\n\n@injectable()\nexport class SplitRectBeforeRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n doFillOrStroke?: { doFill: boolean; doStroke: boolean }\n ) {\n // const { stroke = rectAttribute.stroke } = group.attribute as any;\n\n // if (Array.isArray(stroke)) {\n // doFillOrStroke.doStroke = false;\n // }\n\n const {\n stroke = rectAttribute.stroke,\n strokeArrayWidth = (rectAttribute as any).strokeArrayWidth,\n strokeArrayColor = (rectAttribute as any).strokeArrayColor\n } = rect.attribute as any;\n\n if (stroke && (Array.isArray(stroke) || Array.isArray(strokeArrayWidth) || Array.isArray(strokeArrayColor))) {\n doFillOrStroke.doStroke = false;\n }\n }\n}\n\n@injectable()\nexport class SplitRectAfterRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const {\n // width = rectAttribute.width,\n // height = rectAttribute.height,\n // stroke = rectAttribute.stroke\n // } = group.attribute as any;\n\n // if (!Array.isArray(stroke)) {\n // return;\n // }\n\n // context.setStrokeStyle(group, group.attribute, x, y, rectAttribute);\n // // 单独处理每条边界,目前不考虑圆角\n // context.beginPath();\n // context.moveTo(x, y);\n // // top\n // if (stroke[0]) {\n // context.lineTo(x + width, y);\n // } else {\n // context.moveTo(x + width, y);\n // }\n // // right\n // if (stroke[1]) {\n // context.lineTo(x + width, y + height);\n // } else {\n // context.moveTo(x + width, y + height);\n // }\n // // bottom\n // if (stroke[2]) {\n // context.lineTo(x, y + height);\n // } else {\n // context.moveTo(x, y + height);\n // }\n // // left\n // if (stroke[3]) {\n // // 没有close path是,起点和终点不连续,需要调整y保证不出现缺口\n // const adjustY = stroke[0] ? y - context.lineWidth / 2 : y;\n // context.lineTo(x, adjustY);\n // } else {\n // context.moveTo(x, y);\n // }\n\n // context.stroke();\n\n const {\n width = rectAttribute.width,\n height = rectAttribute.height,\n // 基础border\n stroke = rectAttribute.stroke,\n strokeArrayColor = (rectAttribute as any).strokeArrayColor,\n strokeArrayWidth = (rectAttribute as any).strokeArrayWidth,\n\n lineWidth = rectAttribute.lineWidth,\n strokeColor = rectAttribute.stroke\n // // select & hover border\n // highlightStroke = (rectAttribute as any).highlightStroke,\n // highlightStrokeArrayColor = (rectAttribute as any).highlightStrokeArrayColor,\n // highlightStrokeArrayWidth = (rectAttribute as any).highlightStrokeArrayWidth,\n // highlightStrokeArrayPart = (rectAttribute as any).highlightStrokeArrayPart,\n } = rect.attribute as any;\n\n if (!stroke || (!Array.isArray(strokeArrayWidth) && lineWidth === 0)) {\n return;\n }\n\n if (Array.isArray(stroke) || Array.isArray(strokeArrayColor) || Array.isArray(strokeArrayWidth)) {\n // let dx = 0;\n // let dy = 0;\n if (\n rect.name !== 'border-rect' && // border-rect not need offset\n rect.name !== 'table-border-rect' && // table-border-rect not need offset\n ((typeof lineWidth === 'number' && lineWidth & 1) ||\n (Array.isArray(strokeArrayWidth) && strokeArrayWidth.some(width => width & 1)))\n ) {\n x = Math.floor(x) + 0.5;\n y = Math.floor(y) + 0.5;\n }\n renderStroke(\n rect as IGroup,\n context,\n x,\n y,\n rectAttribute,\n stroke,\n strokeArrayWidth || lineWidth,\n strokeArrayColor || strokeColor,\n Math.ceil(width),\n Math.ceil(height)\n );\n }\n }\n}\n\n// 判断是否为整数,如果是整数,需要偏移0.5px\nfunction isInteger(num: number) {\n return num % 1 === 0;\n}\n"]}
@@ -1,5 +1,5 @@
1
- import type { IRect, INode } from '@visactor/vrender';
2
- import { Group as VRenderGroup } from '@visactor/vrender';
1
+ import type { IRect, INode } from './../../vrender';
2
+ import { Group as VRenderGroup } from './../../vrender';
3
3
  import type { AABBBounds } from '@visactor/vutils';
4
4
  export declare class Group extends VRenderGroup {
5
5
  role?: string;
@@ -15,6 +15,8 @@ export declare class Group extends VRenderGroup {
15
15
  colHeight?: number;
16
16
  border?: IRect;
17
17
  needUpdate?: boolean;
18
+ needUpdateWidth?: boolean;
19
+ needUpdateHeight?: boolean;
18
20
  clear(): void;
19
21
  getChildByName(name: string, deep?: boolean): any;
20
22
  get width(): number;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Group = void 0;
6
6
 
7
- const vrender_1 = require("@visactor/vrender");
7
+ const vrender_1 = require("./../../vrender");
8
8
 
9
9
  class Group extends vrender_1.Group {
10
10
  clear() {
@@ -104,7 +104,9 @@ class Group extends vrender_1.Group {
104
104
  return this._AABBBounds.setValue(x, y, x + width, y + height), this.parent && this.parent.addChildUpdateBoundTag(),
105
105
  this.clearUpdateBoundTag(), this._AABBBounds;
106
106
  }
107
- return super.doUpdateAABBBounds();
107
+ return "body" === this.role || "row-header" === this.role || "col-header" === this.role || "right-frozen" === this.role || "bottom-frozen" === this.role || "corner-header" === this.role || "corner-right-top-header" === this.role || "corner-right-bottom-header" === this.role || "corner-left-bottom-header" === this.role ? (this._AABBBounds.setValue(-1 / 0, -1 / 0, 1 / 0, 1 / 0),
108
+ this.parent && this.parent.addChildUpdateBoundTag(), this.clearUpdateBoundTag(),
109
+ this._AABBBounds) : super.doUpdateAABBBounds();
108
110
  }
109
111
  updateColumnRowNumber(row) {
110
112
  this.rowNumber ? this.rowNumber = Math.max(this.rowNumber, row) : this.rowNumber = row;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import type { IGraphic, IColor, IRect, INode } from '@visactor/vrender';\nimport { Group as VRenderGroup } from '@visactor/vrender';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { InteractionState } from '../../ts-types';\nimport type { AABBBounds } from '@visactor/vutils';\n\nexport class Group extends VRenderGroup {\n role?: string;\n col?: number;\n row?: number;\n mergeStartCol?: number;\n mergeStartRow?: number;\n mergeEndCol?: number;\n mergeEndRow?: number;\n contentWidth?: number;\n contentHeight?: number;\n rowNumber?: number; // row number of the column group\n colHeight?: number; // current height of the column group\n border?: IRect; // table/header/body的border mark,挂载在这里方便更新\n needUpdate?: boolean;\n\n /**\n * @description: 清空Group下全部子元素\n * @return {*}\n */\n clear() {\n this.removeAllChild();\n }\n\n getChildByName(name: string, deep?: boolean): any {\n // for (let i = 0, j = this.children.length; i < j; i++) {\n // if (this.children[i].name === name) {\n // return this.children[i] as unknown as T;\n // }\n // }\n let result = null;\n this.forEachChildren((child: IGraphic) => {\n if (child.name === name) {\n result = child;\n return true; // 提前退出循环\n }\n return false;\n });\n\n if (deep) {\n // for (let i = 0, j = this.children.length; i < j; i++) {\n // const child = this.children[i] as Group;\n\n // if (!child.getChildByName) {\n // continue;\n // }\n\n // const target = child.getChildByName(name, true);\n\n // if (target) {\n // return target;\n // }\n // }\n this.forEachChildren((child: IGraphic) => {\n if ((child as Group).getChildByName) {\n const target = (child as Group).getChildByName(name, true);\n if (target) {\n result = target;\n return true;\n }\n }\n return false;\n });\n }\n\n return result;\n }\n\n get width() {\n let width = this.AABBBounds.width();\n if (width === Infinity || width === -Infinity) {\n width = 0;\n }\n return Math.max(width, this.attribute.width ?? 0);\n }\n\n get height() {\n let height = this.AABBBounds.height();\n if (height === Infinity || height === -Infinity) {\n height = 0;\n }\n return Math.max(height, this.attribute.height ?? 0);\n }\n\n setDeltaWidth(deltaX: number) {\n if (deltaX === 0) {\n return;\n }\n this.setAttribute('width', (this.attribute.width ?? 0) + deltaX);\n if (this.border) {\n this.border.setAttribute('width', this.border.attribute.width + deltaX);\n\n if (this.border.type === 'group') {\n (this.border.firstChild as IRect).setAttribute(\n 'width',\n (this.border.firstChild as IRect).attribute.width + deltaX\n );\n }\n }\n }\n\n setDeltaHeight(deltaY: number) {\n if (deltaY === 0) {\n return;\n }\n this.setAttribute('height', (this.attribute.height ?? 0) + deltaY);\n if (this.border) {\n this.border.setAttribute('height', this.border.attribute.height + deltaY);\n if (this.border.type === 'group') {\n (this.border.firstChild as IRect).setAttribute(\n 'width',\n (this.border.firstChild as IRect).attribute.height + deltaY\n );\n }\n }\n }\n\n setDeltaX(deltaX: number) {\n if (deltaX === 0) {\n return;\n }\n this.setAttribute('x', this.attribute.x + deltaX);\n }\n\n setDeltaY(deltaY: number) {\n if (deltaY === 0) {\n return;\n }\n this.setAttribute('y', this.attribute.y + deltaY);\n }\n\n /**\n * @description: 遍历所有子节点,跳过部分节点,默认跳过group的border\n * @return {*}\n */\n forEachChildrenSkipChild<T extends INode = INode>(\n cb: (item: T, index: number) => void | boolean,\n skipChildName = 'border-rect',\n reverse = false\n ) {\n if (reverse) {\n let child = this._lastChild;\n let i = 0;\n while (child) {\n if (child.name !== skipChildName) {\n const breakTag = cb(child as T, i++);\n if (breakTag) {\n return;\n }\n }\n child = child._prev;\n }\n } else {\n let child = this._firstChild;\n let i = 0;\n while (child) {\n if (child.name !== skipChildName) {\n const breakTag = cb(child as T, i++);\n if (breakTag) {\n return;\n }\n }\n child = child._next;\n }\n }\n }\n\n getColGroup(col: number) {\n let c = this._firstChild as Group;\n if (!c) {\n return null;\n }\n for (let i = 0; i < this.childrenCount; i++) {\n if (c.col === col) {\n return c;\n }\n c = c._next as Group;\n }\n return null;\n }\n\n getRowGroup(row: number) {\n let c = this._firstChild as Group;\n if (!c) {\n return null;\n }\n for (let i = 0; i < this.childrenCount; i++) {\n if (c.row === row) {\n return c;\n }\n c = c._next as Group;\n }\n return null;\n }\n\n getChildAt(index: number) {\n const child = super.getChildAt(index);\n if (child && child.name === 'border-rect') {\n return child._next;\n }\n return child;\n }\n\n protected tryUpdateAABBBounds(): AABBBounds {\n if (this.role === 'cell') {\n if (!this.shouldUpdateAABBBounds()) {\n return this._AABBBounds;\n }\n // application.graphicService.beforeUpdateAABBBounds(this, this.stage, true, this._AABBBounds);\n const selfChange = this.shouldSelfChangeUpdateAABBBounds();\n // const selfChange = true;\n const bounds = this.doUpdateAABBBounds();\n this.addUpdateLayoutTag();\n // application.graphicService.afterUpdateAABBBounds(this, this.stage, this._AABBBounds, this, selfChange);\n after(this, selfChange);\n\n return bounds;\n }\n return super.tryUpdateAABBBounds();\n }\n\n // 目前优化方案会导致合并单元格无法正常更新列宽(因为合并单元格更新bounds不会触发父节点bounds更新),暂时关闭优化方案\n // shouldUpdateAABBBoundsForRowMerge(): boolean {\n\n // }\n\n // shouldUpdateAABBBounds(): boolean {\n // return this.shouldSelfChangeUpdateAABBBounds();\n // // // 检索自己是否需要更新\n // // if (super.shouldUpdateAABBBounds()) {\n // // return true;\n // // }\n // // // 检索叶子节点是否有更新(如果children是叶子节点的话)\n // // if (this._childUpdateTag & UpdateTag.UPDATE_BOUNDS) {\n // // return true;\n // // }\n // // // 检索是否子group需要更新\n // // let needUpdate = false;\n // // this.forEachChildren((node: IGraphic) => {\n // // // 只查找group层级\n // // if (node.isContainer && (node as Group).shouldUpdateAABBBounds()) {\n // // needUpdate = true;\n // // return true;\n // // }\n // // return false;\n // // });\n // // return needUpdate;\n // }\n\n protected doUpdateAABBBounds(): any {\n // const groupTheme = getTheme(this).group;\n // debugger;\n if (this.role === 'cell') {\n const attribute = this.attribute;\n const { x, y, width, height } = attribute;\n this._AABBBounds.setValue(x, y, x + width, y + height);\n // 更新bounds之后需要设置父节点,否则tag丢失\n this.parent && this.parent.addChildUpdateBoundTag();\n this.clearUpdateBoundTag();\n return this._AABBBounds;\n }\n return super.doUpdateAABBBounds();\n // _AABBBounds\n // const bounds = graphicService.updateGroupAABBBounds(\n // attribute,\n // getTheme(this).group,\n // this._AABBBounds,\n // this\n // ) as AABBBounds;\n\n // const { boundsPadding = groupTheme.boundsPadding } = attribute;\n // const paddingArray = parsePadding(boundsPadding);\n // if (paddingArray) {\n // bounds.expand(paddingArray);\n // }\n // // 更新bounds之后需要设置父节点,否则tag丢失\n // this.parent && this.parent.addChildUpdateBoundTag();\n // this.clearUpdateBoundTag();\n\n // this.emit('AAABBBoundsChange');\n }\n\n // update column group row number\n updateColumnRowNumber(row: number) {\n if (!this.rowNumber) {\n this.rowNumber = row;\n } else {\n this.rowNumber = Math.max(this.rowNumber, row);\n }\n }\n\n // update column height\n updateColumnHeight(cellHeight: number) {\n if (!this.colHeight) {\n this.colHeight = cellHeight;\n } else {\n this.colHeight += cellHeight;\n }\n }\n}\n\nfunction after(group: Group, selfChange: boolean) {\n if (!group.stage.dirtyBounds) {\n return;\n }\n if (!(group.stage && group.stage.renderCount)) {\n return;\n }\n // group的子元素导致的bounds更新不用做dirtyBounds\n if (group.isContainer && !selfChange) {\n return;\n }\n group.stage.dirty(group.globalAABBBounds);\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import type { IGraphic, IColor, IRect, INode } from './../../vrender';\nimport { Group as VRenderGroup } from './../../vrender';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { InteractionState } from '../../ts-types';\nimport type { AABBBounds } from '@visactor/vutils';\n\nexport class Group extends VRenderGroup {\n role?: string;\n col?: number;\n row?: number;\n mergeStartCol?: number;\n mergeStartRow?: number;\n mergeEndCol?: number;\n mergeEndRow?: number;\n contentWidth?: number;\n contentHeight?: number;\n rowNumber?: number; // row number of the column group\n colHeight?: number; // current height of the column group\n border?: IRect; // table/header/body的border mark,挂载在这里方便更新\n needUpdate?: boolean;\n\n needUpdateWidth?: boolean;\n needUpdateHeight?: boolean;\n\n /**\n * @description: 清空Group下全部子元素\n * @return {*}\n */\n clear() {\n this.removeAllChild();\n }\n\n getChildByName(name: string, deep?: boolean): any {\n // for (let i = 0, j = this.children.length; i < j; i++) {\n // if (this.children[i].name === name) {\n // return this.children[i] as unknown as T;\n // }\n // }\n let result = null;\n this.forEachChildren((child: IGraphic) => {\n if (child.name === name) {\n result = child;\n return true; // 提前退出循环\n }\n return false;\n });\n\n if (deep) {\n // for (let i = 0, j = this.children.length; i < j; i++) {\n // const child = this.children[i] as Group;\n\n // if (!child.getChildByName) {\n // continue;\n // }\n\n // const target = child.getChildByName(name, true);\n\n // if (target) {\n // return target;\n // }\n // }\n this.forEachChildren((child: IGraphic) => {\n if ((child as Group).getChildByName) {\n const target = (child as Group).getChildByName(name, true);\n if (target) {\n result = target;\n return true;\n }\n }\n return false;\n });\n }\n\n return result;\n }\n\n get width() {\n let width = this.AABBBounds.width();\n if (width === Infinity || width === -Infinity) {\n width = 0;\n }\n return Math.max(width, this.attribute.width ?? 0);\n }\n\n get height() {\n let height = this.AABBBounds.height();\n if (height === Infinity || height === -Infinity) {\n height = 0;\n }\n return Math.max(height, this.attribute.height ?? 0);\n }\n\n setDeltaWidth(deltaX: number) {\n if (deltaX === 0) {\n return;\n }\n this.setAttribute('width', (this.attribute.width ?? 0) + deltaX);\n if (this.border) {\n this.border.setAttribute('width', this.border.attribute.width + deltaX);\n\n if (this.border.type === 'group') {\n (this.border.firstChild as IRect).setAttribute(\n 'width',\n (this.border.firstChild as IRect).attribute.width + deltaX\n );\n }\n }\n }\n\n setDeltaHeight(deltaY: number) {\n if (deltaY === 0) {\n return;\n }\n this.setAttribute('height', (this.attribute.height ?? 0) + deltaY);\n if (this.border) {\n this.border.setAttribute('height', this.border.attribute.height + deltaY);\n if (this.border.type === 'group') {\n (this.border.firstChild as IRect).setAttribute(\n 'width',\n (this.border.firstChild as IRect).attribute.height + deltaY\n );\n }\n }\n }\n\n setDeltaX(deltaX: number) {\n if (deltaX === 0) {\n return;\n }\n this.setAttribute('x', this.attribute.x + deltaX);\n }\n\n setDeltaY(deltaY: number) {\n if (deltaY === 0) {\n return;\n }\n this.setAttribute('y', this.attribute.y + deltaY);\n }\n\n /**\n * @description: 遍历所有子节点,跳过部分节点,默认跳过group的border\n * @return {*}\n */\n forEachChildrenSkipChild<T extends INode = INode>(\n cb: (item: T, index: number) => void | boolean,\n skipChildName = 'border-rect',\n reverse = false\n ) {\n if (reverse) {\n let child = this._lastChild;\n let i = 0;\n while (child) {\n if (child.name !== skipChildName) {\n const breakTag = cb(child as T, i++);\n if (breakTag) {\n return;\n }\n }\n child = child._prev;\n }\n } else {\n let child = this._firstChild;\n let i = 0;\n while (child) {\n if (child.name !== skipChildName) {\n const breakTag = cb(child as T, i++);\n if (breakTag) {\n return;\n }\n }\n child = child._next;\n }\n }\n }\n\n getColGroup(col: number) {\n let c = this._firstChild as Group;\n if (!c) {\n return null;\n }\n for (let i = 0; i < this.childrenCount; i++) {\n if (c.col === col) {\n return c;\n }\n c = c._next as Group;\n }\n return null;\n }\n\n getRowGroup(row: number) {\n let c = this._firstChild as Group;\n if (!c) {\n return null;\n }\n for (let i = 0; i < this.childrenCount; i++) {\n if (c.row === row) {\n return c;\n }\n c = c._next as Group;\n }\n return null;\n }\n\n getChildAt(index: number) {\n const child = super.getChildAt(index);\n if (child && child.name === 'border-rect') {\n return child._next;\n }\n return child;\n }\n\n protected tryUpdateAABBBounds(): AABBBounds {\n if (this.role === 'cell') {\n if (!this.shouldUpdateAABBBounds()) {\n return this._AABBBounds;\n }\n // application.graphicService.beforeUpdateAABBBounds(this, this.stage, true, this._AABBBounds);\n const selfChange = this.shouldSelfChangeUpdateAABBBounds();\n // const selfChange = true;\n const bounds = this.doUpdateAABBBounds();\n this.addUpdateLayoutTag();\n // application.graphicService.afterUpdateAABBBounds(this, this.stage, this._AABBBounds, this, selfChange);\n after(this, selfChange);\n\n return bounds;\n }\n return super.tryUpdateAABBBounds();\n }\n\n // 目前优化方案会导致合并单元格无法正常更新列宽(因为合并单元格更新bounds不会触发父节点bounds更新),暂时关闭优化方案\n // shouldUpdateAABBBoundsForRowMerge(): boolean {\n\n // }\n\n // shouldUpdateAABBBounds(): boolean {\n // return this.shouldSelfChangeUpdateAABBBounds();\n // // // 检索自己是否需要更新\n // // if (super.shouldUpdateAABBBounds()) {\n // // return true;\n // // }\n // // // 检索叶子节点是否有更新(如果children是叶子节点的话)\n // // if (this._childUpdateTag & UpdateTag.UPDATE_BOUNDS) {\n // // return true;\n // // }\n // // // 检索是否子group需要更新\n // // let needUpdate = false;\n // // this.forEachChildren((node: IGraphic) => {\n // // // 只查找group层级\n // // if (node.isContainer && (node as Group).shouldUpdateAABBBounds()) {\n // // needUpdate = true;\n // // return true;\n // // }\n // // return false;\n // // });\n // // return needUpdate;\n // }\n\n protected doUpdateAABBBounds(): any {\n // const groupTheme = getTheme(this).group;\n // debugger;\n if (this.role === 'cell') {\n const attribute = this.attribute;\n const { x, y, width, height } = attribute;\n this._AABBBounds.setValue(x, y, x + width, y + height);\n // 更新bounds之后需要设置父节点,否则tag丢失\n this.parent && this.parent.addChildUpdateBoundTag();\n this.clearUpdateBoundTag();\n return this._AABBBounds;\n } else if (\n this.role === 'body' ||\n this.role === 'row-header' ||\n this.role === 'col-header' ||\n this.role === 'right-frozen' ||\n this.role === 'bottom-frozen' ||\n this.role === 'corner-header' ||\n this.role === 'corner-right-top-header' ||\n this.role === 'corner-right-bottom-header' ||\n this.role === 'corner-left-bottom-header'\n ) {\n // Infinity bounds for manual clip group\n this._AABBBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n // 更新bounds之后需要设置父节点,否则tag丢失\n this.parent && this.parent.addChildUpdateBoundTag();\n this.clearUpdateBoundTag();\n return this._AABBBounds;\n }\n return super.doUpdateAABBBounds();\n // _AABBBounds\n // const bounds = graphicService.updateGroupAABBBounds(\n // attribute,\n // getTheme(this).group,\n // this._AABBBounds,\n // this\n // ) as AABBBounds;\n\n // const { boundsPadding = groupTheme.boundsPadding } = attribute;\n // const paddingArray = parsePadding(boundsPadding);\n // if (paddingArray) {\n // bounds.expand(paddingArray);\n // }\n // // 更新bounds之后需要设置父节点,否则tag丢失\n // this.parent && this.parent.addChildUpdateBoundTag();\n // this.clearUpdateBoundTag();\n\n // this.emit('AAABBBoundsChange');\n }\n\n // update column group row number\n updateColumnRowNumber(row: number) {\n if (!this.rowNumber) {\n this.rowNumber = row;\n } else {\n this.rowNumber = Math.max(this.rowNumber, row);\n }\n }\n\n // update column height\n updateColumnHeight(cellHeight: number) {\n if (!this.colHeight) {\n this.colHeight = cellHeight;\n } else {\n this.colHeight += cellHeight;\n }\n }\n}\n\nfunction after(group: Group, selfChange: boolean) {\n if (!group.stage.dirtyBounds) {\n return;\n }\n if (!(group.stage && group.stage.renderCount)) {\n return;\n }\n // group的子元素导致的bounds更新不用做dirtyBounds\n if (group.isContainer && !selfChange) {\n return;\n }\n group.stage.dirty(group.globalAABBBounds);\n}\n"]}
@@ -1,5 +1,5 @@
1
- import type { IImageGraphicAttribute } from '@visactor/vrender';
2
- import { Image } from '@visactor/vrender';
1
+ import type { IImageGraphicAttribute } from './../../vrender';
2
+ import { Image } from './../../vrender';
3
3
  import type { IIconBase } from '../../ts-types';
4
4
  export interface IIconGraphicAttribute extends IImageGraphicAttribute {
5
5
  backgroundWidth?: number;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Icon = void 0;
6
6
 
7
- const vrender_1 = require("@visactor/vrender");
7
+ const vrender_1 = require("./../../vrender");
8
8
 
9
9
  class Icon extends vrender_1.Image {
10
10
  constructor(params) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/icon.ts"],"names":[],"mappings":";;;AACA,+CAA0C;AAkB1C,MAAa,IAAK,SAAQ,eAAK;IAM7B,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,YAAY,EAAE;YACnG,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;SAC5B;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SACnD;IAMH,CAAC;IAED,IAAI,eAAe;;QACjB,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,eAAe,mCAAI,IAAI,CAAC,SAAS,CAAC,KAAK,mCAAI,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,gBAAgB;;QAClB,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,mCAAI,IAAI,CAAC,SAAS,CAAC,MAAM,mCAAI,CAAC,CAAC;IACvE,CAAC;CAaF;AA1CD,oBA0CC","file":"icon.js","sourcesContent":["import type { IImageGraphicAttribute } from '@visactor/vrender';\nimport { Image } from '@visactor/vrender';\nimport type { IIconBase } from '../../ts-types';\n\nexport interface IIconGraphicAttribute extends IImageGraphicAttribute {\n backgroundWidth?: number;\n backgroundHeight?: number;\n backgroundColor?: string;\n visibleTime?: string;\n funcType?: string;\n hoverImage?: string | HTMLImageElement | HTMLCanvasElement;\n originImage?: string | HTMLImageElement | HTMLCanvasElement;\n // margin?: [number, number, number, number];\n marginLeft?: number;\n marginRight?: number;\n shape?: 'circle' | 'square';\n interactive?: boolean;\n}\n\nexport class Icon extends Image {\n declare attribute: IIconGraphicAttribute;\n role?: string;\n tooltip?: IIconBase['tooltip'];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(params: IIconGraphicAttribute) {\n super(params);\n\n if (this.attribute.visibleTime === 'mouseenter_cell' || this.attribute.visibleTime === 'click_cell') {\n this.attribute.opacity = 0;\n }\n\n if (this.attribute.hoverImage) {\n this.attribute.originImage = this.attribute.image;\n }\n\n // if (this.attribute.margin) {\n // this.attribute.boundsPadding = this.attribute.margin;\n // this.attribute.dx = this.attribute.margin[3] ?? 0;\n // }\n }\n\n get backgroundWidth(): number {\n return this.attribute.backgroundWidth ?? this.attribute.width ?? 0;\n }\n\n get backgroundHeight(): number {\n return this.attribute.backgroundHeight ?? this.attribute.height ?? 0;\n }\n\n // protected tryUpdateAABBBounds() {\n // super.tryUpdateAABBBounds();\n // // 扩大范围\n // const { width, height } = this.attribute;\n // const { backgroundWidth = width, backgroundHeight = height } = this.attribute;\n // const expandX = (backgroundWidth - width) / 2;\n // const expandY = (backgroundHeight - height) / 2;\n // this._AABBBounds.expand([expandY, expandX, expandY, expandX]);\n\n // return this._AABBBounds;\n // }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/icon.ts"],"names":[],"mappings":";;;AACA,6CAAwC;AAkBxC,MAAa,IAAK,SAAQ,eAAK;IAM7B,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,YAAY,EAAE;YACnG,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;SAC5B;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SACnD;IAMH,CAAC;IAED,IAAI,eAAe;;QACjB,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,eAAe,mCAAI,IAAI,CAAC,SAAS,CAAC,KAAK,mCAAI,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,gBAAgB;;QAClB,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,mCAAI,IAAI,CAAC,SAAS,CAAC,MAAM,mCAAI,CAAC,CAAC;IACvE,CAAC;CAaF;AA1CD,oBA0CC","file":"icon.js","sourcesContent":["import type { IImageGraphicAttribute } from './../../vrender';\nimport { Image } from './../../vrender';\nimport type { IIconBase } from '../../ts-types';\n\nexport interface IIconGraphicAttribute extends IImageGraphicAttribute {\n backgroundWidth?: number;\n backgroundHeight?: number;\n backgroundColor?: string;\n visibleTime?: string;\n funcType?: string;\n hoverImage?: string | HTMLImageElement | HTMLCanvasElement;\n originImage?: string | HTMLImageElement | HTMLCanvasElement;\n // margin?: [number, number, number, number];\n marginLeft?: number;\n marginRight?: number;\n shape?: 'circle' | 'square';\n interactive?: boolean;\n}\n\nexport class Icon extends Image {\n declare attribute: IIconGraphicAttribute;\n role?: string;\n tooltip?: IIconBase['tooltip'];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(params: IIconGraphicAttribute) {\n super(params);\n\n if (this.attribute.visibleTime === 'mouseenter_cell' || this.attribute.visibleTime === 'click_cell') {\n this.attribute.opacity = 0;\n }\n\n if (this.attribute.hoverImage) {\n this.attribute.originImage = this.attribute.image;\n }\n\n // if (this.attribute.margin) {\n // this.attribute.boundsPadding = this.attribute.margin;\n // this.attribute.dx = this.attribute.margin[3] ?? 0;\n // }\n }\n\n get backgroundWidth(): number {\n return this.attribute.backgroundWidth ?? this.attribute.width ?? 0;\n }\n\n get backgroundHeight(): number {\n return this.attribute.backgroundHeight ?? this.attribute.height ?? 0;\n }\n\n // protected tryUpdateAABBBounds() {\n // super.tryUpdateAABBBounds();\n // // 扩大范围\n // const { width, height } = this.attribute;\n // const { backgroundWidth = width, backgroundHeight = height } = this.attribute;\n // const expandX = (backgroundWidth - width) / 2;\n // const expandY = (backgroundHeight - height) / 2;\n // this._AABBBounds.expand([expandY, expandX, expandY, expandX]);\n\n // return this._AABBBounds;\n // }\n}\n"]}
@@ -1,2 +1,2 @@
1
- export type { ITextGraphicAttribute, IWrapTextGraphicAttribute } from '@visactor/vrender';
2
- export { WrapText } from '@visactor/vrender';
1
+ export type { ITextGraphicAttribute, IWrapTextGraphicAttribute } from './../../vrender';
2
+ export { Text as WrapText } from './../../vrender';
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.WrapText = void 0;
6
6
 
7
- var vrender_1 = require("@visactor/vrender");
7
+ var vrender_1 = require("./../../vrender");
8
8
 
9
9
  Object.defineProperty(exports, "WrapText", {
10
10
  enumerable: !0,
11
11
  get: function() {
12
- return vrender_1.WrapText;
12
+ return vrender_1.Text;
13
13
  }
14
14
  });
15
15
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/text.ts"],"names":[],"mappings":";;;AACA,6CAA6C;AAApC,mGAAA,QAAQ,OAAA","file":"text.js","sourcesContent":["export type { ITextGraphicAttribute, IWrapTextGraphicAttribute } from '@visactor/vrender';\nexport { WrapText } from '@visactor/vrender';\n// import { getTheme, graphicUtil, Text, CanvasTextLayout, textDrawOffsetX, textLayoutOffsetY } from '@visactor/vrender';\n// import type { Bounds } from '@visactor/vutils';\n// import { textMeasure } from '../utils/measure-text';\n\n/* WrapText功能/dist/core/contributions/textMeasure/layout\n * 1. 按照宽度限制自动折行或显示省略号\n * 2. 高度限制控制显示内容及省略号\n */\n\n// const WRAP_TEXT_UPDATE_TAG_KEY = ['heightLimit', 'lineClamp', 'autoWrapText'];\n\n// export interface IWrapTextGraphicAttribute extends ITextGraphicAttribute {\n// // widthLimit: number;\n// heightLimit?: number;\n// lineClamp?: number;\n// autoWrapText?: boolean;\n// }\n// export class WrapText extends Text {\n// declare attribute: IWrapTextGraphicAttribute;\n\n// // eslint-disable-next-line no-useless-constructor\n// constructor(params: IWrapTextGraphicAttribute) {\n// super(params);\n// }\n\n// /**\n// * 计算单行文字的bounds,可以缓存长度以及截取的文字\n// * @param text\n// */\n// updateSingallineAABBBounds(text: number | string) {\n// const textTheme = getTheme(this).text;\n// // const textMeasure = graphicUtil.textMeasure;\n// let width: number;\n// let str: string;\n// const attribute = this.attribute;\n// const {\n// maxLineWidth = textTheme.maxLineWidth,\n// ellipsis = textTheme.ellipsis,\n// textAlign = textTheme.textAlign,\n// textBaseline = textTheme.textBaseline,\n// fontSize = textTheme.fontSize,\n// fontFamily = textTheme.fontFamily,\n// fontWeight = textTheme.fontWeight,\n// stroke = textTheme.stroke,\n// lineHeight = attribute.lineHeight ?? attribute.fontSize ?? textTheme.fontSize,\n// lineWidth = textTheme.lineWidth\n// } = attribute;\n\n// if (!this.shouldUpdateShape() && this.cache) {\n// width = this.cache.clipedWidth;\n// const dx = textDrawOffsetX(textAlign, width);\n// const dy = textLayoutOffsetY(textBaseline, lineHeight, fontSize);\n// this._AABBBounds.set(dx, dy, dx + width, dy + lineHeight);\n// if (stroke) {\n// this._AABBBounds.expand(lineWidth / 2);\n// }\n// return this._AABBBounds;\n// }\n\n// if (Number.isFinite(maxLineWidth)) {\n// if (ellipsis) {\n// const strEllipsis = (ellipsis === true ? textTheme.ellipsis : ellipsis) as string;\n// const data = textMeasure.clipTextWithSuffix(\n// text.toString(),\n// { fontSize, fontFamily },\n// maxLineWidth,\n// strEllipsis\n// );\n// str = data.str;\n// width = data.width;\n// } else {\n// const data = textMeasure.clipText(text.toString(), { fontSize, fontFamily }, maxLineWidth);\n// str = data.str;\n// width = data.width;\n// }\n// this.cache.clipedText = str;\n// this.cache.clipedWidth = width;\n// // todo 计算原本的宽度\n// } else {\n// width = textMeasure.measureTextWidth(text.toString(), { fontSize, fontFamily, fontWeight });\n// this.cache.clipedText = text.toString();\n// this.cache.clipedWidth = width;\n// }\n// this.clearUpdateShapeTag();\n\n// const dx = textDrawOffsetX(textAlign, width);\n// const dy = textLayoutOffsetY(textBaseline, lineHeight, fontSize);\n// this._AABBBounds.set(dx, dy, dx + width, dy + lineHeight);\n\n// if (stroke) {\n// this._AABBBounds.expand(lineWidth / 2);\n// }\n\n// return this._AABBBounds;\n// }\n\n// /**\n// * 计算多行文字的bounds,缓存每行文字的布局位置\n// * 自动折行params.text是数组,因此只重新updateMultilineAABBBounds\n// * @param text\n// */\n// updateMultilineAABBBounds(text: (number | string)[]) {\n// const textTheme = getTheme(this).text;\n// const {\n// fontFamily = textTheme.fontFamily,\n// textAlign = textTheme.textAlign,\n// fontWeight = textTheme.fontWeight,\n// textBaseline = textTheme.textBaseline,\n// fontSize = textTheme.fontSize,\n// lineHeight = this.attribute.lineHeight ?? this.attribute.fontSize ?? textTheme.fontSize,\n// ellipsis = textTheme.ellipsis,\n// maxLineWidth,\n// stroke = textTheme.stroke,\n// lineWidth = textTheme.lineWidth,\n// // widthLimit,\n// heightLimit = -1,\n// lineClamp = (textTheme as any).lineClamp,\n// autoWrapText = (textTheme as any).autoWrapText\n// } = this.attribute;\n\n// if (!this.shouldUpdateShape() && this.cache?.layoutData) {\n// const bbox = this.cache.layoutData.bbox;\n// this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n// if (stroke) {\n// this._AABBBounds.expand(lineWidth / 2);\n// }\n// return this._AABBBounds;\n// }\n\n// // const textMeasure = graphicUtil.textMeasure;\n// const layoutObj = new CanvasTextLayout(fontFamily, { fontSize, fontFamily }, textMeasure as any) as any;\n\n// // layoutObj内逻辑\n// const lines = text.map(l => l.toString()) as string[];\n// const linesLayout: LayoutItemType[] = [];\n// const bboxWH: [number, number] = [0, 0];\n\n// let lineCountLimit = Infinity;\n// if (heightLimit > 0) {\n// lineCountLimit = Math.max(Math.floor(heightLimit / lineHeight), 1);\n// }\n// if (lineClamp) {\n// // 处理行数限制\n// lineCountLimit = Math.min(lineCountLimit, lineClamp);\n// }\n\n// if (!autoWrapText) {\n// // 使用所有行中最长的作为lineWidth\n// let lineWidth = 0;\n// for (let i = 0, len = lines.length; i < len; i++) {\n// // 判断是否超过高度限制\n// if (i < lineCountLimit) {\n// // 当前行为最后一行\n// const clip = layoutObj.textMeasure.clipTextWithSuffix(\n// lines[i],\n// layoutObj.textOptions,\n// maxLineWidth,\n// ellipsis\n// );\n// linesLayout.push({\n// str: clip.str,\n// width: clip.width\n// });\n// lineWidth = Math.max(lineWidth, clip.width);\n// }\n// }\n// bboxWH[0] = lineWidth;\n// } else if (typeof maxLineWidth === 'number' && maxLineWidth !== Infinity) {\n// // widthLimit > 0\n// if (maxLineWidth > 0) {\n// for (let i = 0; i < lines.length; i++) {\n// const str = lines[i] as string;\n// // // 测量当前行宽度\n// // width = Math.min(\n// // layoutObj.textMeasure.measureTextWidth(str, layoutObj.textOptions),\n// // maxLineWidth\n// // );\n\n// // 判断是否超过高度限制\n// if (i === lineCountLimit - 1) {\n// // 当前行为最后一行\n// const clip = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis);\n// linesLayout.push({\n// str: clip.str,\n// width: clip.width\n// });\n// break; // 不处理后续行\n// }\n\n// // 测量截断位置\n// const clip = layoutObj.textMeasure.clipText(str, layoutObj.textOptions, maxLineWidth);\n// if (str !== '' && clip.str === '') {\n// // 宽度限制不足一个字符,至少截取一个字符\n// clip.str = str.substring(0, 1);\n// clip.width = textMeasure.measureTextWidth(clip.str, { fontSize, fontFamily, fontWeight });\n// }\n\n// linesLayout.push({\n// str: clip.str,\n// width: clip.width\n// });\n// if (clip.str.length === str.length) {\n// // 不需要截断\n// } else {\n// const newStr = str.substring(clip.str.length);\n// lines.splice(i + 1, 0, newStr);\n// }\n// }\n// }\n// // bboxWH[0] = maxLineWidth;\n// let maxWidth = 0;\n// linesLayout.forEach(layout => {\n// maxWidth = Math.max(maxWidth, layout.width);\n// });\n// bboxWH[0] = maxWidth;\n// } else {\n// // 使用所有行中最长的作为lineWidth\n// let lineWidth = 0;\n// let width: number;\n// let text: string;\n// for (let i = 0, len = lines.length; i < len; i++) {\n// // 判断是否超过高度限制\n// if (i === lineCountLimit - 1) {\n// // 当前行为最后一行\n// const clip = layoutObj.textMeasure.clipTextWithSuffix(\n// lines[i],\n// layoutObj.textOptions,\n// maxLineWidth,\n// ellipsis\n// );\n// linesLayout.push({\n// str: clip.str,\n// width: clip.width\n// });\n// lineWidth = Math.max(lineWidth, clip.width);\n// break; // 不处理后续行\n// }\n\n// text = lines[i] as string;\n// width = layoutObj.textMeasure.measureTextWidth(text, layoutObj.textOptions);\n// lineWidth = Math.max(lineWidth, width);\n// linesLayout.push({ str: text, width });\n// }\n// bboxWH[0] = lineWidth;\n// }\n// bboxWH[1] = linesLayout.length * lineHeight;\n\n// const bbox = {\n// xOffset: 0,\n// yOffset: 0,\n// width: bboxWH[0],\n// height: bboxWH[1]\n// };\n\n// layoutObj.LayoutBBox(bbox, textAlign, textBaseline as any);\n\n// const layoutData = layoutObj.layoutWithBBox(bbox, linesLayout, textAlign, textBaseline as any, lineHeight);\n\n// // const layoutData = layoutObj.GetLayoutByLines(\n// // text,\n// // textAlign,\n// // textBaseline as any,\n// // lineHeight,\n// // ellipsis === true ? (DefaultTextAttribute.ellipsis as string) : ellipsis || undefined,\n// // maxLineWidth\n// // );\n// // const { bbox } = layoutData;\n// this.cache.layoutData = layoutData;\n// this.clearUpdateShapeTag();\n// this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n\n// if (stroke) {\n// this._AABBBounds.expand(lineWidth / 2);\n// }\n\n// return this._AABBBounds;\n// }\n\n// needUpdateTags(keys: string[]): boolean {\n// for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n// const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n// if (keys.indexOf(attrKey) !== -1) {\n// return true;\n// }\n// }\n// return super.needUpdateTags(keys);\n// }\n// needUpdateTag(key: string): boolean {\n// for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n// const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n// if (key === attrKey) {\n// return true;\n// }\n// }\n// return super.needUpdateTag(key);\n// }\n// }\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/text.ts"],"names":[],"mappings":";;;AACA,2CAAmD;AAA1C,mGAAA,IAAI,OAAY","file":"text.js","sourcesContent":["export type { ITextGraphicAttribute, IWrapTextGraphicAttribute } from './../../vrender';\nexport { Text as WrapText } from './../../vrender';\n// import { getTheme, graphicUtil, Text, CanvasTextLayout, textDrawOffsetX, textLayoutOffsetY } from '@src/vrender';\n// import type { Bounds } from '@visactor/vutils';\n// import { textMeasure } from '../utils/measure-text';\n\n/* WrapText功能/dist/core/contributions/textMeasure/layout\n * 1. 按照宽度限制自动折行或显示省略号\n * 2. 高度限制控制显示内容及省略号\n */\n\n// const WRAP_TEXT_UPDATE_TAG_KEY = ['heightLimit', 'lineClamp', 'autoWrapText'];\n\n// export interface IWrapTextGraphicAttribute extends ITextGraphicAttribute {\n// // widthLimit: number;\n// heightLimit?: number;\n// lineClamp?: number;\n// autoWrapText?: boolean;\n// }\n// export class WrapText extends Text {\n// declare attribute: IWrapTextGraphicAttribute;\n\n// // eslint-disable-next-line no-useless-constructor\n// constructor(params: IWrapTextGraphicAttribute) {\n// super(params);\n// }\n\n// /**\n// * 计算单行文字的bounds,可以缓存长度以及截取的文字\n// * @param text\n// */\n// updateSingallineAABBBounds(text: number | string) {\n// const textTheme = getTheme(this).text;\n// // const textMeasure = graphicUtil.textMeasure;\n// let width: number;\n// let str: string;\n// const attribute = this.attribute;\n// const {\n// maxLineWidth = textTheme.maxLineWidth,\n// ellipsis = textTheme.ellipsis,\n// textAlign = textTheme.textAlign,\n// textBaseline = textTheme.textBaseline,\n// fontSize = textTheme.fontSize,\n// fontFamily = textTheme.fontFamily,\n// fontWeight = textTheme.fontWeight,\n// stroke = textTheme.stroke,\n// lineHeight = attribute.lineHeight ?? attribute.fontSize ?? textTheme.fontSize,\n// lineWidth = textTheme.lineWidth\n// } = attribute;\n\n// if (!this.shouldUpdateShape() && this.cache) {\n// width = this.cache.clipedWidth;\n// const dx = textDrawOffsetX(textAlign, width);\n// const dy = textLayoutOffsetY(textBaseline, lineHeight, fontSize);\n// this._AABBBounds.set(dx, dy, dx + width, dy + lineHeight);\n// if (stroke) {\n// this._AABBBounds.expand(lineWidth / 2);\n// }\n// return this._AABBBounds;\n// }\n\n// if (Number.isFinite(maxLineWidth)) {\n// if (ellipsis) {\n// const strEllipsis = (ellipsis === true ? textTheme.ellipsis : ellipsis) as string;\n// const data = textMeasure.clipTextWithSuffix(\n// text.toString(),\n// { fontSize, fontFamily },\n// maxLineWidth,\n// strEllipsis\n// );\n// str = data.str;\n// width = data.width;\n// } else {\n// const data = textMeasure.clipText(text.toString(), { fontSize, fontFamily }, maxLineWidth);\n// str = data.str;\n// width = data.width;\n// }\n// this.cache.clipedText = str;\n// this.cache.clipedWidth = width;\n// // todo 计算原本的宽度\n// } else {\n// width = textMeasure.measureTextWidth(text.toString(), { fontSize, fontFamily, fontWeight });\n// this.cache.clipedText = text.toString();\n// this.cache.clipedWidth = width;\n// }\n// this.clearUpdateShapeTag();\n\n// const dx = textDrawOffsetX(textAlign, width);\n// const dy = textLayoutOffsetY(textBaseline, lineHeight, fontSize);\n// this._AABBBounds.set(dx, dy, dx + width, dy + lineHeight);\n\n// if (stroke) {\n// this._AABBBounds.expand(lineWidth / 2);\n// }\n\n// return this._AABBBounds;\n// }\n\n// /**\n// * 计算多行文字的bounds,缓存每行文字的布局位置\n// * 自动折行params.text是数组,因此只重新updateMultilineAABBBounds\n// * @param text\n// */\n// updateMultilineAABBBounds(text: (number | string)[]) {\n// const textTheme = getTheme(this).text;\n// const {\n// fontFamily = textTheme.fontFamily,\n// textAlign = textTheme.textAlign,\n// fontWeight = textTheme.fontWeight,\n// textBaseline = textTheme.textBaseline,\n// fontSize = textTheme.fontSize,\n// lineHeight = this.attribute.lineHeight ?? this.attribute.fontSize ?? textTheme.fontSize,\n// ellipsis = textTheme.ellipsis,\n// maxLineWidth,\n// stroke = textTheme.stroke,\n// lineWidth = textTheme.lineWidth,\n// // widthLimit,\n// heightLimit = -1,\n// lineClamp = (textTheme as any).lineClamp,\n// autoWrapText = (textTheme as any).autoWrapText\n// } = this.attribute;\n\n// if (!this.shouldUpdateShape() && this.cache?.layoutData) {\n// const bbox = this.cache.layoutData.bbox;\n// this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n// if (stroke) {\n// this._AABBBounds.expand(lineWidth / 2);\n// }\n// return this._AABBBounds;\n// }\n\n// // const textMeasure = graphicUtil.textMeasure;\n// const layoutObj = new CanvasTextLayout(fontFamily, { fontSize, fontFamily }, textMeasure as any) as any;\n\n// // layoutObj内逻辑\n// const lines = text.map(l => l.toString()) as string[];\n// const linesLayout: LayoutItemType[] = [];\n// const bboxWH: [number, number] = [0, 0];\n\n// let lineCountLimit = Infinity;\n// if (heightLimit > 0) {\n// lineCountLimit = Math.max(Math.floor(heightLimit / lineHeight), 1);\n// }\n// if (lineClamp) {\n// // 处理行数限制\n// lineCountLimit = Math.min(lineCountLimit, lineClamp);\n// }\n\n// if (!autoWrapText) {\n// // 使用所有行中最长的作为lineWidth\n// let lineWidth = 0;\n// for (let i = 0, len = lines.length; i < len; i++) {\n// // 判断是否超过高度限制\n// if (i < lineCountLimit) {\n// // 当前行为最后一行\n// const clip = layoutObj.textMeasure.clipTextWithSuffix(\n// lines[i],\n// layoutObj.textOptions,\n// maxLineWidth,\n// ellipsis\n// );\n// linesLayout.push({\n// str: clip.str,\n// width: clip.width\n// });\n// lineWidth = Math.max(lineWidth, clip.width);\n// }\n// }\n// bboxWH[0] = lineWidth;\n// } else if (typeof maxLineWidth === 'number' && maxLineWidth !== Infinity) {\n// // widthLimit > 0\n// if (maxLineWidth > 0) {\n// for (let i = 0; i < lines.length; i++) {\n// const str = lines[i] as string;\n// // // 测量当前行宽度\n// // width = Math.min(\n// // layoutObj.textMeasure.measureTextWidth(str, layoutObj.textOptions),\n// // maxLineWidth\n// // );\n\n// // 判断是否超过高度限制\n// if (i === lineCountLimit - 1) {\n// // 当前行为最后一行\n// const clip = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis);\n// linesLayout.push({\n// str: clip.str,\n// width: clip.width\n// });\n// break; // 不处理后续行\n// }\n\n// // 测量截断位置\n// const clip = layoutObj.textMeasure.clipText(str, layoutObj.textOptions, maxLineWidth);\n// if (str !== '' && clip.str === '') {\n// // 宽度限制不足一个字符,至少截取一个字符\n// clip.str = str.substring(0, 1);\n// clip.width = textMeasure.measureTextWidth(clip.str, { fontSize, fontFamily, fontWeight });\n// }\n\n// linesLayout.push({\n// str: clip.str,\n// width: clip.width\n// });\n// if (clip.str.length === str.length) {\n// // 不需要截断\n// } else {\n// const newStr = str.substring(clip.str.length);\n// lines.splice(i + 1, 0, newStr);\n// }\n// }\n// }\n// // bboxWH[0] = maxLineWidth;\n// let maxWidth = 0;\n// linesLayout.forEach(layout => {\n// maxWidth = Math.max(maxWidth, layout.width);\n// });\n// bboxWH[0] = maxWidth;\n// } else {\n// // 使用所有行中最长的作为lineWidth\n// let lineWidth = 0;\n// let width: number;\n// let text: string;\n// for (let i = 0, len = lines.length; i < len; i++) {\n// // 判断是否超过高度限制\n// if (i === lineCountLimit - 1) {\n// // 当前行为最后一行\n// const clip = layoutObj.textMeasure.clipTextWithSuffix(\n// lines[i],\n// layoutObj.textOptions,\n// maxLineWidth,\n// ellipsis\n// );\n// linesLayout.push({\n// str: clip.str,\n// width: clip.width\n// });\n// lineWidth = Math.max(lineWidth, clip.width);\n// break; // 不处理后续行\n// }\n\n// text = lines[i] as string;\n// width = layoutObj.textMeasure.measureTextWidth(text, layoutObj.textOptions);\n// lineWidth = Math.max(lineWidth, width);\n// linesLayout.push({ str: text, width });\n// }\n// bboxWH[0] = lineWidth;\n// }\n// bboxWH[1] = linesLayout.length * lineHeight;\n\n// const bbox = {\n// xOffset: 0,\n// yOffset: 0,\n// width: bboxWH[0],\n// height: bboxWH[1]\n// };\n\n// layoutObj.LayoutBBox(bbox, textAlign, textBaseline as any);\n\n// const layoutData = layoutObj.layoutWithBBox(bbox, linesLayout, textAlign, textBaseline as any, lineHeight);\n\n// // const layoutData = layoutObj.GetLayoutByLines(\n// // text,\n// // textAlign,\n// // textBaseline as any,\n// // lineHeight,\n// // ellipsis === true ? (DefaultTextAttribute.ellipsis as string) : ellipsis || undefined,\n// // maxLineWidth\n// // );\n// // const { bbox } = layoutData;\n// this.cache.layoutData = layoutData;\n// this.clearUpdateShapeTag();\n// this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n\n// if (stroke) {\n// this._AABBBounds.expand(lineWidth / 2);\n// }\n\n// return this._AABBBounds;\n// }\n\n// needUpdateTags(keys: string[]): boolean {\n// for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n// const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n// if (keys.indexOf(attrKey) !== -1) {\n// return true;\n// }\n// }\n// return super.needUpdateTags(keys);\n// }\n// needUpdateTag(key: string): boolean {\n// for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n// const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n// if (key === attrKey) {\n// return true;\n// }\n// }\n// return super.needUpdateTag(key);\n// }\n// }\n"]}
@@ -1,4 +1,4 @@
1
- import type { IThemeSpec } from '@visactor/vrender';
1
+ import type { IThemeSpec } from './../../vrender';
2
2
  import type { ColumnDefine, ColumnTypeOption } from '../../ts-types';
3
3
  import type { Group } from '../graphic/group';
4
4
  import type { BaseTableAPI } from '../../ts-types/base-table';
@@ -48,10 +48,10 @@ function createCell(type, value, define, table, col, row, colWidth, cellWidth, c
48
48
  fill: !1,
49
49
  stroke: !1
50
50
  }), cellGroup.clear()) : table.internalProps.layoutMap.isAxisCell(col, row) && cellGroup.clear();
51
- } else if ("image" === type) cellGroup = (0, image_cell_1.createImageCellGroup)(columnGroup, 0, y, col, row, table.getColWidth(col), table.getRowHeight(row), define.keepAspectRatio, define.imageAutoSizing, padding, textAlign, textBaseline, table, cellTheme); else if ("video" === type) cellGroup = (0,
52
- video_cell_1.createVideoCellGroup)(columnGroup, 0, y, col, row, table.getColWidth(col), table.getRowHeight(row), define.keepAspectRatio, define.imageAutoSizing, padding, textAlign, textBaseline, table, cellTheme); else if ("chart" === type) {
51
+ } else if ("image" === type) cellGroup = (0, image_cell_1.createImageCellGroup)(columnGroup, 0, y, col, row, cellWidth, cellHeight, define.keepAspectRatio, define.imageAutoSizing, padding, textAlign, textBaseline, table, cellTheme); else if ("video" === type) cellGroup = (0,
52
+ video_cell_1.createVideoCellGroup)(columnGroup, 0, y, col, row, cellWidth, cellHeight, define.keepAspectRatio, define.imageAutoSizing, padding, textAlign, textBaseline, table, cellTheme); else if ("chart" === type) {
53
53
  const chartInstance = table.internalProps.layoutMap.getChartInstance(col, row);
54
- cellGroup = (0, chart_cell_1.createChartCellGroup)(null, columnGroup, 0, y, col, row, table.getColWidth(col), table.getRowHeight(row), padding, value, define.chartModule, table.isPivotChart() ? table.internalProps.layoutMap.getChartSpec(col, row) : define.chartSpec, chartInstance, null !== (_g = null === (_f = table.internalProps.layoutMap) || void 0 === _f ? void 0 : _f.getChartDataId(col, row)) && void 0 !== _g ? _g : "data", table, cellTheme);
54
+ cellGroup = (0, chart_cell_1.createChartCellGroup)(null, columnGroup, 0, y, col, row, cellWidth, cellHeight, padding, value, define.chartModule, table.isPivotChart() ? table.internalProps.layoutMap.getChartSpec(col, row) : define.chartSpec, chartInstance, null !== (_g = null === (_f = table.internalProps.layoutMap) || void 0 === _f ? void 0 : _f.getChartDataId(col, row)) && void 0 !== _g ? _g : "data", table, cellTheme);
55
55
  } else if ("progressbar" === type) {
56
56
  const style = table._getCellStyle(col, row), dataValue = table.getCellOriginValue(col, row);
57
57
  cellGroup = (0, text_cell_1.createCellGroup)(table, value, columnGroup, 0, y, col, row, colWidth, cellWidth, cellHeight, padding, textAlign, textBaseline, !1, null, !0, cellTheme);
@@ -63,13 +63,14 @@ function createCell(type, value, define, table, col, row, colWidth, cellWidth, c
63
63
  }
64
64
 
65
65
  function updateCell(col, row, table, addNew) {
66
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
66
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
67
67
  const oldCellGroup = table.scenegraph.highPerformanceGetCell(col, row, !0), cellStyle = table._getCellStyle(col, row), autoWrapText = null !== (_a = cellStyle.autoWrapText) && void 0 !== _a ? _a : table.internalProps.autoWrapText, cellLocation = table.getCellLocation(col, row), define = "body" !== cellLocation ? table.getHeaderDefine(col, row) : table.getBodyColumnDefine(col, row);
68
68
  let isMerge, range;
69
69
  ("body" !== cellLocation || (null == define ? void 0 : define.mergeCell) || table.internalProps.customMergeCell) && (range = table.getCellRange(col, row),
70
70
  isMerge = range.start.col !== range.end.col || range.start.row !== range.end.row);
71
71
  let cellTheme = (0, tableHelper_1.getStyleTheme)(cellStyle, table, isMerge ? range.start.col : col, isMerge ? range.start.row : row, get_prop_1.getProp).theme;
72
- if (!addNew && !isMerge && canUseFastUpdate(col, row, oldCellGroup, autoWrapText, table)) {
72
+ if (cellTheme.group.cornerRadius = (0, tableHelper_1.getCellCornerRadius)(col, row, table),
73
+ !addNew && !isMerge && canUseFastUpdate(col, row, oldCellGroup, autoWrapText, table)) {
73
74
  const cellWidth = table.getColWidth(col), cellHeight = table.getRowHeight(row);
74
75
  oldCellGroup.setAttributes({
75
76
  width: cellWidth,
@@ -79,13 +80,15 @@ function updateCell(col, row, table, addNew) {
79
80
  stroke: null !== (_g = null === (_f = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _f ? void 0 : _f.stroke) && void 0 !== _g ? _g : void 0,
80
81
  strokeArrayWidth: null !== (_j = null === (_h = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _h ? void 0 : _h.strokeArrayWidth) && void 0 !== _j ? _j : void 0,
81
82
  strokeArrayColor: null !== (_l = null === (_k = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _k ? void 0 : _k.strokeArrayColor) && void 0 !== _l ? _l : void 0,
82
- cursor: null !== (_o = null === (_m = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _m ? void 0 : _m.cursor) && void 0 !== _o ? _o : void 0
83
+ cursor: null !== (_o = null === (_m = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _m ? void 0 : _m.cursor) && void 0 !== _o ? _o : void 0,
84
+ cornerRadius: null !== (_q = null === (_p = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _p ? void 0 : _p.cornerRadius) && void 0 !== _q ? _q : 0,
85
+ y: table.scenegraph.getCellGroupY(row)
83
86
  });
84
87
  const textMark = oldCellGroup.getChildByName("text");
85
88
  if (textMark) {
86
89
  const text = table.getCellValue(col, row), textArr = (0, util_1.convertInternal)(text).replace(/\r?\n/g, "\n").replace(/\r/g, "\n").split("\n"), hierarchyOffset = (0,
87
- get_hierarchy_offset_1.getHierarchyOffset)(col, row, table), lineClamp = cellStyle.lineClamp, padding = null !== (_p = (0,
88
- padding_1.getQuadProps)((0, get_prop_1.getProp)("padding", cellStyle, col, row, table))) && void 0 !== _p ? _p : [ 0, 0, 0, 0 ], textAlign = cellTheme.text.textAlign;
90
+ get_hierarchy_offset_1.getHierarchyOffset)(col, row, table), lineClamp = cellStyle.lineClamp, padding = null !== (_r = (0,
91
+ padding_1.getQuadProps)((0, get_prop_1.getProp)("padding", cellStyle, col, row, table))) && void 0 !== _r ? _r : [ 0, 0, 0, 0 ], textAlign = cellTheme.text.textAlign;
89
92
  let x = 0;
90
93
  x = "center" === textAlign ? padding[3] + (cellWidth - (padding[1] + padding[3])) / 2 : "right" === textAlign ? padding[3] + cellWidth - (padding[1] + padding[3]) : padding[3];
91
94
  const attribute = {
@@ -120,12 +123,14 @@ function updateCell(col, row, table, addNew) {
120
123
  if (customMerge) {
121
124
  const {range: customMergeRange, text: customMergeText, style: customMergeStyle} = customMerge;
122
125
  range = customMergeRange, isMerge = range.start.col !== range.end.col || range.start.row !== range.end.row,
123
- value = customMergeText, customStyle = customMergeStyle, cellTheme = (0, tableHelper_1.getStyleTheme)(customStyle, table, range.start.col, range.start.row, get_prop_1.getProp).theme;
126
+ value = customMergeText, customStyle = customMergeStyle, customStyle && (cellTheme = (0,
127
+ tableHelper_1.getStyleTheme)(customStyle, table, range.start.col, range.start.row, get_prop_1.getProp).theme,
128
+ cellTheme.group.cornerRadius = (0, tableHelper_1.getCellCornerRadius)(col, row, table));
124
129
  }
125
130
  }
126
131
  const mayHaveIcon = "body" !== cellLocation || (!!(null == define ? void 0 : define.icon) || !!(null == define ? void 0 : define.tree)), padding = cellTheme._vtable.padding, textAlign = cellTheme._vtable.textAlign, textBaseline = cellTheme._vtable.textBaseline;
127
132
  let bgColorFunc, customRender, customLayout, cellWidth, cellHeight;
128
- if ((null === (_r = null === (_q = table.internalProps) || void 0 === _q ? void 0 : _q.dataConfig) || void 0 === _r ? void 0 : _r.mappingRules) && !table.isHeader(col, row) && (null === (_u = null === (_t = null === (_s = table.internalProps) || void 0 === _s ? void 0 : _s.dataConfig) || void 0 === _t ? void 0 : _t.mappingRules) || void 0 === _u || _u.forEach(((mappingRule, i) => {
133
+ if ((null === (_t = null === (_s = table.internalProps) || void 0 === _s ? void 0 : _s.dataConfig) || void 0 === _t ? void 0 : _t.mappingRules) && !table.isHeader(col, row) && (null === (_w = null === (_v = null === (_u = table.internalProps) || void 0 === _u ? void 0 : _u.dataConfig) || void 0 === _v ? void 0 : _v.mappingRules) || void 0 === _w || _w.forEach(((mappingRule, i) => {
129
134
  mappingRule.bgColor && table.internalProps.layoutMap.getIndicatorKey(col, row) === mappingRule.bgColor.indicatorKey && (bgColorFunc = mappingRule.bgColor.mapping);
130
135
  }))), "body" !== cellLocation ? (customRender = null == define ? void 0 : define.headerCustomRender,
131
136
  customLayout = null == define ? void 0 : define.headerCustomLayout) : (customRender = (null == define ? void 0 : define.customRender) || table.customRender,
@@ -143,7 +148,7 @@ function updateCell(col, row, table, addNew) {
143
148
 
144
149
  function updateCellContent(type, value, define, table, col, row, bgColorFunc, cellWidth, cellHeight, oldCellGroup, padding, textAlign, textBaseline, mayHaveIcon, addNew, cellTheme) {
145
150
  var _a, _b;
146
- if ((0, helper_1.isPromise)(value) && (value = table.getCellValue(col, row)), oldCellGroup.row !== row || oldCellGroup.col !== col) return null;
151
+ if ((0, helper_1.isPromise)(value) && (value = table.getCellValue(col, row)), !addNew && (oldCellGroup.row !== row || oldCellGroup.col !== col)) return null;
147
152
  const newCellGroup = createCell(type, value, define, table, col, row, table.getColWidth(col), cellWidth, cellHeight, addNew ? table.scenegraph.getColGroup(col) : oldCellGroup.parent, addNew ? 0 : table.scenegraph.getCellGroupY(row), padding, textAlign, textBaseline, mayHaveIcon, cellTheme);
148
153
  return !addNew && oldCellGroup.parent && (oldCellGroup.parent.insertAfter(newCellGroup, oldCellGroup),
149
154
  oldCellGroup.parent.removeChild(oldCellGroup), (null === (_a = table.scenegraph) || void 0 === _a ? void 0 : _a.proxy.cellCache.get(col)) && (null === (_b = table.scenegraph) || void 0 === _b || _b.proxy.cellCache.set(col, newCellGroup))),