@visactor/vtable 1.4.2-alpha.2 → 1.4.2-alpha.3

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 (327) hide show
  1. package/cjs/ListTable-all.d.ts +3 -0
  2. package/cjs/ListTable-all.js +18 -0
  3. package/cjs/ListTable-all.js.map +1 -0
  4. package/cjs/ListTable-simple.d.ts +3 -0
  5. package/cjs/ListTable-simple.js +14 -0
  6. package/cjs/ListTable-simple.js.map +1 -0
  7. package/cjs/ListTable.js +34 -19
  8. package/cjs/ListTable.js.map +1 -1
  9. package/cjs/PivotChart.js +30 -11
  10. package/cjs/PivotChart.js.map +1 -1
  11. package/cjs/PivotTable-all.d.ts +3 -0
  12. package/cjs/PivotTable-all.js +19 -0
  13. package/cjs/PivotTable-all.js.map +1 -0
  14. package/cjs/PivotTable-simple.d.ts +3 -0
  15. package/cjs/PivotTable-simple.js +14 -0
  16. package/cjs/PivotTable-simple.js.map +1 -0
  17. package/cjs/PivotTable.js +47 -33
  18. package/cjs/PivotTable.js.map +1 -1
  19. package/cjs/body-helper/style.js +1 -2
  20. package/cjs/components/axis/axis.d.ts +3 -0
  21. package/cjs/components/axis/axis.js +3 -3
  22. package/cjs/components/axis/axis.js.map +1 -1
  23. package/cjs/components/axis/get-axis-component-size.d.ts +2 -0
  24. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  25. package/cjs/components/empty-tip/empty-tip.d.ts +3 -0
  26. package/cjs/components/empty-tip/empty-tip.js.map +1 -1
  27. package/cjs/components/index.d.ts +6 -0
  28. package/cjs/components/index.js +44 -0
  29. package/cjs/components/index.js.map +1 -0
  30. package/cjs/components/legend/create-legend.d.ts +1 -0
  31. package/cjs/components/legend/create-legend.js.map +1 -1
  32. package/cjs/components/menu/dom/MenuHandler.d.ts +3 -0
  33. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  34. package/cjs/components/title/title.d.ts +3 -0
  35. package/cjs/components/title/title.js.map +1 -1
  36. package/cjs/components/tooltip/TooltipHandler.d.ts +3 -0
  37. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  38. package/cjs/core/BaseTable.d.ts +2 -2
  39. package/cjs/core/BaseTable.js +46 -31
  40. package/cjs/core/BaseTable.js.map +1 -1
  41. package/cjs/core/factory.d.ts +11 -0
  42. package/cjs/core/factory.js +29 -0
  43. package/cjs/core/factory.js.map +1 -0
  44. package/cjs/core/row-series-number-helper.js +2 -1
  45. package/cjs/edit/edit-manager.js +1 -2
  46. package/cjs/event/media-click.js +2 -1
  47. package/cjs/index.d.ts +8 -4
  48. package/cjs/index.js +26 -7
  49. package/cjs/index.js.map +1 -1
  50. package/cjs/layout/chart-helper/get-axis-config.d.ts +1 -1
  51. package/cjs/layout/chart-helper/get-axis-config.js +4 -4
  52. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  53. package/cjs/layout/chart-helper/get-axis-domain.d.ts +1 -0
  54. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  55. package/cjs/layout/chart-helper/get-chart-spec.js +31 -9
  56. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  57. package/cjs/layout/pivot-header-layout.js +4 -2
  58. package/cjs/layout/pivot-header-layout.js.map +1 -1
  59. package/cjs/layout/row-height-map.js +0 -1
  60. package/cjs/plugins/themes.js +2 -1
  61. package/cjs/scenegraph/group-creater/cell-helper.js +18 -11
  62. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  63. package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -0
  64. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  65. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +1 -0
  66. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  67. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -0
  68. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  69. package/cjs/scenegraph/group-creater/cell-type/index.d.ts +8 -0
  70. package/cjs/scenegraph/group-creater/cell-type/index.js +55 -0
  71. package/cjs/scenegraph/group-creater/cell-type/index.js.map +1 -0
  72. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +1 -0
  73. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  74. package/cjs/scenegraph/group-creater/cell-type/radio-cell.d.ts +1 -0
  75. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  76. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +1 -0
  77. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  78. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -0
  79. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  80. package/cjs/scenegraph/group-creater/cell-type/video-cell.d.ts +1 -0
  81. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  82. package/cjs/scenegraph/layout/compute-col-width.js +3 -3
  83. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  84. package/cjs/scenegraph/layout/compute-row-height.js +3 -3
  85. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  86. package/cjs/scenegraph/layout/update-height.js +3 -4
  87. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  88. package/cjs/scenegraph/layout/update-width.js +4 -5
  89. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  90. package/cjs/scenegraph/refresh-node/update-chart.js +2 -2
  91. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  92. package/cjs/scenegraph/scenegraph.js +1 -1
  93. package/cjs/scenegraph/scenegraph.js.map +1 -1
  94. package/cjs/state/state.js +1 -1
  95. package/cjs/themes/ARCO.js +1 -1
  96. package/cjs/themes/BRIGHT.js +1 -1
  97. package/cjs/themes/DARK.js +1 -1
  98. package/cjs/themes/DEFAULT.js +1 -1
  99. package/cjs/themes/SIMPLIFY.js +1 -1
  100. package/cjs/ts-types/base-table.d.ts +1 -1
  101. package/cjs/ts-types/base-table.js.map +1 -1
  102. package/cjs/ts-types/table-engine.js.map +1 -1
  103. package/cjs/ts-types/theme.js.map +1 -1
  104. package/cjs/vrender.js +7 -7
  105. package/cjs/vrender.js.map +1 -1
  106. package/dist/vtable.js +30725 -31122
  107. package/dist/vtable.min.js +2 -2
  108. package/es/ListTable-all.d.ts +3 -0
  109. package/es/ListTable-all.js +12 -0
  110. package/es/ListTable-all.js.map +1 -0
  111. package/es/ListTable-simple.d.ts +3 -0
  112. package/es/ListTable-simple.js +8 -0
  113. package/es/ListTable-simple.js.map +1 -0
  114. package/es/ListTable.js +30 -16
  115. package/es/ListTable.js.map +1 -1
  116. package/es/PivotChart.js +31 -12
  117. package/es/PivotChart.js.map +1 -1
  118. package/es/PivotTable-all.d.ts +3 -0
  119. package/es/PivotTable-all.js +13 -0
  120. package/es/PivotTable-all.js.map +1 -0
  121. package/es/PivotTable-simple.d.ts +3 -0
  122. package/es/PivotTable-simple.js +8 -0
  123. package/es/PivotTable-simple.js.map +1 -0
  124. package/es/PivotTable.js +46 -34
  125. package/es/PivotTable.js.map +1 -1
  126. package/es/body-helper/style.js +1 -2
  127. package/es/components/axis/axis.d.ts +3 -0
  128. package/es/components/axis/axis.js +4 -3
  129. package/es/components/axis/axis.js.map +1 -1
  130. package/es/components/axis/get-axis-component-size.d.ts +2 -0
  131. package/es/components/axis/get-axis-component-size.js.map +1 -1
  132. package/es/components/empty-tip/empty-tip.d.ts +3 -0
  133. package/es/components/empty-tip/empty-tip.js.map +1 -1
  134. package/es/components/index.d.ts +6 -0
  135. package/es/components/index.js +44 -0
  136. package/es/components/index.js.map +1 -0
  137. package/es/components/legend/create-legend.d.ts +1 -0
  138. package/es/components/legend/create-legend.js.map +1 -1
  139. package/es/components/menu/dom/MenuHandler.d.ts +3 -0
  140. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  141. package/es/components/title/title.d.ts +3 -0
  142. package/es/components/title/title.js.map +1 -1
  143. package/es/components/tooltip/TooltipHandler.d.ts +3 -0
  144. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  145. package/es/core/BaseTable.d.ts +2 -2
  146. package/es/core/BaseTable.js +47 -34
  147. package/es/core/BaseTable.js.map +1 -1
  148. package/es/core/factory.d.ts +11 -0
  149. package/es/core/factory.js +23 -0
  150. package/es/core/factory.js.map +1 -0
  151. package/es/core/row-series-number-helper.js +2 -1
  152. package/es/edit/edit-manager.js +1 -2
  153. package/es/event/media-click.js +2 -1
  154. package/es/index.d.ts +8 -4
  155. package/es/index.js +12 -4
  156. package/es/index.js.map +1 -1
  157. package/es/layout/chart-helper/get-axis-config.d.ts +1 -1
  158. package/es/layout/chart-helper/get-axis-config.js +4 -4
  159. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  160. package/es/layout/chart-helper/get-axis-domain.d.ts +1 -0
  161. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  162. package/es/layout/chart-helper/get-chart-spec.js +34 -10
  163. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  164. package/es/layout/pivot-header-layout.js +4 -2
  165. package/es/layout/pivot-header-layout.js.map +1 -1
  166. package/es/layout/row-height-map.js +1 -2
  167. package/es/plugins/themes.js +2 -1
  168. package/es/scenegraph/group-creater/cell-helper.js +18 -24
  169. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  170. package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -0
  171. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  172. package/es/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +1 -0
  173. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  174. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +1 -0
  175. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  176. package/es/scenegraph/group-creater/cell-type/index.d.ts +8 -0
  177. package/es/scenegraph/group-creater/cell-type/index.js +52 -0
  178. package/es/scenegraph/group-creater/cell-type/index.js.map +1 -0
  179. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +1 -0
  180. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  181. package/es/scenegraph/group-creater/cell-type/radio-cell.d.ts +1 -0
  182. package/es/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  183. package/es/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +1 -0
  184. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  185. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -0
  186. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  187. package/es/scenegraph/group-creater/cell-type/video-cell.d.ts +1 -0
  188. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  189. package/es/scenegraph/layout/compute-col-width.js +3 -5
  190. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  191. package/es/scenegraph/layout/compute-row-height.js +3 -5
  192. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  193. package/es/scenegraph/layout/update-height.js +4 -6
  194. package/es/scenegraph/layout/update-height.js.map +1 -1
  195. package/es/scenegraph/layout/update-width.js +4 -8
  196. package/es/scenegraph/layout/update-width.js.map +1 -1
  197. package/es/scenegraph/refresh-node/update-chart.js +2 -2
  198. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  199. package/es/scenegraph/scenegraph.js +2 -2
  200. package/es/scenegraph/scenegraph.js.map +1 -1
  201. package/es/state/state.js +1 -1
  202. package/es/themes/ARCO.js +1 -1
  203. package/es/themes/BRIGHT.js +1 -1
  204. package/es/themes/DARK.js +1 -1
  205. package/es/themes/DEFAULT.js +1 -1
  206. package/es/themes/SIMPLIFY.js +1 -1
  207. package/es/ts-types/base-table.d.ts +1 -1
  208. package/es/ts-types/base-table.js.map +1 -1
  209. package/es/ts-types/table-engine.js.map +1 -1
  210. package/es/ts-types/theme.js.map +1 -1
  211. package/es/vrender.js +5 -5
  212. package/es/vrender.js.map +1 -1
  213. package/package.json +12 -3
  214. package/cjs/vutil-extension-temp/algorithm/binary-search.d.ts +0 -2
  215. package/cjs/vutil-extension-temp/algorithm/binary-search.js +0 -21
  216. package/cjs/vutil-extension-temp/algorithm/binary-search.js.map +0 -1
  217. package/cjs/vutil-extension-temp/algorithm/index.d.ts +0 -1
  218. package/cjs/vutil-extension-temp/algorithm/index.js +0 -21
  219. package/cjs/vutil-extension-temp/algorithm/index.js.map +0 -1
  220. package/cjs/vutil-extension-temp/index.d.ts +0 -4
  221. package/cjs/vutil-extension-temp/index.js +0 -22
  222. package/cjs/vutil-extension-temp/index.js.map +0 -1
  223. package/cjs/vutil-extension-temp/spec/clone-deep.d.ts +0 -1
  224. package/cjs/vutil-extension-temp/spec/clone-deep.js +0 -27
  225. package/cjs/vutil-extension-temp/spec/clone-deep.js.map +0 -1
  226. package/cjs/vutil-extension-temp/spec/common.d.ts +0 -3
  227. package/cjs/vutil-extension-temp/spec/common.js +0 -23
  228. package/cjs/vutil-extension-temp/spec/common.js.map +0 -1
  229. package/cjs/vutil-extension-temp/spec/index.d.ts +0 -3
  230. package/cjs/vutil-extension-temp/spec/index.js +0 -22
  231. package/cjs/vutil-extension-temp/spec/index.js.map +0 -1
  232. package/cjs/vutil-extension-temp/spec/merge-spec.d.ts +0 -5
  233. package/cjs/vutil-extension-temp/spec/merge-spec.js +0 -69
  234. package/cjs/vutil-extension-temp/spec/merge-spec.js.map +0 -1
  235. package/cjs/vutil-extension-temp/transform/tick-data/config.d.ts +0 -1
  236. package/cjs/vutil-extension-temp/transform/tick-data/config.js +0 -6
  237. package/cjs/vutil-extension-temp/transform/tick-data/config.js.map +0 -1
  238. package/cjs/vutil-extension-temp/transform/tick-data/continuous.d.ts +0 -3
  239. package/cjs/vutil-extension-temp/transform/tick-data/continuous.js +0 -57
  240. package/cjs/vutil-extension-temp/transform/tick-data/continuous.js.map +0 -1
  241. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +0 -6
  242. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js +0 -101
  243. package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +0 -1
  244. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +0 -3
  245. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +0 -53
  246. package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +0 -1
  247. package/cjs/vutil-extension-temp/transform/tick-data/index.d.ts +0 -6
  248. package/cjs/vutil-extension-temp/transform/tick-data/index.js +0 -41
  249. package/cjs/vutil-extension-temp/transform/tick-data/index.js.map +0 -1
  250. package/cjs/vutil-extension-temp/transform/tick-data/interface.d.ts +0 -38
  251. package/cjs/vutil-extension-temp/transform/tick-data/interface.js +0 -6
  252. package/cjs/vutil-extension-temp/transform/tick-data/interface.js.map +0 -1
  253. package/cjs/vutil-extension-temp/transform/tick-data/util.d.ts +0 -17
  254. package/cjs/vutil-extension-temp/transform/tick-data/util.js +0 -91
  255. package/cjs/vutil-extension-temp/transform/tick-data/util.js.map +0 -1
  256. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +0 -8
  257. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +0 -20
  258. package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +0 -1
  259. package/cjs/vutil-extension-temp/utils/index.d.ts +0 -3
  260. package/cjs/vutil-extension-temp/utils/index.js +0 -22
  261. package/cjs/vutil-extension-temp/utils/index.js.map +0 -1
  262. package/cjs/vutil-extension-temp/utils/object.d.ts +0 -3
  263. package/cjs/vutil-extension-temp/utils/object.js +0 -30
  264. package/cjs/vutil-extension-temp/utils/object.js.map +0 -1
  265. package/cjs/vutil-extension-temp/utils/polar.d.ts +0 -5
  266. package/cjs/vutil-extension-temp/utils/polar.js +0 -23
  267. package/cjs/vutil-extension-temp/utils/polar.js.map +0 -1
  268. package/cjs/vutil-extension-temp/utils/text.d.ts +0 -4
  269. package/cjs/vutil-extension-temp/utils/text.js +0 -17
  270. package/cjs/vutil-extension-temp/utils/text.js.map +0 -1
  271. package/es/vutil-extension-temp/algorithm/binary-search.d.ts +0 -2
  272. package/es/vutil-extension-temp/algorithm/binary-search.js +0 -11
  273. package/es/vutil-extension-temp/algorithm/binary-search.js.map +0 -1
  274. package/es/vutil-extension-temp/algorithm/index.d.ts +0 -1
  275. package/es/vutil-extension-temp/algorithm/index.js +0 -2
  276. package/es/vutil-extension-temp/algorithm/index.js.map +0 -1
  277. package/es/vutil-extension-temp/index.d.ts +0 -4
  278. package/es/vutil-extension-temp/index.js +0 -8
  279. package/es/vutil-extension-temp/index.js.map +0 -1
  280. package/es/vutil-extension-temp/spec/clone-deep.d.ts +0 -1
  281. package/es/vutil-extension-temp/spec/clone-deep.js +0 -20
  282. package/es/vutil-extension-temp/spec/clone-deep.js.map +0 -1
  283. package/es/vutil-extension-temp/spec/common.d.ts +0 -3
  284. package/es/vutil-extension-temp/spec/common.js +0 -15
  285. package/es/vutil-extension-temp/spec/common.js.map +0 -1
  286. package/es/vutil-extension-temp/spec/index.d.ts +0 -3
  287. package/es/vutil-extension-temp/spec/index.js +0 -6
  288. package/es/vutil-extension-temp/spec/index.js.map +0 -1
  289. package/es/vutil-extension-temp/spec/merge-spec.d.ts +0 -5
  290. package/es/vutil-extension-temp/spec/merge-spec.js +0 -57
  291. package/es/vutil-extension-temp/spec/merge-spec.js.map +0 -1
  292. package/es/vutil-extension-temp/transform/tick-data/config.d.ts +0 -1
  293. package/es/vutil-extension-temp/transform/tick-data/config.js +0 -2
  294. package/es/vutil-extension-temp/transform/tick-data/config.js.map +0 -1
  295. package/es/vutil-extension-temp/transform/tick-data/continuous.d.ts +0 -3
  296. package/es/vutil-extension-temp/transform/tick-data/continuous.js +0 -56
  297. package/es/vutil-extension-temp/transform/tick-data/continuous.js.map +0 -1
  298. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +0 -6
  299. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js +0 -92
  300. package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +0 -1
  301. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +0 -3
  302. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +0 -45
  303. package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +0 -1
  304. package/es/vutil-extension-temp/transform/tick-data/index.d.ts +0 -6
  305. package/es/vutil-extension-temp/transform/tick-data/index.js +0 -23
  306. package/es/vutil-extension-temp/transform/tick-data/index.js.map +0 -1
  307. package/es/vutil-extension-temp/transform/tick-data/interface.d.ts +0 -38
  308. package/es/vutil-extension-temp/transform/tick-data/interface.js +0 -2
  309. package/es/vutil-extension-temp/transform/tick-data/interface.js.map +0 -1
  310. package/es/vutil-extension-temp/transform/tick-data/util.d.ts +0 -17
  311. package/es/vutil-extension-temp/transform/tick-data/util.js +0 -78
  312. package/es/vutil-extension-temp/transform/tick-data/util.js.map +0 -1
  313. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +0 -8
  314. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +0 -12
  315. package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +0 -1
  316. package/es/vutil-extension-temp/utils/index.d.ts +0 -3
  317. package/es/vutil-extension-temp/utils/index.js +0 -6
  318. package/es/vutil-extension-temp/utils/index.js.map +0 -1
  319. package/es/vutil-extension-temp/utils/object.d.ts +0 -3
  320. package/es/vutil-extension-temp/utils/object.js +0 -15
  321. package/es/vutil-extension-temp/utils/object.js.map +0 -1
  322. package/es/vutil-extension-temp/utils/polar.d.ts +0 -5
  323. package/es/vutil-extension-temp/utils/polar.js +0 -16
  324. package/es/vutil-extension-temp/utils/polar.js.map +0 -1
  325. package/es/vutil-extension-temp/utils/text.d.ts +0 -4
  326. package/es/vutil-extension-temp/utils/text.js +0 -13
  327. package/es/vutil-extension-temp/utils/text.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/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 './../../../vrender';\nimport { createLine, createSymbol } from './../../../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';\nimport type { ColumnData } from '../../../ts-types/list-table/layout-map/api';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\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 isAsync: boolean\n) {\n // cell\n if (!cellGroup) {\n const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n\n if (isAsync) {\n cellGroup = table.scenegraph.highPerformanceGetCell(col, row, true);\n if (cellGroup && cellGroup.role === 'cell') {\n cellGroup.setAttributes({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n }\n }\n if (!cellGroup || cellGroup.role !== 'cell') {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addCellGroup(cellGroup);\n }\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) as ColumnData).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":["../src/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 './../../../vrender';\nimport { createLine, createSymbol } from './../../../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';\nimport type { ColumnData } from '../../../ts-types/list-table/layout-map/api';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\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 isAsync: boolean\n) {\n // cell\n if (!cellGroup) {\n const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n\n if (isAsync) {\n cellGroup = table.scenegraph.highPerformanceGetCell(col, row, true);\n if (cellGroup && cellGroup.role === 'cell') {\n cellGroup.setAttributes({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n }\n }\n if (!cellGroup || cellGroup.role !== 'cell') {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addCellGroup(cellGroup);\n }\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\nexport type CreateSparkLineCellGroup = typeof createSparkLineCellGroup;\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) as ColumnData).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"]}
@@ -3,3 +3,4 @@ import { Group } from '../../graphic/group';
3
3
  import type { BaseTableAPI } from '../../../ts-types/base-table';
4
4
  import type { CellRange } from '../../../ts-types';
5
5
  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: VGroup, renderDefault: boolean, cellTheme: IThemeSpec, range: CellRange | undefined, isAsync: boolean): Group;
6
+ export type CreateTextCellGroup = typeof createCellGroup;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/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, Group as VGroup } from './../../../vrender';\nimport { createArc } from './../../../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';\nimport type { CellRange } from '../../../ts-types';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\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: VGroup,\n renderDefault: boolean,\n cellTheme: IThemeSpec,\n range: CellRange | undefined,\n isAsync: boolean\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 // let autoRowHeight = table.heightMode === 'autoHeight';\n const autoRowHeight = table.isAutoRowHeight(row);\n const autoColWidth = colWidth === 'auto';\n const autoWrapText = headerStyle.autoWrapText ?? table.internalProps.autoWrapText;\n const lineClamp = headerStyle.lineClamp;\n\n // cell\n const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n let cellGroup;\n if (isAsync) {\n cellGroup = table.scenegraph.getCell(col, row, true);\n if (cellGroup && cellGroup.role === 'cell') {\n cellGroup.setAttributes({\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: strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n }\n }\n if (!cellGroup || cellGroup.role !== 'cell') {\n 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: strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'butt',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addCellGroup(cellGroup);\n }\n if (customElementsGroup) {\n cellGroup.appendChild(customElementsGroup);\n }\n if (renderDefault) {\n const textStr: string = value;\n let icons;\n if (mayHaveIcon) {\n let iconCol = col;\n let iconRow = row;\n if (range) {\n iconCol = range.start.col;\n iconRow = range.start.row;\n }\n icons = table.getCellIcons(iconCol, iconRow);\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 cellGroup.attribute.width,\n cellGroup.attribute.height,\n textAlign,\n textBaseline,\n table,\n cellTheme,\n range\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":["../src/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, Group as VGroup } from './../../../vrender';\nimport { createArc } from './../../../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';\nimport type { CellRange } from '../../../ts-types';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\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: VGroup,\n renderDefault: boolean,\n cellTheme: IThemeSpec,\n range: CellRange | undefined,\n isAsync: boolean\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 // let autoRowHeight = table.heightMode === 'autoHeight';\n const autoRowHeight = table.isAutoRowHeight(row);\n const autoColWidth = colWidth === 'auto';\n const autoWrapText = headerStyle.autoWrapText ?? table.internalProps.autoWrapText;\n const lineClamp = headerStyle.lineClamp;\n\n // cell\n const strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n let cellGroup;\n if (isAsync) {\n cellGroup = table.scenegraph.getCell(col, row, true);\n if (cellGroup && cellGroup.role === 'cell') {\n cellGroup.setAttributes({\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: strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n }\n }\n if (!cellGroup || cellGroup.role !== 'cell') {\n 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: strokeArrayWidth ?? undefined,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n\n lineCap: 'butt',\n\n clip: true,\n\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addCellGroup(cellGroup);\n }\n if (customElementsGroup) {\n cellGroup.appendChild(customElementsGroup);\n }\n if (renderDefault) {\n const textStr: string = value;\n let icons;\n if (mayHaveIcon) {\n let iconCol = col;\n let iconRow = row;\n if (range) {\n iconCol = range.start.col;\n iconRow = range.start.row;\n }\n icons = table.getCellIcons(iconCol, iconRow);\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 cellGroup.attribute.width,\n cellGroup.attribute.height,\n textAlign,\n textBaseline,\n table,\n cellTheme,\n range\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\nexport type CreateTextCellGroup = typeof createCellGroup;\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"]}
@@ -2,3 +2,4 @@ import type { IThemeSpec } from './../../../vrender';
2
2
  import { Group } from '../../graphic/group';
3
3
  import type { BaseTableAPI } from '../../../ts-types/base-table';
4
4
  export declare function createVideoCellGroup(columnGroup: Group, xOrigin: number, yOrigin: number, col: number, row: number, width: number, height: number, keepAspectRatio: boolean, imageAutoSizing: boolean, padding: [number, number, number, number], textAlign: CanvasTextAlign, textBaseline: CanvasTextBaseline, table: BaseTableAPI, cellTheme: IThemeSpec, isAsync: boolean): Group;
5
+ export type CreateVideoCellGroup = typeof createVideoCellGroup;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/group-creater/cell-type/video-cell.ts"],"names":[],"mappings":"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","file":"video-cell.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { Cursor, IImage, IThemeSpec } from './../../../vrender';\nimport { createRect, createImage } from './../../../vrender';\nimport * as icons from '../../../icons';\nimport { Group } from '../../graphic/group';\nimport { calcKeepAspectRatioSize } from '../../utils/keep-aspect-ratio';\nimport { Icon } from '../../graphic/icon';\nimport { calcStartPosition } from '../../utils/cell-pos';\nimport { _adjustWidthHeight, getCellRange, updateImageDxDy } from './image-cell';\nimport { getFunctionalProp, getProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\nimport { getQuadProps } from '../../utils/padding';\n\nconst regedIcons = icons.get();\n\nexport function createVideoCellGroup(\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 isAsync: boolean\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 (table.options.customConfig?.imageMargin) {\n padding = getQuadProps(table.options.customConfig?.imageMargin);\n } else 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 strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n\n let cellGroup: Group;\n if (isAsync) {\n cellGroup = table.scenegraph.highPerformanceGetCell(col, row, true);\n if (cellGroup && cellGroup.role === 'cell') {\n cellGroup.setAttributes({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n }\n }\n if (!cellGroup || cellGroup.role !== 'cell') {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addCellGroup(cellGroup);\n }\n\n // video\n const value = table.getCellValue(col, row);\n const video = document.createElement('video');\n video.addEventListener('loadeddata', (): void => {\n if (imageAutoSizing) {\n _adjustWidthHeight(col, row, video.videoWidth, video.videoHeight, table.scenegraph, padding, cellGroup);\n }\n // const width = cellGroup.attribute.width;\n // const height = cellGroup.attribute.height;\n // 更新宽高\n const { width: cellWidth, height: cellHeight, isMerge } = getCellRange(cellGroup, table);\n if (keepAspectRatio) {\n const { width: videoWidth, height: videoHeight } = calcKeepAspectRatioSize(\n video.videoWidth,\n video.videoHeight,\n cellWidth - padding[1] - padding[3],\n cellHeight - padding[0] - padding[2]\n );\n const pos = calcStartPosition(\n 0,\n 0,\n cellWidth,\n cellHeight,\n videoWidth,\n videoHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n width: videoWidth,\n height: videoHeight,\n x: pos.x,\n y: pos.y,\n dx: 0\n });\n } else {\n // const { width: cellWidth, height: cellHeight } = getCellRange(cellGroup, table);\n image.setAttributes({\n x: padding[3],\n y: padding[0],\n width: cellWidth - padding[1] - padding[3],\n height: cellHeight - padding[2] - padding[0],\n dy: 0\n });\n }\n\n if (isMerge) {\n updateImageDxDy(\n cellGroup.mergeStartCol,\n cellGroup.mergeEndCol,\n cellGroup.mergeStartRow,\n cellGroup.mergeEndRow,\n table\n );\n }\n\n const left = 0;\n const top = 0;\n // 播放按钮\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 const { width, height } = getCellRange(cellGroup, table);\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 const playIcon: Icon = new Icon({\n x: anchorX - iconSize / 2,\n y: anchorY - iconSize / 2,\n width: iconSize,\n height: iconSize,\n image: (regedIcons.play as any).svg,\n cursor: (regedIcons.play as any).cursor\n });\n playIcon.name = 'play-icon';\n cellGroup.appendChild(playIcon);\n // 触发重绘\n table.scenegraph.updateNextFrame();\n });\n video.onerror = (): void => {\n // image.setAttribute('image', (regedIcons.damage_pic as any).svg);\n (image as any).image = (regedIcons.damage_pic as any).svg;\n };\n video.src = value;\n video.setAttribute('preload', 'auto');\n\n const image: IImage = createImage({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[2] - padding[0],\n image: video as any,\n cursor: 'pointer' as Cursor\n });\n image.name = 'image';\n image.keepAspectRatio = keepAspectRatio;\n image.textAlign = textAlign;\n image.textBaseline = textBaseline;\n cellGroup.appendChild(image);\n\n return cellGroup;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/group-creater/cell-type/video-cell.ts"],"names":[],"mappings":"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","file":"video-cell.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { Cursor, IImage, IThemeSpec } from './../../../vrender';\nimport { createRect, createImage } from './../../../vrender';\nimport * as icons from '../../../icons';\nimport { Group } from '../../graphic/group';\nimport { calcKeepAspectRatioSize } from '../../utils/keep-aspect-ratio';\nimport { Icon } from '../../graphic/icon';\nimport { calcStartPosition } from '../../utils/cell-pos';\nimport { _adjustWidthHeight, getCellRange, updateImageDxDy } from './image-cell';\nimport { getFunctionalProp, getProp } from '../../utils/get-prop';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { getCellBorderStrokeWidth } from '../../utils/cell-border-stroke-width';\nimport { getQuadProps } from '../../utils/padding';\n\nconst regedIcons = icons.get();\n\nexport function createVideoCellGroup(\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 isAsync: boolean\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 (table.options.customConfig?.imageMargin) {\n padding = getQuadProps(table.options.customConfig?.imageMargin);\n } else 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 strokeArrayWidth = getCellBorderStrokeWidth(col, row, cellTheme, table);\n\n let cellGroup: Group;\n if (isAsync) {\n cellGroup = table.scenegraph.highPerformanceGetCell(col, row, true);\n if (cellGroup && cellGroup.role === 'cell') {\n cellGroup.setAttributes({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n }\n }\n if (!cellGroup || cellGroup.role !== 'cell') {\n cellGroup = new Group({\n x: xOrigin,\n y: yOrigin,\n width,\n height,\n // 背景相关,cell背景由cellGroup绘制\n lineWidth: cellTheme?.group?.lineWidth ?? undefined,\n fill: cellTheme?.group?.fill ?? undefined,\n stroke: cellTheme?.group?.stroke ?? undefined,\n strokeArrayWidth: strokeArrayWidth,\n strokeArrayColor: (cellTheme?.group as any)?.strokeArrayColor ?? undefined,\n cursor: (cellTheme?.group as any)?.cursor ?? undefined,\n lineDash: cellTheme?.group?.lineDash ?? undefined,\n lineCap: 'butt',\n clip: true,\n cornerRadius: cellTheme.group.cornerRadius\n } as any);\n cellGroup.role = 'cell';\n cellGroup.col = col;\n cellGroup.row = row;\n columnGroup?.addCellGroup(cellGroup);\n }\n\n // video\n const value = table.getCellValue(col, row);\n const video = document.createElement('video');\n video.addEventListener('loadeddata', (): void => {\n if (imageAutoSizing) {\n _adjustWidthHeight(col, row, video.videoWidth, video.videoHeight, table.scenegraph, padding, cellGroup);\n }\n // const width = cellGroup.attribute.width;\n // const height = cellGroup.attribute.height;\n // 更新宽高\n const { width: cellWidth, height: cellHeight, isMerge } = getCellRange(cellGroup, table);\n if (keepAspectRatio) {\n const { width: videoWidth, height: videoHeight } = calcKeepAspectRatioSize(\n video.videoWidth,\n video.videoHeight,\n cellWidth - padding[1] - padding[3],\n cellHeight - padding[0] - padding[2]\n );\n const pos = calcStartPosition(\n 0,\n 0,\n cellWidth,\n cellHeight,\n videoWidth,\n videoHeight,\n textAlign,\n textBaseline,\n padding\n );\n\n image.setAttributes({\n width: videoWidth,\n height: videoHeight,\n x: pos.x,\n y: pos.y,\n dx: 0\n });\n } else {\n // const { width: cellWidth, height: cellHeight } = getCellRange(cellGroup, table);\n image.setAttributes({\n x: padding[3],\n y: padding[0],\n width: cellWidth - padding[1] - padding[3],\n height: cellHeight - padding[2] - padding[0],\n dy: 0\n });\n }\n\n if (isMerge) {\n updateImageDxDy(\n cellGroup.mergeStartCol,\n cellGroup.mergeEndCol,\n cellGroup.mergeStartRow,\n cellGroup.mergeEndRow,\n table\n );\n }\n\n const left = 0;\n const top = 0;\n // 播放按钮\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 const { width, height } = getCellRange(cellGroup, table);\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 const playIcon: Icon = new Icon({\n x: anchorX - iconSize / 2,\n y: anchorY - iconSize / 2,\n width: iconSize,\n height: iconSize,\n image: (regedIcons.play as any).svg,\n cursor: (regedIcons.play as any).cursor\n });\n playIcon.name = 'play-icon';\n cellGroup.appendChild(playIcon);\n // 触发重绘\n table.scenegraph.updateNextFrame();\n });\n video.onerror = (): void => {\n // image.setAttribute('image', (regedIcons.damage_pic as any).svg);\n (image as any).image = (regedIcons.damage_pic as any).svg;\n };\n video.src = value;\n video.setAttribute('preload', 'auto');\n\n const image: IImage = createImage({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[2] - padding[0],\n image: video as any,\n cursor: 'pointer' as Cursor\n });\n image.name = 'image';\n image.keepAspectRatio = keepAspectRatio;\n image.textAlign = textAlign;\n image.textBaseline = textBaseline;\n cellGroup.appendChild(image);\n\n return cellGroup;\n}\n\nexport type CreateVideoCellGroup = typeof createVideoCellGroup;\n"]}
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "__esModule", {
29
29
  value: !0
30
30
  }), exports.getAdaptiveWidth = exports.computeColWidth = exports.computeColsWidth = void 0;
31
31
 
32
- const ts_types_1 = require("../../ts-types"), calc = __importStar(require("../../tools/calc")), padding_1 = require("../utils/padding"), get_prop_1 = require("../utils/get-prop"), get_axis_config_1 = require("../../layout/chart-helper/get-axis-config"), get_axis_component_size_1 = require("../../components/axis/get-axis-component-size"), vrender_1 = require("./../../vrender"), vutils_1 = require("@visactor/vutils"), custom_1 = require("../component/custom"), break_string_1 = require("../utils/break-string");
32
+ const ts_types_1 = require("../../ts-types"), calc = __importStar(require("../../tools/calc")), padding_1 = require("../utils/padding"), get_prop_1 = require("../utils/get-prop"), factory_1 = require("../../core/factory"), vrender_1 = require("./../../vrender"), vutils_1 = require("@visactor/vutils"), custom_1 = require("../component/custom"), break_string_1 = require("../utils/break-string");
33
33
 
34
34
  function computeColsWidth(table, colStart, colEnd, update) {
35
35
  var _a, _b, _c, _d, _e;
@@ -106,9 +106,9 @@ function computeAutoColWidth(widthDeifne, col, startRow, endRow, forceCompute, t
106
106
  }
107
107
  for (let row = startRow; row <= endRow; row += deltaRow) {
108
108
  if (table.isPivotChart()) {
109
- const layout = table.internalProps.layoutMap, axisConfig = (0, get_axis_config_1.getAxisConfigInPivotChart)(col, row, layout);
109
+ const layout = table.internalProps.layoutMap, axisConfig = layout.getAxisConfigInPivotChart(col, row);
110
110
  if (axisConfig) {
111
- const axisWidth = (0, get_axis_component_size_1.computeAxisComponentWidth)(axisConfig, table);
111
+ const axisWidth = factory_1.Factory.getFunction("computeAxisComponentWidth")(axisConfig, table);
112
112
  if ("number" == typeof axisWidth) {
113
113
  maxWidth = Math.max(axisWidth, maxWidth);
114
114
  continue;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/layout/compute-col-width.ts"],"names":[],"mappings":"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","file":"compute-col-width.js","sourcesContent":["import type { SimpleHeaderLayoutMap } from '../../layout';\nimport type {\n ColumnDefine,\n ColumnTypeOption,\n IRowSeriesNumber,\n RadioColumnDefine,\n RadioStyleOption,\n TextColumnDefine\n} from '../../ts-types';\nimport { HierarchyState, IconPosition } from '../../ts-types';\nimport * as calc from '../../tools/calc';\nimport { validToString } from '../../tools/util';\nimport { getQuadProps } from '../utils/padding';\nimport { getProp } from '../utils/get-prop';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport { getAxisConfigInPivotChart } from '../../layout/chart-helper/get-axis-config';\nimport { computeAxisComponentWidth } from '../../components/axis/get-axis-component-size';\nimport { Group as VGroup } from './../../vrender';\nimport { isArray, isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\nimport { decodeReactDom, dealPercentCalc } from '../component/custom';\nimport { breakString } from '../utils/break-string';\n\nexport function computeColsWidth(table: BaseTableAPI, colStart?: number, colEnd?: number, update?: boolean): void {\n const time = typeof window !== 'undefined' ? window.performance.now() : 0;\n colStart = colStart ?? 0;\n colEnd = colEnd ?? table.colCount - 1;\n // table._clearColRangeWidthsMap();\n // clear colRangeWidthsMap\n if (colStart === 0 && colEnd === table.colCount - 1) {\n table._clearColRangeWidthsMap();\n // } else {\n // for (let col = colStart; col <= colEnd; col++) {\n // table._clearColRangeWidthsMap(col);\n // }\n }\n\n const oldColWidths: number[] = [];\n const newWidths: number[] = [];\n if (update) {\n for (let col = 0; col < table.colCount; col++) {\n oldColWidths[col] = table.getColWidth(col);\n }\n }\n for (let col = colStart; col <= colEnd; col++) {\n let maxWidth;\n if (\n !table.internalProps.transpose &&\n (table.internalProps.layoutMap.columnObjects?.[col]?.columnWidthComputeMode === 'only-header' ||\n table.columnWidthComputeMode === 'only-header') &&\n 'showHeader' in table.internalProps.layoutMap\n ) {\n const temp = table.internalProps.layoutMap.showHeader;\n table.internalProps.layoutMap.showHeader = true;\n maxWidth = computeColWidth(col, 0, table.internalProps.layoutMap.headerLevelCount - 1, table);\n table.internalProps.layoutMap.showHeader = temp;\n } else if (\n !table.internalProps.transpose &&\n (table.internalProps.layoutMap.columnObjects?.[col]?.columnWidthComputeMode === 'only-body' ||\n table.columnWidthComputeMode === 'only-body')\n ) {\n maxWidth = computeColWidth(\n col,\n table.internalProps.layoutMap.getBodyRange().start.row,\n table.internalProps.layoutMap.getBodyRange().end.row,\n table\n );\n } else {\n maxWidth = computeColWidth(col, 0, table.rowCount - 1, table);\n }\n\n table._setColContentWidth(col, maxWidth);\n\n const oldWidth = table.getColWidth(col);\n if (oldWidth !== maxWidth) {\n table._clearColRangeWidthsMap(col);\n }\n if (update) {\n newWidths[col] = Math.round(table._adjustColWidth(col, maxWidth));\n } else {\n table._setColWidth(col, table._adjustColWidth(col, maxWidth), false, true);\n }\n }\n\n // 处理adaptive宽度\n if (table.widthMode === 'adaptive') {\n // const rowHeaderWidth = table.getColsWidth(0, table.rowHeaderLevelCount - 1);\n // const rightHeaderWidth = table.isPivotChart() ? table.getRightFrozenColsWidth() : 0;\n // const totalDrawWidth = table.tableNoFrameWidth - rowHeaderWidth - rightHeaderWidth;\n\n table._clearColRangeWidthsMap();\n const canvasWidth = table.tableNoFrameWidth;\n let actualHeaderWidth = 0;\n let startCol = 0;\n let endCol = table.colCount;\n if (table.widthAdaptiveMode === 'only-body') {\n for (let col = 0; col < table.colCount; col++) {\n const colWidth = update ? newWidths[col] : table.getColWidth(col);\n if (\n col < table.rowHeaderLevelCount ||\n (table.isPivotChart() && col >= table.colCount - table.rightFrozenColCount)\n ) {\n actualHeaderWidth += colWidth;\n }\n }\n startCol = table.rowHeaderLevelCount;\n endCol = table.isPivotChart() ? table.colCount - table.rightFrozenColCount : table.colCount;\n }\n getAdaptiveWidth(canvasWidth - actualHeaderWidth, startCol, endCol, update, newWidths, table);\n // const canvasWidth = table.internalProps.canvas.width;\n // const rowHeaderWidth = table.getColsWidth(0, table.rowHeaderLevelCount - 1);\n // const rightHeaderWidth = table.isPivotChart() ? table.getRightFrozenColsWidth() : 0;\n // const totalDrawWidth = table.tableNoFrameWidth - rowHeaderWidth - rightHeaderWidth;\n // const startCol = table.rowHeaderLevelCount;\n // const endCol = table.isPivotChart() ? table.colCount - table.rightFrozenColCount : table.colCount;\n // let actualWidth = 0;\n // for (let col = startCol; col < endCol; col++) {\n // actualWidth += update ? newWidths[col] : table.getColWidth(col);\n // }\n // const factor = totalDrawWidth / actualWidth;\n // for (let col = startCol; col < endCol; col++) {\n // let colWidth;\n // if (col === endCol - 1) {\n // colWidth =\n // totalDrawWidth -\n // (update\n // ? newWidths.reduce((acr, cur, index) => {\n // if (index >= startCol && index <= endCol - 2) {\n // return acr + cur;\n // }\n // return acr;\n // }, 0)\n // : table.getColsWidth(startCol, endCol - 2));\n // } else {\n // colWidth = Math.round((update ? newWidths[col] : table.getColWidth(col)) * factor);\n // }\n // if (update) {\n // newWidths[col] = table._adjustColWidth(col, colWidth);\n // } else {\n // table._setColWidth(col, table._adjustColWidth(col, colWidth), false, true);\n // }\n // }\n } else if (table.autoFillWidth) {\n table._clearColRangeWidthsMap();\n const canvasWidth = table.tableNoFrameWidth;\n let actualHeaderWidth = 0;\n let actualWidth = 0;\n for (let col = 0; col < table.colCount; col++) {\n const colWidth = update ? newWidths[col] : table.getColWidth(col);\n if (\n col < table.rowHeaderLevelCount ||\n (table.isPivotChart() && col >= table.colCount - table.rightFrozenColCount)\n ) {\n actualHeaderWidth += colWidth;\n }\n actualWidth += colWidth;\n }\n // 如果内容宽度小于canvas宽度,执行adaptive放大\n if (actualWidth < canvasWidth && actualWidth > actualHeaderWidth) {\n const startCol = table.rowHeaderLevelCount;\n const endCol = table.isPivotChart() ? table.colCount - table.rightFrozenColCount : table.colCount;\n getAdaptiveWidth(canvasWidth - actualHeaderWidth, startCol, endCol, update, newWidths, table);\n }\n\n // // 如果内容宽度小于canvas宽度,执行adaptive放大\n // if (actualWidth < canvasWidth && actualWidth - actualHeaderWidth > 0) {\n // const factor = (canvasWidth - actualHeaderWidth) / (actualWidth - actualHeaderWidth);\n // for (let col = table.frozenColCount; col < table.colCount - table.rightFrozenColCount; col++) {\n // let colWidth;\n // if (col === table.colCount - table.rightFrozenColCount - 1) {\n // colWidth =\n // canvasWidth -\n // actualHeaderWidth -\n // (update\n // ? newWidths.reduce((acr, cur, index) => {\n // if (index >= table.frozenColCount && index <= table.colCount - table.rightFrozenColCount - 2) {\n // return acr + cur;\n // }\n // return acr;\n // }, 0)\n // : table.getColsWidth(table.frozenColCount, table.colCount - table.rightFrozenColCount - 2));\n // } else {\n // colWidth = Math.round((update ? newWidths[col] : table.getColWidth(col)) * factor);\n // }\n // if (update) {\n // // newWidths[col] = newWidths[col] * factor;\n // newWidths[col] = table._adjustColWidth(col, colWidth);\n // } else {\n // // table.setColWidth(col, table.getColWidth(col) * factor, false, true);\n // table._setColWidth(col, table._adjustColWidth(col, colWidth), false, true);\n // }\n // }\n // }\n }\n // console.log('computeColsWidth time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time);\n\n if (update) {\n for (let col = 0; col < table.colCount; col++) {\n // newColWidth could not be in column min max range possibly\n // const newColWidth = table._adjustColWidth(col, newWidths[col]) ?? table.getColWidth(col);\n const newColWidth = newWidths[col] ?? table.getColWidth(col);\n if (newColWidth !== oldColWidths[col]) {\n // update the column width in scenegraph\n table._setColWidth(col, newColWidth, false, true);\n // table.scenegraph.updateColWidth(col, newColWidth - oldColWidths[col], true, true);\n }\n }\n table.stateManager.checkFrozen();\n for (let col = 0; col < table.colCount; col++) {\n // newColWidth could not be in column min max range possibly\n // const newColWidth = table._adjustColWidth(col, newWidths[col]) ?? table.getColWidth(col);\n const newColWidth = table.getColWidth(col);\n if (newColWidth !== oldColWidths[col]) {\n // update the column width in scenegraph\n // table._setColWidth(col, newColWidth);\n table.scenegraph.updateColWidth(col, newColWidth - oldColWidths[col], true, true);\n }\n }\n table.scenegraph.updateContainer(true);\n }\n // console.log('computeColsWidth time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time, colStart, colEnd);\n}\n\n/**\n * @description: 计算列宽\n * @param {number} col\n * @param {number} startRow\n * @param {number} endRow\n * @param {BaseTableAPI} table\n * @param {boolean} forceCompute\n * @return {*}\n */\nexport function computeColWidth(\n col: number,\n startRow: number,\n endRow: number,\n table: BaseTableAPI,\n forceCompute: boolean = false //forceCompute如果设置为true 即便不是自动列宽的列也会按内容计算列宽\n): number {\n let width = getColWidthDefinedWidthResizedWidth(col, table);\n if (\n table.internalProps.transpose &&\n width === 'auto' &&\n ((table.columnWidthComputeMode === 'only-header' && col >= table.rowHeaderLevelCount) ||\n (table.columnWidthComputeMode === 'only-body' && col < table.rowHeaderLevelCount))\n ) {\n width = table.getDefaultColumnWidth(col);\n }\n\n if (forceCompute && !table.internalProps.transpose) {\n return computeAutoColWidth(width, col, startRow, endRow, forceCompute, table);\n } else if (typeof width === 'number') {\n return width;\n } else if (width !== 'auto' && typeof width === 'string') {\n // return calc.toPx(width, table.internalProps.calcWidthContext);\n return table._adjustColWidth(col, table._colWidthDefineToPxWidth(width));\n }\n return computeAutoColWidth(width, col, startRow, endRow, forceCompute, table);\n}\n\n/**\n * @description: 计算width: auto情况下的列宽\n * @param {number} col\n * @param {number} startRow\n * @param {number} endRow\n * @param {boolean} forceCompute\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeAutoColWidth(\n widthDeifne: string | number,\n col: number,\n startRow: number,\n endRow: number,\n forceCompute: boolean,\n table: BaseTableAPI\n): number {\n // 处理 auto width\n let maxWidth = 0;\n let deltaRow = 1;\n let prepareDeltaRow = 1; // 当计算完表头单元格的宽度后再采用采用逻辑,prepareDeltaRow这个值为期body部分做准备\n if (endRow - startRow > 5000) {\n // 超过5000行启动列宽自动计算采样\n prepareDeltaRow = Math.ceil((endRow - startRow) / 5000);\n }\n // 如果是透视图\n if (table.isPivotChart() && col >= table.rowHeaderLevelCount && col < table.colCount - table.rightFrozenColCount) {\n if (!(table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol) {\n //并且指标是以行展示 计算列宽需要根据x轴的值域范围\n const optimunWidth = (table.internalProps.layoutMap as PivotHeaderLayoutMap).getOptimunWidthForChart(col);\n if (optimunWidth > 0) {\n return optimunWidth;\n }\n } else {\n //直接拿表头的默认列宽\n return table.defaultColWidth;\n }\n }\n\n for (let row = startRow; row <= endRow; row += deltaRow) {\n // 判断透视图轴组件\n if (table.isPivotChart()) {\n const layout = table.internalProps.layoutMap as PivotHeaderLayoutMap;\n const axisConfig = getAxisConfigInPivotChart(col, row, layout);\n if (axisConfig) {\n const axisWidth = computeAxisComponentWidth(axisConfig, table);\n if (typeof axisWidth === 'number') {\n maxWidth = Math.max(axisWidth, maxWidth);\n continue;\n }\n } else if (\n layout.isLeftBottomCorner(col, row) ||\n layout.isRightTopCorner(col, row) ||\n layout.isRightBottomCorner(col, row)\n ) {\n // 透视图三角为无效单元格,不参与宽度计算\n continue;\n }\n }\n\n // 判断CustomRender\n const customWidth = computeCustomRenderWidth(col, row, table);\n if (customWidth) {\n maxWidth = Math.max(customWidth.width, maxWidth);\n if (!customWidth.renderDefault) {\n continue;\n }\n }\n\n // 判断透视表如果在指标\n // const indicatorWidth = computeIndicatorWidth(col, row, forceCompute, table);\n // const indicatorWidth = table.internalProps.layoutMap.getColumnWidthDefined(col);\n const indicatorWidth = widthDeifne;\n if (typeof indicatorWidth === 'number' && table.widthMode === 'standard' && !forceCompute) {\n maxWidth = Math.max(indicatorWidth, maxWidth);\n continue;\n }\n\n const cellType = table.isHeader(col, row)\n ? (table._getHeaderLayoutMap(col, row) as HeaderData)?.headerType\n : table.getBodyColumnType(col, row);\n if (\n isValid(cellType) &&\n cellType !== 'text' &&\n cellType !== 'link' &&\n cellType !== 'progressbar' &&\n cellType !== 'checkbox' &&\n cellType !== 'radio'\n ) {\n // text&link&progressbar测量文字宽度\n // image&video&sparkline使用默认宽度\n maxWidth = Math.max(maxWidth, table.getColWidthDefinedNumber(col) || 0);\n continue;\n }\n\n // 处理树形展开\n let cellHierarchyIndent = 0;\n const layoutMap = table.internalProps.layoutMap;\n //判断是否为表头\n if (layoutMap.isHeader(col, row)) {\n const hd = layoutMap.getHeader(col, row);\n // 如果某级表头设置了only-body,在计算表头内容宽度时跳过改级表头\n if ((hd as HeaderData)?.define?.columnWidthComputeMode === 'only-body') {\n continue;\n }\n if (isValid((hd as HeaderData)?.hierarchyLevel)) {\n cellHierarchyIndent =\n ((hd as HeaderData).hierarchyLevel ?? 0) * ((layoutMap as PivotHeaderLayoutMap).rowHierarchyIndent ?? 0);\n if (\n (layoutMap as PivotHeaderLayoutMap).rowHierarchyTextStartAlignment &&\n !table.internalProps.headerHelper.getHierarchyIcon(col, row)\n ) {\n cellHierarchyIndent += table.internalProps.headerHelper.getHierarchyIconWidth();\n }\n }\n } else {\n deltaRow = prepareDeltaRow;\n // 基本表格表身body单元格 如果是树形展开 需要考虑缩进值\n // const cellHierarchyState = table.getHierarchyState(col, row);\n // if (cellHierarchyState === HierarchyState.expand || cellHierarchyState === HierarchyState.collapse) {\n const define = table.getBodyColumnDefine(col, row);\n if ((define as ColumnDefine)?.tree) {\n const indexArr = table.dataSource.getIndexKey(table.getRecordShowIndexByCell(col, row));\n cellHierarchyIndent =\n Array.isArray(indexArr) && table.getHierarchyState(col, row) !== HierarchyState.none\n ? (indexArr.length - 1) * ((layoutMap as SimpleHeaderLayoutMap).hierarchyIndent ?? 0)\n : 0;\n if (\n (layoutMap as SimpleHeaderLayoutMap).hierarchyTextStartAlignment &&\n !table.internalProps.bodyHelper.getHierarchyIcon(col, row)\n ) {\n cellHierarchyIndent += table.internalProps.headerHelper.getHierarchyIconWidth();\n }\n }\n }\n\n // 测量文字宽度\n const textWidth = computeTextWidth(col, row, cellType, table);\n maxWidth = Math.max(textWidth + cellHierarchyIndent, maxWidth);\n //在前面设置了采用规则的情况下,为了确保底部冻结的每一行都测到\n if (\n deltaRow > 1 &&\n table.bottomFrozenRowCount > 0 &&\n row < table.rowCount - table.bottomFrozenRowCount &&\n row + deltaRow >= table.rowCount - table.bottomFrozenRowCount\n ) {\n row = table.rowCount - table.bottomFrozenRowCount - deltaRow;\n deltaRow = 1;\n prepareDeltaRow = 1;\n }\n }\n\n // 处理宽度限制\n const colMinWidth = table.getMinColWidth(col);\n const colMaxWidth = table.getMaxColWidth(col);\n if (maxWidth < colMinWidth) {\n return colMinWidth;\n } else if (maxWidth > colMaxWidth) {\n return colMaxWidth;\n } else if (maxWidth <= 0) {\n // In the case of partially hiding the header, the width calculation may be 0.\n // In this case, the default value is used to prevent it from being unable to be displayed\n maxWidth = table.defaultColWidth;\n }\n return maxWidth;\n}\n\n/**\n * @description: 计算customRender相关列宽\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeCustomRenderWidth(col: number, row: number, table: BaseTableAPI) {\n const customRender = table.getCustomRender(col, row);\n const customLayout = table.getCustomLayout(col, row);\n if (customRender || customLayout) {\n let spanCol = 1;\n let width = 0;\n let renderDefault = false;\n let enableCellPadding = false;\n if (\n table.isHeader(col, row) ||\n (table.getBodyColumnDefine(col, row) as TextColumnDefine)?.mergeCell ||\n table.hasCustomMerge()\n ) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: getCellRect(col, row, table),\n table\n };\n if (isFunction(customLayout)) {\n // 处理customLayout\n const customLayoutObj = customLayout(arg);\n if (customLayoutObj.rootContainer instanceof VGroup) {\n customLayoutObj.rootContainer = decodeReactDom(customLayoutObj.rootContainer);\n dealPercentCalc(customLayoutObj.rootContainer, 0, table.getRowHeight(row));\n const setedWidth = (customLayoutObj.rootContainer as VGroup).attribute.width;\n customLayoutObj.rootContainer.setStage(table.scenegraph.stage);\n width = setedWidth > 0 ? setedWidth : (customLayoutObj.rootContainer as VGroup).AABBBounds.width() ?? 0;\n renderDefault = customLayoutObj.renderDefault;\n enableCellPadding = customLayoutObj.enableCellPadding;\n } else {\n width = 0;\n renderDefault = customLayoutObj.renderDefault;\n enableCellPadding = customLayoutObj.enableCellPadding;\n }\n } else if (typeof customRender === 'function') {\n // 处理customRender\n const customRenderObj = customRender(arg);\n width = customRenderObj?.expectedWidth ?? 0;\n renderDefault = customRenderObj?.renderDefault;\n } else {\n width = customRender?.expectedWidth ?? 0;\n renderDefault = customRender?.renderDefault;\n }\n width = Math.ceil(width);\n if (enableCellPadding) {\n const actStyle = table._getCellStyle(col, row);\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n width += padding[1] + padding[3];\n }\n return {\n width: width / spanCol,\n renderDefault\n };\n }\n return undefined;\n}\n\n/**\n * @description: 计算指标相关列宽\n * @param {number} col\n * @param {number} row\n * @param {boolean} forceCompute\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeIndicatorWidth(\n col: number,\n row: number,\n forceCompute: boolean,\n table: BaseTableAPI\n): number | undefined {\n const { layoutMap } = table.internalProps;\n if (table.isPivotTable() && (layoutMap as PivotHeaderLayoutMap).isColumnIndicatorHeader(col, row)) {\n // 透视表如果在指标中配置了宽度,使用该宽度作为指标单元格及下面内容单元格的列宽\n const body = layoutMap.getBody(col, row);\n if (body && body.width && body.width !== 'auto' && !forceCompute) {\n const width = Math.round(calc.toPx(body.width, table.internalProps.calcWidthContext));\n return width;\n }\n }\n return undefined;\n}\n\n/**\n * @description: 计算文字宽度\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeTextWidth(col: number, row: number, cellType: ColumnTypeOption, table: BaseTableAPI): number {\n let maxWidth = 0;\n const cellValue = table.getCellValue(col, row);\n // const dataValue = table.getCellOriginValue(col, row);\n const actStyle = table._getCellStyle(col, row);\n let iconWidth = 0;\n\n // const define = table.getBodyColumnDefine(col, row);\n // const mayHaveIcon = table.getCellLocation(col, row) !== 'body' ? true : !!define?.icon || !!define?.tree;\n\n let mayHaveIcon = false;\n if (table.getCellLocation(col, row) !== 'body') {\n mayHaveIcon = true;\n } else {\n const define = table.getBodyColumnDefine(col, row);\n mayHaveIcon = !!define?.icon || !!(define as ColumnDefine)?.tree || (define as IRowSeriesNumber)?.dragOrder;\n }\n if (mayHaveIcon) {\n const icons = table.getCellIcons(col, row);\n icons?.forEach(icon => {\n if (icon.positionType !== IconPosition.absoluteRight) {\n iconWidth += (icon.width ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0);\n }\n });\n }\n\n let spanCol = 1;\n if (\n table.isHeader(col, row) ||\n (table.getBodyColumnDefine(col, row) as TextColumnDefine)?.mergeCell ||\n table.hasCustomMerge()\n ) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n const paddingWidth = padding[1] + padding[3]; // + cellHierarchyIndent\n\n const fontSize = getProp('fontSize', actStyle, col, row, table);\n const fontFamily = getProp('fontFamily', actStyle, col, row, table);\n const fontWeight = getProp('fontWeight', actStyle, col, row, table);\n let text: string;\n if (cellType === 'checkbox') {\n text = isObject(cellValue) ? (cellValue as any).text : cellValue;\n } else if (cellType === 'radio') {\n if (isArray(cellValue)) {\n text = '';\n const define = table.getBodyColumnDefine(col, row);\n const radioDirectionInCell = (define as RadioColumnDefine)?.radioDirectionInCell ?? 'vertical';\n if (radioDirectionInCell === 'vertical') {\n cellValue.forEach(line => {\n text += (isObject(line) ? (line as any).text : line).toString() + '\\n';\n });\n } else if (radioDirectionInCell === 'horizontal') {\n cellValue.forEach(line => {\n text += (isObject(line) ? (line as any).text : line).toString();\n });\n }\n } else {\n text = isObject(cellValue) ? (cellValue as any).text : cellValue;\n }\n } else {\n text = cellValue;\n }\n const lines = breakString(text, table).text;\n if (lines.length >= 1) {\n // eslint-disable-next-line no-loop-func\n lines.forEach((line: string) => {\n const width = table.measureText(line, {\n fontSize,\n fontFamily,\n fontWeight\n }).width;\n maxWidth = Math.max(\n // 最大字符上限控制测量的字符\n (width + paddingWidth + 4 + iconWidth) / spanCol, // 这里+4为列宽测量结果的buffer\n maxWidth\n );\n });\n } else {\n maxWidth = Math.max(\n // 最大字符上限控制测量的字符\n (paddingWidth + 4 + iconWidth) / spanCol,\n maxWidth\n );\n }\n // 判断是否需要限制最大宽度 之前写死的450 需要使用配置来判断\n if (table.internalProps.limitMaxAutoWidth !== false) {\n maxWidth = Math.min(\n typeof table.internalProps.limitMaxAutoWidth === 'number' ? table.internalProps.limitMaxAutoWidth : 450,\n maxWidth\n );\n }\n\n if (cellType === 'checkbox') {\n const size = getProp('size', actStyle, col, row, table);\n maxWidth += size;\n\n if (text) {\n const spaceBetweenTextAndIcon = getProp('spaceBetweenTextAndIcon', actStyle, col, row, table);\n maxWidth += spaceBetweenTextAndIcon;\n }\n } else if (cellType === 'radio') {\n const size = getProp('size', actStyle, col, row, table);\n const outerRadius = getProp('outerRadius', actStyle, col, row, table);\n const circleSize = isNumber(outerRadius) ? outerRadius * 2 : size;\n const spaceBetweenTextAndIcon = getProp('spaceBetweenTextAndIcon', actStyle, col, row, table);\n\n if (isArray(cellValue)) {\n const define = table.getBodyColumnDefine(col, row);\n const spaceBetweenRadio = getProp('spaceBetweenRadio', actStyle, col, row, table);\n const radioDirectionInCell = (define as RadioColumnDefine)?.radioDirectionInCell ?? 'vertical';\n if (radioDirectionInCell === 'vertical') {\n // one icon\n maxWidth += circleSize;\n maxWidth += spaceBetweenTextAndIcon;\n } else if (radioDirectionInCell === 'horizontal') {\n // multi icon\n maxWidth += (circleSize + spaceBetweenTextAndIcon) * cellValue.length;\n maxWidth += spaceBetweenRadio * (cellValue.length - 1);\n }\n } else {\n // one icon\n maxWidth += circleSize;\n if (text) {\n maxWidth += spaceBetweenTextAndIcon;\n }\n }\n }\n\n return maxWidth;\n}\n\nfunction getCellRect(col: number, row: number, table: BaseTableAPI): any {\n return {\n left: 0,\n top: 0,\n right: table.getColWidth(col),\n bottom: table.getRowHeight(row),\n width: null, // vrender 逻辑中通过判断null对flex的元素来自动计算宽高\n height: null\n };\n}\n\nfunction getColWidthDefinedWidthResizedWidth(col: number, table: BaseTableAPI) {\n const widthDefined = table.getColWidthDefined(col);\n if (table.internalProps._widthResizedColMap.has(col)) {\n return table.getColWidth(col);\n }\n return widthDefined;\n}\n\nexport function getAdaptiveWidth(\n totalDrawWidth: number,\n startCol: number,\n endColPlus1: number,\n update: boolean,\n newWidths: number[],\n table: BaseTableAPI,\n fromScenegraph?: boolean\n) {\n let actualWidth = 0;\n const adaptiveColumns: number[] = [];\n const sparklineColumns = [];\n let totalSparklineAbleWidth = 0;\n for (let col = startCol; col < endColPlus1; col++) {\n const width = update ? newWidths[col] : table.getColWidth(col);\n const maxWidth = table.getMaxColWidth(col);\n const minWidth = table.getMinColWidth(col);\n if (width !== maxWidth && width !== minWidth) {\n actualWidth += width;\n adaptiveColumns.push(col);\n } else {\n // fixed width, do not adaptive\n totalDrawWidth -= width;\n }\n\n if (table.options.customConfig?.shrinkSparklineFirst) {\n const bodyCellType = table.getBodyColumnType(col, 0);\n if (bodyCellType === 'sparkline') {\n sparklineColumns.push({ col, width });\n totalSparklineAbleWidth += width - table.defaultColWidth;\n }\n }\n }\n\n const factor = totalDrawWidth / actualWidth;\n\n if (\n table.options.customConfig?.shrinkSparklineFirst &&\n factor < 1 &&\n totalDrawWidth - actualWidth < totalSparklineAbleWidth\n ) {\n // only shrink sparkline column\n for (let i = 0; i < sparklineColumns.length; i++) {\n const { col, width } = sparklineColumns[i];\n const deltaWidth = (actualWidth - totalDrawWidth) / sparklineColumns.length;\n const colWidth = Math.floor(width - deltaWidth);\n\n if (update) {\n newWidths[col] = table._adjustColWidth(col, colWidth);\n } else if (fromScenegraph) {\n table.scenegraph.setColWidth(col, table._adjustColWidth(col, colWidth));\n } else {\n table._setColWidth(col, table._adjustColWidth(col, colWidth), false, true);\n }\n }\n return;\n }\n\n for (let i = 0; i < adaptiveColumns.length; i++) {\n const col = adaptiveColumns[i];\n let colWidth;\n if (i === adaptiveColumns.length - 1) {\n colWidth =\n totalDrawWidth -\n adaptiveColumns.reduce((acr, cur, index) => {\n if (cur !== col) {\n return acr + (update ? newWidths[cur] : table.getColWidth(cur));\n }\n return acr;\n }, 0);\n } else {\n colWidth = Math.round((update ? newWidths[col] : table.getColWidth(col)) * factor);\n }\n if (update) {\n newWidths[col] = table._adjustColWidth(col, colWidth);\n } else if (fromScenegraph) {\n table.scenegraph.setColWidth(col, table._adjustColWidth(col, colWidth));\n } else {\n table._setColWidth(col, table._adjustColWidth(col, colWidth), false, true);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/layout/compute-col-width.ts"],"names":[],"mappings":"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","file":"compute-col-width.js","sourcesContent":["import type { SimpleHeaderLayoutMap } from '../../layout';\nimport type {\n ColumnDefine,\n ColumnTypeOption,\n IRowSeriesNumber,\n RadioColumnDefine,\n RadioStyleOption,\n TextColumnDefine\n} from '../../ts-types';\nimport { HierarchyState, IconPosition } from '../../ts-types';\nimport * as calc from '../../tools/calc';\nimport { validToString } from '../../tools/util';\nimport { getQuadProps } from '../utils/padding';\nimport { getProp } from '../utils/get-prop';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { ComputeAxisComponentWidth } from '../../components/axis/get-axis-component-size';\nimport { Factory } from '../../core/factory';\nimport { Group as VGroup } from './../../vrender';\nimport { isArray, isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\nimport { decodeReactDom, dealPercentCalc } from '../component/custom';\nimport { breakString } from '../utils/break-string';\n\nexport function computeColsWidth(table: BaseTableAPI, colStart?: number, colEnd?: number, update?: boolean): void {\n const time = typeof window !== 'undefined' ? window.performance.now() : 0;\n colStart = colStart ?? 0;\n colEnd = colEnd ?? table.colCount - 1;\n // table._clearColRangeWidthsMap();\n // clear colRangeWidthsMap\n if (colStart === 0 && colEnd === table.colCount - 1) {\n table._clearColRangeWidthsMap();\n // } else {\n // for (let col = colStart; col <= colEnd; col++) {\n // table._clearColRangeWidthsMap(col);\n // }\n }\n\n const oldColWidths: number[] = [];\n const newWidths: number[] = [];\n if (update) {\n for (let col = 0; col < table.colCount; col++) {\n oldColWidths[col] = table.getColWidth(col);\n }\n }\n for (let col = colStart; col <= colEnd; col++) {\n let maxWidth;\n if (\n !table.internalProps.transpose &&\n (table.internalProps.layoutMap.columnObjects?.[col]?.columnWidthComputeMode === 'only-header' ||\n table.columnWidthComputeMode === 'only-header') &&\n 'showHeader' in table.internalProps.layoutMap\n ) {\n const temp = table.internalProps.layoutMap.showHeader;\n table.internalProps.layoutMap.showHeader = true;\n maxWidth = computeColWidth(col, 0, table.internalProps.layoutMap.headerLevelCount - 1, table);\n table.internalProps.layoutMap.showHeader = temp;\n } else if (\n !table.internalProps.transpose &&\n (table.internalProps.layoutMap.columnObjects?.[col]?.columnWidthComputeMode === 'only-body' ||\n table.columnWidthComputeMode === 'only-body')\n ) {\n maxWidth = computeColWidth(\n col,\n table.internalProps.layoutMap.getBodyRange().start.row,\n table.internalProps.layoutMap.getBodyRange().end.row,\n table\n );\n } else {\n maxWidth = computeColWidth(col, 0, table.rowCount - 1, table);\n }\n\n table._setColContentWidth(col, maxWidth);\n\n const oldWidth = table.getColWidth(col);\n if (oldWidth !== maxWidth) {\n table._clearColRangeWidthsMap(col);\n }\n if (update) {\n newWidths[col] = Math.round(table._adjustColWidth(col, maxWidth));\n } else {\n table._setColWidth(col, table._adjustColWidth(col, maxWidth), false, true);\n }\n }\n\n // 处理adaptive宽度\n if (table.widthMode === 'adaptive') {\n // const rowHeaderWidth = table.getColsWidth(0, table.rowHeaderLevelCount - 1);\n // const rightHeaderWidth = table.isPivotChart() ? table.getRightFrozenColsWidth() : 0;\n // const totalDrawWidth = table.tableNoFrameWidth - rowHeaderWidth - rightHeaderWidth;\n\n table._clearColRangeWidthsMap();\n const canvasWidth = table.tableNoFrameWidth;\n let actualHeaderWidth = 0;\n let startCol = 0;\n let endCol = table.colCount;\n if (table.widthAdaptiveMode === 'only-body') {\n for (let col = 0; col < table.colCount; col++) {\n const colWidth = update ? newWidths[col] : table.getColWidth(col);\n if (\n col < table.rowHeaderLevelCount ||\n (table.isPivotChart() && col >= table.colCount - table.rightFrozenColCount)\n ) {\n actualHeaderWidth += colWidth;\n }\n }\n startCol = table.rowHeaderLevelCount;\n endCol = table.isPivotChart() ? table.colCount - table.rightFrozenColCount : table.colCount;\n }\n getAdaptiveWidth(canvasWidth - actualHeaderWidth, startCol, endCol, update, newWidths, table);\n // const canvasWidth = table.internalProps.canvas.width;\n // const rowHeaderWidth = table.getColsWidth(0, table.rowHeaderLevelCount - 1);\n // const rightHeaderWidth = table.isPivotChart() ? table.getRightFrozenColsWidth() : 0;\n // const totalDrawWidth = table.tableNoFrameWidth - rowHeaderWidth - rightHeaderWidth;\n // const startCol = table.rowHeaderLevelCount;\n // const endCol = table.isPivotChart() ? table.colCount - table.rightFrozenColCount : table.colCount;\n // let actualWidth = 0;\n // for (let col = startCol; col < endCol; col++) {\n // actualWidth += update ? newWidths[col] : table.getColWidth(col);\n // }\n // const factor = totalDrawWidth / actualWidth;\n // for (let col = startCol; col < endCol; col++) {\n // let colWidth;\n // if (col === endCol - 1) {\n // colWidth =\n // totalDrawWidth -\n // (update\n // ? newWidths.reduce((acr, cur, index) => {\n // if (index >= startCol && index <= endCol - 2) {\n // return acr + cur;\n // }\n // return acr;\n // }, 0)\n // : table.getColsWidth(startCol, endCol - 2));\n // } else {\n // colWidth = Math.round((update ? newWidths[col] : table.getColWidth(col)) * factor);\n // }\n // if (update) {\n // newWidths[col] = table._adjustColWidth(col, colWidth);\n // } else {\n // table._setColWidth(col, table._adjustColWidth(col, colWidth), false, true);\n // }\n // }\n } else if (table.autoFillWidth) {\n table._clearColRangeWidthsMap();\n const canvasWidth = table.tableNoFrameWidth;\n let actualHeaderWidth = 0;\n let actualWidth = 0;\n for (let col = 0; col < table.colCount; col++) {\n const colWidth = update ? newWidths[col] : table.getColWidth(col);\n if (\n col < table.rowHeaderLevelCount ||\n (table.isPivotChart() && col >= table.colCount - table.rightFrozenColCount)\n ) {\n actualHeaderWidth += colWidth;\n }\n actualWidth += colWidth;\n }\n // 如果内容宽度小于canvas宽度,执行adaptive放大\n if (actualWidth < canvasWidth && actualWidth > actualHeaderWidth) {\n const startCol = table.rowHeaderLevelCount;\n const endCol = table.isPivotChart() ? table.colCount - table.rightFrozenColCount : table.colCount;\n getAdaptiveWidth(canvasWidth - actualHeaderWidth, startCol, endCol, update, newWidths, table);\n }\n\n // // 如果内容宽度小于canvas宽度,执行adaptive放大\n // if (actualWidth < canvasWidth && actualWidth - actualHeaderWidth > 0) {\n // const factor = (canvasWidth - actualHeaderWidth) / (actualWidth - actualHeaderWidth);\n // for (let col = table.frozenColCount; col < table.colCount - table.rightFrozenColCount; col++) {\n // let colWidth;\n // if (col === table.colCount - table.rightFrozenColCount - 1) {\n // colWidth =\n // canvasWidth -\n // actualHeaderWidth -\n // (update\n // ? newWidths.reduce((acr, cur, index) => {\n // if (index >= table.frozenColCount && index <= table.colCount - table.rightFrozenColCount - 2) {\n // return acr + cur;\n // }\n // return acr;\n // }, 0)\n // : table.getColsWidth(table.frozenColCount, table.colCount - table.rightFrozenColCount - 2));\n // } else {\n // colWidth = Math.round((update ? newWidths[col] : table.getColWidth(col)) * factor);\n // }\n // if (update) {\n // // newWidths[col] = newWidths[col] * factor;\n // newWidths[col] = table._adjustColWidth(col, colWidth);\n // } else {\n // // table.setColWidth(col, table.getColWidth(col) * factor, false, true);\n // table._setColWidth(col, table._adjustColWidth(col, colWidth), false, true);\n // }\n // }\n // }\n }\n // console.log('computeColsWidth time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time);\n\n if (update) {\n for (let col = 0; col < table.colCount; col++) {\n // newColWidth could not be in column min max range possibly\n // const newColWidth = table._adjustColWidth(col, newWidths[col]) ?? table.getColWidth(col);\n const newColWidth = newWidths[col] ?? table.getColWidth(col);\n if (newColWidth !== oldColWidths[col]) {\n // update the column width in scenegraph\n table._setColWidth(col, newColWidth, false, true);\n // table.scenegraph.updateColWidth(col, newColWidth - oldColWidths[col], true, true);\n }\n }\n table.stateManager.checkFrozen();\n for (let col = 0; col < table.colCount; col++) {\n // newColWidth could not be in column min max range possibly\n // const newColWidth = table._adjustColWidth(col, newWidths[col]) ?? table.getColWidth(col);\n const newColWidth = table.getColWidth(col);\n if (newColWidth !== oldColWidths[col]) {\n // update the column width in scenegraph\n // table._setColWidth(col, newColWidth);\n table.scenegraph.updateColWidth(col, newColWidth - oldColWidths[col], true, true);\n }\n }\n table.scenegraph.updateContainer(true);\n }\n // console.log('computeColsWidth time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time, colStart, colEnd);\n}\n\n/**\n * @description: 计算列宽\n * @param {number} col\n * @param {number} startRow\n * @param {number} endRow\n * @param {BaseTableAPI} table\n * @param {boolean} forceCompute\n * @return {*}\n */\nexport function computeColWidth(\n col: number,\n startRow: number,\n endRow: number,\n table: BaseTableAPI,\n forceCompute: boolean = false //forceCompute如果设置为true 即便不是自动列宽的列也会按内容计算列宽\n): number {\n let width = getColWidthDefinedWidthResizedWidth(col, table);\n if (\n table.internalProps.transpose &&\n width === 'auto' &&\n ((table.columnWidthComputeMode === 'only-header' && col >= table.rowHeaderLevelCount) ||\n (table.columnWidthComputeMode === 'only-body' && col < table.rowHeaderLevelCount))\n ) {\n width = table.getDefaultColumnWidth(col);\n }\n\n if (forceCompute && !table.internalProps.transpose) {\n return computeAutoColWidth(width, col, startRow, endRow, forceCompute, table);\n } else if (typeof width === 'number') {\n return width;\n } else if (width !== 'auto' && typeof width === 'string') {\n // return calc.toPx(width, table.internalProps.calcWidthContext);\n return table._adjustColWidth(col, table._colWidthDefineToPxWidth(width));\n }\n return computeAutoColWidth(width, col, startRow, endRow, forceCompute, table);\n}\n\n/**\n * @description: 计算width: auto情况下的列宽\n * @param {number} col\n * @param {number} startRow\n * @param {number} endRow\n * @param {boolean} forceCompute\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeAutoColWidth(\n widthDeifne: string | number,\n col: number,\n startRow: number,\n endRow: number,\n forceCompute: boolean,\n table: BaseTableAPI\n): number {\n // 处理 auto width\n let maxWidth = 0;\n let deltaRow = 1;\n let prepareDeltaRow = 1; // 当计算完表头单元格的宽度后再采用采用逻辑,prepareDeltaRow这个值为期body部分做准备\n if (endRow - startRow > 5000) {\n // 超过5000行启动列宽自动计算采样\n prepareDeltaRow = Math.ceil((endRow - startRow) / 5000);\n }\n // 如果是透视图\n if (table.isPivotChart() && col >= table.rowHeaderLevelCount && col < table.colCount - table.rightFrozenColCount) {\n if (!(table.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol) {\n //并且指标是以行展示 计算列宽需要根据x轴的值域范围\n const optimunWidth = (table.internalProps.layoutMap as PivotHeaderLayoutMap).getOptimunWidthForChart(col);\n if (optimunWidth > 0) {\n return optimunWidth;\n }\n } else {\n //直接拿表头的默认列宽\n return table.defaultColWidth;\n }\n }\n\n for (let row = startRow; row <= endRow; row += deltaRow) {\n // 判断透视图轴组件\n if (table.isPivotChart()) {\n const layout = table.internalProps.layoutMap as PivotHeaderLayoutMap;\n const axisConfig = layout.getAxisConfigInPivotChart(col, row);\n if (axisConfig) {\n const computeAxisComponentWidth: ComputeAxisComponentWidth = Factory.getFunction('computeAxisComponentWidth');\n const axisWidth = computeAxisComponentWidth(axisConfig, table);\n if (typeof axisWidth === 'number') {\n maxWidth = Math.max(axisWidth, maxWidth);\n continue;\n }\n } else if (\n layout.isLeftBottomCorner(col, row) ||\n layout.isRightTopCorner(col, row) ||\n layout.isRightBottomCorner(col, row)\n ) {\n // 透视图三角为无效单元格,不参与宽度计算\n continue;\n }\n }\n\n // 判断CustomRender\n const customWidth = computeCustomRenderWidth(col, row, table);\n if (customWidth) {\n maxWidth = Math.max(customWidth.width, maxWidth);\n if (!customWidth.renderDefault) {\n continue;\n }\n }\n\n // 判断透视表如果在指标\n // const indicatorWidth = computeIndicatorWidth(col, row, forceCompute, table);\n // const indicatorWidth = table.internalProps.layoutMap.getColumnWidthDefined(col);\n const indicatorWidth = widthDeifne;\n if (typeof indicatorWidth === 'number' && table.widthMode === 'standard' && !forceCompute) {\n maxWidth = Math.max(indicatorWidth, maxWidth);\n continue;\n }\n\n const cellType = table.isHeader(col, row)\n ? (table._getHeaderLayoutMap(col, row) as HeaderData)?.headerType\n : table.getBodyColumnType(col, row);\n if (\n isValid(cellType) &&\n cellType !== 'text' &&\n cellType !== 'link' &&\n cellType !== 'progressbar' &&\n cellType !== 'checkbox' &&\n cellType !== 'radio'\n ) {\n // text&link&progressbar测量文字宽度\n // image&video&sparkline使用默认宽度\n maxWidth = Math.max(maxWidth, table.getColWidthDefinedNumber(col) || 0);\n continue;\n }\n\n // 处理树形展开\n let cellHierarchyIndent = 0;\n const layoutMap = table.internalProps.layoutMap;\n //判断是否为表头\n if (layoutMap.isHeader(col, row)) {\n const hd = layoutMap.getHeader(col, row);\n // 如果某级表头设置了only-body,在计算表头内容宽度时跳过改级表头\n if ((hd as HeaderData)?.define?.columnWidthComputeMode === 'only-body') {\n continue;\n }\n if (isValid((hd as HeaderData)?.hierarchyLevel)) {\n cellHierarchyIndent =\n ((hd as HeaderData).hierarchyLevel ?? 0) * ((layoutMap as PivotHeaderLayoutMap).rowHierarchyIndent ?? 0);\n if (\n (layoutMap as PivotHeaderLayoutMap).rowHierarchyTextStartAlignment &&\n !table.internalProps.headerHelper.getHierarchyIcon(col, row)\n ) {\n cellHierarchyIndent += table.internalProps.headerHelper.getHierarchyIconWidth();\n }\n }\n } else {\n deltaRow = prepareDeltaRow;\n // 基本表格表身body单元格 如果是树形展开 需要考虑缩进值\n // const cellHierarchyState = table.getHierarchyState(col, row);\n // if (cellHierarchyState === HierarchyState.expand || cellHierarchyState === HierarchyState.collapse) {\n const define = table.getBodyColumnDefine(col, row);\n if ((define as ColumnDefine)?.tree) {\n const indexArr = table.dataSource.getIndexKey(table.getRecordShowIndexByCell(col, row));\n cellHierarchyIndent =\n Array.isArray(indexArr) && table.getHierarchyState(col, row) !== HierarchyState.none\n ? (indexArr.length - 1) * ((layoutMap as SimpleHeaderLayoutMap).hierarchyIndent ?? 0)\n : 0;\n if (\n (layoutMap as SimpleHeaderLayoutMap).hierarchyTextStartAlignment &&\n !table.internalProps.bodyHelper.getHierarchyIcon(col, row)\n ) {\n cellHierarchyIndent += table.internalProps.headerHelper.getHierarchyIconWidth();\n }\n }\n }\n\n // 测量文字宽度\n const textWidth = computeTextWidth(col, row, cellType, table);\n maxWidth = Math.max(textWidth + cellHierarchyIndent, maxWidth);\n //在前面设置了采用规则的情况下,为了确保底部冻结的每一行都测到\n if (\n deltaRow > 1 &&\n table.bottomFrozenRowCount > 0 &&\n row < table.rowCount - table.bottomFrozenRowCount &&\n row + deltaRow >= table.rowCount - table.bottomFrozenRowCount\n ) {\n row = table.rowCount - table.bottomFrozenRowCount - deltaRow;\n deltaRow = 1;\n prepareDeltaRow = 1;\n }\n }\n\n // 处理宽度限制\n const colMinWidth = table.getMinColWidth(col);\n const colMaxWidth = table.getMaxColWidth(col);\n if (maxWidth < colMinWidth) {\n return colMinWidth;\n } else if (maxWidth > colMaxWidth) {\n return colMaxWidth;\n } else if (maxWidth <= 0) {\n // In the case of partially hiding the header, the width calculation may be 0.\n // In this case, the default value is used to prevent it from being unable to be displayed\n maxWidth = table.defaultColWidth;\n }\n return maxWidth;\n}\n\n/**\n * @description: 计算customRender相关列宽\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeCustomRenderWidth(col: number, row: number, table: BaseTableAPI) {\n const customRender = table.getCustomRender(col, row);\n const customLayout = table.getCustomLayout(col, row);\n if (customRender || customLayout) {\n let spanCol = 1;\n let width = 0;\n let renderDefault = false;\n let enableCellPadding = false;\n if (\n table.isHeader(col, row) ||\n (table.getBodyColumnDefine(col, row) as TextColumnDefine)?.mergeCell ||\n table.hasCustomMerge()\n ) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: getCellRect(col, row, table),\n table\n };\n if (isFunction(customLayout)) {\n // 处理customLayout\n const customLayoutObj = customLayout(arg);\n if (customLayoutObj.rootContainer instanceof VGroup) {\n customLayoutObj.rootContainer = decodeReactDom(customLayoutObj.rootContainer);\n dealPercentCalc(customLayoutObj.rootContainer, 0, table.getRowHeight(row));\n const setedWidth = (customLayoutObj.rootContainer as VGroup).attribute.width;\n customLayoutObj.rootContainer.setStage(table.scenegraph.stage);\n width = setedWidth > 0 ? setedWidth : (customLayoutObj.rootContainer as VGroup).AABBBounds.width() ?? 0;\n renderDefault = customLayoutObj.renderDefault;\n enableCellPadding = customLayoutObj.enableCellPadding;\n } else {\n width = 0;\n renderDefault = customLayoutObj.renderDefault;\n enableCellPadding = customLayoutObj.enableCellPadding;\n }\n } else if (typeof customRender === 'function') {\n // 处理customRender\n const customRenderObj = customRender(arg);\n width = customRenderObj?.expectedWidth ?? 0;\n renderDefault = customRenderObj?.renderDefault;\n } else {\n width = customRender?.expectedWidth ?? 0;\n renderDefault = customRender?.renderDefault;\n }\n width = Math.ceil(width);\n if (enableCellPadding) {\n const actStyle = table._getCellStyle(col, row);\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n width += padding[1] + padding[3];\n }\n return {\n width: width / spanCol,\n renderDefault\n };\n }\n return undefined;\n}\n\n/**\n * @description: 计算指标相关列宽\n * @param {number} col\n * @param {number} row\n * @param {boolean} forceCompute\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeIndicatorWidth(\n col: number,\n row: number,\n forceCompute: boolean,\n table: BaseTableAPI\n): number | undefined {\n const { layoutMap } = table.internalProps;\n if (table.isPivotTable() && (layoutMap as PivotHeaderLayoutMap).isColumnIndicatorHeader(col, row)) {\n // 透视表如果在指标中配置了宽度,使用该宽度作为指标单元格及下面内容单元格的列宽\n const body = layoutMap.getBody(col, row);\n if (body && body.width && body.width !== 'auto' && !forceCompute) {\n const width = Math.round(calc.toPx(body.width, table.internalProps.calcWidthContext));\n return width;\n }\n }\n return undefined;\n}\n\n/**\n * @description: 计算文字宽度\n * @param {number} col\n * @param {number} row\n * @param {BaseTableAPI} table\n * @return {*}\n */\nfunction computeTextWidth(col: number, row: number, cellType: ColumnTypeOption, table: BaseTableAPI): number {\n let maxWidth = 0;\n const cellValue = table.getCellValue(col, row);\n // const dataValue = table.getCellOriginValue(col, row);\n const actStyle = table._getCellStyle(col, row);\n let iconWidth = 0;\n\n // const define = table.getBodyColumnDefine(col, row);\n // const mayHaveIcon = table.getCellLocation(col, row) !== 'body' ? true : !!define?.icon || !!define?.tree;\n\n let mayHaveIcon = false;\n if (table.getCellLocation(col, row) !== 'body') {\n mayHaveIcon = true;\n } else {\n const define = table.getBodyColumnDefine(col, row);\n mayHaveIcon = !!define?.icon || !!(define as ColumnDefine)?.tree || (define as IRowSeriesNumber)?.dragOrder;\n }\n if (mayHaveIcon) {\n const icons = table.getCellIcons(col, row);\n icons?.forEach(icon => {\n if (icon.positionType !== IconPosition.absoluteRight) {\n iconWidth += (icon.width ?? 0) + (icon.marginLeft ?? 0) + (icon.marginRight ?? 0);\n }\n });\n }\n\n let spanCol = 1;\n if (\n table.isHeader(col, row) ||\n (table.getBodyColumnDefine(col, row) as TextColumnDefine)?.mergeCell ||\n table.hasCustomMerge()\n ) {\n const cellRange = table.getCellRange(col, row);\n spanCol = cellRange.end.col - cellRange.start.col + 1;\n }\n\n const padding = getQuadProps(getProp('padding', actStyle, col, row, table));\n const paddingWidth = padding[1] + padding[3]; // + cellHierarchyIndent\n\n const fontSize = getProp('fontSize', actStyle, col, row, table);\n const fontFamily = getProp('fontFamily', actStyle, col, row, table);\n const fontWeight = getProp('fontWeight', actStyle, col, row, table);\n let text: string;\n if (cellType === 'checkbox') {\n text = isObject(cellValue) ? (cellValue as any).text : cellValue;\n } else if (cellType === 'radio') {\n if (isArray(cellValue)) {\n text = '';\n const define = table.getBodyColumnDefine(col, row);\n const radioDirectionInCell = (define as RadioColumnDefine)?.radioDirectionInCell ?? 'vertical';\n if (radioDirectionInCell === 'vertical') {\n cellValue.forEach(line => {\n text += (isObject(line) ? (line as any).text : line).toString() + '\\n';\n });\n } else if (radioDirectionInCell === 'horizontal') {\n cellValue.forEach(line => {\n text += (isObject(line) ? (line as any).text : line).toString();\n });\n }\n } else {\n text = isObject(cellValue) ? (cellValue as any).text : cellValue;\n }\n } else {\n text = cellValue;\n }\n const lines = breakString(text, table).text;\n if (lines.length >= 1) {\n // eslint-disable-next-line no-loop-func\n lines.forEach((line: string) => {\n const width = table.measureText(line, {\n fontSize,\n fontFamily,\n fontWeight\n }).width;\n maxWidth = Math.max(\n // 最大字符上限控制测量的字符\n (width + paddingWidth + 4 + iconWidth) / spanCol, // 这里+4为列宽测量结果的buffer\n maxWidth\n );\n });\n } else {\n maxWidth = Math.max(\n // 最大字符上限控制测量的字符\n (paddingWidth + 4 + iconWidth) / spanCol,\n maxWidth\n );\n }\n // 判断是否需要限制最大宽度 之前写死的450 需要使用配置来判断\n if (table.internalProps.limitMaxAutoWidth !== false) {\n maxWidth = Math.min(\n typeof table.internalProps.limitMaxAutoWidth === 'number' ? table.internalProps.limitMaxAutoWidth : 450,\n maxWidth\n );\n }\n\n if (cellType === 'checkbox') {\n const size = getProp('size', actStyle, col, row, table);\n maxWidth += size;\n\n if (text) {\n const spaceBetweenTextAndIcon = getProp('spaceBetweenTextAndIcon', actStyle, col, row, table);\n maxWidth += spaceBetweenTextAndIcon;\n }\n } else if (cellType === 'radio') {\n const size = getProp('size', actStyle, col, row, table);\n const outerRadius = getProp('outerRadius', actStyle, col, row, table);\n const circleSize = isNumber(outerRadius) ? outerRadius * 2 : size;\n const spaceBetweenTextAndIcon = getProp('spaceBetweenTextAndIcon', actStyle, col, row, table);\n\n if (isArray(cellValue)) {\n const define = table.getBodyColumnDefine(col, row);\n const spaceBetweenRadio = getProp('spaceBetweenRadio', actStyle, col, row, table);\n const radioDirectionInCell = (define as RadioColumnDefine)?.radioDirectionInCell ?? 'vertical';\n if (radioDirectionInCell === 'vertical') {\n // one icon\n maxWidth += circleSize;\n maxWidth += spaceBetweenTextAndIcon;\n } else if (radioDirectionInCell === 'horizontal') {\n // multi icon\n maxWidth += (circleSize + spaceBetweenTextAndIcon) * cellValue.length;\n maxWidth += spaceBetweenRadio * (cellValue.length - 1);\n }\n } else {\n // one icon\n maxWidth += circleSize;\n if (text) {\n maxWidth += spaceBetweenTextAndIcon;\n }\n }\n }\n\n return maxWidth;\n}\n\nfunction getCellRect(col: number, row: number, table: BaseTableAPI): any {\n return {\n left: 0,\n top: 0,\n right: table.getColWidth(col),\n bottom: table.getRowHeight(row),\n width: null, // vrender 逻辑中通过判断null对flex的元素来自动计算宽高\n height: null\n };\n}\n\nfunction getColWidthDefinedWidthResizedWidth(col: number, table: BaseTableAPI) {\n const widthDefined = table.getColWidthDefined(col);\n if (table.internalProps._widthResizedColMap.has(col)) {\n return table.getColWidth(col);\n }\n return widthDefined;\n}\n\nexport function getAdaptiveWidth(\n totalDrawWidth: number,\n startCol: number,\n endColPlus1: number,\n update: boolean,\n newWidths: number[],\n table: BaseTableAPI,\n fromScenegraph?: boolean\n) {\n let actualWidth = 0;\n const adaptiveColumns: number[] = [];\n const sparklineColumns = [];\n let totalSparklineAbleWidth = 0;\n for (let col = startCol; col < endColPlus1; col++) {\n const width = update ? newWidths[col] : table.getColWidth(col);\n const maxWidth = table.getMaxColWidth(col);\n const minWidth = table.getMinColWidth(col);\n if (width !== maxWidth && width !== minWidth) {\n actualWidth += width;\n adaptiveColumns.push(col);\n } else {\n // fixed width, do not adaptive\n totalDrawWidth -= width;\n }\n\n if (table.options.customConfig?.shrinkSparklineFirst) {\n const bodyCellType = table.getBodyColumnType(col, 0);\n if (bodyCellType === 'sparkline') {\n sparklineColumns.push({ col, width });\n totalSparklineAbleWidth += width - table.defaultColWidth;\n }\n }\n }\n\n const factor = totalDrawWidth / actualWidth;\n\n if (\n table.options.customConfig?.shrinkSparklineFirst &&\n factor < 1 &&\n totalDrawWidth - actualWidth < totalSparklineAbleWidth\n ) {\n // only shrink sparkline column\n for (let i = 0; i < sparklineColumns.length; i++) {\n const { col, width } = sparklineColumns[i];\n const deltaWidth = (actualWidth - totalDrawWidth) / sparklineColumns.length;\n const colWidth = Math.floor(width - deltaWidth);\n\n if (update) {\n newWidths[col] = table._adjustColWidth(col, colWidth);\n } else if (fromScenegraph) {\n table.scenegraph.setColWidth(col, table._adjustColWidth(col, colWidth));\n } else {\n table._setColWidth(col, table._adjustColWidth(col, colWidth), false, true);\n }\n }\n return;\n }\n\n for (let i = 0; i < adaptiveColumns.length; i++) {\n const col = adaptiveColumns[i];\n let colWidth;\n if (i === adaptiveColumns.length - 1) {\n colWidth =\n totalDrawWidth -\n adaptiveColumns.reduce((acr, cur, index) => {\n if (cur !== col) {\n return acr + (update ? newWidths[cur] : table.getColWidth(cur));\n }\n return acr;\n }, 0);\n } else {\n colWidth = Math.round((update ? newWidths[col] : table.getColWidth(col)) * factor);\n }\n if (update) {\n newWidths[col] = table._adjustColWidth(col, colWidth);\n } else if (fromScenegraph) {\n table.scenegraph.setColWidth(col, table._adjustColWidth(col, colWidth));\n } else {\n table._setColWidth(col, table._adjustColWidth(col, colWidth), false, true);\n }\n }\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.computeRowHeight = exports.computeRowsHeight = void 0;
6
6
 
7
- const vrender_1 = require("./../../vrender"), ts_types_1 = require("../../ts-types"), get_prop_1 = require("../utils/get-prop"), padding_1 = require("../utils/padding"), text_icon_layout_1 = require("../utils/text-icon-layout"), get_axis_config_1 = require("../../layout/chart-helper/get-axis-config"), get_axis_component_size_1 = require("../../components/axis/get-axis-component-size"), vutils_1 = require("@visactor/vutils"), custom_1 = require("../component/custom"), get_cell_merge_1 = require("../utils/get-cell-merge"), get_hierarchy_offset_1 = require("../utils/get-hierarchy-offset"), height_util_1 = require("./height-util"), text_measure_1 = require("../utils/text-measure"), break_string_1 = require("../utils/break-string"), utilRichTextMark = new vrender_1.RichText({
7
+ const vrender_1 = require("./../../vrender"), ts_types_1 = require("../../ts-types"), get_prop_1 = require("../utils/get-prop"), padding_1 = require("../utils/padding"), text_icon_layout_1 = require("../utils/text-icon-layout"), factory_1 = require("../../core/factory"), vutils_1 = require("@visactor/vutils"), custom_1 = require("../component/custom"), get_cell_merge_1 = require("../utils/get-cell-merge"), get_hierarchy_offset_1 = require("../utils/get-hierarchy-offset"), height_util_1 = require("./height-util"), text_measure_1 = require("../utils/text-measure"), break_string_1 = require("../utils/break-string"), utilRichTextMark = new vrender_1.RichText({
8
8
  width: 0,
9
9
  height: 0,
10
10
  textConfig: []
@@ -121,9 +121,9 @@ function computeRowHeight(row, startCol, endCol, table) {
121
121
  if (customHeight && (maxHeight = (0, vutils_1.isValid)(maxHeight) ? Math.max(customHeight.height, maxHeight) : customHeight.height,
122
122
  !customHeight.renderDefault)) continue;
123
123
  if (table.isPivotChart()) {
124
- const layout = table.internalProps.layoutMap, axisConfig = (0, get_axis_config_1.getAxisConfigInPivotChart)(col, row, layout);
124
+ const axisConfig = table.internalProps.layoutMap.getAxisConfigInPivotChart(col, row);
125
125
  if (axisConfig) {
126
- const axisWidth = (0, get_axis_component_size_1.computeAxisComponentHeight)(axisConfig, table);
126
+ const axisWidth = factory_1.Factory.getFunction("computeAxisComponentHeight")(axisConfig, table);
127
127
  if ("number" == typeof axisWidth) {
128
128
  maxHeight = (0, vutils_1.isValid)(maxHeight) ? Math.max(axisWidth, maxHeight) : axisWidth;
129
129
  continue;