@visactor/vtable 0.12.3-alpha.1 → 0.13.0-alpha.1

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 (433) hide show
  1. package/cjs/ListTable.js +15 -14
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.d.ts +1 -0
  4. package/cjs/PivotChart.js +10 -7
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.js +6 -6
  7. package/cjs/PivotTable.js.map +1 -1
  8. package/cjs/body-helper/body-helper.d.ts +1 -1
  9. package/cjs/body-helper/body-helper.js +4 -1
  10. package/cjs/body-helper/body-helper.js.map +1 -1
  11. package/cjs/body-helper/style/CheckboxStyle.d.ts +7 -0
  12. package/cjs/body-helper/style/CheckboxStyle.js +24 -0
  13. package/cjs/body-helper/style/CheckboxStyle.js.map +1 -0
  14. package/cjs/body-helper/style.js +2 -2
  15. package/cjs/body-helper/style.js.map +1 -1
  16. package/cjs/components/axis/axis.d.ts +2 -2
  17. package/cjs/components/axis/axis.js +5 -4
  18. package/cjs/components/axis/axis.js.map +1 -1
  19. package/cjs/components/axis/get-axis-attributes.d.ts +137 -0
  20. package/cjs/components/axis/get-axis-attributes.js +10 -5
  21. package/cjs/components/axis/get-axis-attributes.js.map +1 -1
  22. package/cjs/components/axis/get-axis-component-size.js +32 -32
  23. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  24. package/cjs/components/axis/linear-scale.d.ts +8 -5
  25. package/cjs/components/axis/linear-scale.js +19 -5
  26. package/cjs/components/axis/linear-scale.js.map +1 -1
  27. package/cjs/components/menu/dom/logic/MenuElement.js +2 -2
  28. package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -1
  29. package/cjs/components/menu/dom/logic/MenuElementStyle.js +8 -3
  30. package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  31. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +6 -5
  32. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  33. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js +8 -3
  34. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  35. package/cjs/core/BaseTable.d.ts +3 -0
  36. package/cjs/core/BaseTable.js +62 -20
  37. package/cjs/core/BaseTable.js.map +1 -1
  38. package/cjs/core/TABLE_EVENT_TYPE.d.ts +1 -0
  39. package/cjs/core/TABLE_EVENT_TYPE.js +1 -0
  40. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  41. package/cjs/core/style.js +8 -3
  42. package/cjs/core/style.js.map +1 -1
  43. package/cjs/data/DataSource.js +5 -5
  44. package/cjs/data/DataSource.js.map +1 -1
  45. package/cjs/dataset/dataset.js +2 -2
  46. package/cjs/dataset/dataset.js.map +1 -1
  47. package/cjs/event/EventTarget.js +2 -2
  48. package/cjs/event/EventTarget.js.map +1 -1
  49. package/cjs/event/event.js +5 -5
  50. package/cjs/event/event.js.map +1 -1
  51. package/cjs/event/listener/table-group.js +8 -0
  52. package/cjs/event/listener/table-group.js.map +1 -1
  53. package/cjs/event/listener/touch.js +2 -1
  54. package/cjs/event/listener/touch.js.map +1 -1
  55. package/cjs/event/scroll.js +1 -1
  56. package/cjs/event/scroll.js.map +1 -1
  57. package/cjs/header-helper/style.js +2 -2
  58. package/cjs/header-helper/style.js.map +1 -1
  59. package/cjs/index.d.ts +1 -1
  60. package/cjs/index.js +1 -1
  61. package/cjs/index.js.map +1 -1
  62. package/cjs/layout/chart-helper/get-axis-config.js +16 -16
  63. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  64. package/cjs/layout/chart-helper/get-axis-domain.js +11 -8
  65. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  66. package/cjs/layout/chart-helper/get-chart-spec.js +2 -2
  67. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  68. package/cjs/layout/pivot-header-layout.d.ts +1 -1
  69. package/cjs/layout/pivot-header-layout.js +25 -25
  70. package/cjs/layout/pivot-header-layout.js.map +1 -1
  71. package/cjs/layout/simple-header-layout.js +5 -5
  72. package/cjs/layout/simple-header-layout.js.map +1 -1
  73. package/cjs/render/layout/container.js +3 -3
  74. package/cjs/render/layout/container.js.map +1 -1
  75. package/cjs/render/layout/icon.js +2 -2
  76. package/cjs/render/layout/icon.js.map +1 -1
  77. package/cjs/render/layout/image.js.map +1 -1
  78. package/cjs/render/layout/text.js +1 -1
  79. package/cjs/render/layout/text.js.map +1 -1
  80. package/cjs/scenegraph/component/custom.js +11 -11
  81. package/cjs/scenegraph/component/custom.js.map +1 -1
  82. package/cjs/scenegraph/component/menu.js +2 -0
  83. package/cjs/scenegraph/component/menu.js.map +1 -1
  84. package/cjs/scenegraph/context/canvas.js +2 -2
  85. package/cjs/scenegraph/context/canvas.js.map +1 -1
  86. package/cjs/scenegraph/context/context.js +2 -2
  87. package/cjs/scenegraph/context/context.js.map +1 -1
  88. package/cjs/scenegraph/context/module.d.ts +1 -1
  89. package/cjs/scenegraph/context/module.js +2 -2
  90. package/cjs/scenegraph/context/module.js.map +1 -1
  91. package/cjs/scenegraph/graphic/chart.d.ts +2 -0
  92. package/cjs/scenegraph/graphic/chart.js +8 -2
  93. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  94. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +2 -2
  95. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  96. package/cjs/scenegraph/graphic/group.d.ts +6 -2
  97. package/cjs/scenegraph/graphic/group.js.map +1 -1
  98. package/cjs/scenegraph/group-creater/cell-helper.d.ts +3 -3
  99. package/cjs/scenegraph/group-creater/cell-helper.js +38 -38
  100. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  101. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +4 -2
  102. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  103. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +5 -0
  104. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +74 -0
  105. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -0
  106. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +2 -2
  107. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  108. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +4 -4
  109. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  110. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  111. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +4 -4
  112. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  113. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +2 -2
  114. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  115. package/cjs/scenegraph/group-creater/column-helper.d.ts +3 -2
  116. package/cjs/scenegraph/group-creater/column-helper.js +78 -46
  117. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  118. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +23 -24
  119. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  120. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  121. package/cjs/scenegraph/group-creater/progress/proxy.js +8 -5
  122. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  123. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +3 -4
  124. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  125. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +11 -12
  126. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  127. package/cjs/scenegraph/icon/icon-update.d.ts +17 -0
  128. package/cjs/scenegraph/icon/icon-update.js +165 -0
  129. package/cjs/scenegraph/icon/icon-update.js.map +1 -0
  130. package/cjs/scenegraph/layout/compute-row-height.js +2 -1
  131. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  132. package/cjs/scenegraph/layout/frozen.js +9 -7
  133. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  134. package/cjs/scenegraph/layout/move-cell.js +8 -27
  135. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  136. package/cjs/scenegraph/layout/update-height.js +36 -24
  137. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  138. package/cjs/scenegraph/layout/update-row.js +6 -2
  139. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  140. package/cjs/scenegraph/layout/update-width.js +39 -26
  141. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  142. package/cjs/scenegraph/refresh-node/update-chart.js +6 -3
  143. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  144. package/cjs/scenegraph/scenegraph.d.ts +7 -13
  145. package/cjs/scenegraph/scenegraph.js +40 -154
  146. package/cjs/scenegraph/scenegraph.js.map +1 -1
  147. package/cjs/scenegraph/stick-text/index.js +76 -37
  148. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  149. package/cjs/scenegraph/utils/get-prop.js +4 -4
  150. package/cjs/scenegraph/utils/get-prop.js.map +1 -1
  151. package/cjs/scenegraph/utils/is-merge-cell-group.d.ts +2 -0
  152. package/cjs/scenegraph/utils/is-merge-cell-group.js +16 -0
  153. package/cjs/scenegraph/utils/is-merge-cell-group.js.map +1 -0
  154. package/cjs/scenegraph/utils/text-icon-layout.js +9 -3
  155. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  156. package/cjs/scenegraph/utils/text-measure.js +4 -4
  157. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  158. package/cjs/state/hover/is-cell-hover.js +4 -2
  159. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  160. package/cjs/state/hover/update-cell.js +10 -5
  161. package/cjs/state/hover/update-cell.js.map +1 -1
  162. package/cjs/state/select/update-position.js +4 -4
  163. package/cjs/state/select/update-position.js.map +1 -1
  164. package/cjs/state/state.d.ts +1 -0
  165. package/cjs/state/state.js +9 -7
  166. package/cjs/state/state.js.map +1 -1
  167. package/cjs/themes/ARCO.js +0 -8
  168. package/cjs/themes/ARCO.js.map +1 -1
  169. package/cjs/themes/BRIGHT.js +2 -9
  170. package/cjs/themes/BRIGHT.js.map +1 -1
  171. package/cjs/themes/DARK.js +1 -10
  172. package/cjs/themes/DARK.js.map +1 -1
  173. package/cjs/themes/DEFAULT.js +0 -8
  174. package/cjs/themes/DEFAULT.js.map +1 -1
  175. package/cjs/themes/theme.js +6 -2
  176. package/cjs/themes/theme.js.map +1 -1
  177. package/cjs/tools/NumberMap.js +2 -2
  178. package/cjs/tools/NumberMap.js.map +1 -1
  179. package/cjs/tools/calc.js +1 -1
  180. package/cjs/tools/diff-cell.d.ts +1 -1
  181. package/cjs/tools/global.d.ts +1 -2
  182. package/cjs/tools/global.js +4 -4
  183. package/cjs/tools/global.js.map +1 -1
  184. package/cjs/ts-types/base-table.d.ts +16 -1
  185. package/cjs/ts-types/base-table.js.map +1 -1
  186. package/cjs/ts-types/column/style.d.ts +2 -1
  187. package/cjs/ts-types/column/style.js.map +1 -1
  188. package/cjs/ts-types/column/type.d.ts +1 -1
  189. package/cjs/ts-types/column/type.js.map +1 -1
  190. package/cjs/ts-types/events.d.ts +4 -0
  191. package/cjs/ts-types/events.js.map +1 -1
  192. package/cjs/ts-types/list-table/define/basic-define.d.ts +1 -0
  193. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  194. package/cjs/ts-types/list-table/define/checkbox-define.d.ts +9 -0
  195. package/cjs/ts-types/list-table/define/checkbox-define.js +6 -0
  196. package/cjs/ts-types/list-table/define/checkbox-define.js.map +1 -0
  197. package/cjs/ts-types/list-table/define/index.d.ts +4 -2
  198. package/cjs/ts-types/list-table/define/index.js.map +1 -1
  199. package/cjs/ts-types/pivot-table/indicator/checkbox-indicator.d.ts +9 -0
  200. package/cjs/ts-types/pivot-table/indicator/checkbox-indicator.js +6 -0
  201. package/cjs/ts-types/pivot-table/indicator/checkbox-indicator.js.map +1 -0
  202. package/cjs/ts-types/pivot-table/indicator/index.d.ts +2 -1
  203. package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -1
  204. package/cjs/ts-types/table-engine.d.ts +13 -0
  205. package/cjs/ts-types/table-engine.js.map +1 -1
  206. package/cjs/ts-types/theme.d.ts +6 -3
  207. package/cjs/ts-types/theme.js.map +1 -1
  208. package/cjs/ts-types/tooltip.d.ts +2 -1
  209. package/cjs/ts-types/tooltip.js.map +1 -1
  210. package/dist/vtable.js +12359 -11638
  211. package/dist/vtable.min.js +2 -2
  212. package/es/ListTable.js +6 -3
  213. package/es/ListTable.js.map +1 -1
  214. package/es/PivotChart.d.ts +1 -0
  215. package/es/PivotChart.js +11 -5
  216. package/es/PivotChart.js.map +1 -1
  217. package/es/PivotTable.js +7 -4
  218. package/es/PivotTable.js.map +1 -1
  219. package/es/body-helper/body-helper.d.ts +1 -1
  220. package/es/body-helper/body-helper.js +5 -0
  221. package/es/body-helper/body-helper.js.map +1 -1
  222. package/es/body-helper/style/CheckboxStyle.d.ts +7 -0
  223. package/es/body-helper/style/CheckboxStyle.js +16 -0
  224. package/es/body-helper/style/CheckboxStyle.js.map +1 -0
  225. package/es/body-helper/style.js +1 -1
  226. package/es/body-helper/style.js.map +1 -1
  227. package/es/components/axis/axis.d.ts +2 -2
  228. package/es/components/axis/axis.js +5 -4
  229. package/es/components/axis/axis.js.map +1 -1
  230. package/es/components/axis/get-axis-attributes.d.ts +137 -0
  231. package/es/components/axis/get-axis-attributes.js +8 -2
  232. package/es/components/axis/get-axis-attributes.js.map +1 -1
  233. package/es/components/axis/get-axis-component-size.js +33 -33
  234. package/es/components/axis/get-axis-component-size.js.map +1 -1
  235. package/es/components/axis/linear-scale.d.ts +8 -5
  236. package/es/components/axis/linear-scale.js +15 -6
  237. package/es/components/axis/linear-scale.js.map +1 -1
  238. package/es/components/menu/dom/logic/MenuElement.js +1 -1
  239. package/es/components/menu/dom/logic/MenuElement.js.map +1 -1
  240. package/es/components/menu/dom/logic/MenuElementStyle.js +3 -0
  241. package/es/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  242. package/es/components/tooltip/logic/BubbleTooltipElement.js +6 -5
  243. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  244. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js +3 -0
  245. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  246. package/es/core/BaseTable.d.ts +3 -0
  247. package/es/core/BaseTable.js +57 -16
  248. package/es/core/BaseTable.js.map +1 -1
  249. package/es/core/TABLE_EVENT_TYPE.d.ts +1 -0
  250. package/es/core/TABLE_EVENT_TYPE.js +1 -0
  251. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  252. package/es/core/style.js +3 -0
  253. package/es/core/style.js.map +1 -1
  254. package/es/data/DataSource.js +3 -1
  255. package/es/data/DataSource.js.map +1 -1
  256. package/es/dataset/dataset.js +2 -2
  257. package/es/dataset/dataset.js.map +1 -1
  258. package/es/event/EventTarget.js +1 -1
  259. package/es/event/EventTarget.js.map +1 -1
  260. package/es/event/event.js +6 -4
  261. package/es/event/event.js.map +1 -1
  262. package/es/event/listener/table-group.js +8 -0
  263. package/es/event/listener/table-group.js.map +1 -1
  264. package/es/event/listener/touch.js +1 -1
  265. package/es/event/listener/touch.js.map +1 -1
  266. package/es/event/scroll.js +1 -1
  267. package/es/event/scroll.js.map +1 -1
  268. package/es/header-helper/style.js +1 -1
  269. package/es/header-helper/style.js.map +1 -1
  270. package/es/index.d.ts +1 -1
  271. package/es/index.js +1 -1
  272. package/es/index.js.map +1 -1
  273. package/es/layout/chart-helper/get-axis-config.js +16 -16
  274. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  275. package/es/layout/chart-helper/get-axis-domain.js +12 -9
  276. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  277. package/es/layout/chart-helper/get-chart-spec.js +2 -2
  278. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  279. package/es/layout/pivot-header-layout.d.ts +1 -1
  280. package/es/layout/pivot-header-layout.js +4 -4
  281. package/es/layout/pivot-header-layout.js.map +1 -1
  282. package/es/layout/simple-header-layout.js +2 -2
  283. package/es/layout/simple-header-layout.js.map +1 -1
  284. package/es/render/layout/container.js +1 -1
  285. package/es/render/layout/container.js.map +1 -1
  286. package/es/render/layout/icon.js +1 -1
  287. package/es/render/layout/icon.js.map +1 -1
  288. package/es/render/layout/image.js.map +1 -1
  289. package/es/render/layout/text.js +1 -1
  290. package/es/render/layout/text.js.map +1 -1
  291. package/es/scenegraph/component/custom.js +1 -1
  292. package/es/scenegraph/component/custom.js.map +1 -1
  293. package/es/scenegraph/component/menu.js +2 -0
  294. package/es/scenegraph/component/menu.js.map +1 -1
  295. package/es/scenegraph/context/canvas.js +1 -3
  296. package/es/scenegraph/context/canvas.js.map +1 -1
  297. package/es/scenegraph/context/context.js +0 -2
  298. package/es/scenegraph/context/context.js.map +1 -1
  299. package/es/scenegraph/context/module.d.ts +1 -1
  300. package/es/scenegraph/context/module.js +1 -3
  301. package/es/scenegraph/context/module.js.map +1 -1
  302. package/es/scenegraph/graphic/chart.d.ts +2 -0
  303. package/es/scenegraph/graphic/chart.js +8 -2
  304. package/es/scenegraph/graphic/chart.js.map +1 -1
  305. package/es/scenegraph/graphic/contributions/chart-render-helper.js +1 -3
  306. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  307. package/es/scenegraph/graphic/group.d.ts +6 -2
  308. package/es/scenegraph/graphic/group.js.map +1 -1
  309. package/es/scenegraph/group-creater/cell-helper.d.ts +3 -3
  310. package/es/scenegraph/group-creater/cell-helper.js +39 -38
  311. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  312. package/es/scenegraph/group-creater/cell-type/chart-cell.js +3 -1
  313. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  314. package/es/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +5 -0
  315. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +72 -0
  316. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -0
  317. package/es/scenegraph/group-creater/cell-type/image-cell.js +1 -1
  318. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  319. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +1 -1
  320. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  321. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  322. package/es/scenegraph/group-creater/cell-type/text-cell.js +3 -3
  323. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  324. package/es/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  325. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  326. package/es/scenegraph/group-creater/column-helper.d.ts +3 -2
  327. package/es/scenegraph/group-creater/column-helper.js +75 -44
  328. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  329. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +20 -21
  330. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  331. package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  332. package/es/scenegraph/group-creater/progress/proxy.js +8 -5
  333. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  334. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +4 -5
  335. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  336. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +10 -13
  337. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  338. package/es/scenegraph/icon/icon-update.d.ts +17 -0
  339. package/es/scenegraph/icon/icon-update.js +154 -0
  340. package/es/scenegraph/icon/icon-update.js.map +1 -0
  341. package/es/scenegraph/layout/compute-row-height.js +2 -1
  342. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  343. package/es/scenegraph/layout/frozen.js +9 -7
  344. package/es/scenegraph/layout/frozen.js.map +1 -1
  345. package/es/scenegraph/layout/move-cell.js +8 -27
  346. package/es/scenegraph/layout/move-cell.js.map +1 -1
  347. package/es/scenegraph/layout/update-height.js +38 -22
  348. package/es/scenegraph/layout/update-height.js.map +1 -1
  349. package/es/scenegraph/layout/update-row.js +6 -1
  350. package/es/scenegraph/layout/update-row.js.map +1 -1
  351. package/es/scenegraph/layout/update-width.js +41 -24
  352. package/es/scenegraph/layout/update-width.js.map +1 -1
  353. package/es/scenegraph/refresh-node/update-chart.js +6 -3
  354. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  355. package/es/scenegraph/scenegraph.d.ts +7 -13
  356. package/es/scenegraph/scenegraph.js +43 -154
  357. package/es/scenegraph/scenegraph.js.map +1 -1
  358. package/es/scenegraph/stick-text/index.js +74 -37
  359. package/es/scenegraph/stick-text/index.js.map +1 -1
  360. package/es/scenegraph/utils/get-prop.js +1 -1
  361. package/es/scenegraph/utils/get-prop.js.map +1 -1
  362. package/es/scenegraph/utils/is-merge-cell-group.d.ts +2 -0
  363. package/es/scenegraph/utils/is-merge-cell-group.js +6 -0
  364. package/es/scenegraph/utils/is-merge-cell-group.js.map +1 -0
  365. package/es/scenegraph/utils/text-icon-layout.js +9 -3
  366. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  367. package/es/scenegraph/utils/text-measure.js +4 -4
  368. package/es/scenegraph/utils/text-measure.js.map +1 -1
  369. package/es/state/hover/is-cell-hover.js +3 -1
  370. package/es/state/hover/is-cell-hover.js.map +1 -1
  371. package/es/state/hover/update-cell.js +4 -2
  372. package/es/state/hover/update-cell.js.map +1 -1
  373. package/es/state/select/update-position.js +4 -4
  374. package/es/state/select/update-position.js.map +1 -1
  375. package/es/state/state.d.ts +1 -0
  376. package/es/state/state.js +6 -6
  377. package/es/state/state.js.map +1 -1
  378. package/es/themes/ARCO.js +0 -8
  379. package/es/themes/ARCO.js.map +1 -1
  380. package/es/themes/BRIGHT.js +2 -9
  381. package/es/themes/BRIGHT.js.map +1 -1
  382. package/es/themes/DARK.js +1 -10
  383. package/es/themes/DARK.js.map +1 -1
  384. package/es/themes/DEFAULT.js +0 -8
  385. package/es/themes/DEFAULT.js.map +1 -1
  386. package/es/themes/theme.js +7 -3
  387. package/es/themes/theme.js.map +1 -1
  388. package/es/tools/NumberMap.js +1 -1
  389. package/es/tools/NumberMap.js.map +1 -1
  390. package/es/tools/calc.js +1 -1
  391. package/es/tools/diff-cell.d.ts +1 -1
  392. package/es/tools/global.d.ts +1 -2
  393. package/es/tools/global.js +1 -3
  394. package/es/tools/global.js.map +1 -1
  395. package/es/ts-types/base-table.d.ts +16 -1
  396. package/es/ts-types/base-table.js.map +1 -1
  397. package/es/ts-types/column/style.d.ts +2 -1
  398. package/es/ts-types/column/style.js.map +1 -1
  399. package/es/ts-types/column/type.d.ts +1 -1
  400. package/es/ts-types/column/type.js.map +1 -1
  401. package/es/ts-types/events.d.ts +4 -0
  402. package/es/ts-types/events.js.map +1 -1
  403. package/es/ts-types/list-table/define/basic-define.d.ts +1 -0
  404. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  405. package/es/ts-types/list-table/define/checkbox-define.d.ts +9 -0
  406. package/es/ts-types/list-table/define/checkbox-define.js +2 -0
  407. package/es/ts-types/list-table/define/checkbox-define.js.map +1 -0
  408. package/es/ts-types/list-table/define/index.d.ts +4 -2
  409. package/es/ts-types/list-table/define/index.js.map +1 -1
  410. package/es/ts-types/pivot-table/indicator/checkbox-indicator.d.ts +9 -0
  411. package/es/ts-types/pivot-table/indicator/checkbox-indicator.js +2 -0
  412. package/es/ts-types/pivot-table/indicator/checkbox-indicator.js.map +1 -0
  413. package/es/ts-types/pivot-table/indicator/index.d.ts +2 -1
  414. package/es/ts-types/pivot-table/indicator/index.js.map +1 -1
  415. package/es/ts-types/table-engine.d.ts +13 -0
  416. package/es/ts-types/table-engine.js.map +1 -1
  417. package/es/ts-types/theme.d.ts +6 -3
  418. package/es/ts-types/theme.js.map +1 -1
  419. package/es/ts-types/tooltip.d.ts +2 -1
  420. package/es/ts-types/tooltip.js.map +1 -1
  421. package/package.json +6 -3
  422. package/cjs/scenegraph/header-icon/layout.d.ts +0 -3
  423. package/cjs/scenegraph/header-icon/layout.js +0 -75
  424. package/cjs/scenegraph/header-icon/layout.js.map +0 -1
  425. package/cjs/scenegraph/hover-state.d.ts +0 -14
  426. package/cjs/scenegraph/hover-state.js +0 -27
  427. package/cjs/scenegraph/hover-state.js.map +0 -1
  428. package/es/scenegraph/header-icon/layout.d.ts +0 -3
  429. package/es/scenegraph/header-icon/layout.js +0 -69
  430. package/es/scenegraph/header-icon/layout.js.map +0 -1
  431. package/es/scenegraph/hover-state.d.ts +0 -14
  432. package/es/scenegraph/hover-state.js +0 -19
  433. package/es/scenegraph/hover-state.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/group-creater/cell-helper.ts"],"names":[],"mappings":"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","file":"cell-helper.js","sourcesContent":["import type { Cursor, IThemeSpec } from '@visactor/vrender';\nimport type { ProgressBarStyle } from '../../body-helper/style/ProgressBarStyle';\nimport { regUrl } from '../../tools/global';\nimport type {\n CellRange,\n ChartColumnDefine,\n ColumnDefine,\n ColumnTypeOption,\n ICustomRender,\n ImageColumnDefine,\n MappingRule,\n ProgressbarColumnDefine,\n TextColumnDefine\n} from '../../ts-types';\nimport { dealWithCustom } from '../component/custom';\nimport { Group } from '../graphic/group';\nimport { getProp } from '../utils/get-prop';\nimport { createChartCellGroup } from './cell-type/chart-cell';\nimport { createImageCellGroup } from './cell-type/image-cell';\nimport { createProgressBarCell } from './cell-type/progress-bar-cell';\nimport { createSparkLineCellGroup } from './cell-type/spark-line-cell';\nimport { createCellGroup } from './cell-type/text-cell';\nimport { createVideoCellGroup } from './cell-type/video-cell';\nimport type { ICustomLayoutFuc } from '../../ts-types/customLayout';\nimport type { BaseTableAPI, PivotTableProtected } from '../../ts-types/base-table';\nimport { getStyleTheme } from '../../core/tableHelper';\nimport { isPromise } from '../../tools/helper';\nimport { dealPromiseData } from '../utils/deal-promise-data';\nimport { CartesianAxis } from '../../components/axis/axis';\n// import type { PivotLayoutMap } from '../../layout/pivot-layout';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\n\nexport function createCell(\n type: ColumnTypeOption,\n define: ColumnDefine,\n table: BaseTableAPI,\n col: number,\n row: number,\n colWidth: number,\n cellWidth: number,\n cellHeight: number,\n columnGroup: Group,\n y: number,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n mayHaveIcon: boolean,\n isMerge: boolean,\n range: CellRange,\n cellTheme: IThemeSpec\n): Group {\n let bgColorFunc: Function;\n // 判断是否有mapping 遍历dataset中mappingRules\n if ((table.internalProps as PivotTableProtected)?.dataConfig?.mappingRules && !table.isHeader(col, row)) {\n (table.internalProps as PivotTableProtected)?.dataConfig?.mappingRules?.forEach(\n (mappingRule: MappingRule, i: number) => {\n if (\n mappingRule.bgColor &&\n (table.internalProps.layoutMap as PivotHeaderLayoutMap).getIndicatorKey(col, row) ===\n mappingRule.bgColor.indicatorKey\n ) {\n bgColorFunc = mappingRule.bgColor.mapping;\n }\n }\n );\n }\n let cellGroup: Group;\n if (type === 'text' || type === 'link') {\n if (type === 'link') {\n //如果是超链接 颜色按照linkColor绘制 TODO:放到方法_getCellStyle中\n // const columnDefine = table.getHeaderDefine(col, row);\n const cellValue = table.getCellValue(col, row);\n const headerStyle = table._getCellStyle(col, row);\n\n if (\n type === 'link' &&\n (('templateLink' in define && define.templateLink) ||\n !('linkDetect' in define && define.linkDetect) ||\n regUrl.test(cellValue))\n ) {\n if (cellTheme) {\n cellTheme.text.fill = getProp('linkColor', headerStyle, col, row, table);\n (cellTheme as any).group.cursor = 'pointer';\n } else {\n cellTheme = {\n text: {\n fill: getProp('linkColor', headerStyle, col, row, table)\n },\n group: {\n cursor: 'pointer' as Cursor\n }\n };\n }\n }\n }\n // 判断是否有mapping 遍历dataset中mappingRules 但这里还需要根据fieldName来判断\n if (bgColorFunc) {\n const cellValue = table.getCellOriginValue(col, row);\n const bgColor = bgColorFunc(table, cellValue);\n if (bgColor) {\n if (cellTheme) {\n cellTheme.group.fill = bgColor;\n } else {\n cellTheme = {\n group: {\n fill: bgColor\n }\n };\n }\n }\n }\n\n let customElementsGroup;\n let renderDefault = true;\n let customRender;\n let customLayout;\n const cellLocation = table.getCellLocation(col, row);\n if (cellLocation !== 'body') {\n customRender = define?.headerCustomRender;\n customLayout = define?.headerCustomLayout;\n } else {\n customRender = define?.customRender || table.customRender;\n customLayout = define?.customLayout;\n }\n\n if (customLayout || customRender) {\n // const { autoRowHeight } = table.internalProps;\n const customResult = dealWithCustom(\n customLayout,\n customRender,\n col,\n row,\n cellWidth,\n cellHeight,\n false,\n table.heightMode === 'autoHeight',\n table\n );\n customElementsGroup = customResult.elementsGroup;\n renderDefault = customResult.renderDefault;\n }\n cellGroup = createCellGroup(\n table,\n columnGroup,\n 0,\n y,\n col,\n row,\n colWidth,\n cellWidth,\n cellHeight,\n padding,\n textAlign,\n textBaseline,\n mayHaveIcon,\n customElementsGroup,\n renderDefault,\n cellTheme\n );\n if (isMerge) {\n cellGroup.mergeCol = range.end.col;\n cellGroup.mergeRow = range.end.row;\n }\n\n const axisConfig = table.internalProps.layoutMap.getAxisConfigInPivotChart(col, row);\n if (axisConfig) {\n const axis = new CartesianAxis(axisConfig, cellGroup.attribute.width, cellGroup.attribute.height, table);\n cellGroup.clear();\n cellGroup.appendChild(axis.component);\n axis.overlap();\n } else if (table.internalProps.layoutMap.isEmpty(col, row)) {\n cellGroup.clear();\n }\n\n // if ((define as any)?.isAxis && cellLocation === 'columnHeader') {\n // cellGroup.setAttribute('clip', false);\n // const axis = new CartesianAxis(\n // {\n // orient: 'top',\n // type: 'band',\n // data: ['A', 'B', 'C'],\n // title: {\n // visible: true,\n // text: 'X Axis'\n // }\n // },\n // cellGroup.attribute.width,\n // cellGroup.attribute.height,\n // table\n // );\n // cellGroup.clear();\n // // axis.component.setAttribute('y', 40);\n // cellGroup.appendChild(axis.component);\n // } else if ((define as any)?.isAxis && cellLocation === 'rowHeader') {\n // cellGroup.setAttribute('clip', false);\n // const axis = new CartesianAxis(\n // {\n // orient: 'left',\n // type: 'linear',\n // range: { min: 0, max: 30 },\n // label: {\n // flush: true\n // },\n // grid: {\n // visible: true\n // },\n // title: {\n // visible: true,\n // text: 'Y Axis'\n // }\n // },\n // cellGroup.attribute.width,\n // cellGroup.attribute.height,\n // table\n // );\n // cellGroup.clear();\n // // axis.component.setAttribute('x', 80);\n // cellGroup.appendChild(axis.component);\n // axis.overlap();\n // }\n } else if (type === 'image') {\n // 创建图片单元格\n cellGroup = createImageCellGroup(\n columnGroup,\n 0,\n y,\n col,\n row,\n table.getColWidth(col),\n table.getRowHeight(row),\n (define as ImageColumnDefine).keepAspectRatio,\n (define as ImageColumnDefine).imageAutoSizing,\n padding,\n textAlign,\n textBaseline,\n table,\n cellTheme\n );\n } else if (type === 'video') {\n // 创建视频单元格\n cellGroup = createVideoCellGroup(\n columnGroup,\n 0,\n y,\n col,\n row,\n table.getColWidth(col),\n table.getRowHeight(row),\n (define as ImageColumnDefine).keepAspectRatio,\n (define as ImageColumnDefine).imageAutoSizing,\n padding,\n textAlign,\n textBaseline,\n table,\n cellTheme\n );\n } else if (type === 'chart') {\n const chartInstance = table.internalProps.layoutMap.getChartInstance(col, row);\n cellGroup = createChartCellGroup(\n null,\n columnGroup,\n 0,\n y,\n col,\n row,\n table.getColWidth(col),\n table.getRowHeight(row),\n padding,\n table.getCellValue(col, row),\n (define as ChartColumnDefine).chartModule,\n table.isPivotChart()\n ? (table.internalProps.layoutMap as PivotHeaderLayoutMap).getChartSpec(col, row)\n : (define as ChartColumnDefine).chartSpec,\n chartInstance,\n (table.internalProps.layoutMap as PivotHeaderLayoutMap)?.getChartDataId(col, row) ?? 'data',\n table,\n cellTheme\n );\n } else if (type === 'progressbar') {\n const style = table._getCellStyle(col, row) as ProgressBarStyle;\n const value = table.getCellValue(col, row);\n const dataValue = table.getCellOriginValue(col, row);\n // 创建基础文字单元格\n cellGroup = createCellGroup(\n table,\n columnGroup,\n 0,\n y,\n col,\n row,\n colWidth,\n cellWidth,\n cellHeight,\n padding,\n textAlign,\n textBaseline,\n false,\n null,\n true,\n cellTheme\n );\n\n // 创建bar group\n const progressBarGroup = createProgressBarCell(\n define as ProgressbarColumnDefine,\n style,\n colWidth,\n value,\n dataValue,\n col,\n row,\n padding,\n table\n );\n // 进度图插入到文字前,绘制在文字下\n if (cellGroup.firstChild) {\n cellGroup.insertBefore(progressBarGroup, cellGroup.firstChild);\n } else {\n cellGroup.appendChild(progressBarGroup);\n }\n } else if (type === 'sparkline') {\n cellGroup = createSparkLineCellGroup(\n null,\n columnGroup,\n 0,\n y,\n col,\n row,\n cellWidth,\n cellHeight,\n padding,\n table,\n cellTheme\n );\n }\n\n return cellGroup;\n}\n\nexport function updateCell(col: number, row: number, table: BaseTableAPI, addNew?: boolean) {\n // const oldCellGroup = table.scenegraph.getCell(col, row, true);\n const oldCellGroup = table.scenegraph.highPerformanceGetCell(col, row, true);\n\n if (!addNew && oldCellGroup.role === 'empty') {\n return undefined;\n }\n\n const type = table.isHeader(col, row)\n ? table._getHeaderLayoutMap(col, row).headerType\n : table.getBodyColumnType(col, row);\n const cellLocation = table.getCellLocation(col, row);\n const define = cellLocation !== 'body' ? table.getHeaderDefine(col, row) : table.getBodyColumnDefine(col, row);\n\n let isMerge;\n let range;\n if (cellLocation !== 'body' || (define as TextColumnDefine)?.mergeCell) {\n // 只有表头或者column配置合并单元格后再进行信息获取\n range = table.getCellRange(col, row);\n isMerge = range.start.col !== range.end.col || range.start.row !== range.end.row;\n }\n\n let newCellGroup;\n if (isMerge && (col !== range.start.col || row !== range.start.row)) {\n // 合并单元格的非起始单元格不需要绘制\n newCellGroup = new Group({\n x: 0,\n y: addNew ? 0 : oldCellGroup.attribute.y,\n width: 0,\n height: 0,\n visible: false,\n pickable: false\n });\n newCellGroup.role = 'shadow-cell';\n newCellGroup.col = col;\n newCellGroup.row = row;\n newCellGroup.mergeCol = range.start.col;\n newCellGroup.mergeRow = range.start.row;\n\n if (!addNew) {\n oldCellGroup.parent.insertAfter(newCellGroup, oldCellGroup);\n oldCellGroup.parent.removeChild(oldCellGroup);\n\n // update merge cell\n updateCell(range.start.col, range.start.row, table, false);\n }\n } else {\n const mayHaveIcon = cellLocation !== 'body' ? true : !!define?.icon || !!define?.tree;\n const headerStyle = table._getCellStyle(col, row);\n const cellTheme = getStyleTheme(headerStyle, table, col, row, getProp).theme;\n const padding = cellTheme._vtable.padding;\n const textAlign = cellTheme._vtable.textAlign;\n const textBaseline = cellTheme._vtable.textBaseline;\n\n let bgColorFunc: Function;\n // 判断是否有mapping 遍历dataset中mappingRules\n if ((table.internalProps as PivotTableProtected)?.dataConfig?.mappingRules && !table.isHeader(col, row)) {\n (table.internalProps as PivotTableProtected)?.dataConfig?.mappingRules?.forEach(\n (mappingRule: MappingRule, i: number) => {\n if (\n mappingRule.bgColor &&\n (table.internalProps.layoutMap as PivotHeaderLayoutMap).getIndicatorKey(col, row) ===\n mappingRule.bgColor.indicatorKey\n ) {\n bgColorFunc = mappingRule.bgColor.mapping;\n }\n }\n );\n }\n\n let customRender;\n let customLayout;\n if (cellLocation !== 'body') {\n customRender = define?.headerCustomRender;\n customLayout = define?.headerCustomLayout;\n } else {\n customRender = define?.customRender || table.customRender;\n customLayout = define?.customLayout;\n }\n\n let cellWidth;\n let cellHeight;\n if (range) {\n cellWidth = table.getColsWidth(range.start.col, range.end.col);\n cellHeight = table.getRowsHeight(range.start.row, range.end.row);\n } else {\n cellWidth = table.getColWidth(col);\n cellHeight = table.getRowHeight(row);\n }\n\n // deal with promise data\n const value = table.getCellValue(col, row);\n if (isPromise(value)) {\n // clear cell content sync\n oldCellGroup.removeAllChild();\n\n // update cell content async\n dealPromiseData(\n value,\n table,\n updateCellContent.bind(\n null,\n type,\n define,\n table,\n col,\n row,\n bgColorFunc,\n cellWidth,\n cellHeight,\n oldCellGroup,\n padding,\n textAlign,\n textBaseline,\n mayHaveIcon,\n isMerge,\n range,\n addNew,\n cellTheme\n )\n );\n } else {\n newCellGroup = updateCellContent(\n type,\n define,\n table,\n col,\n row,\n bgColorFunc,\n cellWidth,\n cellHeight,\n oldCellGroup,\n padding,\n textAlign,\n textBaseline,\n mayHaveIcon,\n isMerge,\n range,\n addNew,\n cellTheme\n );\n }\n }\n\n return newCellGroup;\n}\n\nfunction updateCellContent(\n type: ColumnTypeOption,\n define: ColumnDefine,\n table: BaseTableAPI,\n col: number,\n row: number,\n bgColorFunc: Function,\n cellWidth: number,\n cellHeight: number,\n oldCellGroup: Group,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n mayHaveIcon: boolean,\n isMerge: boolean,\n range: CellRange,\n addNew: boolean,\n cellTheme?: IThemeSpec\n) {\n const newCellGroup = createCell(\n type,\n define,\n table,\n col,\n row,\n table.getColWidth(col),\n cellWidth,\n cellHeight,\n // oldCellGroup.parent,\n addNew ? table.scenegraph.getColGroup(col) : oldCellGroup.parent,\n // oldCellGroup.attribute.y,\n addNew ? 0 : table.scenegraph.getCellGroupY(row), // y\n padding,\n textAlign,\n textBaseline,\n mayHaveIcon,\n isMerge,\n range,\n cellTheme\n );\n if (!addNew) {\n oldCellGroup.parent.insertAfter(newCellGroup, oldCellGroup);\n oldCellGroup.parent.removeChild(oldCellGroup);\n\n // update cache\n if (table.scenegraph?.proxy.cellCache.get(col)) {\n table.scenegraph?.proxy.cellCache.set(col, newCellGroup);\n }\n }\n return newCellGroup;\n}\n"]}
1
+ {"version":3,"sources":["scenegraph/group-creater/cell-helper.ts"],"names":[],"mappings":"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","file":"cell-helper.js","sourcesContent":["import type { Cursor, IThemeSpec } from '@visactor/vrender';\nimport type { ProgressBarStyle } from '../../body-helper/style/ProgressBarStyle';\nimport { regUrl } from '../../tools/global';\nimport type {\n CellRange,\n ChartColumnDefine,\n CheckboxColumnDefine,\n ColumnDefine,\n ColumnTypeOption,\n ICustomRender,\n ImageColumnDefine,\n MappingRule,\n ProgressbarColumnDefine,\n TextColumnDefine\n} from '../../ts-types';\nimport { dealWithCustom } from '../component/custom';\nimport type { Group } from '../graphic/group';\nimport { getProp } from '../utils/get-prop';\nimport { createChartCellGroup } from './cell-type/chart-cell';\nimport { createImageCellGroup } from './cell-type/image-cell';\nimport { createProgressBarCell } from './cell-type/progress-bar-cell';\nimport { createSparkLineCellGroup } from './cell-type/spark-line-cell';\nimport { createCellGroup } from './cell-type/text-cell';\nimport { createVideoCellGroup } from './cell-type/video-cell';\nimport type { ICustomLayoutFuc } from '../../ts-types/customLayout';\nimport type { BaseTableAPI, PivotTableProtected } from '../../ts-types/base-table';\nimport { getStyleTheme } from '../../core/tableHelper';\nimport { isPromise } from '../../tools/helper';\nimport { dealPromiseData } from '../utils/deal-promise-data';\nimport { CartesianAxis } from '../../components/axis/axis';\nimport { createCheckboxCellGroup } from './cell-type/checkbox-cell';\n// import type { PivotLayoutMap } from '../../layout/pivot-layout';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport { resizeCellGroup } from './column-helper';\n\nexport function createCell(\n type: ColumnTypeOption,\n value: string,\n define: ColumnDefine,\n table: BaseTableAPI,\n col: number,\n row: number,\n colWidth: number,\n cellWidth: number,\n cellHeight: number,\n columnGroup: Group,\n y: number,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n mayHaveIcon: boolean,\n cellTheme: IThemeSpec\n): Group {\n let bgColorFunc: Function;\n // 判断是否有mapping 遍历dataset中mappingRules\n if ((table.internalProps as PivotTableProtected)?.dataConfig?.mappingRules && !table.isHeader(col, row)) {\n (table.internalProps as PivotTableProtected)?.dataConfig?.mappingRules?.forEach(\n (mappingRule: MappingRule, i: number) => {\n if (\n mappingRule.bgColor &&\n (table.internalProps.layoutMap as PivotHeaderLayoutMap).getIndicatorKey(col, row) ===\n mappingRule.bgColor.indicatorKey\n ) {\n bgColorFunc = mappingRule.bgColor.mapping;\n }\n }\n );\n }\n let cellGroup: Group;\n if (type === 'text' || type === 'link') {\n if (type === 'link') {\n //如果是超链接 颜色按照linkColor绘制 TODO:放到方法_getCellStyle中\n // const columnDefine = table.getHeaderDefine(col, row);\n const cellValue = value;\n const headerStyle = table._getCellStyle(col, row);\n\n if (\n type === 'link' &&\n (('templateLink' in define && define.templateLink) ||\n !('linkDetect' in define && define.linkDetect) ||\n regUrl.test(cellValue))\n ) {\n if (cellTheme) {\n cellTheme.text.fill = getProp('linkColor', headerStyle, col, row, table);\n (cellTheme as any).group.cursor = 'pointer';\n } else {\n cellTheme = {\n text: {\n fill: getProp('linkColor', headerStyle, col, row, table)\n },\n group: {\n cursor: 'pointer' as Cursor\n }\n };\n }\n }\n }\n // 判断是否有mapping 遍历dataset中mappingRules 但这里还需要根据fieldName来判断\n if (bgColorFunc) {\n const cellValue = table.getCellOriginValue(col, row);\n const bgColor = bgColorFunc(table, cellValue);\n if (bgColor) {\n if (cellTheme) {\n cellTheme.group.fill = bgColor;\n } else {\n cellTheme = {\n group: {\n fill: bgColor\n }\n };\n }\n }\n }\n\n let customElementsGroup;\n let renderDefault = true;\n let customRender;\n let customLayout;\n const cellLocation = table.getCellLocation(col, row);\n if (cellLocation !== 'body') {\n customRender = define?.headerCustomRender;\n customLayout = define?.headerCustomLayout;\n } else {\n customRender = define?.customRender || table.customRender;\n customLayout = define?.customLayout;\n }\n\n if (customLayout || customRender) {\n // const { autoRowHeight } = table.internalProps;\n const customResult = dealWithCustom(\n customLayout,\n customRender,\n col,\n row,\n cellWidth,\n cellHeight,\n false,\n table.heightMode === 'autoHeight',\n table\n );\n customElementsGroup = customResult.elementsGroup;\n renderDefault = customResult.renderDefault;\n }\n cellGroup = createCellGroup(\n table,\n value,\n columnGroup,\n 0,\n y,\n col,\n row,\n colWidth,\n cellWidth,\n cellHeight,\n padding,\n textAlign,\n textBaseline,\n mayHaveIcon,\n customElementsGroup,\n renderDefault,\n cellTheme\n );\n\n const axisConfig = table.internalProps.layoutMap.getAxisConfigInPivotChart(col, row);\n if (axisConfig) {\n const axis = new CartesianAxis(axisConfig, cellGroup.attribute.width, cellGroup.attribute.height, table);\n cellGroup.clear();\n cellGroup.appendChild(axis.component);\n axis.overlap();\n } else if (table.internalProps.layoutMap.isEmpty(col, row)) {\n cellGroup.clear();\n }\n\n // if ((define as any)?.isAxis && cellLocation === 'columnHeader') {\n // cellGroup.setAttribute('clip', false);\n // const axis = new CartesianAxis(\n // {\n // orient: 'top',\n // type: 'band',\n // data: ['A', 'B', 'C'],\n // title: {\n // visible: true,\n // text: 'X Axis'\n // }\n // },\n // cellGroup.attribute.width,\n // cellGroup.attribute.height,\n // table\n // );\n // cellGroup.clear();\n // // axis.component.setAttribute('y', 40);\n // cellGroup.appendChild(axis.component);\n // } else if ((define as any)?.isAxis && cellLocation === 'rowHeader') {\n // cellGroup.setAttribute('clip', false);\n // const axis = new CartesianAxis(\n // {\n // orient: 'left',\n // type: 'linear',\n // range: { min: 0, max: 30 },\n // label: {\n // flush: true\n // },\n // grid: {\n // visible: true\n // },\n // title: {\n // visible: true,\n // text: 'Y Axis'\n // }\n // },\n // cellGroup.attribute.width,\n // cellGroup.attribute.height,\n // table\n // );\n // cellGroup.clear();\n // // axis.component.setAttribute('x', 80);\n // cellGroup.appendChild(axis.component);\n // axis.overlap();\n // }\n } else if (type === 'image') {\n // 创建图片单元格\n cellGroup = createImageCellGroup(\n columnGroup,\n 0,\n y,\n col,\n row,\n table.getColWidth(col),\n table.getRowHeight(row),\n (define as ImageColumnDefine).keepAspectRatio,\n (define as ImageColumnDefine).imageAutoSizing,\n padding,\n textAlign,\n textBaseline,\n table,\n cellTheme\n );\n } else if (type === 'video') {\n // 创建视频单元格\n cellGroup = createVideoCellGroup(\n columnGroup,\n 0,\n y,\n col,\n row,\n table.getColWidth(col),\n table.getRowHeight(row),\n (define as ImageColumnDefine).keepAspectRatio,\n (define as ImageColumnDefine).imageAutoSizing,\n padding,\n textAlign,\n textBaseline,\n table,\n cellTheme\n );\n } else if (type === 'chart') {\n const chartInstance = table.internalProps.layoutMap.getChartInstance(col, row);\n cellGroup = createChartCellGroup(\n null,\n columnGroup,\n 0,\n y,\n col,\n row,\n table.getColWidth(col),\n table.getRowHeight(row),\n padding,\n value,\n (define as ChartColumnDefine).chartModule,\n table.isPivotChart()\n ? (table.internalProps.layoutMap as PivotHeaderLayoutMap).getChartSpec(col, row)\n : (define as ChartColumnDefine).chartSpec,\n chartInstance,\n (table.internalProps.layoutMap as PivotHeaderLayoutMap)?.getChartDataId(col, row) ?? 'data',\n table,\n cellTheme\n );\n } else if (type === 'progressbar') {\n const style = table._getCellStyle(col, row) as ProgressBarStyle;\n const dataValue = table.getCellOriginValue(col, row);\n // 创建基础文字单元格\n cellGroup = createCellGroup(\n table,\n value,\n columnGroup,\n 0,\n y,\n col,\n row,\n colWidth,\n cellWidth,\n cellHeight,\n padding,\n textAlign,\n textBaseline,\n false,\n null,\n true,\n cellTheme\n );\n\n // 创建bar group\n const progressBarGroup = createProgressBarCell(\n define as ProgressbarColumnDefine,\n style,\n colWidth,\n value,\n dataValue,\n col,\n row,\n padding,\n table\n );\n // 进度图插入到文字前,绘制在文字下\n if (cellGroup.firstChild) {\n cellGroup.insertBefore(progressBarGroup, cellGroup.firstChild);\n } else {\n cellGroup.appendChild(progressBarGroup);\n }\n } else if (type === 'sparkline') {\n cellGroup = createSparkLineCellGroup(\n null,\n columnGroup,\n 0,\n y,\n col,\n row,\n cellWidth,\n cellHeight,\n padding,\n table,\n cellTheme\n );\n } else if (type === 'checkbox') {\n cellGroup = createCheckboxCellGroup(\n null,\n columnGroup,\n 0,\n y,\n col,\n row,\n colWidth,\n cellWidth,\n cellHeight,\n padding,\n textAlign,\n textBaseline,\n table,\n cellTheme,\n define as CheckboxColumnDefine\n );\n }\n\n return cellGroup;\n}\n\nexport function updateCell(col: number, row: number, table: BaseTableAPI, addNew?: boolean) {\n // const oldCellGroup = table.scenegraph.getCell(col, row, true);\n const oldCellGroup = table.scenegraph.highPerformanceGetCell(col, row, true);\n\n if (!addNew && oldCellGroup.role === 'empty') {\n return undefined;\n }\n\n const type = table.isHeader(col, row)\n ? table._getHeaderLayoutMap(col, row).headerType\n : table.getBodyColumnType(col, row);\n const cellLocation = table.getCellLocation(col, row);\n const define = cellLocation !== 'body' ? table.getHeaderDefine(col, row) : table.getBodyColumnDefine(col, row);\n let value = table.getCellValue(col, row);\n\n let isMerge;\n let range;\n let customStyle;\n if (table.internalProps.customMergeCell) {\n const customMerge = table.getCustomMerge(col, row);\n if (customMerge) {\n const { range: customMergeRange, text: customMergeText, style: customMergeStyle } = customMerge;\n range = customMergeRange;\n isMerge = range.start.col !== range.end.col || range.start.row !== range.end.row;\n value = customMergeText;\n customStyle = customMergeStyle;\n }\n }\n if (cellLocation !== 'body' || (define as TextColumnDefine)?.mergeCell) {\n // 只有表头或者column配置合并单元格后再进行信息获取\n range = table.getCellRange(col, row);\n isMerge = range.start.col !== range.end.col || range.start.row !== range.end.row;\n }\n\n let newCellGroup;\n const mayHaveIcon = cellLocation !== 'body' ? true : !!define?.icon || !!define?.tree;\n const headerStyle = customStyle || table._getCellStyle(col, row);\n const cellTheme = getStyleTheme(headerStyle, table, col, row, getProp).theme;\n const padding = cellTheme._vtable.padding;\n const textAlign = cellTheme._vtable.textAlign;\n const textBaseline = cellTheme._vtable.textBaseline;\n\n let bgColorFunc: Function;\n // 判断是否有mapping 遍历dataset中mappingRules\n if ((table.internalProps as PivotTableProtected)?.dataConfig?.mappingRules && !table.isHeader(col, row)) {\n (table.internalProps as PivotTableProtected)?.dataConfig?.mappingRules?.forEach(\n (mappingRule: MappingRule, i: number) => {\n if (\n mappingRule.bgColor &&\n (table.internalProps.layoutMap as PivotHeaderLayoutMap).getIndicatorKey(col, row) ===\n mappingRule.bgColor.indicatorKey\n ) {\n bgColorFunc = mappingRule.bgColor.mapping;\n }\n }\n );\n }\n\n let customRender;\n let customLayout;\n if (cellLocation !== 'body') {\n customRender = define?.headerCustomRender;\n customLayout = define?.headerCustomLayout;\n } else {\n customRender = define?.customRender || table.customRender;\n customLayout = define?.customLayout;\n }\n\n let cellWidth;\n let cellHeight;\n if (range) {\n cellWidth = table.getColsWidth(range.start.col, range.end.col);\n cellHeight = table.getRowsHeight(range.start.row, range.end.row);\n } else {\n cellWidth = table.getColWidth(col);\n cellHeight = table.getRowHeight(row);\n }\n\n // deal with promise data\n if (isPromise(value)) {\n // clear cell content sync\n oldCellGroup.removeAllChild();\n\n // update cell content async\n dealPromiseData(\n value,\n table,\n updateCellContent.bind(\n null,\n type,\n define,\n table,\n col,\n row,\n bgColorFunc,\n cellWidth,\n cellHeight,\n oldCellGroup,\n padding,\n textAlign,\n textBaseline,\n mayHaveIcon,\n isMerge,\n range,\n addNew,\n cellTheme\n )\n );\n } else {\n newCellGroup = updateCellContent(\n type,\n value,\n define,\n table,\n col,\n row,\n bgColorFunc,\n cellWidth,\n cellHeight,\n oldCellGroup,\n padding,\n textAlign,\n textBaseline,\n mayHaveIcon,\n isMerge,\n range,\n addNew,\n cellTheme\n );\n }\n\n if (isMerge) {\n const rangeHeight = table.getRowHeight(row);\n const rangeWidth = table.getColWidth(col);\n\n const { width: contentWidth } = newCellGroup.attribute;\n const { height: contentHeight } = newCellGroup.attribute;\n newCellGroup.contentWidth = contentWidth;\n newCellGroup.contentHeight = contentHeight;\n\n resizeCellGroup(newCellGroup, rangeWidth, rangeHeight, range, table);\n }\n\n return newCellGroup;\n}\n\nfunction updateCellContent(\n type: ColumnTypeOption,\n value: string,\n define: ColumnDefine,\n table: BaseTableAPI,\n col: number,\n row: number,\n bgColorFunc: Function,\n cellWidth: number,\n cellHeight: number,\n oldCellGroup: Group,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n mayHaveIcon: boolean,\n isMerge: boolean,\n range: CellRange,\n addNew: boolean,\n cellTheme?: IThemeSpec\n) {\n const newCellGroup = createCell(\n type,\n value,\n define,\n table,\n col,\n row,\n table.getColWidth(col),\n cellWidth,\n cellHeight,\n // oldCellGroup.parent,\n addNew ? table.scenegraph.getColGroup(col) : oldCellGroup.parent,\n // oldCellGroup.attribute.y,\n addNew ? 0 : table.scenegraph.getCellGroupY(row), // y\n padding,\n textAlign,\n textBaseline,\n mayHaveIcon,\n cellTheme\n );\n if (!addNew) {\n oldCellGroup.parent.insertAfter(newCellGroup, oldCellGroup);\n oldCellGroup.parent.removeChild(oldCellGroup);\n\n // update cache\n if (table.scenegraph?.proxy.cellCache.get(col)) {\n table.scenegraph?.proxy.cellCache.set(col, newCellGroup);\n }\n }\n return newCellGroup;\n}\n"]}
@@ -6,7 +6,7 @@ import * as registerChartTypes from "../../../chartModule";
6
6
 
7
7
  import { getFunctionalProp } from "../../utils/get-prop";
8
8
 
9
- import { isValid } from "../../../tools/util";
9
+ import { isValid } from "@visactor/vutils";
10
10
 
11
11
  export function createChartCellGroup(cellGroup, columnGroup, xOrigin, yOrigin, col, row, width, height, padding, dataValue, chartModule, chartSpec, chartInstance, dataId, table, cellTheme) {
12
12
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
@@ -31,6 +31,8 @@ export function createChartCellGroup(cellGroup, columnGroup, xOrigin, yOrigin, c
31
31
  x: padding[3],
32
32
  y: padding[0],
33
33
  canvas: table.canvas,
34
+ mode: table.options.mode,
35
+ modeParams: table.options.modeParams,
34
36
  spec: chartSpec,
35
37
  ClassType: ClassType,
36
38
  width: width - padding[3] - padding[1],
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/group-creater/cell-type/chart-cell.ts"],"names":[],"mappings":"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","file":"chart-cell.js","sourcesContent":["import { Group } from '../../graphic/group';\nimport { Chart } from '../../graphic/chart';\nimport * as registerChartTypes from '../../../chartModule';\nimport { getFunctionalProp } from '../../utils/get-prop';\nimport { isValid } from '../../../tools/util';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport type { IThemeSpec } from '@visactor/vrender';\nexport function createChartCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n dataValue: string,\n chartModule: any,\n chartSpec: any,\n chartInstance: any,\n dataId: string | Record<string, string>,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n // 获取注册的chart图表类型\n const registerCharts = registerChartTypes.get();\n const ClassType = registerCharts[chartModule];\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n // cell\n if (!cellGroup) {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n }\n cellGroup.AABBBounds.width(); // TODO 需要底层VRender修改\n // chart\n const chartGroup = new Chart({\n stroke: false,\n x: padding[3],\n y: padding[0],\n canvas: table.canvas,\n spec: chartSpec,\n ClassType,\n width: width - padding[3] - padding[1],\n height: height - padding[2] - padding[0],\n chartInstance,\n dataId,\n data: table.getCellValue(col, row),\n cellPadding: padding,\n // viewBox: {\n // x1: Math.ceil(cellGroup.globalAABBBounds.x1 + padding[3] + table.scrollLeft),\n // x2: Math.ceil(cellGroup.globalAABBBounds.x1 + width - padding[1] + table.scrollLeft),\n // y1: Math.ceil(cellGroup.globalAABBBounds.y1 + padding[0] + table.scrollTop),\n // y2: Math.ceil(cellGroup.globalAABBBounds.y1 + height - padding[2] + table.scrollTop)\n // },\n axes: table.isPivotChart() ? table.internalProps.layoutMap.getChartAxes(col, row) : []\n // clipRect: {\n // left: cellGroup.globalAABBBounds.x1 + (table as any).tableX + padding[3],\n // top: cellGroup.globalAABBBounds.y1 + (table as any).tableY + padding[0],\n // width: width - padding[1] - padding[3], //cellGroup.globalAABBBounds.width() - padding[1] - padding[3],\n // height: height - padding[0] - padding[2],\n // },\n });\n cellGroup.appendChild(chartGroup);\n // 将生成的实例存到layoutMap中 共享\n table.internalProps.layoutMap.setChartInstance(col, row, chartGroup.chartInstance);\n\n return cellGroup;\n}\n"]}
1
+ {"version":3,"sources":["scenegraph/group-creater/cell-type/chart-cell.ts"],"names":[],"mappings":"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","file":"chart-cell.js","sourcesContent":["import { Group } from '../../graphic/group';\nimport { Chart } from '../../graphic/chart';\nimport * as registerChartTypes from '../../../chartModule';\nimport { getFunctionalProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport type { IThemeSpec } from '@visactor/vrender';\nexport function createChartCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n dataValue: string,\n chartModule: any,\n chartSpec: any,\n chartInstance: any,\n dataId: string | Record<string, string>,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n // 获取注册的chart图表类型\n const registerCharts = registerChartTypes.get();\n const ClassType = registerCharts[chartModule];\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n // cell\n if (!cellGroup) {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n }\n cellGroup.AABBBounds.width(); // TODO 需要底层VRender修改\n // chart\n const chartGroup = new Chart({\n stroke: false,\n x: padding[3],\n y: padding[0],\n canvas: table.canvas,\n mode: table.options.mode,\n modeParams: table.options.modeParams,\n spec: chartSpec,\n ClassType,\n width: width - padding[3] - padding[1],\n height: height - padding[2] - padding[0],\n chartInstance,\n dataId,\n data: table.getCellValue(col, row),\n cellPadding: padding,\n // viewBox: {\n // x1: Math.ceil(cellGroup.globalAABBBounds.x1 + padding[3] + table.scrollLeft),\n // x2: Math.ceil(cellGroup.globalAABBBounds.x1 + width - padding[1] + table.scrollLeft),\n // y1: Math.ceil(cellGroup.globalAABBBounds.y1 + padding[0] + table.scrollTop),\n // y2: Math.ceil(cellGroup.globalAABBBounds.y1 + height - padding[2] + table.scrollTop)\n // },\n axes: table.isPivotChart() ? table.internalProps.layoutMap.getChartAxes(col, row) : []\n // clipRect: {\n // left: cellGroup.globalAABBBounds.x1 + (table as any).tableX + padding[3],\n // top: cellGroup.globalAABBBounds.y1 + (table as any).tableY + padding[0],\n // width: width - padding[1] - padding[3], //cellGroup.globalAABBBounds.width() - padding[1] - padding[3],\n // height: height - padding[0] - padding[2],\n // },\n });\n cellGroup.appendChild(chartGroup);\n // 将生成的实例存到layoutMap中 共享\n table.internalProps.layoutMap.setChartInstance(col, row, chartGroup.chartInstance);\n\n return cellGroup;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import type { IThemeSpec } from '@visactor/vrender';
2
+ import { Group } from '../../graphic/group';
3
+ import type { CheckboxColumnDefine } from '../../../ts-types';
4
+ import type { BaseTableAPI } from '../../../ts-types/base-table';
5
+ export declare function createCheckboxCellGroup(cellGroup: Group | null, columnGroup: Group, xOrigin: number, yOrigin: number, col: number, row: number, colWidth: number | 'auto', width: number, height: number, padding: number[], textAlign: CanvasTextAlign, textBaseline: CanvasTextBaseline, table: BaseTableAPI, cellTheme: IThemeSpec, define: CheckboxColumnDefine): Group;
@@ -0,0 +1,72 @@
1
+ import { Group } from "../../graphic/group";
2
+
3
+ import { isObject } from "@visactor/vutils";
4
+
5
+ import { CheckBox } from "@visactor/vrender-components";
6
+
7
+ import { getHierarchyOffset } from "../../utils/get-hierarchy-offset";
8
+
9
+ import { getOrApply } from "../../../tools/helper";
10
+
11
+ export function createCheckboxCellGroup(cellGroup, columnGroup, xOrigin, yOrigin, col, row, colWidth, width, height, padding, textAlign, textBaseline, table, cellTheme, define) {
12
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
13
+ cellGroup || ((cellGroup = new Group({
14
+ x: xOrigin,
15
+ y: yOrigin,
16
+ width: width,
17
+ height: height,
18
+ lineWidth: null !== (_b = null === (_a = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _a ? void 0 : _a.lineWidth) && void 0 !== _b ? _b : void 0,
19
+ fill: null !== (_d = null === (_c = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _c ? void 0 : _c.fill) && void 0 !== _d ? _d : void 0,
20
+ stroke: null !== (_f = null === (_e = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _e ? void 0 : _e.stroke) && void 0 !== _f ? _f : void 0,
21
+ strokeArrayWidth: null !== (_h = null === (_g = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _g ? void 0 : _g.strokeArrayWidth) && void 0 !== _h ? _h : void 0,
22
+ strokeArrayColor: null !== (_k = null === (_j = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _j ? void 0 : _j.strokeArrayColor) && void 0 !== _k ? _k : void 0,
23
+ cursor: null !== (_m = null === (_l = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _l ? void 0 : _l.cursor) && void 0 !== _m ? _m : void 0,
24
+ lineCap: "square",
25
+ clip: !0
26
+ })).role = "cell", cellGroup.col = col, cellGroup.row = row, null == columnGroup || columnGroup.addChild(cellGroup));
27
+ const checkboxComponent = createCheckbox(col, row, colWidth, width, height, padding, cellTheme, define, table);
28
+ return checkboxComponent && cellGroup.appendChild(checkboxComponent), checkboxComponent.render(),
29
+ width -= padding[1] + padding[3], height -= padding[0] + padding[2], "center" === textAlign ? checkboxComponent.setAttribute("x", padding[3] + (width - checkboxComponent.AABBBounds.width()) / 2) : "right" === textAlign ? checkboxComponent.setAttribute("x", padding[3] + width - checkboxComponent.AABBBounds.width()) : checkboxComponent.setAttribute("x", padding[3]),
30
+ "middle" === textBaseline ? checkboxComponent.setAttribute("y", padding[0] + (height - checkboxComponent.AABBBounds.height()) / 2) : "bottom" === textBaseline ? checkboxComponent.setAttribute("y", padding[0] + height - checkboxComponent.AABBBounds.height()) : checkboxComponent.setAttribute("y", padding[0]),
31
+ cellGroup;
32
+ }
33
+
34
+ function createCheckbox(col, row, colWidth, cellWidth, cellHeight, padding, cellTheme, define, table) {
35
+ var _a, _b, _c;
36
+ const value = table.getCellValue(col, row), dataValue = table.getCellOriginValue(col, row);
37
+ let isChecked, isDisabled, text = value;
38
+ isObject(value) && (isChecked = value.checked, isDisabled = value.disable, text = value.text);
39
+ const hierarchyOffset = getHierarchyOffset(col, row, table), cellStyle = table._getCellStyle(col, row), autoWrapText = null !== (_a = cellStyle.autoWrapText) && void 0 !== _a ? _a : table.internalProps.autoWrapText, {lineClamp: lineClamp} = cellStyle, {checked: checked, disable: disable} = define, globalChecked = getOrApply(checked, {
40
+ col: col,
41
+ row: row,
42
+ table: table,
43
+ context: null,
44
+ value: value,
45
+ dataValue: dataValue
46
+ }), globalDisable = getOrApply(disable, {
47
+ col: col,
48
+ row: row,
49
+ table: table,
50
+ context: null,
51
+ value: value,
52
+ dataValue: dataValue
53
+ }), autoColWidth = "auto" === colWidth, autoRowHeight = "autoHeight" === table.heightMode, attribute = {
54
+ text: 1 !== text.length || autoWrapText ? text : text[0],
55
+ maxLineWidth: autoColWidth ? 1 / 0 : cellWidth - (padding[1] + padding[3] + hierarchyOffset),
56
+ textBaseline: "top",
57
+ autoWrapText: autoWrapText,
58
+ lineClamp: lineClamp,
59
+ wordBreak: "break-word",
60
+ heightLimit: autoRowHeight ? -1 : cellHeight - (padding[0] + padding[2]),
61
+ pickable: !1,
62
+ dx: hierarchyOffset
63
+ }, testAttribute = cellTheme.text ? Object.assign({}, cellTheme.text, attribute) : attribute, checkbox = new CheckBox({
64
+ x: 0,
65
+ y: 0,
66
+ text: testAttribute,
67
+ checked: null !== (_b = null != isChecked ? isChecked : globalChecked) && void 0 !== _b && _b,
68
+ disabled: null !== (_c = null != isDisabled ? isDisabled : globalDisable) && void 0 !== _c && _c
69
+ });
70
+ return checkbox.name = "checkbox", checkbox;
71
+ }
72
+ //# sourceMappingURL=checkbox-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["scenegraph/group-creater/cell-type/checkbox-cell.ts"],"names":[],"mappings":"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","file":"checkbox-cell.js","sourcesContent":["import type { ILine, ISymbol, IThemeSpec } from '@visactor/vrender';\nimport { createLine, createSymbol } from '@visactor/vrender';\nimport { PointScale, LinearScale } from '@visactor/vscale';\nimport { isValid } from '../../../tools/util';\nimport { Group } from '../../graphic/group';\nimport type { CellInfo, CheckboxColumnDefine, CheckboxStyleOption, SparklineSpec } from '../../../ts-types';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { isObject } from '@visactor/vutils';\nimport { CheckBox } from '@visactor/vrender-components';\nimport { getHierarchyOffset } from '../../utils/get-hierarchy-offset';\nimport { getOrApply } from '../../../tools/helper';\n\nexport function createCheckboxCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n colWidth: number | 'auto',\n width: number,\n height: number,\n padding: number[],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n table: BaseTableAPI,\n cellTheme: IThemeSpec,\n define: CheckboxColumnDefine\n) {\n // cell\n if (!cellGroup) {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n }\n\n // chart\n const checkboxComponent = createCheckbox(col, row, colWidth, width, height, padding, cellTheme, define, table);\n if (checkboxComponent) {\n cellGroup.appendChild(checkboxComponent);\n }\n\n checkboxComponent.render();\n\n width -= padding[1] + padding[3];\n height -= padding[0] + padding[2];\n if (textAlign === 'center') {\n checkboxComponent.setAttribute('x', padding[3] + (width - checkboxComponent.AABBBounds.width()) / 2);\n } else if (textAlign === 'right') {\n checkboxComponent.setAttribute('x', padding[3] + width - checkboxComponent.AABBBounds.width());\n } else {\n checkboxComponent.setAttribute('x', padding[3]);\n }\n\n if (textBaseline === 'middle') {\n checkboxComponent.setAttribute('y', padding[0] + (height - checkboxComponent.AABBBounds.height()) / 2);\n } else if (textBaseline === 'bottom') {\n checkboxComponent.setAttribute('y', padding[0] + height - checkboxComponent.AABBBounds.height());\n } else {\n checkboxComponent.setAttribute('y', padding[0]);\n }\n\n return cellGroup;\n}\n\nfunction createCheckbox(\n col: number,\n row: number,\n colWidth: number | 'auto',\n cellWidth: number,\n cellHeight: number,\n padding: number[],\n cellTheme: IThemeSpec,\n define: CheckboxColumnDefine,\n table: BaseTableAPI\n) {\n const value = table.getCellValue(col, row) as string | { text: string; checked: boolean; disable: boolean };\n const dataValue = table.getCellOriginValue(col, row);\n let isChecked;\n let isDisabled;\n let text = value as string;\n if (isObject(value)) {\n isChecked = value.checked;\n isDisabled = value.disable;\n text = value.text;\n }\n\n const hierarchyOffset = getHierarchyOffset(col, row, table);\n const cellStyle = table._getCellStyle(col, row) as CheckboxStyleOption; // to be fixed\n const autoWrapText = cellStyle.autoWrapText ?? table.internalProps.autoWrapText;\n const { lineClamp } = cellStyle;\n const { checked, disable } = define;\n\n const globalChecked = getOrApply(checked as any, {\n col,\n row,\n table,\n context: null,\n value,\n dataValue\n });\n const globalDisable = getOrApply(disable as any, {\n col,\n row,\n table,\n context: null,\n value,\n dataValue\n });\n\n const autoColWidth = colWidth === 'auto';\n const autoRowHeight = table.heightMode === 'autoHeight';\n\n const attribute = {\n text: text.length === 1 && !autoWrapText ? text[0] : text, // 单行(no-autoWrapText)为字符串,多行(autoWrapText)为字符串数组\n maxLineWidth: autoColWidth ? Infinity : cellWidth - (padding[1] + padding[3] + hierarchyOffset),\n // fill: true,\n // textAlign: 'left',\n textBaseline: 'top',\n autoWrapText,\n lineClamp,\n wordBreak: 'break-word',\n // widthLimit: autoColWidth ? -1 : colWidth - (padding[1] + padding[3]),\n heightLimit: autoRowHeight ? -1 : cellHeight - (padding[0] + padding[2]),\n pickable: false,\n dx: hierarchyOffset\n };\n const testAttribute = cellTheme.text ? (Object.assign({}, cellTheme.text, attribute) as any) : attribute;\n\n const checkbox = new CheckBox({\n x: 0,\n y: 0,\n text: testAttribute,\n checked: isChecked ?? globalChecked ?? false,\n disabled: isDisabled ?? globalDisable ?? false\n });\n checkbox.name = 'checkbox';\n\n return checkbox;\n}\n"]}
@@ -10,7 +10,7 @@ import { calcStartPosition } from "../../utils/cell-pos";
10
10
 
11
11
  import { getProp, getFunctionalProp } from "../../utils/get-prop";
12
12
 
13
- import { isValid } from "../../../tools/util";
13
+ import { isValid } from "@visactor/vutils";
14
14
 
15
15
  import { getQuadProps } from "../../utils/padding";
16
16
 
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/group-creater/cell-type/image-cell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AAE/B,MAAM,UAAU,oBAAoB,CAClC,WAAkB,EAClB,OAAe,EACf,OAAe,EACf,GAAW,EACX,GAAW,EACX,KAAa,EACb,MAAc,EACd,eAAwB,EACxB,eAAwB,EACxB,OAAyC,EACzC,SAA0B,EAC1B,YAAgC,EAChC,KAAmB,EACnB,SAAqB;;IAErB,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAErF,IAAI,OAAO,CAAC,iBAAiB,CAAC,EAAE;QAC9B,OAAO,GAAG,iBAAiB,CAAC;KAC7B;IACD,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,SAAS,EAAE;QAC9B,SAAS,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,SAAS,CAAC;KACxC;IACD,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,YAAY,EAAE;QACjC,YAAY,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,YAAY,CAAC;KAC9C;IAGD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC;QAC1B,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,OAAO;QACV,KAAK;QACL,MAAM;QAIN,SAAS,EAAE,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS,mCAAI,SAAS;QACnD,IAAI,EAAE,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,IAAI,mCAAI,SAAS;QACzC,MAAM,EAAE,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,MAAM,mCAAI,SAAS;QAC7C,gBAAgB,EAAE,MAAA,MAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAa,0CAAE,gBAAgB,mCAAI,SAAS;QAC1E,gBAAgB,EAAE,MAAA,MAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAa,0CAAE,gBAAgB,mCAAI,SAAS;QAC1E,MAAM,EAAE,MAAA,MAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAa,0CAAE,MAAM,mCAAI,SAAS;QAEtD,OAAO,EAAE,QAAQ;QAEjB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;IACpB,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;IACpB,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAGjC,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAW,WAAW,CAAC;QAChC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACb,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACb,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACxC,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,SAAmB;KAC5B,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;IACrB,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;IACxC,IAAI,eAAe,IAAI,eAAe,EAAE;QACtC,KAAK,CAAC,eAAe,GAAG,GAAG,EAAE;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YAEpE,IAAI,eAAe,EAAE;gBACnB,kBAAkB,CAChB,GAAG,EACH,GAAG,EACF,WAAgC,CAAC,KAAK,EACtC,WAAgC,CAAC,MAAM,EACxC,KAAK,CAAC,UAAU,EAChB,OAAO,CACR,CAAC;aACH;YAED,IAAI,eAAe,EAAE;gBACnB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,uBAAuB,CACxE,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,MAAM,EAClB,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACnD,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CACrD,CAAC;gBAIF,MAAM,GAAG,GAAG,iBAAiB,CAC3B,CAAC,EACD,CAAC,EACD,SAAS,CAAC,SAAS,CAAC,KAAK,EACzB,SAAS,CAAC,SAAS,CAAC,MAAM,EAC1B,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,OAAO,CACR,CAAC;gBAEF,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,GAAG,CAAC,CAAC;oBACR,CAAC,EAAE,GAAG,CAAC,CAAC;oBACR,KAAK,EAAE,UAAU;oBACjB,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;aACJ;YAED,KAAK,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QACrC,CAAC,CAAC;KACH;SAAM;QACL,KAAK,CAAC,eAAe,GAAG,GAAG,EAAE;YAC3B,iCAAiC,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC;KACH;IACA,KAAa,CAAC,YAAY,GAAG,GAAG,EAAE;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAE9B,KAAa,CAAC,KAAK,GAAI,UAAU,CAAC,UAAkB,CAAC,GAAG,CAAC;IAC5D,CAAC,CAAC;IACF,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE7B,OAAO,SAAS,CAAC;AACnB,CAAC;AAUD,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,GAAW,EAEX,KAAa,EACb,MAAc,EACd,KAAiB,EACjB,OAAyC;IAKzC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,WAAW,GAAW,IAAI,CAAC;IAC/B,IAAI,YAAY,GAAW,IAAI,CAAC;IAChC,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE;QAClE,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9C,cAAc,GAAG,IAAI,CAAC;KACvB;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE;QACpE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChD,cAAc,GAAG,IAAI,CAAC;KACvB;IACD,IAAI,cAAc,EAAE;QAClB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YAEnC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;SACrC;QACD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YAEpC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;SACvC;QAKD,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAElC,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,SAAgB,EAAE,GAAW,EAAE,GAAW,EAAE,KAAmB;;IAC/G,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,CAAU,CAAC;IACzD,MAAM,WAAW,GACf,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACpE,MAAA,KAAK,CAAC,SAAS,0CAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAA,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO;KACR;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,mCAAI,MAAM,CAAC;IAC/E,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,mCAAI,QAAQ,CAAC;IACvF,MAAM,OAAO,GAAG,MAAA,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,mCAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/F,IAAI,KAAK,CAAC,eAAe,EAAE;QACzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,uBAAuB,CACxE,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,UAAU,EAC3C,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,WAAW,EAC7C,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EACrD,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;QAEF,MAAM,GAAG,GAAG,iBAAiB,CAC3B,CAAC,EACD,CAAC,EACD,SAAS,CAAC,SAAS,CAAC,KAAK,EACzB,SAAS,CAAC,SAAS,CAAC,MAAM,EAC1B,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,OAAO,CACR,CAAC;QAEF,KAAK,CAAC,aAAa,CAAC;YAClB,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;KACJ;SAAM;QACL,KAAK,CAAC,aAAa,CAAC;YAClB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACb,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAC1D,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;SAC7D,CAAC,CAAC;KACJ;IAGD,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,QAAQ,EAAE;QACZ,MAAM,IAAI,GAAG,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,CAAC,CAAC;QACd,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;QACxC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7G,MAAM,OAAO,GACX,IAAI,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5G,MAAM,OAAO,GACX,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE9G,QAAQ,CAAC,aAAa,CAAC;YACrB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,CAAC;YACzB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,CAAC;YACzB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;KACJ;AACH,CAAC","file":"image-cell.js","sourcesContent":["// @ts-nocheck\n/* eslint-disable no-undef */\nimport type { IImage, Image, IThemeSpec } from '@visactor/vrender';\nimport { createImage } from '@visactor/vrender';\nimport type { BaseTableAPI } from '../../../ts-types';\nimport * as icons from '../../../icons';\nimport { Group } from '../../graphic/group';\nimport { calcKeepAspectRatioSize } from '../../utils/keep-aspect-ratio';\nimport { calcStartPosition } from '../../utils/cell-pos';\nimport type { Scenegraph } from '../../scenegraph';\nimport { getProp, getFunctionalProp } from '../../utils/get-prop';\nimport { isValid } from '../../../tools/util';\nimport { getQuadProps } from '../../utils/padding';\n\nconst regedIcons = icons.get();\n\nexport function createImageCellGroup(\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n keepAspectRatio: boolean,\n imageAutoSizing: boolean,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n // const margin = getProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n\n // cell\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // childrenPickable: false,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n });\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n\n // image\n const value = table.getCellValue(col, row);\n const image: IImage = createImage({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[0] - padding[2],\n image: value, //?? (regedIcons.damage_pic as any).svg,\n cursor: 'pointer' as Cursor\n });\n image.name = 'image';\n image.keepAspectRatio = keepAspectRatio;\n if (keepAspectRatio || imageAutoSizing) {\n image.successCallback = () => {\n const originImage = image.resources.get(image.attribute.image).data;\n\n if (imageAutoSizing) {\n _adjustWidthHeight(\n col,\n row,\n (originImage as HTMLImageElement).width,\n (originImage as HTMLImageElement).height,\n table.scenegraph,\n padding\n );\n }\n\n if (keepAspectRatio) {\n const { width: imageWidth, height: imageHeight } = calcKeepAspectRatioSize(\n originImage.width,\n originImage.height,\n cellGroup.attribute.width - padding[1] - padding[3],\n cellGroup.attribute.height - padding[0] - padding[2]\n );\n\n // const left = 0;\n // const top = 0;\n const pos = calcStartPosition(\n 0,\n 0,\n cellGroup.attribute.width,\n cellGroup.attribute.height,\n imageWidth,\n imageHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n x: pos.x,\n y: pos.y,\n width: imageWidth,\n height: imageHeight\n });\n }\n\n table.scenegraph.updateNextFrame();\n };\n } else {\n image.successCallback = () => {\n updateImageCellContentWhileResize(cellGroup, col, row, table);\n };\n }\n (image as any).failCallback = () => {\n const regedIcons = icons.get();\n // image.setAttribute('image', (regedIcons.damage_pic as any).svg);\n (image as any).image = (regedIcons.damage_pic as any).svg;\n };\n cellGroup.appendChild(image);\n\n return cellGroup;\n}\n\n/**\n * 调整某个图片资源所在行列的行高列宽 之后重绘\n * @param col\n * @param row\n * @param img\n * @param table\n * @returns 行高或者列宽是否进行了调整\n */\nexport function _adjustWidthHeight(\n col: number,\n row: number,\n // img: HTMLImageElement,\n width: number,\n height: number,\n scene: Scenegraph,\n padding: [number, number, number, number]\n): boolean {\n // const { width, height } = img as any;\n // const currentContext = context.toCurrentContext();\n\n let needInvalidate = false;\n let targetWidth: number = null;\n let targetHeight: number = null;\n if (scene.table.getColWidth(col) < width + padding[1] + padding[3]) {\n targetWidth = width + padding[1] + padding[3];\n needInvalidate = true;\n }\n if (scene.table.getRowHeight(row) < height + padding[2] + padding[0]) {\n targetHeight = height + padding[2] + padding[0];\n needInvalidate = true;\n }\n if (needInvalidate) {\n if (typeof targetWidth === 'number') {\n // table.setColWidth(col, targetWidth, true);\n scene.setColWidth(col, targetWidth);\n }\n if (typeof targetHeight === 'number') {\n // table.setRowHeight(row, targetHeight, true);\n scene.setRowHeight(row, targetHeight);\n }\n // table.updateCanvasScroll();\n // // table.throttleInvalidate(); // 这里会造成每一张图加载后就重绘 造成多次绘制问题!节流绘制\n // table.invalidate(); //节流绘制改回及时绘制 节流绘制在图片加载过程中的效果不太好\n\n scene.component.updateScrollBar();\n // scene.updateNextFrame();\n return true;\n }\n return false;\n}\n\nexport function updateImageCellContentWhileResize(cellGroup: Group, col: number, row: number, table: BaseTableAPI) {\n const image = cellGroup.getChildByName('image') as Image;\n const originImage =\n (typeof image.attribute.image !== 'string' && image.attribute.image) ||\n image.resources?.get(image.attribute.image).data;\n\n if (!originImage) {\n return;\n }\n\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const textAlign = getProp('textAlign', headerStyle, col, row, table) ?? 'left';\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table) ?? 'middle';\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table)) ?? [0, 0, 0, 0];\n\n if (image.keepAspectRatio) {\n const { width: imageWidth, height: imageHeight } = calcKeepAspectRatioSize(\n originImage.width || originImage.videoWidth,\n originImage.height || originImage.videoHeight,\n cellGroup.attribute.width - (padding[1] + padding[3]),\n cellGroup.attribute.height - (padding[0] + padding[2])\n );\n\n const pos = calcStartPosition(\n 0,\n 0,\n cellGroup.attribute.width,\n cellGroup.attribute.height,\n imageWidth,\n imageHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n x: pos.x,\n y: pos.y,\n width: imageWidth,\n height: imageHeight\n });\n } else {\n image.setAttributes({\n x: padding[3],\n y: padding[0],\n width: cellGroup.attribute.width - padding[1] - padding[3],\n height: cellGroup.attribute.height - padding[0] - padding[2]\n });\n }\n\n // update video play icon\n const playIcon = cellGroup.getChildByName('play-icon');\n if (playIcon) {\n const left = 0;\n const top = 0;\n const width = cellGroup.attribute.width;\n const height = cellGroup.attribute.height;\n const iconSize = Math.floor(Math.min(width - padding[1] - padding[3], height - padding[2] - padding[0]) / 2);\n const anchorX =\n left + (width > image.attribute.width ? image.attribute.x - left + image.attribute.width / 2 : width / 2);\n const anchorY =\n top + (height > image.attribute.height ? image.attribute.y - top + image.attribute.height / 2 : height / 2);\n\n playIcon.setAttributes({\n x: anchorX - iconSize / 2,\n y: anchorY - iconSize / 2,\n width: iconSize,\n height: iconSize\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["scenegraph/group-creater/cell-type/image-cell.ts"],"names":[],"mappings":"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","file":"image-cell.js","sourcesContent":["// @ts-nocheck\n/* eslint-disable no-undef */\nimport type { IImage, Image, IThemeSpec } from '@visactor/vrender';\nimport { createImage } from '@visactor/vrender';\nimport type { BaseTableAPI } from '../../../ts-types';\nimport * as icons from '../../../icons';\nimport { Group } from '../../graphic/group';\nimport { calcKeepAspectRatioSize } from '../../utils/keep-aspect-ratio';\nimport { calcStartPosition } from '../../utils/cell-pos';\nimport type { Scenegraph } from '../../scenegraph';\nimport { getProp, getFunctionalProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport { getQuadProps } from '../../utils/padding';\n\nconst regedIcons = icons.get();\n\nexport function createImageCellGroup(\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n keepAspectRatio: boolean,\n imageAutoSizing: boolean,\n padding: [number, number, number, number],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n // const margin = getProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n\n // cell\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // childrenPickable: false,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n });\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n\n // image\n const value = table.getCellValue(col, row);\n const image: IImage = createImage({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[0] - padding[2],\n image: value, //?? (regedIcons.damage_pic as any).svg,\n cursor: 'pointer' as Cursor\n });\n image.name = 'image';\n image.keepAspectRatio = keepAspectRatio;\n if (keepAspectRatio || imageAutoSizing) {\n image.successCallback = () => {\n const originImage = image.resources.get(image.attribute.image).data;\n\n if (imageAutoSizing) {\n _adjustWidthHeight(\n col,\n row,\n (originImage as HTMLImageElement).width,\n (originImage as HTMLImageElement).height,\n table.scenegraph,\n padding\n );\n }\n\n if (keepAspectRatio) {\n const { width: imageWidth, height: imageHeight } = calcKeepAspectRatioSize(\n originImage.width,\n originImage.height,\n cellGroup.attribute.width - padding[1] - padding[3],\n cellGroup.attribute.height - padding[0] - padding[2]\n );\n\n // const left = 0;\n // const top = 0;\n const pos = calcStartPosition(\n 0,\n 0,\n cellGroup.attribute.width,\n cellGroup.attribute.height,\n imageWidth,\n imageHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n x: pos.x,\n y: pos.y,\n width: imageWidth,\n height: imageHeight\n });\n }\n\n table.scenegraph.updateNextFrame();\n };\n } else {\n image.successCallback = () => {\n updateImageCellContentWhileResize(cellGroup, col, row, table);\n };\n }\n (image as any).failCallback = () => {\n const regedIcons = icons.get();\n // image.setAttribute('image', (regedIcons.damage_pic as any).svg);\n (image as any).image = (regedIcons.damage_pic as any).svg;\n };\n cellGroup.appendChild(image);\n\n return cellGroup;\n}\n\n/**\n * 调整某个图片资源所在行列的行高列宽 之后重绘\n * @param col\n * @param row\n * @param img\n * @param table\n * @returns 行高或者列宽是否进行了调整\n */\nexport function _adjustWidthHeight(\n col: number,\n row: number,\n // img: HTMLImageElement,\n width: number,\n height: number,\n scene: Scenegraph,\n padding: [number, number, number, number]\n): boolean {\n // const { width, height } = img as any;\n // const currentContext = context.toCurrentContext();\n\n let needInvalidate = false;\n let targetWidth: number = null;\n let targetHeight: number = null;\n if (scene.table.getColWidth(col) < width + padding[1] + padding[3]) {\n targetWidth = width + padding[1] + padding[3];\n needInvalidate = true;\n }\n if (scene.table.getRowHeight(row) < height + padding[2] + padding[0]) {\n targetHeight = height + padding[2] + padding[0];\n needInvalidate = true;\n }\n if (needInvalidate) {\n if (typeof targetWidth === 'number') {\n // table.setColWidth(col, targetWidth, true);\n scene.setColWidth(col, targetWidth);\n }\n if (typeof targetHeight === 'number') {\n // table.setRowHeight(row, targetHeight, true);\n scene.setRowHeight(row, targetHeight);\n }\n // table.updateCanvasScroll();\n // // table.throttleInvalidate(); // 这里会造成每一张图加载后就重绘 造成多次绘制问题!节流绘制\n // table.invalidate(); //节流绘制改回及时绘制 节流绘制在图片加载过程中的效果不太好\n\n scene.component.updateScrollBar();\n // scene.updateNextFrame();\n return true;\n }\n return false;\n}\n\nexport function updateImageCellContentWhileResize(cellGroup: Group, col: number, row: number, table: BaseTableAPI) {\n const image = cellGroup.getChildByName('image') as Image;\n const originImage =\n (typeof image.attribute.image !== 'string' && image.attribute.image) ||\n image.resources?.get(image.attribute.image).data;\n\n if (!originImage) {\n return;\n }\n\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const textAlign = getProp('textAlign', headerStyle, col, row, table) ?? 'left';\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table) ?? 'middle';\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table)) ?? [0, 0, 0, 0];\n\n if (image.keepAspectRatio) {\n const { width: imageWidth, height: imageHeight } = calcKeepAspectRatioSize(\n originImage.width || originImage.videoWidth,\n originImage.height || originImage.videoHeight,\n cellGroup.attribute.width - (padding[1] + padding[3]),\n cellGroup.attribute.height - (padding[0] + padding[2])\n );\n\n const pos = calcStartPosition(\n 0,\n 0,\n cellGroup.attribute.width,\n cellGroup.attribute.height,\n imageWidth,\n imageHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n x: pos.x,\n y: pos.y,\n width: imageWidth,\n height: imageHeight\n });\n } else {\n image.setAttributes({\n x: padding[3],\n y: padding[0],\n width: cellGroup.attribute.width - padding[1] - padding[3],\n height: cellGroup.attribute.height - padding[0] - padding[2]\n });\n }\n\n // update video play icon\n const playIcon = cellGroup.getChildByName('play-icon');\n if (playIcon) {\n const left = 0;\n const top = 0;\n const width = cellGroup.attribute.width;\n const height = cellGroup.attribute.height;\n const iconSize = Math.floor(Math.min(width - padding[1] - padding[3], height - padding[2] - padding[0]) / 2);\n const anchorX =\n left + (width > image.attribute.width ? image.attribute.x - left + image.attribute.width / 2 : width / 2);\n const anchorY =\n top + (height > image.attribute.height ? image.attribute.y - top + image.attribute.height / 2 : height / 2);\n\n playIcon.setAttributes({\n x: anchorX - iconSize / 2,\n y: anchorY - iconSize / 2,\n width: iconSize,\n height: iconSize\n });\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { createLine, createSymbol } from "@visactor/vrender";
2
2
 
3
3
  import { PointScale, LinearScale } from "@visactor/vscale";
4
4
 
5
- import { isValid } from "../../../tools/util";
5
+ import { isValid } from "@visactor/vutils";
6
6
 
7
7
  import { Group } from "../../graphic/group";
8
8
 
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/group-creater/cell-type/spark-line-cell.ts"],"names":[],"mappings":"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","file":"spark-line-cell.js","sourcesContent":["import type { ILine, ISymbol, IThemeSpec } from '@visactor/vrender';\nimport { createLine, createSymbol } from '@visactor/vrender';\nimport { PointScale, LinearScale } from '@visactor/vscale';\nimport { isValid } from '../../../tools/util';\nimport { Group } from '../../graphic/group';\nimport type { CellInfo, SparklineSpec } from '../../../ts-types';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\n\nconst xScale: PointScale = new PointScale();\nconst yScale: LinearScale = new LinearScale();\n\nexport function createSparkLineCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n // cell\n if (!cellGroup) {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n }\n\n // chart\n const chartGroup = createSparkLine(col, row, width, height, padding, table);\n if (chartGroup) {\n cellGroup.appendChild(chartGroup);\n }\n\n return cellGroup;\n}\n\nfunction createSparkLine(\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n table: BaseTableAPI\n): Group | undefined {\n //获取场景树对象,根据当前单元格位置更改其位置\n //待定 TODO group需要设置shape属性吗\n let sparklineSpec: SparklineSpec;\n let chartGroup: Group;\n const chartSpecRaw = table.internalProps.layoutMap.getBody(col, row).sparklineSpec;\n const dataValue = table.getCellValue(col, row) as unknown as any[];\n\n if (!Array.isArray(dataValue)) {\n return undefined;\n }\n\n const x = padding[3];\n const y = padding[0];\n width -= padding[1] + padding[3];\n height -= padding[0] + padding[2];\n const left = 0;\n // const top = y;\n // const right = x + width;\n const bottom = height;\n if (typeof chartSpecRaw === 'function') {\n // 动态组织spec\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row) || '',\n value: table.getCellValue(col, row) || '',\n rect: table.getCellRangeRelativeRect(table.getCellRange(col, row)),\n table\n };\n sparklineSpec = chartSpecRaw(arg);\n chartGroup = createChartGroup(sparklineSpec, x, y, width, height);\n } else {\n sparklineSpec = chartSpecRaw;\n chartGroup = createChartGroup(chartSpecRaw, x, y, width, height);\n }\n\n // #region scale对x y轴映射\n const items: { x: number; y: number; defined?: boolean }[] = [];\n const dataItems: any[] = [];\n\n let xField;\n let yField;\n if (typeof sparklineSpec.xField === 'object') {\n xScale.domain(sparklineSpec.xField.domain);\n xField = sparklineSpec.xField.field;\n } else if (typeof sparklineSpec.xField === 'string') {\n const indexValues = dataValue.map((value: any) => value[sparklineSpec.xField as string]);\n xScale.domain(indexValues);\n xField = sparklineSpec.xField;\n } else {\n // xField未配置 data为数值数组的情况\n if (Array.isArray(dataValue)) {\n xScale.domain(Array.from({ length: dataValue.length }, (_, i) => i));\n xField = sparklineSpec.xField;\n }\n }\n xScale.range([0, width]);\n\n if (typeof sparklineSpec.yField === 'object') {\n yScale.domain(sparklineSpec.yField.domain);\n yField = sparklineSpec.yField.field;\n } else if (typeof sparklineSpec.yField === 'string') {\n // string类型 自动计算出domain\n const values = dataValue.map((value: any) => value[sparklineSpec.yField as string]);\n yScale.domain([Math.min(...values), Math.max(...values)]);\n yField = sparklineSpec.yField;\n } else {\n // yField未配置 检查data是否为数值数组\n if (Array.isArray(dataValue) && dataValue.every((value: any) => typeof value === 'number')) {\n yScale.domain([Math.min(...dataValue), Math.max(...dataValue)]);\n yField = sparklineSpec.yField;\n }\n }\n yScale.range([0, height]);\n\n if (typeof sparklineSpec.xField === 'object' && Array.isArray(sparklineSpec.xField.domain)) {\n // 如果xField.domain合法,需要按需补充null值点\n const values = dataValue.map((value: any) => value[(sparklineSpec.xField as any).field]);\n const domain = sparklineSpec.xField.domain;\n for (let i = 0; i < domain.length; i++) {\n let valid = false;\n for (let j = 0; j < values.length; j++) {\n // eslint-disable-next-line eqeqeq\n if (domain[i] == values[j]) {\n const data: any = dataValue[j];\n // 无效数据不进行scale,避免null被解析为0\n if (!isValid(data[xField]) || !isValid(data[yField])) {\n break;\n }\n items.push({\n x: left + xScale.scale(data[xField]),\n y: bottom - yScale.scale(data[yField]),\n defined: isValid(data[yField])\n });\n dataItems.push(data); //收集原始数据\n valid = true;\n break;\n }\n }\n\n if (!valid) {\n // 该domain的index没有在数据中,补充无效点\n items.push({\n x: left + xScale.scale(domain[i]),\n y: 0,\n defined: false\n });\n dataItems.push({ [xField]: domain[i], [yField]: null });\n }\n }\n } else {\n for (let i = 0; i < dataValue.length; i++) {\n const data: any = dataValue[i];\n items.push({\n x: left + xScale.scale(xField ? data[xField] : i),\n y: bottom - yScale.scale(yField ? data[yField] : data),\n defined: isValid(yField ? data[yField] : data),\n rawData: data\n } as any);\n dataItems.push(data);\n }\n }\n // #endregion\n\n // 更新线节点属性\n const line = chartGroup.getChildByName('sparkline-line') as ILine;\n if (line) {\n line.setAttribute('points', items);\n }\n (line as any).bandwidth = xScale.step();\n (line as any).min = yScale.range()[0];\n (line as any).max = yScale.range()[1];\n\n // 更新symbol节点属性\n const symbolGroup = chartGroup.getChildByName('sparkline-symbol-group') as ILine;\n if (symbolGroup) {\n const isShowIsolatedPoint = sparklineSpec.pointShowRule === 'isolatedPoint';\n if (sparklineSpec.pointShowRule === 'all') {\n for (let i = 0; i < items.length; i++) {\n const { x, y, defined } = items[i];\n if (defined) {\n const symbol: ISymbol = createSymbol({ x, y });\n symbolGroup.appendChild(symbol);\n }\n }\n } else if (isShowIsolatedPoint) {\n // 处理孤立点显示\n for (let i = 0; i < items.length; i++) {\n const { x, y, defined } = items[i];\n if (defined && (!items[i - 1] || !items[i - 1].defined) && (!items[i + 1] || !items[i + 1].defined)) {\n // 规范孤立数据显示Symbol的spec api\n const symbol: ISymbol = createSymbol({ x, y });\n symbolGroup.appendChild(symbol);\n }\n }\n }\n }\n return chartGroup;\n}\n\nfunction createChartGroup(\n spec: SparklineSpec | ((arg: CellInfo) => SparklineSpec),\n x: number,\n y: number,\n width: number,\n height: number\n): Group {\n let specObj: SparklineSpec;\n if (typeof spec === 'function') {\n // specObj = spec.apply(null, null);\n specObj = spec(null);\n } else {\n specObj = spec;\n }\n // 生成根节点\n const group = new Group({\n x,\n y,\n width,\n height,\n stroke: false,\n fill: false\n });\n group.name = 'sparkline';\n\n if (specObj.type === 'line') {\n // 生成line\n const line = createLine({\n x: 0,\n y: 0,\n curveType: specObj.smooth ? 'monotoneX' : 'linear',\n stroke: specObj.line?.style?.stroke ?? 'blue',\n lineWidth: specObj.line?.style?.strokeWidth ?? 2\n });\n line.name = 'sparkline-line';\n group.addChild(line);\n if (specObj.crosshair) {\n (line as any).hover = specObj.crosshair?.style ?? {\n stroke: '#000',\n interpolate: 'linear'\n };\n }\n\n // 生成symbol\n const symbolGroup = new Group({\n x: 0,\n y: 0,\n width,\n height,\n stroke: false,\n fill: false\n });\n symbolGroup.name = 'sparkline-symbol-group';\n symbolGroup.setTheme({\n symbol: {\n stroke: specObj.point?.style?.stroke ?? '#000',\n lineWidth: specObj.point?.style?.strokeWidth ?? 1,\n fill: specObj.point?.style?.fill ?? '#000',\n size: (specObj.point?.style?.size ?? 3) * 2, // 之前配置的是圆半径\n symbolType: 'circle'\n }\n });\n group.addChild(symbolGroup);\n (symbolGroup as any).hover = specObj.point?.hover ?? false;\n }\n return group;\n}\n"]}
1
+ {"version":3,"sources":["scenegraph/group-creater/cell-type/spark-line-cell.ts"],"names":[],"mappings":"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","file":"spark-line-cell.js","sourcesContent":["import type { ILine, ISymbol, IThemeSpec } from '@visactor/vrender';\nimport { createLine, createSymbol } from '@visactor/vrender';\nimport { PointScale, LinearScale } from '@visactor/vscale';\nimport { isValid } from '@visactor/vutils';\nimport { Group } from '../../graphic/group';\nimport type { CellInfo, SparklineSpec } from '../../../ts-types';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\n\nconst xScale: PointScale = new PointScale();\nconst yScale: LinearScale = new LinearScale();\n\nexport function createSparkLineCellGroup(\n cellGroup: Group | null,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n table: BaseTableAPI,\n cellTheme: IThemeSpec\n) {\n // cell\n if (!cellGroup) {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n }\n\n // chart\n const chartGroup = createSparkLine(col, row, width, height, padding, table);\n if (chartGroup) {\n cellGroup.appendChild(chartGroup);\n }\n\n return cellGroup;\n}\n\nfunction createSparkLine(\n col: number,\n row: number,\n width: number,\n height: number,\n padding: number[],\n table: BaseTableAPI\n): Group | undefined {\n //获取场景树对象,根据当前单元格位置更改其位置\n //待定 TODO group需要设置shape属性吗\n let sparklineSpec: SparklineSpec;\n let chartGroup: Group;\n const chartSpecRaw = table.internalProps.layoutMap.getBody(col, row).sparklineSpec;\n const dataValue = table.getCellValue(col, row) as unknown as any[];\n\n if (!Array.isArray(dataValue)) {\n return undefined;\n }\n\n const x = padding[3];\n const y = padding[0];\n width -= padding[1] + padding[3];\n height -= padding[0] + padding[2];\n const left = 0;\n // const top = y;\n // const right = x + width;\n const bottom = height;\n if (typeof chartSpecRaw === 'function') {\n // 动态组织spec\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row) || '',\n value: table.getCellValue(col, row) || '',\n rect: table.getCellRangeRelativeRect(table.getCellRange(col, row)),\n table\n };\n sparklineSpec = chartSpecRaw(arg);\n chartGroup = createChartGroup(sparklineSpec, x, y, width, height);\n } else {\n sparklineSpec = chartSpecRaw;\n chartGroup = createChartGroup(chartSpecRaw, x, y, width, height);\n }\n\n // #region scale对x y轴映射\n const items: { x: number; y: number; defined?: boolean }[] = [];\n const dataItems: any[] = [];\n\n let xField;\n let yField;\n if (typeof sparklineSpec.xField === 'object') {\n xScale.domain(sparklineSpec.xField.domain);\n xField = sparklineSpec.xField.field;\n } else if (typeof sparklineSpec.xField === 'string') {\n const indexValues = dataValue.map((value: any) => value[sparklineSpec.xField as string]);\n xScale.domain(indexValues);\n xField = sparklineSpec.xField;\n } else {\n // xField未配置 data为数值数组的情况\n if (Array.isArray(dataValue)) {\n xScale.domain(Array.from({ length: dataValue.length }, (_, i) => i));\n xField = sparklineSpec.xField;\n }\n }\n xScale.range([0, width]);\n\n if (typeof sparklineSpec.yField === 'object') {\n yScale.domain(sparklineSpec.yField.domain);\n yField = sparklineSpec.yField.field;\n } else if (typeof sparklineSpec.yField === 'string') {\n // string类型 自动计算出domain\n const values = dataValue.map((value: any) => value[sparklineSpec.yField as string]);\n yScale.domain([Math.min(...values), Math.max(...values)]);\n yField = sparklineSpec.yField;\n } else {\n // yField未配置 检查data是否为数值数组\n if (Array.isArray(dataValue) && dataValue.every((value: any) => typeof value === 'number')) {\n yScale.domain([Math.min(...dataValue), Math.max(...dataValue)]);\n yField = sparklineSpec.yField;\n }\n }\n yScale.range([0, height]);\n\n if (typeof sparklineSpec.xField === 'object' && Array.isArray(sparklineSpec.xField.domain)) {\n // 如果xField.domain合法,需要按需补充null值点\n const values = dataValue.map((value: any) => value[(sparklineSpec.xField as any).field]);\n const domain = sparklineSpec.xField.domain;\n for (let i = 0; i < domain.length; i++) {\n let valid = false;\n for (let j = 0; j < values.length; j++) {\n // eslint-disable-next-line eqeqeq\n if (domain[i] == values[j]) {\n const data: any = dataValue[j];\n // 无效数据不进行scale,避免null被解析为0\n if (!isValid(data[xField]) || !isValid(data[yField])) {\n break;\n }\n items.push({\n x: left + xScale.scale(data[xField]),\n y: bottom - yScale.scale(data[yField]),\n defined: isValid(data[yField])\n });\n dataItems.push(data); //收集原始数据\n valid = true;\n break;\n }\n }\n\n if (!valid) {\n // 该domain的index没有在数据中,补充无效点\n items.push({\n x: left + xScale.scale(domain[i]),\n y: 0,\n defined: false\n });\n dataItems.push({ [xField]: domain[i], [yField]: null });\n }\n }\n } else {\n for (let i = 0; i < dataValue.length; i++) {\n const data: any = dataValue[i];\n items.push({\n x: left + xScale.scale(xField ? data[xField] : i),\n y: bottom - yScale.scale(yField ? data[yField] : data),\n defined: isValid(yField ? data[yField] : data),\n rawData: data\n } as any);\n dataItems.push(data);\n }\n }\n // #endregion\n\n // 更新线节点属性\n const line = chartGroup.getChildByName('sparkline-line') as ILine;\n if (line) {\n line.setAttribute('points', items);\n }\n (line as any).bandwidth = xScale.step();\n (line as any).min = yScale.range()[0];\n (line as any).max = yScale.range()[1];\n\n // 更新symbol节点属性\n const symbolGroup = chartGroup.getChildByName('sparkline-symbol-group') as ILine;\n if (symbolGroup) {\n const isShowIsolatedPoint = sparklineSpec.pointShowRule === 'isolatedPoint';\n if (sparklineSpec.pointShowRule === 'all') {\n for (let i = 0; i < items.length; i++) {\n const { x, y, defined } = items[i];\n if (defined) {\n const symbol: ISymbol = createSymbol({ x, y });\n symbolGroup.appendChild(symbol);\n }\n }\n } else if (isShowIsolatedPoint) {\n // 处理孤立点显示\n for (let i = 0; i < items.length; i++) {\n const { x, y, defined } = items[i];\n if (defined && (!items[i - 1] || !items[i - 1].defined) && (!items[i + 1] || !items[i + 1].defined)) {\n // 规范孤立数据显示Symbol的spec api\n const symbol: ISymbol = createSymbol({ x, y });\n symbolGroup.appendChild(symbol);\n }\n }\n }\n }\n return chartGroup;\n}\n\nfunction createChartGroup(\n spec: SparklineSpec | ((arg: CellInfo) => SparklineSpec),\n x: number,\n y: number,\n width: number,\n height: number\n): Group {\n let specObj: SparklineSpec;\n if (typeof spec === 'function') {\n // specObj = spec.apply(null, null);\n specObj = spec(null);\n } else {\n specObj = spec;\n }\n // 生成根节点\n const group = new Group({\n x,\n y,\n width,\n height,\n stroke: false,\n fill: false\n });\n group.name = 'sparkline';\n\n if (specObj.type === 'line') {\n // 生成line\n const line = createLine({\n x: 0,\n y: 0,\n curveType: specObj.smooth ? 'monotoneX' : 'linear',\n stroke: specObj.line?.style?.stroke ?? 'blue',\n lineWidth: specObj.line?.style?.strokeWidth ?? 2\n });\n line.name = 'sparkline-line';\n group.addChild(line);\n if (specObj.crosshair) {\n (line as any).hover = specObj.crosshair?.style ?? {\n stroke: '#000',\n interpolate: 'linear'\n };\n }\n\n // 生成symbol\n const symbolGroup = new Group({\n x: 0,\n y: 0,\n width,\n height,\n stroke: false,\n fill: false\n });\n symbolGroup.name = 'sparkline-symbol-group';\n symbolGroup.setTheme({\n symbol: {\n stroke: specObj.point?.style?.stroke ?? '#000',\n lineWidth: specObj.point?.style?.strokeWidth ?? 1,\n fill: specObj.point?.style?.fill ?? '#000',\n size: (specObj.point?.style?.size ?? 3) * 2, // 之前配置的是圆半径\n symbolType: 'circle'\n }\n });\n group.addChild(symbolGroup);\n (symbolGroup as any).hover = specObj.point?.hover ?? false;\n }\n return group;\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import type { IThemeSpec } from '@visactor/vrender';
2
2
  import { Group } from '../../graphic/group';
3
3
  import type { BaseTableAPI } from '../../../ts-types/base-table';
4
- export declare function createCellGroup(table: BaseTableAPI, columnGroup: Group, xOrigin: number, yOrigin: number, col: number, row: number, colWidth: number | 'auto', cellWidth: number, cellHeight: number, padding: number[], textAlign: CanvasTextAlign, textBaseline: CanvasTextBaseline, mayHaveIcon: boolean, customElementsGroup: Group, renderDefault: boolean, cellTheme: IThemeSpec): Group;
4
+ export declare function createCellGroup(table: BaseTableAPI, value: string, columnGroup: Group, xOrigin: number, yOrigin: number, col: number, row: number, colWidth: number | 'auto', cellWidth: number, cellHeight: number, padding: number[], textAlign: CanvasTextAlign, textBaseline: CanvasTextBaseline, mayHaveIcon: boolean, customElementsGroup: Group, renderDefault: boolean, cellTheme: IThemeSpec): Group;
@@ -1,6 +1,6 @@
1
1
  import { createArc } from "@visactor/vrender";
2
2
 
3
- import { isValid } from "../../../tools/util";
3
+ import { isValid } from "@visactor/vutils";
4
4
 
5
5
  import { Group } from "../../graphic/group";
6
6
 
@@ -8,7 +8,7 @@ import { getFunctionalProp } from "../../utils/get-prop";
8
8
 
9
9
  import { createCellContent } from "../../utils/text-icon-layout";
10
10
 
11
- export function createCellGroup(table, columnGroup, xOrigin, yOrigin, col, row, colWidth, cellWidth, cellHeight, padding, textAlign, textBaseline, mayHaveIcon, customElementsGroup, renderDefault, cellTheme) {
11
+ export function createCellGroup(table, value, columnGroup, xOrigin, yOrigin, col, row, colWidth, cellWidth, cellHeight, padding, textAlign, textBaseline, mayHaveIcon, customElementsGroup, renderDefault, cellTheme) {
12
12
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
13
13
  const headerStyle = table._getCellStyle(col, row), functionalPadding = getFunctionalProp("padding", headerStyle, col, row, table);
14
14
  isValid(functionalPadding) && (padding = functionalPadding), (null === (_a = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _a ? void 0 : _a.textAlign) && (textAlign = null === (_b = null == cellTheme ? void 0 : cellTheme.text) || void 0 === _b ? void 0 : _b.textAlign),
@@ -29,7 +29,7 @@ export function createCellGroup(table, columnGroup, xOrigin, yOrigin, col, row,
29
29
  });
30
30
  if (cellGroup.role = "cell", cellGroup.col = col, cellGroup.row = row, null == columnGroup || columnGroup.addChild(cellGroup),
31
31
  customElementsGroup && cellGroup.appendChild(customElementsGroup), renderDefault) {
32
- const textStr = table.getCellValue(col, row);
32
+ const textStr = value;
33
33
  let icons;
34
34
  if (mayHaveIcon && (icons = table.getCellIcons(col, row)), createCellContent(cellGroup, icons, textStr, padding, autoColWidth, autoRowHeight, autoWrapText, "number" == typeof lineClamp ? lineClamp : void 0, cellWidth, cellHeight, textAlign, textBaseline, table, cellTheme),
35
35
  null === (_t = null == cellTheme ? void 0 : cellTheme._vtable) || void 0 === _t ? void 0 : _t.marked) {
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/group-creater/cell-type/text-cell.ts"],"names":[],"mappings":"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","file":"text-cell.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { IThemeSpec } from '@visactor/vrender';\nimport { createArc } from '@visactor/vrender';\nimport { isValid } from '../../../tools/util';\nimport { Group } from '../../graphic/group';\n// import { parseFont } from '../../utils/font';\nimport { getFunctionalProp } from '../../utils/get-prop';\nimport { createCellContent } from '../../utils/text-icon-layout';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { getStyleTheme } from '../../../core/tableHelper';\n\n/**\n * @description: 创建单元格场景节点\n * @param {Group} columnGroup 列Group\n * @param {number} xOrigin 起始x坐标\n * @param {number} yOrigin 起始y坐标\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @param {number | 'auto'} colWidth 配置列宽\n * @param {number} padding 单元格padding\n * @param {CanvasTextAlign} textAlign\n * @param {CanvasTextBaseline} textBaseline\n * @param {boolean} noWrap 不进行折行(default column type)\n * @param {IThemeSpec} cellTheme 单元格主题\n * @return {Group}\n */\nexport function createCellGroup(\n table: BaseTableAPI,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n // rowHeight: number,\n colWidth: number | 'auto',\n cellWidth: number,\n cellHeight: number,\n padding: number[],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n mayHaveIcon: boolean,\n customElementsGroup: Group,\n renderDefault: boolean,\n cellTheme: IThemeSpec\n): Group {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n const autoRowHeight = table.heightMode === 'autoHeight';\n const autoColWidth = colWidth === 'auto';\n const autoWrapText = headerStyle.autoWrapText ?? table.internalProps.autoWrapText;\n const lineClamp = headerStyle.lineClamp;\n\n // cell\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width: cellWidth,\n height: cellHeight,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n if (customElementsGroup) {\n cellGroup.appendChild(customElementsGroup);\n }\n if (renderDefault) {\n const textStr: string = table.getCellValue(col, row);\n let icons;\n if (mayHaveIcon) {\n icons = table.getCellIcons(col, row);\n }\n\n createCellContent(\n cellGroup,\n icons,\n textStr,\n padding as any,\n autoColWidth,\n autoRowHeight,\n autoWrapText,\n typeof lineClamp === 'number' ? lineClamp : undefined,\n // autoColWidth ? 0 : colWidth,\n // table.getRowHeight(row),\n cellWidth,\n cellHeight,\n textAlign,\n textBaseline,\n table,\n cellTheme\n );\n\n if ((cellTheme as any)?._vtable?.marked) {\n const mark = createArc({\n x: cellGroup.attribute.width,\n y: 0,\n startAngle: Math.PI / 2,\n endAngle: Math.PI,\n outerRadius: 6,\n fill: '#3073F2',\n pickable: false\n });\n mark.name = 'mark';\n\n cellGroup.appendChild(mark);\n }\n }\n if (customElementsGroup) {\n cellGroup.setAttributes({\n width: Math.max(cellGroup.attribute.width, customElementsGroup.attribute.width ?? 0),\n height: Math.max(cellGroup.attribute.height, customElementsGroup.attribute.height ?? 0)\n });\n }\n return cellGroup;\n}\n\n// /**\n// * @description: 获取函数式赋值的样式,记录在cellTheme中\n// * @param {BaseTableAPI} table\n// * @param {number} col\n// * @param {number} row\n// * @param {IThemeSpec} cellTheme\n// * @return {IThemeSpec | undefined}\n// */\n// export function getCellTheme(\n// table: BaseTableAPI,\n// col: number,\n// row: number,\n// cellTheme?: IThemeSpec\n// ): IThemeSpec | undefined {\n// // get column header style\n// const headerStyle = table._getCellStyle(col, row);\n\n// const theme = getStyleTheme(headerStyle, table, col, row, getFunctionalProp).theme;\n\n// for (const prop in theme.group) {\n// if (isValid(theme.group[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!cellTheme.group) {\n// cellTheme.group = {};\n// }\n\n// cellTheme.group[prop] = theme.group[prop];\n// }\n// }\n\n// for (const prop in theme.text) {\n// if (isValid(theme.text[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!cellTheme.text) {\n// cellTheme.text = {};\n// }\n\n// cellTheme.text[prop] = theme.text[prop];\n// }\n// }\n\n// for (const prop in theme._vtable) {\n// if (isValid(theme._vtable[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!(cellTheme as any)._vtable) {\n// (cellTheme as any)._vtable = {};\n// }\n\n// (cellTheme as any)._vtable[prop] = theme._vtable[prop];\n// }\n// }\n// return cellTheme;\n// }\n"]}
1
+ {"version":3,"sources":["scenegraph/group-creater/cell-type/text-cell.ts"],"names":[],"mappings":"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","file":"text-cell.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { IThemeSpec } from '@visactor/vrender';\nimport { createArc } from '@visactor/vrender';\nimport { isValid } from '@visactor/vutils';\nimport { Group } from '../../graphic/group';\n// import { parseFont } from '../../utils/font';\nimport { getFunctionalProp } from '../../utils/get-prop';\nimport { createCellContent } from '../../utils/text-icon-layout';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { getStyleTheme } from '../../../core/tableHelper';\n\n/**\n * @description: 创建单元格场景节点\n * @param {Group} columnGroup 列Group\n * @param {number} xOrigin 起始x坐标\n * @param {number} yOrigin 起始y坐标\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @param {number | 'auto'} colWidth 配置列宽\n * @param {number} padding 单元格padding\n * @param {CanvasTextAlign} textAlign\n * @param {CanvasTextBaseline} textBaseline\n * @param {boolean} noWrap 不进行折行(default column type)\n * @param {IThemeSpec} cellTheme 单元格主题\n * @return {Group}\n */\nexport function createCellGroup(\n table: BaseTableAPI,\n value: string,\n columnGroup: Group,\n xOrigin: number,\n yOrigin: number,\n col: number,\n row: number,\n // rowHeight: number,\n colWidth: number | 'auto',\n cellWidth: number,\n cellHeight: number,\n padding: number[],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n mayHaveIcon: boolean,\n customElementsGroup: Group,\n renderDefault: boolean,\n cellTheme: IThemeSpec\n): Group {\n const headerStyle = table._getCellStyle(col, row); // to be fixed\n const functionalPadding = getFunctionalProp('padding', headerStyle, col, row, table);\n if (isValid(functionalPadding)) {\n padding = functionalPadding;\n }\n if (cellTheme?.text?.textAlign) {\n textAlign = cellTheme?.text?.textAlign;\n }\n if (cellTheme?.text?.textBaseline) {\n textBaseline = cellTheme?.text?.textBaseline;\n }\n const autoRowHeight = table.heightMode === 'autoHeight';\n const autoColWidth = colWidth === 'auto';\n const autoWrapText = headerStyle.autoWrapText ?? table.internalProps.autoWrapText;\n const lineClamp = headerStyle.lineClamp;\n\n // cell\n const cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width: cellWidth,\n height: cellHeight,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: (cellTheme?.group as any)?.strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n\n lineCap: 'square',\n\n clip: true\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addChild(cellGroup);\n if (customElementsGroup) {\n cellGroup.appendChild(customElementsGroup);\n }\n if (renderDefault) {\n const textStr: string = value;\n let icons;\n if (mayHaveIcon) {\n icons = table.getCellIcons(col, row);\n }\n\n createCellContent(\n cellGroup,\n icons,\n textStr,\n padding as any,\n autoColWidth,\n autoRowHeight,\n autoWrapText,\n typeof lineClamp === 'number' ? lineClamp : undefined,\n // autoColWidth ? 0 : colWidth,\n // table.getRowHeight(row),\n cellWidth,\n cellHeight,\n textAlign,\n textBaseline,\n table,\n cellTheme\n );\n\n if ((cellTheme as any)?._vtable?.marked) {\n const mark = createArc({\n x: cellGroup.attribute.width,\n y: 0,\n startAngle: Math.PI / 2,\n endAngle: Math.PI,\n outerRadius: 6,\n fill: '#3073F2',\n pickable: false\n });\n mark.name = 'mark';\n\n cellGroup.appendChild(mark);\n }\n }\n if (customElementsGroup) {\n cellGroup.setAttributes({\n width: Math.max(cellGroup.attribute.width, customElementsGroup.attribute.width ?? 0),\n height: Math.max(cellGroup.attribute.height, customElementsGroup.attribute.height ?? 0)\n });\n }\n return cellGroup;\n}\n\n// /**\n// * @description: 获取函数式赋值的样式,记录在cellTheme中\n// * @param {BaseTableAPI} table\n// * @param {number} col\n// * @param {number} row\n// * @param {IThemeSpec} cellTheme\n// * @return {IThemeSpec | undefined}\n// */\n// export function getCellTheme(\n// table: BaseTableAPI,\n// col: number,\n// row: number,\n// cellTheme?: IThemeSpec\n// ): IThemeSpec | undefined {\n// // get column header style\n// const headerStyle = table._getCellStyle(col, row);\n\n// const theme = getStyleTheme(headerStyle, table, col, row, getFunctionalProp).theme;\n\n// for (const prop in theme.group) {\n// if (isValid(theme.group[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!cellTheme.group) {\n// cellTheme.group = {};\n// }\n\n// cellTheme.group[prop] = theme.group[prop];\n// }\n// }\n\n// for (const prop in theme.text) {\n// if (isValid(theme.text[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!cellTheme.text) {\n// cellTheme.text = {};\n// }\n\n// cellTheme.text[prop] = theme.text[prop];\n// }\n// }\n\n// for (const prop in theme._vtable) {\n// if (isValid(theme._vtable[prop])) {\n// if (!cellTheme) {\n// cellTheme = {};\n// }\n\n// if (!(cellTheme as any)._vtable) {\n// (cellTheme as any)._vtable = {};\n// }\n\n// (cellTheme as any)._vtable[prop] = theme._vtable[prop];\n// }\n// }\n// return cellTheme;\n// }\n"]}
@@ -14,7 +14,7 @@ import { _adjustWidthHeight } from "./image-cell";
14
14
 
15
15
  import { getFunctionalProp } from "../../utils/get-prop";
16
16
 
17
- import { isValid } from "../../../tools/util";
17
+ import { isValid } from "@visactor/vutils";
18
18
 
19
19
  const regedIcons = icons.get();
20
20