@visactor/vtable 1.6.0-alpha.4 → 1.6.0

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 (341) hide show
  1. package/cjs/ListTable-all.js +5 -5
  2. package/cjs/ListTable-all.js.map +1 -1
  3. package/cjs/ListTable.d.ts +3 -0
  4. package/cjs/ListTable.js +42 -285
  5. package/cjs/ListTable.js.map +1 -1
  6. package/cjs/PivotChart.d.ts +1 -0
  7. package/cjs/PivotChart.js +4 -0
  8. package/cjs/PivotChart.js.map +1 -1
  9. package/cjs/PivotTable.js +1 -1
  10. package/cjs/PivotTable.js.map +1 -1
  11. package/cjs/components/axis/axis.js +3 -2
  12. package/cjs/components/axis/axis.js.map +1 -1
  13. package/cjs/components/legend/discrete-legend/discrete-legend.js +2 -1
  14. package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  15. package/cjs/components/title/title.js +3 -1
  16. package/cjs/components/title/title.js.map +1 -1
  17. package/cjs/core/BaseTable.d.ts +8 -5
  18. package/cjs/core/BaseTable.js +57 -111
  19. package/cjs/core/BaseTable.js.map +1 -1
  20. package/cjs/core/FouseInput.d.ts +1 -0
  21. package/cjs/core/FouseInput.js +5 -2
  22. package/cjs/core/FouseInput.js.map +1 -1
  23. package/cjs/core/group-helper.d.ts +6 -0
  24. package/cjs/core/group-helper.js +22 -0
  25. package/cjs/core/group-helper.js.map +1 -0
  26. package/cjs/core/record-helper.d.ts +8 -0
  27. package/cjs/core/record-helper.js +337 -0
  28. package/cjs/core/record-helper.js.map +1 -0
  29. package/cjs/core/style-helper.d.ts +3 -0
  30. package/cjs/core/style-helper.js +110 -0
  31. package/cjs/core/style-helper.js.map +1 -0
  32. package/cjs/core/style.js +1 -1
  33. package/cjs/core/style.js.map +1 -1
  34. package/cjs/core/tableHelper.d.ts +3 -5
  35. package/cjs/core/tableHelper.js +18 -23
  36. package/cjs/core/tableHelper.js.map +1 -1
  37. package/cjs/core/utils/get-cell-position.d.ts +5 -25
  38. package/cjs/core/utils/get-cell-position.js.map +1 -1
  39. package/cjs/data/CachedDataSource.d.ts +10 -1
  40. package/cjs/data/CachedDataSource.js +102 -3
  41. package/cjs/data/CachedDataSource.js.map +1 -1
  42. package/cjs/dataset/dataset-pivot-table.js +0 -1
  43. package/cjs/dataset/dataset-pivot-table.js.map +1 -1
  44. package/cjs/dataset/dataset.js +0 -1
  45. package/cjs/edit/edit-manager.js +2 -1
  46. package/cjs/event/event.js +5 -2
  47. package/cjs/event/event.js.map +1 -1
  48. package/cjs/event/listener/container-dom.js +2 -2
  49. package/cjs/event/listener/container-dom.js.map +1 -1
  50. package/cjs/event/listener/table-group.js +4 -6
  51. package/cjs/event/listener/table-group.js.map +1 -1
  52. package/cjs/event/util.js +2 -2
  53. package/cjs/event/util.js.map +1 -1
  54. package/cjs/index.d.ts +5 -3
  55. package/cjs/index.js +25 -2
  56. package/cjs/index.js.map +1 -1
  57. package/cjs/layout/cell-range/simple-cell-range.d.ts +4 -0
  58. package/cjs/layout/cell-range/simple-cell-range.js +106 -0
  59. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -0
  60. package/cjs/layout/layout-helper.js +2 -2
  61. package/cjs/layout/layout-helper.js.map +1 -1
  62. package/cjs/layout/pivot-header-layout.js +20 -19
  63. package/cjs/layout/pivot-header-layout.js.map +1 -1
  64. package/cjs/layout/row-height-map.js +1 -0
  65. package/cjs/layout/simple-header-layout.d.ts +1 -2
  66. package/cjs/layout/simple-header-layout.js +6 -90
  67. package/cjs/layout/simple-header-layout.js.map +1 -1
  68. package/cjs/plugins/icons.js +1 -1
  69. package/cjs/plugins/list-tree-stick-cell.d.ts +16 -0
  70. package/cjs/plugins/list-tree-stick-cell.js +178 -0
  71. package/cjs/plugins/list-tree-stick-cell.js.map +1 -0
  72. package/cjs/plugins/themes.js +1 -1
  73. package/cjs/scenegraph/component/custom.js +1 -1
  74. package/cjs/scenegraph/component/custom.js.map +1 -1
  75. package/cjs/scenegraph/component/table-component.js +14 -18
  76. package/cjs/scenegraph/component/table-component.js.map +1 -1
  77. package/cjs/scenegraph/debug-tool/debug-tool.js +4 -1
  78. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
  79. package/cjs/scenegraph/graphic/chart.d.ts +1 -0
  80. package/cjs/scenegraph/graphic/chart.js +34 -20
  81. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  82. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +56 -16
  83. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  84. package/cjs/scenegraph/graphic/contributions/chart-render.d.ts +2 -1
  85. package/cjs/scenegraph/graphic/contributions/chart-render.js +40 -24
  86. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  87. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +6 -3
  88. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  89. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.d.ts +1 -0
  90. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +48 -7
  91. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  92. package/cjs/scenegraph/graphic/group.js +1 -1
  93. package/cjs/scenegraph/graphic/group.js.map +1 -1
  94. package/cjs/scenegraph/group-creater/cell-helper.d.ts +2 -1
  95. package/cjs/scenegraph/group-creater/cell-helper.js +29 -10
  96. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  97. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
  98. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  99. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +9 -1
  100. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  101. package/cjs/scenegraph/group-creater/column-helper.js +9 -2
  102. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  103. package/cjs/scenegraph/group-creater/init-scenegraph.js +2 -2
  104. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  105. package/cjs/scenegraph/layout/compute-col-width.js +2 -2
  106. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  107. package/cjs/scenegraph/layout/compute-row-height.js +2 -2
  108. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  109. package/cjs/scenegraph/layout/update-height.js +3 -1
  110. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  111. package/cjs/scenegraph/layout/update-width.js +5 -3
  112. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  113. package/cjs/scenegraph/refresh-node/update-chart.d.ts +1 -0
  114. package/cjs/scenegraph/refresh-node/update-chart.js +84 -32
  115. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  116. package/cjs/scenegraph/scenegraph.d.ts +1 -1
  117. package/cjs/scenegraph/scenegraph.js +67 -46
  118. package/cjs/scenegraph/scenegraph.js.map +1 -1
  119. package/cjs/scenegraph/stick-text/index.js +5 -6
  120. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  121. package/cjs/scenegraph/style/frame-border.d.ts +1 -1
  122. package/cjs/scenegraph/style/frame-border.js +27 -12
  123. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  124. package/cjs/scenegraph/utils/cell-border-stroke-width.js +14 -9
  125. package/cjs/scenegraph/utils/cell-border-stroke-width.js.map +1 -1
  126. package/cjs/scenegraph/utils/get-cell-merge.js +1 -1
  127. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
  128. package/cjs/scenegraph/utils/get-hierarchy-offset.js +6 -8
  129. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  130. package/cjs/scenegraph/utils/text-icon-layout.js +6 -4
  131. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  132. package/cjs/state/resize/update-resize-row.js +1 -1
  133. package/cjs/state/resize/update-resize-row.js.map +1 -1
  134. package/cjs/state/state.d.ts +2 -2
  135. package/cjs/state/state.js +5 -5
  136. package/cjs/state/state.js.map +1 -1
  137. package/cjs/themes/theme.d.ts +2 -0
  138. package/cjs/themes/theme.js +13 -10
  139. package/cjs/themes/theme.js.map +1 -1
  140. package/cjs/tools/helper.d.ts +1 -1
  141. package/cjs/tools/helper.js +3 -3
  142. package/cjs/tools/helper.js.map +1 -1
  143. package/cjs/tools/style.d.ts +1 -2
  144. package/cjs/tools/style.js +3 -9
  145. package/cjs/tools/style.js.map +1 -1
  146. package/cjs/ts-types/base-table.d.ts +21 -3
  147. package/cjs/ts-types/base-table.js.map +1 -1
  148. package/cjs/ts-types/column/style.d.ts +2 -2
  149. package/cjs/ts-types/column/style.js.map +1 -1
  150. package/cjs/ts-types/component/index.d.ts +1 -0
  151. package/cjs/ts-types/component/index.js +21 -0
  152. package/cjs/ts-types/component/index.js.map +1 -0
  153. package/cjs/ts-types/index.d.ts +1 -0
  154. package/cjs/ts-types/index.js +1 -1
  155. package/cjs/ts-types/index.js.map +1 -1
  156. package/cjs/ts-types/list-table/layout-map/api.d.ts +1 -0
  157. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  158. package/cjs/ts-types/new-data-set.d.ts +1 -0
  159. package/cjs/ts-types/new-data-set.js.map +1 -1
  160. package/cjs/ts-types/pivot-table/corner.d.ts +1 -0
  161. package/cjs/ts-types/pivot-table/corner.js.map +1 -1
  162. package/cjs/ts-types/table-engine.d.ts +11 -46
  163. package/cjs/ts-types/table-engine.js.map +1 -1
  164. package/cjs/ts-types/theme.d.ts +2 -3
  165. package/cjs/ts-types/theme.js.map +1 -1
  166. package/cjs/vrender.js +2 -1
  167. package/cjs/vrender.js.map +1 -1
  168. package/dist/vtable.js +36370 -32652
  169. package/dist/vtable.min.js +2 -2
  170. package/es/ListTable-all.js +5 -3
  171. package/es/ListTable-all.js.map +1 -1
  172. package/es/ListTable.d.ts +3 -0
  173. package/es/ListTable.js +45 -287
  174. package/es/ListTable.js.map +1 -1
  175. package/es/PivotChart.d.ts +1 -0
  176. package/es/PivotChart.js +5 -2
  177. package/es/PivotChart.js.map +1 -1
  178. package/es/PivotTable.js +1 -1
  179. package/es/PivotTable.js.map +1 -1
  180. package/es/components/axis/axis.js +3 -1
  181. package/es/components/axis/axis.js.map +1 -1
  182. package/es/components/legend/discrete-legend/discrete-legend.js +2 -1
  183. package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  184. package/es/components/title/title.js +3 -1
  185. package/es/components/title/title.js.map +1 -1
  186. package/es/core/BaseTable.d.ts +8 -5
  187. package/es/core/BaseTable.js +61 -115
  188. package/es/core/BaseTable.js.map +1 -1
  189. package/es/core/FouseInput.d.ts +1 -0
  190. package/es/core/FouseInput.js +5 -2
  191. package/es/core/FouseInput.js.map +1 -1
  192. package/es/core/group-helper.d.ts +6 -0
  193. package/es/core/group-helper.js +14 -0
  194. package/es/core/group-helper.js.map +1 -0
  195. package/es/core/record-helper.d.ts +8 -0
  196. package/es/core/record-helper.js +332 -0
  197. package/es/core/record-helper.js.map +1 -0
  198. package/es/core/style-helper.d.ts +3 -0
  199. package/es/core/style-helper.js +86 -0
  200. package/es/core/style-helper.js.map +1 -0
  201. package/es/core/style.js +1 -1
  202. package/es/core/style.js.map +1 -1
  203. package/es/core/tableHelper.d.ts +3 -5
  204. package/es/core/tableHelper.js +15 -22
  205. package/es/core/tableHelper.js.map +1 -1
  206. package/es/core/utils/get-cell-position.d.ts +5 -25
  207. package/es/core/utils/get-cell-position.js.map +1 -1
  208. package/es/data/CachedDataSource.d.ts +10 -1
  209. package/es/data/CachedDataSource.js +103 -0
  210. package/es/data/CachedDataSource.js.map +1 -1
  211. package/es/dataset/dataset-pivot-table.js +0 -1
  212. package/es/dataset/dataset-pivot-table.js.map +1 -1
  213. package/es/dataset/dataset.js +1 -2
  214. package/es/edit/edit-manager.js +2 -1
  215. package/es/event/event.js +5 -2
  216. package/es/event/event.js.map +1 -1
  217. package/es/event/listener/container-dom.js +2 -2
  218. package/es/event/listener/container-dom.js.map +1 -1
  219. package/es/event/listener/table-group.js +4 -6
  220. package/es/event/listener/table-group.js.map +1 -1
  221. package/es/event/util.js +2 -2
  222. package/es/event/util.js.map +1 -1
  223. package/es/index.d.ts +5 -3
  224. package/es/index.js +5 -1
  225. package/es/index.js.map +1 -1
  226. package/es/layout/cell-range/simple-cell-range.d.ts +4 -0
  227. package/es/layout/cell-range/simple-cell-range.js +99 -0
  228. package/es/layout/cell-range/simple-cell-range.js.map +1 -0
  229. package/es/layout/layout-helper.js +2 -2
  230. package/es/layout/layout-helper.js.map +1 -1
  231. package/es/layout/pivot-header-layout.js +20 -19
  232. package/es/layout/pivot-header-layout.js.map +1 -1
  233. package/es/layout/row-height-map.js +2 -1
  234. package/es/layout/simple-header-layout.d.ts +1 -2
  235. package/es/layout/simple-header-layout.js +7 -89
  236. package/es/layout/simple-header-layout.js.map +1 -1
  237. package/es/plugins/icons.js +1 -1
  238. package/es/plugins/list-tree-stick-cell.d.ts +16 -0
  239. package/es/plugins/list-tree-stick-cell.js +176 -0
  240. package/es/plugins/list-tree-stick-cell.js.map +1 -0
  241. package/es/plugins/themes.js +1 -1
  242. package/es/scenegraph/component/custom.js +1 -1
  243. package/es/scenegraph/component/custom.js.map +1 -1
  244. package/es/scenegraph/component/table-component.js +14 -18
  245. package/es/scenegraph/component/table-component.js.map +1 -1
  246. package/es/scenegraph/debug-tool/debug-tool.js +4 -1
  247. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
  248. package/es/scenegraph/graphic/chart.d.ts +1 -0
  249. package/es/scenegraph/graphic/chart.js +33 -21
  250. package/es/scenegraph/graphic/chart.js.map +1 -1
  251. package/es/scenegraph/graphic/contributions/chart-render-helper.js +57 -15
  252. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  253. package/es/scenegraph/graphic/contributions/chart-render.d.ts +2 -1
  254. package/es/scenegraph/graphic/contributions/chart-render.js +41 -25
  255. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  256. package/es/scenegraph/graphic/contributions/group-contribution-render.js +8 -3
  257. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  258. package/es/scenegraph/graphic/contributions/rect-contribution-render.d.ts +1 -0
  259. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +49 -5
  260. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  261. package/es/scenegraph/graphic/group.js +1 -1
  262. package/es/scenegraph/graphic/group.js.map +1 -1
  263. package/es/scenegraph/group-creater/cell-helper.d.ts +2 -1
  264. package/es/scenegraph/group-creater/cell-helper.js +23 -8
  265. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  266. package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
  267. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  268. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +9 -1
  269. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  270. package/es/scenegraph/group-creater/column-helper.js +8 -2
  271. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  272. package/es/scenegraph/group-creater/init-scenegraph.js +2 -2
  273. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  274. package/es/scenegraph/layout/compute-col-width.js +1 -3
  275. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  276. package/es/scenegraph/layout/compute-row-height.js +2 -2
  277. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  278. package/es/scenegraph/layout/update-height.js +3 -1
  279. package/es/scenegraph/layout/update-height.js.map +1 -1
  280. package/es/scenegraph/layout/update-width.js +5 -3
  281. package/es/scenegraph/layout/update-width.js.map +1 -1
  282. package/es/scenegraph/refresh-node/update-chart.d.ts +1 -0
  283. package/es/scenegraph/refresh-node/update-chart.js +81 -29
  284. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  285. package/es/scenegraph/scenegraph.d.ts +1 -1
  286. package/es/scenegraph/scenegraph.js +67 -46
  287. package/es/scenegraph/scenegraph.js.map +1 -1
  288. package/es/scenegraph/stick-text/index.js +5 -6
  289. package/es/scenegraph/stick-text/index.js.map +1 -1
  290. package/es/scenegraph/style/frame-border.d.ts +1 -1
  291. package/es/scenegraph/style/frame-border.js +27 -10
  292. package/es/scenegraph/style/frame-border.js.map +1 -1
  293. package/es/scenegraph/utils/cell-border-stroke-width.js +9 -6
  294. package/es/scenegraph/utils/cell-border-stroke-width.js.map +1 -1
  295. package/es/scenegraph/utils/get-cell-merge.js +1 -1
  296. package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
  297. package/es/scenegraph/utils/get-hierarchy-offset.js +7 -9
  298. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  299. package/es/scenegraph/utils/text-icon-layout.js +6 -4
  300. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  301. package/es/state/resize/update-resize-row.js +1 -1
  302. package/es/state/resize/update-resize-row.js.map +1 -1
  303. package/es/state/state.d.ts +2 -2
  304. package/es/state/state.js +5 -5
  305. package/es/state/state.js.map +1 -1
  306. package/es/themes/theme.d.ts +2 -0
  307. package/es/themes/theme.js +13 -10
  308. package/es/themes/theme.js.map +1 -1
  309. package/es/tools/helper.d.ts +1 -1
  310. package/es/tools/helper.js +1 -1
  311. package/es/tools/helper.js.map +1 -1
  312. package/es/tools/style.d.ts +1 -2
  313. package/es/tools/style.js +2 -7
  314. package/es/tools/style.js.map +1 -1
  315. package/es/ts-types/base-table.d.ts +21 -3
  316. package/es/ts-types/base-table.js.map +1 -1
  317. package/es/ts-types/column/style.d.ts +2 -2
  318. package/es/ts-types/column/style.js.map +1 -1
  319. package/es/ts-types/component/index.d.ts +1 -0
  320. package/es/ts-types/component/index.js +2 -0
  321. package/es/ts-types/component/index.js.map +1 -0
  322. package/es/ts-types/index.d.ts +1 -0
  323. package/es/ts-types/index.js +2 -0
  324. package/es/ts-types/index.js.map +1 -1
  325. package/es/ts-types/list-table/layout-map/api.d.ts +1 -0
  326. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  327. package/es/ts-types/new-data-set.d.ts +1 -0
  328. package/es/ts-types/new-data-set.js.map +1 -1
  329. package/es/ts-types/pivot-table/corner.d.ts +1 -0
  330. package/es/ts-types/pivot-table/corner.js.map +1 -1
  331. package/es/ts-types/table-engine.d.ts +11 -46
  332. package/es/ts-types/table-engine.js.map +1 -1
  333. package/es/ts-types/theme.d.ts +2 -3
  334. package/es/ts-types/theme.js.map +1 -1
  335. package/es/vrender.js +3 -2
  336. package/es/vrender.js.map +1 -1
  337. package/package.json +8 -8
  338. package/cjs/scenegraph/component/menu.d.ts +0 -41
  339. package/cjs/scenegraph/utils/text-measure.d.ts +0 -33
  340. package/es/scenegraph/component/menu.d.ts +0 -41
  341. package/es/scenegraph/utils/text-measure.d.ts +0 -33
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.startRenderChartQueue = exports.renderChart = exports.IsHandlingChartQueue = exports.setBatchRenderChartCount = exports.chartRenderQueueList = exports.chartRenderKeys = exports.cancelRenderChartQueue = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils");
7
+ const vrender_1 = require("./../../../vrender"), vutils_1 = require("@visactor/vutils");
8
8
 
9
9
  exports.cancelRenderChartQueue = !1, exports.chartRenderKeys = [], exports.chartRenderQueueList = [];
10
10
 
@@ -19,7 +19,7 @@ function IsHandlingChartQueue() {
19
19
  }
20
20
 
21
21
  function renderChart(chart) {
22
- var _a, _b, _c, _d;
22
+ var _a, _b, _c, _d, _e, _f;
23
23
  const {axes: axes, dataId: dataId, data: data, spec: spec, ClassType: ClassType, canvas: canvas, mode: mode, modeParams: modeParams, dpr: dpr} = chart.attribute;
24
24
  let {chartInstance: chartInstance} = chart;
25
25
  chartInstance || (chartInstance = new ClassType(spec, {
@@ -39,8 +39,26 @@ function renderChart(chart) {
39
39
  autoFit: !1
40
40
  }), chartInstance.renderSync(), chart.chartInstance = chartInstance);
41
41
  const viewBox = chart.getViewBox();
42
- if (viewBox.x2 <= viewBox.x1 && (viewBox.x2 = viewBox.x1 + 1), viewBox.y2 <= viewBox.y1 && (viewBox.y2 = viewBox.y1 + 1),
43
- null == axes || axes.forEach(((axis, index) => {
42
+ viewBox.x2 <= viewBox.x1 && (viewBox.x2 = viewBox.x1 + 1), viewBox.y2 <= viewBox.y1 && (viewBox.y2 = viewBox.y1 + 1),
43
+ chartInstance.updateViewBox({
44
+ x1: 0,
45
+ x2: viewBox.x2 - viewBox.x1,
46
+ y1: 0,
47
+ y2: viewBox.y2 - viewBox.y1
48
+ }, !1, !1);
49
+ const chartStage = chartInstance.getStage(), matrix = chart.globalTransMatrix.clone(), stageMatrix = chart.stage.window.getViewBoxTransform();
50
+ matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f),
51
+ chartStage.window.setViewBoxTransform && chartStage.window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);
52
+ const {table: table} = chart.getRootNode();
53
+ let updateSpec = !1;
54
+ if (table.options.specFormat) {
55
+ const formatResult = table.options.specFormat(chart.attribute.spec);
56
+ if (formatResult.needFormatSpec && formatResult.spec) {
57
+ const spec = formatResult.spec;
58
+ chartInstance.updateSpecSync(spec), updateSpec = !0;
59
+ }
60
+ }
61
+ if (!updateSpec) if (null == axes || axes.forEach(((axis, index) => {
44
62
  var _a, _b, _c, _d;
45
63
  "band" === axis.type ? chartInstance.updateModelSpec({
46
64
  type: "axes",
@@ -54,12 +72,8 @@ function renderChart(chart) {
54
72
  min: null !== (_b = null === (_a = axis.range) || void 0 === _a ? void 0 : _a.min) && void 0 !== _b ? _b : 0,
55
73
  max: null !== (_d = null === (_c = axis.range) || void 0 === _c ? void 0 : _c.max) && void 0 !== _d ? _d : 0
56
74
  }, !0);
57
- })), chartInstance.updateViewBox({
58
- x1: viewBox.x1 - chart.getRootNode().table.scrollLeft,
59
- x2: viewBox.x2 - chart.getRootNode().table.scrollLeft,
60
- y1: viewBox.y1 - chart.getRootNode().table.scrollTop,
61
- y2: viewBox.y2 - chart.getRootNode().table.scrollTop
62
- }, !1, !1), "string" == typeof dataId) chartInstance.updateDataSync(dataId, null != data ? data : []); else {
75
+ })), null === (_b = null === (_a = table.internalProps.layoutMap) || void 0 === _a ? void 0 : _a.updateDataStateToActiveChartInstance) || void 0 === _b || _b.call(_a, chartInstance),
76
+ "string" == typeof dataId) chartInstance.updateDataSync(dataId, null != data ? data : []); else {
63
77
  const dataBatch = [];
64
78
  for (const dataIdStr in dataId) {
65
79
  const dataIdAndField = dataId[dataIdStr], series = spec.series.find((item => {
@@ -68,11 +82,11 @@ function renderChart(chart) {
68
82
  }));
69
83
  dataBatch.push({
70
84
  id: dataIdStr,
71
- values: dataIdAndField ? null !== (_a = null == data ? void 0 : data.filter((item => item.hasOwnProperty(dataIdAndField)))) && void 0 !== _a ? _a : [] : null != data ? data : [],
72
- fields: null === (_b = null == series ? void 0 : series.data) || void 0 === _b ? void 0 : _b.fields
73
- }), chartInstance.updateFullDataSync || chartInstance.updateDataSync(dataIdStr, dataIdAndField ? null !== (_c = null == data ? void 0 : data.filter((item => item.hasOwnProperty(dataIdAndField)))) && void 0 !== _c ? _c : [] : null != data ? data : []);
85
+ values: dataIdAndField ? null !== (_c = null == data ? void 0 : data.filter((item => item.hasOwnProperty(dataIdAndField)))) && void 0 !== _c ? _c : [] : null != data ? data : [],
86
+ fields: null === (_d = null == series ? void 0 : series.data) || void 0 === _d ? void 0 : _d.fields
87
+ }), chartInstance.updateFullDataSync || chartInstance.updateDataSync(dataIdStr, dataIdAndField ? null !== (_e = null == data ? void 0 : data.filter((item => item.hasOwnProperty(dataIdAndField)))) && void 0 !== _e ? _e : [] : null != data ? data : []);
74
88
  }
75
- null === (_d = chartInstance.updateFullDataSync) || void 0 === _d || _d.call(chartInstance, dataBatch);
89
+ null === (_f = chartInstance.updateFullDataSync) || void 0 === _f || _f.call(chartInstance, dataBatch);
76
90
  }
77
91
  cacheStageCanvas(chartInstance.getStage(), chart);
78
92
  }
@@ -94,14 +108,14 @@ const cacheCanvasSizeLimit = 2e3;
94
108
  function cacheStageCanvas(stage, chart) {
95
109
  var _a;
96
110
  const {viewWidth: viewWidth, viewHeight: viewHeight} = stage;
97
- if (viewWidth < cacheCanvasSizeLimit && viewHeight < cacheCanvasSizeLimit) return chart.cacheCanvas = stage.toCanvas(),
111
+ if (viewWidth < cacheCanvasSizeLimit && viewHeight < cacheCanvasSizeLimit) return chart.cacheCanvas = toCanvas(stage),
98
112
  void (chart.isShareChartSpec || (null === (_a = chart.chartInstance) || void 0 === _a || _a.release(),
99
113
  chart.chartInstance = null, chart.setAttribute("chartInstance", null)));
100
114
  const rows = Math.ceil(viewHeight / cacheCanvasSizeLimit), columns = Math.ceil(viewWidth / cacheCanvasSizeLimit), cacheCanvas = [];
101
115
  for (let row = 0; row < rows; row++) for (let col = 0; col < columns; col++) {
102
116
  const startX = col * cacheCanvasSizeLimit, startY = row * cacheCanvasSizeLimit, endX = startX + cacheCanvasSizeLimit > viewWidth ? viewWidth : startX + cacheCanvasSizeLimit, endY = startY + cacheCanvasSizeLimit > viewHeight ? viewHeight : startY + cacheCanvasSizeLimit, width = endX - startX, height = endY - startY, bounds = new vutils_1.Bounds;
103
117
  bounds.setValue(startX, startY, endX, endY);
104
- const canvas = stage.toCanvas(!1, bounds);
118
+ const canvas = toCanvas(stage, !1, bounds);
105
119
  cacheCanvas.push({
106
120
  canvas: canvas,
107
121
  x: startX,
@@ -112,4 +126,30 @@ function cacheStageCanvas(stage, chart) {
112
126
  }
113
127
  chart.cacheCanvas = cacheCanvas;
114
128
  }
129
+
130
+ function toCanvas(stage, fullImage = !0, viewBox) {
131
+ if ("released" === stage.releaseStatus) return null;
132
+ const matrix = stage.window.getViewBoxTransform(), window = renderToNewWindow(stage, fullImage, viewBox);
133
+ window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, 0, 0), stage.renderTo(window);
134
+ const c = window.getNativeHandler();
135
+ return c.nativeCanvas ? c.nativeCanvas : null;
136
+ }
137
+
138
+ function renderToNewWindow(stage, fullImage = !0, viewBox) {
139
+ const matrix = stage.window.getViewBoxTransform(), window = vrender_1.container.get(vrender_1.VWindow), x1 = viewBox ? -viewBox.x1 : 0, y1 = viewBox ? -viewBox.y1 : 0, x2 = viewBox ? viewBox.x2 : stage.viewWidth, y2 = viewBox ? viewBox.y2 : stage.viewHeight, width = viewBox ? viewBox.width() : stage.viewWidth, height = viewBox ? viewBox.height() : stage.viewHeight;
140
+ return window.create({
141
+ viewBox: {
142
+ x1: x1,
143
+ y1: y1,
144
+ x2: x2,
145
+ y2: y2
146
+ },
147
+ width: width * matrix.a,
148
+ height: height * matrix.d,
149
+ dpr: stage.window.dpr,
150
+ canvasControled: !0,
151
+ offscreen: !0,
152
+ title: ""
153
+ }), stage.renderTo(window), window;
154
+ }
115
155
  //# sourceMappingURL=chart-render-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/contributions/chart-render-helper.ts"],"names":[],"mappings":"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","file":"chart-render-helper.js","sourcesContent":["import type { IStage } from './../../../vrender';\nimport type { Chart } from '../chart';\nimport { Bounds, isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nexport const cancelRenderChartQueue = false;\nexport const chartRenderKeys: string[] = [];\nexport const chartRenderQueueList: Chart[] = [];\ninterface chartRenderQueueItem {\n chart: Chart;\n}\n//每次消费的图表数量\nlet batchRenderChartCount = 5;\nlet isHandlingChartQueue = false;\nexport function setBatchRenderChartCount(count: number) {\n if (isValid(count)) {\n batchRenderChartCount = count;\n }\n}\nexport function IsHandlingChartQueue() {\n return isHandlingChartQueue;\n}\nexport function renderChart(chart: Chart) {\n const { axes, dataId, data, spec, ClassType, canvas, mode, modeParams, dpr } = chart.attribute;\n let { chartInstance } = chart;\n if (!chartInstance) {\n chartInstance = new ClassType(spec, {\n renderCanvas: canvas,\n mode: mode === 'node' ? 'node' : 'desktop-browser',\n modeParams: modeParams,\n canvasControled: false,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n dpr: dpr,\n interactive: false,\n animation: false,\n autoFit: false\n });\n chartInstance.renderSync();\n chart.chartInstance = chartInstance;\n }\n const viewBox = chart.getViewBox();\n\n // avoid canvas size 0\n if (viewBox.x2 <= viewBox.x1) {\n viewBox.x2 = viewBox.x1 + 1;\n }\n if (viewBox.y2 <= viewBox.y1) {\n viewBox.y2 = viewBox.y1 + 1;\n }\n\n axes?.forEach((axis: any, index: number) => {\n if (axis.type === 'band') {\n // const chartAxis = chartInstance._chart._components[index];\n // chartAxis._spec.domain = axis.domain.slice(0);\n // chartAxis.updateScaleDomain();\n chartInstance.updateModelSpec({ type: 'axes', index }, { domain: axis.domain.slice(0) }, true);\n } else {\n // const chartAxis = chartInstance._chart._components[index];\n // chartAxis._domain = {\n // min: axis.range?.min ?? 0,\n // max: axis.range?.max ?? 0\n // };\n chartInstance.updateModelSpecSync(\n { type: 'axes', index },\n { min: axis.range?.min ?? 0, max: axis.range?.max ?? 0 },\n true\n );\n }\n });\n\n chartInstance.updateViewBox(\n {\n x1: viewBox.x1 - (chart.getRootNode() as any).table.scrollLeft,\n x2: viewBox.x2 - (chart.getRootNode() as any).table.scrollLeft,\n y1: viewBox.y1 - (chart.getRootNode() as any).table.scrollTop,\n y2: viewBox.y2 - (chart.getRootNode() as any).table.scrollTop\n },\n false,\n false\n );\n\n // to be fixed: update state everytimes render, need be fix by vchart\n // 测试的没发现问题 这里应该能去掉吧 留着每次都要调用一次\n // const table = (chart.getRootNode() as any).table as BaseTableAPI;\n // (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(chartInstance);\n\n if (typeof dataId === 'string') {\n chartInstance.updateDataSync(dataId, data ?? []);\n } else {\n const dataBatch = [];\n for (const dataIdStr in dataId) {\n const dataIdAndField = dataId[dataIdStr];\n const series = spec.series.find((item: any) => item?.data?.id === dataIdStr);\n dataBatch.push({\n id: dataIdStr,\n values: dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? [],\n fields: series?.data?.fields\n });\n // 判断是否有updateFullDataSync 木有的话 还是循环调用updateDataSync\n if (!chartInstance.updateFullDataSync) {\n chartInstance.updateDataSync(\n dataIdStr,\n dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? []\n );\n }\n }\n chartInstance.updateFullDataSync?.(dataBatch);\n }\n const sg = chartInstance.getStage();\n cacheStageCanvas(sg, chart);\n // chart.cacheCanvas = sg.toCanvas();\n\n // debugger;\n // chart.cacheCanvas[] = sg.toCanvas(fullImage, viewBox);\n // chart.cacheCanvas = sg.toCanvas(false, {\n // x1: 0,\n // y1: 0,\n // x2: 500,\n // y2: 300,\n // width: () => 500,\n // height: () => 300\n // });\n // 截图空白问题 因为开启了动画 首屏截图是无数据的TODO\n}\n\nexport function startRenderChartQueue(table: any) {\n isHandlingChartQueue = true;\n\n // 检查是否还有未渲染的图表\n if (chartRenderQueueList.length > 0) {\n // 使用 requestAnimationFrame 或 setTimeout 来调度下一批图表的渲染\n // requestAnimationFrame(() => renderChartQueue(table));\n requestAnimationFrame(() => {\n // 从集合中获取要渲染的图表上下文\n const chartsToRender = chartRenderQueueList.splice(0, batchRenderChartCount);\n chartRenderKeys.splice(0, batchRenderChartCount);\n // 渲染图表\n chartsToRender.forEach(chart => {\n // 在正确的位置渲染图表\n renderChart(chart);\n chart.addUpdateBoundTag();\n });\n table.render();\n startRenderChartQueue(table);\n });\n // setTimeout(() => {\n // // debugger;\n // renderChartQueue(table);\n // }, 0);\n } else {\n isHandlingChartQueue = false;\n }\n}\n\nconst cacheCanvasSizeLimit = 2000;\nfunction cacheStageCanvas(stage: IStage, chart: Chart) {\n const { viewWidth, viewHeight } = stage;\n if (viewWidth < cacheCanvasSizeLimit && viewHeight < cacheCanvasSizeLimit) {\n chart.cacheCanvas = stage.toCanvas();\n if (!chart.isShareChartSpec) {\n // 不能整列共享chart的情况 生成完图片后即将chartInstance清除\n chart.chartInstance?.release();\n chart.chartInstance = null;\n chart.setAttribute('chartInstance', null);\n }\n return;\n }\n\n const rows = Math.ceil(viewHeight / cacheCanvasSizeLimit);\n const columns = Math.ceil(viewWidth / cacheCanvasSizeLimit);\n\n const cacheCanvas = [];\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < columns; col++) {\n const startX = col * cacheCanvasSizeLimit;\n const startY = row * cacheCanvasSizeLimit;\n const endX = startX + cacheCanvasSizeLimit > viewWidth ? viewWidth : startX + cacheCanvasSizeLimit;\n const endY = startY + cacheCanvasSizeLimit > viewHeight ? viewHeight : startY + cacheCanvasSizeLimit;\n const width = endX - startX;\n const height = endY - startY;\n const bounds = new Bounds();\n bounds.setValue(startX, startY, endX, endY);\n\n const canvas = stage.toCanvas(false, bounds);\n cacheCanvas.push({\n canvas,\n x: startX,\n y: startY,\n width,\n height\n });\n }\n }\n\n chart.cacheCanvas = cacheCanvas;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/contributions/chart-render-helper.ts"],"names":[],"mappings":"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","file":"chart-render-helper.js","sourcesContent":["import { container, VWindow, type IStage, type IWindow } from './../../../vrender';\nimport type { Chart } from '../chart';\nimport type { IAABBBounds } from '@visactor/vutils';\nimport { Bounds, isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nexport const cancelRenderChartQueue = false;\nexport const chartRenderKeys: string[] = [];\nexport const chartRenderQueueList: Chart[] = [];\ninterface chartRenderQueueItem {\n chart: Chart;\n}\n//每次消费的图表数量\nlet batchRenderChartCount = 5;\nlet isHandlingChartQueue = false;\nexport function setBatchRenderChartCount(count: number) {\n if (isValid(count)) {\n batchRenderChartCount = count;\n }\n}\nexport function IsHandlingChartQueue() {\n return isHandlingChartQueue;\n}\nexport function renderChart(chart: Chart) {\n const { axes, dataId, data, spec, ClassType, canvas, mode, modeParams, dpr } = chart.attribute;\n let { chartInstance } = chart;\n if (!chartInstance) {\n chartInstance = new ClassType(spec, {\n renderCanvas: canvas,\n mode: mode === 'node' ? 'node' : 'desktop-browser',\n modeParams: modeParams,\n canvasControled: false,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n dpr: dpr,\n interactive: false,\n animation: false,\n autoFit: false\n });\n chartInstance.renderSync();\n chart.chartInstance = chartInstance;\n }\n const viewBox = chart.getViewBox();\n\n // avoid canvas size 0\n if (viewBox.x2 <= viewBox.x1) {\n viewBox.x2 = viewBox.x1 + 1;\n }\n if (viewBox.y2 <= viewBox.y1) {\n viewBox.y2 = viewBox.y1 + 1;\n }\n\n // use vrender trasnform, viewbox starts from 0,0\n chartInstance.updateViewBox(\n // {\n // x1: viewBox.x1 - (chart.getRootNode() as any).table.scrollLeft,\n // x2: viewBox.x2 - (chart.getRootNode() as any).table.scrollLeft,\n // y1: viewBox.y1 - (chart.getRootNode() as any).table.scrollTop,\n // y2: viewBox.y2 - (chart.getRootNode() as any).table.scrollTop\n // },\n {\n x1: 0,\n x2: viewBox.x2 - viewBox.x1,\n y1: 0,\n y2: viewBox.y2 - viewBox.y1\n },\n false,\n false\n );\n\n const chartStage = chartInstance.getStage();\n const matrix = chart.globalTransMatrix.clone();\n const stageMatrix = chart.stage.window.getViewBoxTransform();\n matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f);\n chartStage.window.setViewBoxTransform &&\n chartStage.window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n // to be fixed: update state everytimes render, need be fix by vchart\n // 测试的没发现问题 这里应该能去掉吧 留着每次都要调用一次\n // const table = (chart.getRootNode() as any).table as BaseTableAPI;\n // (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(chartInstance);\n\n const { table } = chart.getRootNode() as any;\n\n let updateSpec = false;\n if (table.options.specFormat) {\n const formatResult = table.options.specFormat(chart.attribute.spec);\n if (formatResult.needFormatSpec && formatResult.spec) {\n const spec = formatResult.spec;\n chartInstance.updateSpecSync(spec);\n updateSpec = true;\n }\n }\n\n if (!updateSpec) {\n axes?.forEach((axis: any, index: number) => {\n if (axis.type === 'band') {\n // const chartAxis = chartInstance._chart._components[index];\n // chartAxis._spec.domain = axis.domain.slice(0);\n // chartAxis.updateScaleDomain();\n chartInstance.updateModelSpec({ type: 'axes', index }, { domain: axis.domain.slice(0) }, true);\n } else {\n // const chartAxis = chartInstance._chart._components[index];\n // chartAxis._domain = {\n // min: axis.range?.min ?? 0,\n // max: axis.range?.max ?? 0\n // };\n chartInstance.updateModelSpecSync(\n { type: 'axes', index },\n { min: axis.range?.min ?? 0, max: axis.range?.max ?? 0 },\n true\n );\n }\n });\n\n // to be fixed: update state everytimes render, need be fix by vchart\n (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(chartInstance);\n\n if (typeof dataId === 'string') {\n chartInstance.updateDataSync(dataId, data ?? []);\n } else {\n const dataBatch = [];\n for (const dataIdStr in dataId) {\n const dataIdAndField = dataId[dataIdStr];\n const series = spec.series.find((item: any) => item?.data?.id === dataIdStr);\n dataBatch.push({\n id: dataIdStr,\n values: dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? [],\n fields: series?.data?.fields\n });\n // 判断是否有updateFullDataSync 木有的话 还是循环调用updateDataSync\n if (!chartInstance.updateFullDataSync) {\n chartInstance.updateDataSync(\n dataIdStr,\n dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? []\n );\n }\n }\n chartInstance.updateFullDataSync?.(dataBatch);\n }\n }\n\n const sg = chartInstance.getStage();\n cacheStageCanvas(sg, chart);\n // chart.cacheCanvas = sg.toCanvas();\n\n // debugger;\n // chart.cacheCanvas[] = sg.toCanvas(fullImage, viewBox);\n // chart.cacheCanvas = sg.toCanvas(false, {\n // x1: 0,\n // y1: 0,\n // x2: 500,\n // y2: 300,\n // width: () => 500,\n // height: () => 300\n // });\n // 截图空白问题 因为开启了动画 首屏截图是无数据的TODO\n}\n\nexport function startRenderChartQueue(table: any) {\n isHandlingChartQueue = true;\n\n // 检查是否还有未渲染的图表\n if (chartRenderQueueList.length > 0) {\n // 使用 requestAnimationFrame 或 setTimeout 来调度下一批图表的渲染\n // requestAnimationFrame(() => renderChartQueue(table));\n requestAnimationFrame(() => {\n // 从集合中获取要渲染的图表上下文\n const chartsToRender = chartRenderQueueList.splice(0, batchRenderChartCount);\n chartRenderKeys.splice(0, batchRenderChartCount);\n // 渲染图表\n chartsToRender.forEach(chart => {\n // 在正确的位置渲染图表\n renderChart(chart);\n chart.addUpdateBoundTag();\n });\n table.render();\n startRenderChartQueue(table);\n });\n // setTimeout(() => {\n // // debugger;\n // renderChartQueue(table);\n // }, 0);\n } else {\n isHandlingChartQueue = false;\n }\n}\n\nconst cacheCanvasSizeLimit = 2000;\nfunction cacheStageCanvas(stage: IStage, chart: Chart) {\n const { viewWidth, viewHeight } = stage;\n if (viewWidth < cacheCanvasSizeLimit && viewHeight < cacheCanvasSizeLimit) {\n chart.cacheCanvas = toCanvas(stage);\n if (!chart.isShareChartSpec) {\n // 不能整列共享chart的情况 生成完图片后即将chartInstance清除\n chart.chartInstance?.release();\n chart.chartInstance = null;\n chart.setAttribute('chartInstance', null);\n }\n return;\n }\n\n const rows = Math.ceil(viewHeight / cacheCanvasSizeLimit);\n const columns = Math.ceil(viewWidth / cacheCanvasSizeLimit);\n\n const cacheCanvas = [];\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < columns; col++) {\n const startX = col * cacheCanvasSizeLimit;\n const startY = row * cacheCanvasSizeLimit;\n const endX = startX + cacheCanvasSizeLimit > viewWidth ? viewWidth : startX + cacheCanvasSizeLimit;\n const endY = startY + cacheCanvasSizeLimit > viewHeight ? viewHeight : startY + cacheCanvasSizeLimit;\n const width = endX - startX;\n const height = endY - startY;\n const bounds = new Bounds();\n bounds.setValue(startX, startY, endX, endY);\n\n const canvas = toCanvas(stage, false, bounds);\n cacheCanvas.push({\n canvas,\n x: startX,\n y: startY,\n width,\n height\n });\n }\n }\n\n chart.cacheCanvas = cacheCanvas;\n}\n\nfunction toCanvas(stage: IStage, fullImage: boolean = true, viewBox?: IAABBBounds): HTMLCanvasElement | null {\n if ((stage as any).releaseStatus === 'released') {\n return null;\n }\n const matrix = stage.window.getViewBoxTransform();\n const window = renderToNewWindow(stage, fullImage, viewBox);\n window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, 0, 0);\n (stage as any).renderTo(window);\n const c = window.getNativeHandler();\n if (c.nativeCanvas) {\n return c.nativeCanvas;\n }\n return null;\n}\n\nfunction renderToNewWindow(stage: IStage, fullImage: boolean = true, viewBox?: IAABBBounds): IWindow {\n const matrix = stage.window.getViewBoxTransform();\n const window = container.get<IWindow>(VWindow);\n const x1 = viewBox ? -viewBox.x1 : 0;\n const y1 = viewBox ? -viewBox.y1 : 0;\n const x2 = viewBox ? viewBox.x2 : stage.viewWidth;\n const y2 = viewBox ? viewBox.y2 : stage.viewHeight;\n const width = viewBox ? viewBox.width() : stage.viewWidth;\n const height = viewBox ? viewBox.height() : stage.viewHeight;\n if (fullImage) {\n window.create({\n viewBox: { x1, y1, x2, y2 },\n width: width * matrix.a,\n height: height * matrix.d,\n dpr: stage.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n } else {\n window.create({\n viewBox: { x1, y1, x2, y2 },\n width: width * matrix.a,\n height: height * matrix.d,\n dpr: stage.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n }\n\n (stage as any).renderTo(window);\n return window;\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import type { IGraphicAttribute, IContext2d, IDrawContext, IGraphicRender, IGraphicRenderDrawParams, IMarkAttribute, IRenderService, IThemeAttribute } from './../../../vrender';
2
+ import { BaseRender } from './../../../vrender';
2
3
  import type { Chart } from '../chart';
3
4
  export declare const ChartRender: unique symbol;
4
5
  export declare const ChartRenderContribution: unique symbol;
5
- export declare class DefaultCanvasChartRender implements IGraphicRender {
6
+ export declare class DefaultCanvasChartRender extends BaseRender<Chart> implements IGraphicRender {
6
7
  type: 'chart';
7
8
  numberType: number;
8
9
  drawShape(chart: Chart, context: IContext2d, x: number, y: number, drawContext: IDrawContext, params?: IGraphicRenderDrawParams, fillCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, strokeCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean): void;
@@ -14,42 +14,58 @@ const vrender_1 = require("./../../../vrender"), chart_1 = require("../chart"),
14
14
 
15
15
  exports.ChartRender = Symbol.for("ChartRender"), exports.ChartRenderContribution = Symbol.for("ChartRenderContribution");
16
16
 
17
- let DefaultCanvasChartRender = class {
17
+ let DefaultCanvasChartRender = class extends vrender_1.BaseRender {
18
18
  constructor() {
19
- this.numberType = chart_1.CHART_NUMBER_TYPE;
19
+ super(...arguments), this.numberType = chart_1.CHART_NUMBER_TYPE;
20
20
  }
21
21
  drawShape(chart, context, x, y, drawContext, params, fillCb, strokeCb) {
22
22
  var _a, _b, _c, _d;
23
23
  const groupAttribute = (0, vrender_1.getTheme)(chart, null == params ? void 0 : params.theme).group, {dataId: dataId, data: data, spec: spec} = chart.attribute, {width: width = groupAttribute.width, height: height = groupAttribute.height} = (chart.getViewBox(),
24
- chart.attribute), {active: active, cacheCanvas: cacheCanvas, activeChartInstance: activeChartInstance} = chart;
24
+ chart.attribute), {table: table} = chart.getRootNode(), {active: active, cacheCanvas: cacheCanvas, activeChartInstance: activeChartInstance} = chart;
25
25
  if (!active && cacheCanvas) (0, vutils_1.isArray)(cacheCanvas) ? cacheCanvas.forEach((singleCacheCanvas => {
26
26
  const {x: x, y: y, width: width, height: height, canvas: canvas} = singleCacheCanvas;
27
27
  context.drawImage(canvas, x, y, width, height);
28
- })) : context.drawImage(cacheCanvas, x, y, width, height); else if (activeChartInstance) if ("string" == typeof dataId) activeChartInstance.updateDataSync(dataId, null != data ? data : []); else {
29
- const dataBatch = [];
30
- for (const dataIdStr in dataId) {
31
- const dataIdAndField = dataId[dataIdStr], series = spec.series.find((item => {
32
- var _a;
33
- return (null === (_a = null == item ? void 0 : item.data) || void 0 === _a ? void 0 : _a.id) === dataIdStr;
34
- }));
35
- dataBatch.push({
36
- id: dataIdStr,
37
- values: dataIdAndField ? null !== (_a = null == data ? void 0 : data.filter((item => item.hasOwnProperty(dataIdAndField)))) && void 0 !== _a ? _a : [] : null != data ? data : [],
38
- fields: null === (_b = null == series ? void 0 : series.data) || void 0 === _b ? void 0 : _b.fields
39
- }), activeChartInstance.updateFullDataSync || activeChartInstance.updateDataSync(dataIdStr, dataIdAndField ? null !== (_c = null == data ? void 0 : data.filter((item => item.hasOwnProperty(dataIdAndField)))) && void 0 !== _c ? _c : [] : null != data ? data : []);
28
+ })) : context.drawImage(cacheCanvas, x, y, width, height); else if (activeChartInstance) {
29
+ if (table.options.specFormat) {
30
+ const formatResult = table.options.specFormat(chart.attribute.spec);
31
+ if (formatResult.needFormatSpec && formatResult.spec) {
32
+ const spec = formatResult.spec;
33
+ return void activeChartInstance.updateSpecSync(spec);
34
+ }
40
35
  }
41
- null === (_d = activeChartInstance.updateFullDataSync) || void 0 === _d || _d.call(activeChartInstance, dataBatch);
42
- } else chart.getRootNode().table.internalProps.renderChartAsync ? (-1 === chart_render_helper_1.chartRenderKeys.indexOf(`${chart.parent.col}+${chart.parent.row}`) && (chart_render_helper_1.chartRenderKeys.push(`${chart.parent.col}+${chart.parent.row}`),
36
+ const viewBox = chart.getViewBox();
37
+ activeChartInstance.updateViewBox({
38
+ x1: 0,
39
+ x2: viewBox.x2 - viewBox.x1,
40
+ y1: 0,
41
+ y2: viewBox.y2 - viewBox.y1
42
+ }, !1, !1);
43
+ const chartStage = activeChartInstance.getStage();
44
+ chartStage.needRender = !0;
45
+ const matrix = chart.globalTransMatrix.clone(), stageMatrix = chart.stage.window.getViewBoxTransform().clone();
46
+ if (stageMatrix.multiply(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f),
47
+ chartStage.window.setViewBoxTransform(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f),
48
+ "string" == typeof dataId) activeChartInstance.updateDataSync(dataId, null != data ? data : []); else {
49
+ const dataBatch = [];
50
+ for (const dataIdStr in dataId) {
51
+ const dataIdAndField = dataId[dataIdStr], series = spec.series.find((item => {
52
+ var _a;
53
+ return (null === (_a = null == item ? void 0 : item.data) || void 0 === _a ? void 0 : _a.id) === dataIdStr;
54
+ }));
55
+ dataBatch.push({
56
+ id: dataIdStr,
57
+ values: dataIdAndField ? null !== (_a = null == data ? void 0 : data.filter((item => item.hasOwnProperty(dataIdAndField)))) && void 0 !== _a ? _a : [] : null != data ? data : [],
58
+ fields: null === (_b = null == series ? void 0 : series.data) || void 0 === _b ? void 0 : _b.fields
59
+ }), activeChartInstance.updateFullDataSync || activeChartInstance.updateDataSync(dataIdStr, dataIdAndField ? null !== (_c = null == data ? void 0 : data.filter((item => item.hasOwnProperty(dataIdAndField)))) && void 0 !== _c ? _c : [] : null != data ? data : []);
60
+ }
61
+ null === (_d = activeChartInstance.updateFullDataSync) || void 0 === _d || _d.call(activeChartInstance, dataBatch);
62
+ }
63
+ } else table.internalProps.renderChartAsync ? (-1 === chart_render_helper_1.chartRenderKeys.indexOf(`${chart.parent.col}+${chart.parent.row}`) && (chart_render_helper_1.chartRenderKeys.push(`${chart.parent.col}+${chart.parent.row}`),
43
64
  chart_render_helper_1.chartRenderQueueList.push(chart)), (0, chart_render_helper_1.IsHandlingChartQueue)() || (0,
44
- chart_render_helper_1.startRenderChartQueue)(chart.getRootNode().table)) : (0, chart_render_helper_1.renderChart)(chart);
65
+ chart_render_helper_1.startRenderChartQueue)(table)) : (0, chart_render_helper_1.renderChart)(chart);
45
66
  }
46
67
  draw(chart, renderService, drawContext, params) {
47
- const {context: context} = drawContext;
48
- if (!context) return;
49
- const {clip: clip} = chart.attribute;
50
- clip ? context.save() : context.highPerformanceSave(), context.transformFromMatrix(chart.transMatrix, !0),
51
- context.beginPath(), params.skipDraw ? this.drawShape(chart, context, 0, 0, drawContext, params, (() => !1), (() => !1)) : this.drawShape(chart, context, 0, 0, drawContext),
52
- clip ? context.restore() : context.highPerformanceRestore();
68
+ this._draw(chart, {}, !1, drawContext, params);
53
69
  }
54
70
  };
55
71
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/contributions/chart-render.ts"],"names":[],"mappings":"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","file":"chart-render.js","sourcesContent":["import type {\n IGraphicAttribute,\n IContext2d,\n IDrawContext,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IMarkAttribute,\n IRenderService,\n IThemeAttribute\n} from './../../../vrender';\nimport {\n ContributionProvider,\n getTheme,\n IGroupRenderContribution,\n createImage,\n inject,\n injectable,\n named\n} from './../../../vrender';\nimport type { Chart } from '../chart';\nimport { CHART_NUMBER_TYPE } from '../chart';\nimport {\n IsHandlingChartQueue,\n chartRenderKeys,\n chartRenderQueueList,\n renderChart,\n startRenderChartQueue\n} from './chart-render-helper';\nimport { isArray } from '@visactor/vutils';\n\nexport const ChartRender = Symbol.for('ChartRender');\nexport const ChartRenderContribution = Symbol.for('ChartRenderContribution');\n\n@injectable()\nexport class DefaultCanvasChartRender implements IGraphicRender {\n type: 'chart';\n numberType: number = CHART_NUMBER_TYPE;\n\n drawShape(\n chart: Chart,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\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 groupAttribute = getTheme(chart, params?.theme).group;\n\n const { dataId, data, spec } = chart.attribute;\n const viewBox = chart.getViewBox();\n const { width = groupAttribute.width, height = groupAttribute.height } = chart.attribute;\n\n const { active, cacheCanvas, activeChartInstance } = chart;\n // console.log('render chart', chart.parent.col, chart.parent.row, viewBox, cacheCanvas);\n if (!active && cacheCanvas) {\n if (isArray(cacheCanvas)) {\n cacheCanvas.forEach(singleCacheCanvas => {\n const { x, y, width, height, canvas } = singleCacheCanvas;\n context.drawImage(canvas, x, y, width, height);\n });\n } else {\n context.drawImage(cacheCanvas, x, y, width, height);\n }\n } else if (activeChartInstance) {\n if (typeof dataId === 'string') {\n activeChartInstance.updateDataSync(dataId, data ?? []);\n } else {\n const dataBatch = [];\n // 如果是组合图有series系列 需要组个设置数据 这里的data包括的单元格完整数据 需要根据key过滤\n for (const dataIdStr in dataId) {\n const dataIdAndField = dataId[dataIdStr];\n const series = spec.series.find((item: any) => item?.data?.id === dataIdStr);\n dataBatch.push({\n id: dataIdStr,\n values: dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? [],\n fields: series?.data?.fields\n });\n if (!activeChartInstance.updateFullDataSync) {\n activeChartInstance.updateDataSync(\n dataIdStr,\n dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? []\n );\n }\n }\n activeChartInstance.updateFullDataSync?.(dataBatch);\n }\n } else {\n if ((chart.getRootNode() as any).table.internalProps.renderChartAsync) {\n if (chartRenderKeys.indexOf(`${chart.parent.col}+${chart.parent.row}`) === -1) {\n chartRenderKeys.push(`${chart.parent.col}+${chart.parent.row}`);\n chartRenderQueueList.push(chart);\n }\n //判断是否已经开启渲染队列\n if (!IsHandlingChartQueue()) {\n startRenderChartQueue((chart.getRootNode() as any).table);\n }\n } else {\n renderChart(chart);\n }\n }\n }\n\n draw(chart: Chart, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n // debugger;\n const { clip } = chart.attribute;\n if (clip) {\n context.save();\n } else {\n context.highPerformanceSave();\n }\n // group直接transform\n context.transformFromMatrix(chart.transMatrix, true);\n\n context.beginPath();\n // 如果跳过绘制,那就不绘制\n if (params.skipDraw) {\n this.drawShape(\n chart,\n context,\n 0,\n 0,\n drawContext,\n params,\n () => false,\n () => false\n );\n } else {\n this.drawShape(chart, context, 0, 0, drawContext);\n }\n\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/contributions/chart-render.ts"],"names":[],"mappings":"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","file":"chart-render.js","sourcesContent":["import type {\n IGraphicAttribute,\n IContext2d,\n IDrawContext,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IMarkAttribute,\n IRenderService,\n IThemeAttribute\n} from './../../../vrender';\nimport {\n ContributionProvider,\n getTheme,\n IGroupRenderContribution,\n createImage,\n inject,\n injectable,\n named,\n BaseRender\n} from './../../../vrender';\nimport type { Chart } from '../chart';\nimport { CHART_NUMBER_TYPE } from '../chart';\nimport {\n IsHandlingChartQueue,\n chartRenderKeys,\n chartRenderQueueList,\n renderChart,\n startRenderChartQueue\n} from './chart-render-helper';\nimport { isArray } from '@visactor/vutils';\n\nexport const ChartRender = Symbol.for('ChartRender');\nexport const ChartRenderContribution = Symbol.for('ChartRenderContribution');\n\n@injectable()\nexport class DefaultCanvasChartRender extends BaseRender<Chart> implements IGraphicRender {\n type: 'chart';\n numberType: number = CHART_NUMBER_TYPE;\n\n drawShape(\n chart: Chart,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\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 // console.log(chart.parent.col, chart.parent.row);\n // if (chart.parent.col !== 2 || chart.parent.row !== 2) {\n // return;\n // }\n const groupAttribute = getTheme(chart, params?.theme).group;\n\n const { dataId, data, spec } = chart.attribute;\n const viewBox = chart.getViewBox();\n const { width = groupAttribute.width, height = groupAttribute.height } = chart.attribute;\n const { table } = chart.getRootNode() as any;\n\n const { active, cacheCanvas, activeChartInstance } = chart;\n // console.log('render chart', chart.parent.col, chart.parent.row, viewBox, cacheCanvas);\n if (!active && cacheCanvas) {\n if (isArray(cacheCanvas)) {\n cacheCanvas.forEach(singleCacheCanvas => {\n const { x, y, width, height, canvas } = singleCacheCanvas;\n context.drawImage(canvas, x, y, width, height);\n });\n } else {\n context.drawImage(cacheCanvas, x, y, width, height);\n }\n } else if (activeChartInstance) {\n if (table.options.specFormat) {\n const formatResult = table.options.specFormat(chart.attribute.spec);\n if (formatResult.needFormatSpec && formatResult.spec) {\n const spec = formatResult.spec;\n activeChartInstance.updateSpecSync(spec);\n return;\n }\n }\n\n const viewBox = chart.getViewBox();\n activeChartInstance.updateViewBox(\n // {\n // x1: viewBox.x1 - (chart.getRootNode() as any).table.scrollLeft,\n // x2: viewBox.x2 - (chart.getRootNode() as any).table.scrollLeft,\n // y1: viewBox.y1 - (chart.getRootNode() as any).table.scrollTop,\n // y2: viewBox.y2 - (chart.getRootNode() as any).table.scrollTop\n // },\n {\n x1: 0,\n x2: viewBox.x2 - viewBox.x1,\n y1: 0,\n y2: viewBox.y2 - viewBox.y1\n },\n false,\n false\n );\n // console.log(viewBox);\n\n const chartStage = activeChartInstance.getStage();\n chartStage.needRender = true;\n // chartStage.background = 'red';\n const matrix = chart.globalTransMatrix.clone();\n const stageMatrix = chart.stage.window.getViewBoxTransform().clone();\n // matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f);\n stageMatrix.multiply(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n chartStage.window.setViewBoxTransform(\n stageMatrix.a,\n stageMatrix.b,\n stageMatrix.c,\n stageMatrix.d,\n stageMatrix.e,\n stageMatrix.f\n );\n\n if (typeof dataId === 'string') {\n activeChartInstance.updateDataSync(dataId, data ?? []);\n } else {\n const dataBatch = [];\n // 如果是组合图有series系列 需要组个设置数据 这里的data包括的单元格完整数据 需要根据key过滤\n for (const dataIdStr in dataId) {\n const dataIdAndField = dataId[dataIdStr];\n const series = spec.series.find((item: any) => item?.data?.id === dataIdStr);\n dataBatch.push({\n id: dataIdStr,\n values: dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? [],\n fields: series?.data?.fields\n });\n if (!activeChartInstance.updateFullDataSync) {\n activeChartInstance.updateDataSync(\n dataIdStr,\n dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? []\n );\n }\n }\n activeChartInstance.updateFullDataSync?.(dataBatch);\n }\n // debugger;\n // console.log(drawContext.context.canvas.toDataURL());\n } else {\n if (table.internalProps.renderChartAsync) {\n if (chartRenderKeys.indexOf(`${chart.parent.col}+${chart.parent.row}`) === -1) {\n chartRenderKeys.push(`${chart.parent.col}+${chart.parent.row}`);\n chartRenderQueueList.push(chart);\n }\n //判断是否已经开启渲染队列\n if (!IsHandlingChartQueue()) {\n startRenderChartQueue(table);\n }\n } else {\n renderChart(chart);\n }\n }\n }\n\n // draw(chart: Chart, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n // const { context } = drawContext;\n // if (!context) {\n // return;\n // }\n // // debugger;\n // const { clip } = chart.attribute;\n // if (clip) {\n // context.save();\n // } else {\n // context.highPerformanceSave();\n // }\n // // group直接transform\n // context.transformFromMatrix(chart.transMatrix, true);\n\n // context.beginPath();\n // // 如果跳过绘制,那就不绘制\n // if (params.skipDraw) {\n // this.drawShape(\n // chart,\n // context,\n // 0,\n // 0,\n // drawContext,\n // params,\n // () => false,\n // () => false\n // );\n // } else {\n // this.drawShape(chart, context, 0, 0, drawContext);\n // }\n\n // if (clip) {\n // context.restore();\n // } else {\n // context.highPerformanceRestore();\n // }\n // }\n draw(chart: Chart, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n // const circleAttribute = getTheme(circle, params?.theme).circle;\n this._draw(chart, {} as any, false, drawContext, params);\n }\n}\n"]}
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", {
10
10
  value: !0
11
11
  }), exports.ClipBodyGroupAfterRenderContribution = exports.ClipBodyGroupBeforeRenderContribution = exports.AdjustColorGroupAfterRenderContribution = exports.AdjustColorGroupBeforeRenderContribution = exports.AdjustPosGroupAfterRenderContribution = exports.AdjustPosGroupBeforeRenderContribution = exports.DashGroupAfterRenderContribution = exports.DashGroupBeforeRenderContribution = exports.renderStroke = exports.getWidthInfo = exports.SplitGroupAfterRenderContribution = exports.SplitGroupBeforeRenderContribution = void 0;
12
12
 
13
- const vrender_1 = require("./../../../vrender"), is_cell_hover_1 = require("../../../state/hover/is-cell-hover"), get_cell_merge_1 = require("../../utils/get-cell-merge"), ts_types_1 = require("../../../ts-types"), vutils_1 = require("@visactor/vutils"), is_cell_select_highlight_1 = require("../../../state/select/is-cell-select-highlight");
13
+ const vrender_1 = require("./../../../vrender"), is_cell_hover_1 = require("../../../state/hover/is-cell-hover"), get_cell_merge_1 = require("../../utils/get-cell-merge"), ts_types_1 = require("../../../ts-types"), vutils_1 = require("@visactor/vutils"), is_cell_select_highlight_1 = require("../../../state/select/is-cell-select-highlight"), rect_contribution_render_1 = require("./rect-contribution-render");
14
14
 
15
15
  let SplitGroupBeforeRenderContribution = class {
16
16
  constructor() {
@@ -33,7 +33,7 @@ let SplitGroupAfterRenderContribution = class {
33
33
  }
34
34
  drawShape(group, context, x, y, doFill, doStroke, fVisible, sVisible, groupAttribute, drawContext, fillCb, strokeCb) {
35
35
  var _a;
36
- const {stroke: stroke = groupAttribute.stroke, strokeArrayColor: strokeArrayColor = groupAttribute.strokeArrayColor, strokeArrayWidth: strokeArrayWidth = groupAttribute.strokeArrayWidth, lineWidth: lineWidth = groupAttribute.lineWidth, strokeColor: strokeColor = groupAttribute.stroke} = group.attribute;
36
+ const {stroke: stroke = groupAttribute.stroke, strokeArrayColor: strokeArrayColor = groupAttribute.strokeArrayColor, strokeArrayWidth: strokeArrayWidth = groupAttribute.strokeArrayWidth, lineWidth: lineWidth = groupAttribute.lineWidth, strokeColor: strokeColor = groupAttribute.stroke, cornerRadius: cornerRadius = groupAttribute.cornerRadius} = group.attribute;
37
37
  let widthForStroke, heightForStroke, {width: width = groupAttribute.width, height: height = groupAttribute.height} = group.attribute;
38
38
  if (stroke && (Array.isArray(strokeArrayWidth) || 0 !== lineWidth) && (Array.isArray(strokeArrayColor) || Array.isArray(strokeArrayWidth))) {
39
39
  if ("number" == typeof lineWidth && 1 & lineWidth || Array.isArray(strokeArrayWidth) && strokeArrayWidth.some((width => 1 & width))) {
@@ -46,7 +46,10 @@ let SplitGroupAfterRenderContribution = class {
46
46
  const {width: widthFroDraw, height: heightFroDraw} = getCellSizeForDraw(group, Math.ceil(width), Math.ceil(height), bottomRight);
47
47
  widthForStroke = widthFroDraw, heightForStroke = heightFroDraw;
48
48
  } else widthForStroke = Math.ceil(width), heightForStroke = Math.ceil(height);
49
- renderStroke(group, context, x, y, groupAttribute, stroke, strokeArrayWidth || lineWidth, strokeArrayColor || strokeColor, widthForStroke, heightForStroke);
49
+ 0 === cornerRadius || (0, vutils_1.isArray)(cornerRadius) && cornerRadius.every((num => 0 === num)) ? renderStroke(group, context, x, y, groupAttribute, stroke, strokeArrayWidth || lineWidth, strokeArrayColor || strokeColor, widthForStroke, heightForStroke) : (context.beginPath(),
50
+ (0, vrender_1.createRectPath)(context, x, y, widthForStroke, heightForStroke, cornerRadius, new Array(4).fill(0).map(((_, i) => (x1, y1, x2, y2) => {
51
+ (0, rect_contribution_render_1.renderStrokeWithCornerRadius)(i, x1, y1, x2, y2, group, context, x, y, groupAttribute, stroke, strokeArrayWidth || lineWidth, strokeArrayColor || strokeColor, widthForStroke, heightForStroke);
52
+ }))), context.stroke());
50
53
  }
51
54
  }
52
55
  };