@visactor/vtable 0.15.0-alpha.4 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. package/cjs/ListTable.d.ts +3 -2
  2. package/cjs/ListTable.js +8 -3
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/PivotTable.js.map +1 -1
  6. package/cjs/body-helper/body-helper.js.map +1 -1
  7. package/cjs/body-helper/style/CheckboxStyle.js.map +1 -1
  8. package/cjs/body-helper/style/ImageStyle.js.map +1 -1
  9. package/cjs/body-helper/style/MultilineTextStyle.js.map +1 -1
  10. package/cjs/body-helper/style/NumberStyle.js.map +1 -1
  11. package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -1
  12. package/cjs/body-helper/style/Style.js.map +1 -1
  13. package/cjs/body-helper/style.js.map +1 -1
  14. package/cjs/chartModule.js.map +1 -1
  15. package/cjs/components/axis/axis.js.map +1 -1
  16. package/cjs/components/axis/band-scale.js.map +1 -1
  17. package/cjs/components/axis/get-axis-attributes.js.map +1 -1
  18. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  19. package/cjs/components/axis/label-overlap.js.map +1 -1
  20. package/cjs/components/axis/linear-scale.js.map +1 -1
  21. package/cjs/components/legend/continue-legend/continue-legend.js.map +1 -1
  22. package/cjs/components/legend/continue-legend/get-continue-legend-attributes.js.map +1 -1
  23. package/cjs/components/legend/create-legend.js.map +1 -1
  24. package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  25. package/cjs/components/legend/discrete-legend/get-discrete-legend-attributes.js.map +1 -1
  26. package/cjs/components/menu/dom/BaseMenu.js.map +1 -1
  27. package/cjs/components/menu/dom/Menu.js.map +1 -1
  28. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  29. package/cjs/components/menu/dom/logic/MenuContainer.js.map +1 -1
  30. package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -1
  31. package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  32. package/cjs/components/title/title.js.map +1 -1
  33. package/cjs/components/tooltip/BaseTooltip.js.map +1 -1
  34. package/cjs/components/tooltip/Tooltip.js.map +1 -1
  35. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  36. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  37. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  38. package/cjs/components/util/orient.js.map +1 -1
  39. package/cjs/components/util/register.js.map +1 -1
  40. package/cjs/components/util/transform.js.map +1 -1
  41. package/cjs/core/BaseTable.d.ts +1 -1
  42. package/cjs/core/BaseTable.js +6 -2
  43. package/cjs/core/BaseTable.js.map +1 -1
  44. package/cjs/core/FouseInput.js.map +1 -1
  45. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  46. package/cjs/core/style.js.map +1 -1
  47. package/cjs/core/tableHelper.js.map +1 -1
  48. package/cjs/core.js.map +1 -1
  49. package/cjs/data/CachedDataSource.js.map +1 -1
  50. package/cjs/data/DataSource.js +1 -1
  51. package/cjs/data/DataSource.js.map +1 -1
  52. package/cjs/data/FilterDataSource.js.map +1 -1
  53. package/cjs/data.js.map +1 -1
  54. package/cjs/dataset/DataStatistics.js.map +1 -1
  55. package/cjs/dataset/dataset-pivot-table.js.map +1 -1
  56. package/cjs/dataset/dataset.js.map +1 -1
  57. package/cjs/dataset/flatDataToObject.js.map +1 -1
  58. package/cjs/dataset/statistics-helper.js.map +1 -1
  59. package/cjs/edit/edit-manager.js +10 -2
  60. package/cjs/edit/edit-manager.js.map +1 -1
  61. package/cjs/edit/editors.js.map +1 -1
  62. package/cjs/event/EventHandler.js.map +1 -1
  63. package/cjs/event/EventTarget.js.map +1 -1
  64. package/cjs/event/VChartEventProxy.js.map +1 -1
  65. package/cjs/event/drill.js.map +1 -1
  66. package/cjs/event/event.js.map +1 -1
  67. package/cjs/event/listener/container-dom.js.map +1 -1
  68. package/cjs/event/listener/scroll-bar.js.map +1 -1
  69. package/cjs/event/listener/table-group.js.map +1 -1
  70. package/cjs/event/listener/touch.js.map +1 -1
  71. package/cjs/event/media-click.js.map +1 -1
  72. package/cjs/event/pivot-chart/axis-click.js.map +1 -1
  73. package/cjs/event/pivot-chart/axis-hover.js.map +1 -1
  74. package/cjs/event/scroll.js.map +1 -1
  75. package/cjs/event/sparkline-event.js.map +1 -1
  76. package/cjs/event/util.js.map +1 -1
  77. package/cjs/header-helper/header-helper.js.map +1 -1
  78. package/cjs/header-helper/style/CheckboxStyle.js.map +1 -1
  79. package/cjs/header-helper/style/ImageStyle.js.map +1 -1
  80. package/cjs/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
  81. package/cjs/header-helper/style/SortHeaderStyle.js.map +1 -1
  82. package/cjs/header-helper/style/Style.js.map +1 -1
  83. package/cjs/header-helper/style.js.map +1 -1
  84. package/cjs/icons.js.map +1 -1
  85. package/cjs/index.d.ts +3 -3
  86. package/cjs/index.js +1 -1
  87. package/cjs/index.js.map +1 -1
  88. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  89. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  90. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  91. package/cjs/layout/chart-helper/zero-align.js.map +1 -1
  92. package/cjs/layout/index.js.map +1 -1
  93. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  94. package/cjs/layout/pivot-header-layout.js +14 -11
  95. package/cjs/layout/pivot-header-layout.js.map +1 -1
  96. package/cjs/layout/pivot-layout-helper.js.map +1 -1
  97. package/cjs/layout/pivot-layout.js.map +1 -1
  98. package/cjs/layout/simple-header-layout.d.ts +1 -0
  99. package/cjs/layout/simple-header-layout.js +3 -0
  100. package/cjs/layout/simple-header-layout.js.map +1 -1
  101. package/cjs/plugins/chartModules.js.map +1 -1
  102. package/cjs/plugins/icons.js.map +1 -1
  103. package/cjs/plugins/themes.js.map +1 -1
  104. package/cjs/register.js.map +1 -1
  105. package/cjs/render/jsx/index.js.map +1 -1
  106. package/cjs/render/layout/arc.js.map +1 -1
  107. package/cjs/render/layout/circle.js.map +1 -1
  108. package/cjs/render/layout/container.js.map +1 -1
  109. package/cjs/render/layout/direction.js.map +1 -1
  110. package/cjs/render/layout/element.js.map +1 -1
  111. package/cjs/render/layout/group-element.js.map +1 -1
  112. package/cjs/render/layout/group.js.map +1 -1
  113. package/cjs/render/layout/icon.js.map +1 -1
  114. package/cjs/render/layout/image.js.map +1 -1
  115. package/cjs/render/layout/index.js.map +1 -1
  116. package/cjs/render/layout/line.js.map +1 -1
  117. package/cjs/render/layout/percent-calc.js.map +1 -1
  118. package/cjs/render/layout/rect.js.map +1 -1
  119. package/cjs/render/layout/tag.js.map +1 -1
  120. package/cjs/render/layout/text.js.map +1 -1
  121. package/cjs/scenegraph/component/cell-content.js.map +1 -1
  122. package/cjs/scenegraph/component/cell-mover.js.map +1 -1
  123. package/cjs/scenegraph/component/custom.js.map +1 -1
  124. package/cjs/scenegraph/component/drill-icon.js.map +1 -1
  125. package/cjs/scenegraph/component/menu.js.map +1 -1
  126. package/cjs/scenegraph/component/table-component.js.map +1 -1
  127. package/cjs/scenegraph/component/util.js.map +1 -1
  128. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
  129. package/cjs/scenegraph/debug-tool/index.js.map +1 -1
  130. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  131. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  132. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  133. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  134. package/cjs/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -1
  135. package/cjs/scenegraph/graphic/contributions/index.js.map +1 -1
  136. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  137. package/cjs/scenegraph/graphic/group.js.map +1 -1
  138. package/cjs/scenegraph/graphic/icon.js +5 -5
  139. package/cjs/scenegraph/graphic/icon.js.map +1 -1
  140. package/cjs/scenegraph/graphic/text.js.map +1 -1
  141. package/cjs/scenegraph/group-creater/cell-helper.js +10 -3
  142. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  143. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  144. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  145. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  146. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  147. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  148. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  149. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  150. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  151. package/cjs/scenegraph/group-creater/column.js.map +1 -1
  152. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  153. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +1 -1
  154. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +30 -59
  155. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  156. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  157. package/cjs/scenegraph/group-creater/progress/proxy.js +2 -4
  158. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  159. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  160. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  161. package/cjs/scenegraph/group-creater/progress/update-position/sort-horizontal.js.map +1 -1
  162. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  163. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-column.js.map +1 -1
  164. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  165. package/cjs/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
  166. package/cjs/scenegraph/icon/icon-update.js +4 -4
  167. package/cjs/scenegraph/icon/icon-update.js.map +1 -1
  168. package/cjs/scenegraph/layout/auto-height.js.map +1 -1
  169. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  170. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  171. package/cjs/scenegraph/layout/frozen.js +18 -3
  172. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  173. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  174. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  175. package/cjs/scenegraph/layout/update-row.js +3 -4
  176. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  177. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  178. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  179. package/cjs/scenegraph/scenegraph.js +4 -3
  180. package/cjs/scenegraph/scenegraph.js.map +1 -1
  181. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  182. package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
  183. package/cjs/scenegraph/select/move-select-border.js.map +1 -1
  184. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  185. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  186. package/cjs/scenegraph/style/corner-cell.js.map +1 -1
  187. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  188. package/cjs/scenegraph/utils/border-line.js.map +1 -1
  189. package/cjs/scenegraph/utils/break-string.js.map +1 -1
  190. package/cjs/scenegraph/utils/cell-pos.js.map +1 -1
  191. package/cjs/scenegraph/utils/deal-promise-data.js.map +1 -1
  192. package/cjs/scenegraph/utils/empty-group.js.map +1 -1
  193. package/cjs/scenegraph/utils/font.js.map +1 -1
  194. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
  195. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  196. package/cjs/scenegraph/utils/get-prop.js.map +1 -1
  197. package/cjs/scenegraph/utils/icon.js.map +1 -1
  198. package/cjs/scenegraph/utils/is-merge-cell-group.js.map +1 -1
  199. package/cjs/scenegraph/utils/keep-aspect-ratio.js.map +1 -1
  200. package/cjs/scenegraph/utils/padding.js.map +1 -1
  201. package/cjs/scenegraph/utils/render-service.js.map +1 -1
  202. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  203. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  204. package/cjs/scenegraph/utils/text-pos.js.map +1 -1
  205. package/cjs/scenegraph/utils/update-container.js.map +1 -1
  206. package/cjs/state/cell-move/adjust-header.js.map +1 -1
  207. package/cjs/state/cell-move/index.js.map +1 -1
  208. package/cjs/state/common/check-in-select.js.map +1 -1
  209. package/cjs/state/drill/index.js.map +1 -1
  210. package/cjs/state/frozen/index.js.map +1 -1
  211. package/cjs/state/hover/col.js.map +1 -1
  212. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  213. package/cjs/state/hover/row.js.map +1 -1
  214. package/cjs/state/hover/single.js.map +1 -1
  215. package/cjs/state/hover/update-cell.js.map +1 -1
  216. package/cjs/state/hover/update-position.js.map +1 -1
  217. package/cjs/state/resize/update-resize-column.js.map +1 -1
  218. package/cjs/state/select/update-position.js.map +1 -1
  219. package/cjs/state/sort/index.js.map +1 -1
  220. package/cjs/state/spark-line/index.js.map +1 -1
  221. package/cjs/state/state.js.map +1 -1
  222. package/cjs/themes/ARCO.js.map +1 -1
  223. package/cjs/themes/BRIGHT.js.map +1 -1
  224. package/cjs/themes/DARK.js.map +1 -1
  225. package/cjs/themes/DEFAULT.js.map +1 -1
  226. package/cjs/themes/SIMPLIFY.js.map +1 -1
  227. package/cjs/themes/theme.js.map +1 -1
  228. package/cjs/themes.js.map +1 -1
  229. package/cjs/tools/LimitPromiseQueue.js +1 -1
  230. package/cjs/tools/LimitPromiseQueue.js.map +1 -1
  231. package/cjs/tools/NumberMap.js +1 -1
  232. package/cjs/tools/NumberMap.js.map +1 -1
  233. package/cjs/tools/Rect.js.map +1 -1
  234. package/cjs/tools/calc.js.map +1 -1
  235. package/cjs/tools/debounce.js.map +1 -1
  236. package/cjs/tools/diff-cell.js.map +1 -1
  237. package/cjs/tools/dom.js.map +1 -1
  238. package/cjs/tools/env.js.map +1 -1
  239. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  240. package/cjs/tools/get-data-path/index.js.map +1 -1
  241. package/cjs/tools/global.js.map +1 -1
  242. package/cjs/tools/helper.js.map +1 -1
  243. package/cjs/tools/icons.js.map +1 -1
  244. package/cjs/tools/isx.js.map +1 -1
  245. package/cjs/tools/pixel-ratio.js.map +1 -1
  246. package/cjs/tools/sort.js.map +1 -1
  247. package/cjs/tools/style.js.map +1 -1
  248. package/cjs/tools/util.js.map +1 -1
  249. package/cjs/ts-types/base-table.js +1 -1
  250. package/cjs/ts-types/base-table.js.map +1 -1
  251. package/cjs/ts-types/column/index.js.map +1 -1
  252. package/cjs/ts-types/column/style.js.map +1 -1
  253. package/cjs/ts-types/column/type.js.map +1 -1
  254. package/cjs/ts-types/common.js +1 -1
  255. package/cjs/ts-types/common.js.map +1 -1
  256. package/cjs/ts-types/component/axis.js.map +1 -1
  257. package/cjs/ts-types/component/legend.js.map +1 -1
  258. package/cjs/ts-types/component/title.js.map +1 -1
  259. package/cjs/ts-types/component/util.js.map +1 -1
  260. package/cjs/ts-types/customElement.js.map +1 -1
  261. package/cjs/ts-types/customLayout.js.map +1 -1
  262. package/cjs/ts-types/events.js.map +1 -1
  263. package/cjs/ts-types/icon.js.map +1 -1
  264. package/cjs/ts-types/index.js.map +1 -1
  265. package/cjs/ts-types/list-table/define/Composite-define.js.map +1 -1
  266. package/cjs/ts-types/list-table/define/basic-define.d.ts +3 -2
  267. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  268. package/cjs/ts-types/list-table/define/chart-define.js.map +1 -1
  269. package/cjs/ts-types/list-table/define/checkbox-define.js.map +1 -1
  270. package/cjs/ts-types/list-table/define/image-define.js.map +1 -1
  271. package/cjs/ts-types/list-table/define/index.js.map +1 -1
  272. package/cjs/ts-types/list-table/define/link-define.js.map +1 -1
  273. package/cjs/ts-types/list-table/define/multilinetext-define.js.map +1 -1
  274. package/cjs/ts-types/list-table/define/progressbar-define.js.map +1 -1
  275. package/cjs/ts-types/list-table/define/sparkline-define.js.map +1 -1
  276. package/cjs/ts-types/list-table/index.js.map +1 -1
  277. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  278. package/cjs/ts-types/list-table/layout-map/index.js.map +1 -1
  279. package/cjs/ts-types/menu.js.map +1 -1
  280. package/cjs/ts-types/new-data-set.js.map +1 -1
  281. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
  282. package/cjs/ts-types/pivot-table/corner.js.map +1 -1
  283. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  284. package/cjs/ts-types/pivot-table/dimension/image-dimension.js.map +1 -1
  285. package/cjs/ts-types/pivot-table/dimension/index.js.map +1 -1
  286. package/cjs/ts-types/pivot-table/dimension/link-dimension.js.map +1 -1
  287. package/cjs/ts-types/pivot-table/dimension/multilinetext-dimension.js.map +1 -1
  288. package/cjs/ts-types/pivot-table/index.js.map +1 -1
  289. package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  290. package/cjs/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -1
  291. package/cjs/ts-types/pivot-table/indicator/checkbox-indicator.js.map +1 -1
  292. package/cjs/ts-types/pivot-table/indicator/composite-indicator.js.map +1 -1
  293. package/cjs/ts-types/pivot-table/indicator/image-indicator.js.map +1 -1
  294. package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -1
  295. package/cjs/ts-types/pivot-table/indicator/link-indicator.js.map +1 -1
  296. package/cjs/ts-types/pivot-table/indicator/multilinetext-indicator.js.map +1 -1
  297. package/cjs/ts-types/pivot-table/indicator/progress-indicator.js.map +1 -1
  298. package/cjs/ts-types/pivot-table/indicator/sparkline-indicator.js.map +1 -1
  299. package/cjs/ts-types/pivot-table/title.js.map +1 -1
  300. package/cjs/ts-types/sparkline.js.map +1 -1
  301. package/cjs/ts-types/style-define.js.map +1 -1
  302. package/cjs/ts-types/table-engine.d.ts +5 -2
  303. package/cjs/ts-types/table-engine.js.map +1 -1
  304. package/cjs/ts-types/theme.js.map +1 -1
  305. package/cjs/ts-types/tooltip.js.map +1 -1
  306. package/dist/vtable.js +114 -39
  307. package/dist/vtable.min.js +2 -2
  308. package/es/ListTable.d.ts +3 -2
  309. package/es/ListTable.js +8 -3
  310. package/es/ListTable.js.map +1 -1
  311. package/es/PivotChart.js.map +1 -1
  312. package/es/PivotTable.js.map +1 -1
  313. package/es/body-helper/body-helper.js.map +1 -1
  314. package/es/body-helper/style/CheckboxStyle.js.map +1 -1
  315. package/es/body-helper/style/ImageStyle.js.map +1 -1
  316. package/es/body-helper/style/MultilineTextStyle.js.map +1 -1
  317. package/es/body-helper/style/NumberStyle.js.map +1 -1
  318. package/es/body-helper/style/ProgressBarStyle.js.map +1 -1
  319. package/es/body-helper/style/Style.js.map +1 -1
  320. package/es/body-helper/style.js.map +1 -1
  321. package/es/chartModule.js.map +1 -1
  322. package/es/components/axis/axis.js.map +1 -1
  323. package/es/components/axis/band-scale.js.map +1 -1
  324. package/es/components/axis/get-axis-attributes.js.map +1 -1
  325. package/es/components/axis/get-axis-component-size.js.map +1 -1
  326. package/es/components/axis/label-overlap.js.map +1 -1
  327. package/es/components/axis/linear-scale.js.map +1 -1
  328. package/es/components/legend/continue-legend/continue-legend.js.map +1 -1
  329. package/es/components/legend/continue-legend/get-continue-legend-attributes.js.map +1 -1
  330. package/es/components/legend/create-legend.js.map +1 -1
  331. package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  332. package/es/components/legend/discrete-legend/get-discrete-legend-attributes.js.map +1 -1
  333. package/es/components/menu/dom/BaseMenu.js.map +1 -1
  334. package/es/components/menu/dom/Menu.js.map +1 -1
  335. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  336. package/es/components/menu/dom/logic/MenuContainer.js.map +1 -1
  337. package/es/components/menu/dom/logic/MenuElement.js.map +1 -1
  338. package/es/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  339. package/es/components/title/title.js.map +1 -1
  340. package/es/components/tooltip/BaseTooltip.js.map +1 -1
  341. package/es/components/tooltip/Tooltip.js.map +1 -1
  342. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  343. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  344. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  345. package/es/components/util/orient.js.map +1 -1
  346. package/es/components/util/register.js.map +1 -1
  347. package/es/components/util/transform.js.map +1 -1
  348. package/es/core/BaseTable.d.ts +1 -1
  349. package/es/core/BaseTable.js +6 -2
  350. package/es/core/BaseTable.js.map +1 -1
  351. package/es/core/FouseInput.js.map +1 -1
  352. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  353. package/es/core/style.js.map +1 -1
  354. package/es/core/tableHelper.js.map +1 -1
  355. package/es/core.js.map +1 -1
  356. package/es/data/CachedDataSource.js.map +1 -1
  357. package/es/data/DataSource.js +1 -1
  358. package/es/data/DataSource.js.map +1 -1
  359. package/es/data/FilterDataSource.js.map +1 -1
  360. package/es/data.js.map +1 -1
  361. package/es/dataset/DataStatistics.js.map +1 -1
  362. package/es/dataset/dataset-pivot-table.js.map +1 -1
  363. package/es/dataset/dataset.js.map +1 -1
  364. package/es/dataset/flatDataToObject.js.map +1 -1
  365. package/es/dataset/statistics-helper.js.map +1 -1
  366. package/es/edit/edit-manager.js +10 -2
  367. package/es/edit/edit-manager.js.map +1 -1
  368. package/es/edit/editors.js.map +1 -1
  369. package/es/event/EventHandler.js.map +1 -1
  370. package/es/event/EventTarget.js.map +1 -1
  371. package/es/event/VChartEventProxy.js.map +1 -1
  372. package/es/event/drill.js.map +1 -1
  373. package/es/event/event.js.map +1 -1
  374. package/es/event/listener/container-dom.js.map +1 -1
  375. package/es/event/listener/scroll-bar.js.map +1 -1
  376. package/es/event/listener/table-group.js.map +1 -1
  377. package/es/event/listener/touch.js.map +1 -1
  378. package/es/event/media-click.js.map +1 -1
  379. package/es/event/pivot-chart/axis-click.js.map +1 -1
  380. package/es/event/pivot-chart/axis-hover.js.map +1 -1
  381. package/es/event/scroll.js.map +1 -1
  382. package/es/event/sparkline-event.js.map +1 -1
  383. package/es/event/util.js.map +1 -1
  384. package/es/header-helper/header-helper.js.map +1 -1
  385. package/es/header-helper/style/CheckboxStyle.js.map +1 -1
  386. package/es/header-helper/style/ImageStyle.js.map +1 -1
  387. package/es/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
  388. package/es/header-helper/style/SortHeaderStyle.js.map +1 -1
  389. package/es/header-helper/style/Style.js.map +1 -1
  390. package/es/header-helper/style.js.map +1 -1
  391. package/es/icons.js.map +1 -1
  392. package/es/index.d.ts +3 -3
  393. package/es/index.js +1 -1
  394. package/es/index.js.map +1 -1
  395. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  396. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  397. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  398. package/es/layout/chart-helper/zero-align.js.map +1 -1
  399. package/es/layout/index.js.map +1 -1
  400. package/es/layout/pivot-header-layout.d.ts +1 -0
  401. package/es/layout/pivot-header-layout.js +14 -11
  402. package/es/layout/pivot-header-layout.js.map +1 -1
  403. package/es/layout/pivot-layout-helper.js.map +1 -1
  404. package/es/layout/pivot-layout.js.map +1 -1
  405. package/es/layout/simple-header-layout.d.ts +1 -0
  406. package/es/layout/simple-header-layout.js +3 -0
  407. package/es/layout/simple-header-layout.js.map +1 -1
  408. package/es/plugins/chartModules.js.map +1 -1
  409. package/es/plugins/icons.js.map +1 -1
  410. package/es/plugins/themes.js.map +1 -1
  411. package/es/register.js.map +1 -1
  412. package/es/render/jsx/index.js.map +1 -1
  413. package/es/render/layout/arc.js.map +1 -1
  414. package/es/render/layout/circle.js.map +1 -1
  415. package/es/render/layout/container.js.map +1 -1
  416. package/es/render/layout/direction.js.map +1 -1
  417. package/es/render/layout/element.js.map +1 -1
  418. package/es/render/layout/group-element.js.map +1 -1
  419. package/es/render/layout/group.js.map +1 -1
  420. package/es/render/layout/icon.js.map +1 -1
  421. package/es/render/layout/image.js.map +1 -1
  422. package/es/render/layout/index.js.map +1 -1
  423. package/es/render/layout/line.js.map +1 -1
  424. package/es/render/layout/percent-calc.js.map +1 -1
  425. package/es/render/layout/rect.js.map +1 -1
  426. package/es/render/layout/tag.js.map +1 -1
  427. package/es/render/layout/text.js.map +1 -1
  428. package/es/scenegraph/component/cell-content.js.map +1 -1
  429. package/es/scenegraph/component/cell-mover.js.map +1 -1
  430. package/es/scenegraph/component/custom.js.map +1 -1
  431. package/es/scenegraph/component/drill-icon.js.map +1 -1
  432. package/es/scenegraph/component/menu.js.map +1 -1
  433. package/es/scenegraph/component/table-component.js.map +1 -1
  434. package/es/scenegraph/component/util.js.map +1 -1
  435. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
  436. package/es/scenegraph/debug-tool/index.js.map +1 -1
  437. package/es/scenegraph/graphic/chart.js.map +1 -1
  438. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  439. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  440. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  441. package/es/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -1
  442. package/es/scenegraph/graphic/contributions/index.js.map +1 -1
  443. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  444. package/es/scenegraph/graphic/group.js.map +1 -1
  445. package/es/scenegraph/graphic/icon.js +5 -5
  446. package/es/scenegraph/graphic/icon.js.map +1 -1
  447. package/es/scenegraph/graphic/text.js.map +1 -1
  448. package/es/scenegraph/group-creater/cell-helper.js +10 -3
  449. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  450. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  451. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  452. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  453. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  454. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  455. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  456. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  457. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  458. package/es/scenegraph/group-creater/column.js.map +1 -1
  459. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  460. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +1 -1
  461. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +29 -57
  462. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  463. package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  464. package/es/scenegraph/group-creater/progress/proxy.js +2 -4
  465. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  466. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  467. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  468. package/es/scenegraph/group-creater/progress/update-position/sort-horizontal.js.map +1 -1
  469. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  470. package/es/scenegraph/group-creater/progress/update-position/update-auto-column.js.map +1 -1
  471. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  472. package/es/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
  473. package/es/scenegraph/icon/icon-update.js +4 -4
  474. package/es/scenegraph/icon/icon-update.js.map +1 -1
  475. package/es/scenegraph/layout/auto-height.js.map +1 -1
  476. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  477. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  478. package/es/scenegraph/layout/frozen.js +20 -2
  479. package/es/scenegraph/layout/frozen.js.map +1 -1
  480. package/es/scenegraph/layout/move-cell.js.map +1 -1
  481. package/es/scenegraph/layout/update-height.js.map +1 -1
  482. package/es/scenegraph/layout/update-row.js +3 -4
  483. package/es/scenegraph/layout/update-row.js.map +1 -1
  484. package/es/scenegraph/layout/update-width.js.map +1 -1
  485. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  486. package/es/scenegraph/scenegraph.js +2 -2
  487. package/es/scenegraph/scenegraph.js.map +1 -1
  488. package/es/scenegraph/select/create-select-border.js.map +1 -1
  489. package/es/scenegraph/select/delete-select-border.js.map +1 -1
  490. package/es/scenegraph/select/move-select-border.js.map +1 -1
  491. package/es/scenegraph/select/update-select-border.js.map +1 -1
  492. package/es/scenegraph/stick-text/index.js.map +1 -1
  493. package/es/scenegraph/style/corner-cell.js.map +1 -1
  494. package/es/scenegraph/style/frame-border.js.map +1 -1
  495. package/es/scenegraph/utils/border-line.js.map +1 -1
  496. package/es/scenegraph/utils/break-string.js.map +1 -1
  497. package/es/scenegraph/utils/cell-pos.js.map +1 -1
  498. package/es/scenegraph/utils/deal-promise-data.js.map +1 -1
  499. package/es/scenegraph/utils/empty-group.js.map +1 -1
  500. package/es/scenegraph/utils/font.js.map +1 -1
  501. package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
  502. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  503. package/es/scenegraph/utils/get-prop.js.map +1 -1
  504. package/es/scenegraph/utils/icon.js.map +1 -1
  505. package/es/scenegraph/utils/is-merge-cell-group.js.map +1 -1
  506. package/es/scenegraph/utils/keep-aspect-ratio.js.map +1 -1
  507. package/es/scenegraph/utils/padding.js.map +1 -1
  508. package/es/scenegraph/utils/render-service.js.map +1 -1
  509. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  510. package/es/scenegraph/utils/text-measure.js.map +1 -1
  511. package/es/scenegraph/utils/text-pos.js.map +1 -1
  512. package/es/scenegraph/utils/update-container.js.map +1 -1
  513. package/es/state/cell-move/adjust-header.js.map +1 -1
  514. package/es/state/cell-move/index.js.map +1 -1
  515. package/es/state/common/check-in-select.js.map +1 -1
  516. package/es/state/drill/index.js.map +1 -1
  517. package/es/state/frozen/index.js.map +1 -1
  518. package/es/state/hover/col.js.map +1 -1
  519. package/es/state/hover/is-cell-hover.js.map +1 -1
  520. package/es/state/hover/row.js.map +1 -1
  521. package/es/state/hover/single.js.map +1 -1
  522. package/es/state/hover/update-cell.js.map +1 -1
  523. package/es/state/hover/update-position.js.map +1 -1
  524. package/es/state/resize/update-resize-column.js.map +1 -1
  525. package/es/state/select/update-position.js.map +1 -1
  526. package/es/state/sort/index.js.map +1 -1
  527. package/es/state/spark-line/index.js.map +1 -1
  528. package/es/state/state.js.map +1 -1
  529. package/es/themes/ARCO.js.map +1 -1
  530. package/es/themes/BRIGHT.js.map +1 -1
  531. package/es/themes/DARK.js.map +1 -1
  532. package/es/themes/DEFAULT.js.map +1 -1
  533. package/es/themes/SIMPLIFY.js.map +1 -1
  534. package/es/themes/theme.js.map +1 -1
  535. package/es/themes.js.map +1 -1
  536. package/es/tools/LimitPromiseQueue.js +1 -1
  537. package/es/tools/LimitPromiseQueue.js.map +1 -1
  538. package/es/tools/NumberMap.js +1 -1
  539. package/es/tools/NumberMap.js.map +1 -1
  540. package/es/tools/Rect.js.map +1 -1
  541. package/es/tools/calc.js.map +1 -1
  542. package/es/tools/debounce.js.map +1 -1
  543. package/es/tools/diff-cell.js.map +1 -1
  544. package/es/tools/dom.js.map +1 -1
  545. package/es/tools/env.js.map +1 -1
  546. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  547. package/es/tools/get-data-path/index.js.map +1 -1
  548. package/es/tools/global.js.map +1 -1
  549. package/es/tools/helper.js.map +1 -1
  550. package/es/tools/icons.js.map +1 -1
  551. package/es/tools/isx.js.map +1 -1
  552. package/es/tools/pixel-ratio.js.map +1 -1
  553. package/es/tools/sort.js.map +1 -1
  554. package/es/tools/style.js.map +1 -1
  555. package/es/tools/util.js.map +1 -1
  556. package/es/ts-types/base-table.js +1 -1
  557. package/es/ts-types/base-table.js.map +1 -1
  558. package/es/ts-types/column/index.js.map +1 -1
  559. package/es/ts-types/column/style.js.map +1 -1
  560. package/es/ts-types/column/type.js.map +1 -1
  561. package/es/ts-types/common.js +1 -1
  562. package/es/ts-types/common.js.map +1 -1
  563. package/es/ts-types/component/axis.js.map +1 -1
  564. package/es/ts-types/component/legend.js.map +1 -1
  565. package/es/ts-types/component/title.js.map +1 -1
  566. package/es/ts-types/component/util.js.map +1 -1
  567. package/es/ts-types/customElement.js.map +1 -1
  568. package/es/ts-types/customLayout.js.map +1 -1
  569. package/es/ts-types/events.js.map +1 -1
  570. package/es/ts-types/icon.js.map +1 -1
  571. package/es/ts-types/index.js.map +1 -1
  572. package/es/ts-types/list-table/define/Composite-define.js.map +1 -1
  573. package/es/ts-types/list-table/define/basic-define.d.ts +3 -2
  574. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  575. package/es/ts-types/list-table/define/chart-define.js.map +1 -1
  576. package/es/ts-types/list-table/define/checkbox-define.js.map +1 -1
  577. package/es/ts-types/list-table/define/image-define.js.map +1 -1
  578. package/es/ts-types/list-table/define/index.js.map +1 -1
  579. package/es/ts-types/list-table/define/link-define.js.map +1 -1
  580. package/es/ts-types/list-table/define/multilinetext-define.js.map +1 -1
  581. package/es/ts-types/list-table/define/progressbar-define.js.map +1 -1
  582. package/es/ts-types/list-table/define/sparkline-define.js.map +1 -1
  583. package/es/ts-types/list-table/index.js.map +1 -1
  584. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  585. package/es/ts-types/list-table/layout-map/index.js.map +1 -1
  586. package/es/ts-types/menu.js.map +1 -1
  587. package/es/ts-types/new-data-set.js.map +1 -1
  588. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
  589. package/es/ts-types/pivot-table/corner.js.map +1 -1
  590. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  591. package/es/ts-types/pivot-table/dimension/image-dimension.js.map +1 -1
  592. package/es/ts-types/pivot-table/dimension/index.js.map +1 -1
  593. package/es/ts-types/pivot-table/dimension/link-dimension.js.map +1 -1
  594. package/es/ts-types/pivot-table/dimension/multilinetext-dimension.js.map +1 -1
  595. package/es/ts-types/pivot-table/index.js.map +1 -1
  596. package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
  597. package/es/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -1
  598. package/es/ts-types/pivot-table/indicator/checkbox-indicator.js.map +1 -1
  599. package/es/ts-types/pivot-table/indicator/composite-indicator.js.map +1 -1
  600. package/es/ts-types/pivot-table/indicator/image-indicator.js.map +1 -1
  601. package/es/ts-types/pivot-table/indicator/index.js.map +1 -1
  602. package/es/ts-types/pivot-table/indicator/link-indicator.js.map +1 -1
  603. package/es/ts-types/pivot-table/indicator/multilinetext-indicator.js.map +1 -1
  604. package/es/ts-types/pivot-table/indicator/progress-indicator.js.map +1 -1
  605. package/es/ts-types/pivot-table/indicator/sparkline-indicator.js.map +1 -1
  606. package/es/ts-types/pivot-table/title.js.map +1 -1
  607. package/es/ts-types/sparkline.js.map +1 -1
  608. package/es/ts-types/style-define.js.map +1 -1
  609. package/es/ts-types/table-engine.d.ts +5 -2
  610. package/es/ts-types/table-engine.js.map +1 -1
  611. package/es/ts-types/theme.js.map +1 -1
  612. package/es/ts-types/tooltip.js.map +1 -1
  613. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["render/layout/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkC,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAS3C,MAAM,OAAO,IAAK,SAAQ,QAAQ;IAChC,YAAY,OAAoB;;QAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YACzB,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;SAC9B;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG;YACd,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAC9F,MAAA,MAAA,OAAO,CAAC,WAAW,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAChG,MAAA,MAAA,OAAO,CAAC,YAAY,mCAClB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;YACH,MAAA,MAAA,OAAO,CAAC,UAAU,mCAChB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;SACJ,CAAC;QACF,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QAChC,OAAO,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,MAAM,CAAC;QAEtC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,KAAmB;QACzB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF","file":"text.js","sourcesContent":["import { WrapText, type IWrapTextGraphicAttribute } from '@visactor/vrender';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { TagAttributes } from '@visactor/vrender-components';\nimport { isArray } from '@visactor/vutils';\n\ntype ITextOption = {\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n} & IWrapTextGraphicAttribute;\n\nexport class Text extends WrapText {\n constructor(options: ITextOption) {\n if (!options.textBaseline) {\n options.textBaseline = 'top';\n }\n const isPaddingNumber = isArray(options.boundsPadding);\n const padding = [\n options.marginTop ?? (isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) ?? 0,\n options.marginRight ?? (isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) ?? 0,\n options.marginBottom ??\n (isPaddingNumber ? options.boundsPadding[2] ?? options.boundsPadding[0] : options.boundsPadding) ??\n 0,\n options.marginLeft ??\n (isPaddingNumber ? options.boundsPadding[3] ?? options.boundsPadding[1] : options.boundsPadding) ??\n 0\n ];\n options.boundsPadding = padding;\n options.fill = options.fill ?? '#000';\n\n super(options);\n }\n getSize(table: BaseTableAPI) {\n this.AABBBounds.width();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/layout/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkC,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAS3C,MAAM,OAAO,IAAK,SAAQ,QAAQ;IAChC,YAAY,OAAoB;;QAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YACzB,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;SAC9B;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG;YACd,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAC9F,MAAA,MAAA,OAAO,CAAC,WAAW,mCAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAI,CAAC;YAChG,MAAA,MAAA,OAAO,CAAC,YAAY,mCAClB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;YACH,MAAA,MAAA,OAAO,CAAC,UAAU,mCAChB,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAChG,CAAC;SACJ,CAAC;QACF,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QAChC,OAAO,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,MAAM,CAAC;QAEtC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,KAAmB;QACzB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF","file":"text.js","sourcesContent":["import { WrapText, type IWrapTextGraphicAttribute } from '@visactor/vrender';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { TagAttributes } from '@visactor/vrender-components';\nimport { isArray } from '@visactor/vutils';\n\ntype ITextOption = {\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n} & IWrapTextGraphicAttribute;\n\nexport class Text extends WrapText {\n constructor(options: ITextOption) {\n if (!options.textBaseline) {\n options.textBaseline = 'top';\n }\n const isPaddingNumber = isArray(options.boundsPadding);\n const padding = [\n options.marginTop ?? (isPaddingNumber ? options.boundsPadding[0] : options.boundsPadding) ?? 0,\n options.marginRight ?? (isPaddingNumber ? options.boundsPadding[1] : options.boundsPadding) ?? 0,\n options.marginBottom ??\n (isPaddingNumber ? options.boundsPadding[2] ?? options.boundsPadding[0] : options.boundsPadding) ??\n 0,\n options.marginLeft ??\n (isPaddingNumber ? options.boundsPadding[3] ?? options.boundsPadding[1] : options.boundsPadding) ??\n 0\n ];\n options.boundsPadding = padding;\n options.fill = options.fill ?? '#000';\n\n super(options);\n }\n getSize(table: BaseTableAPI) {\n this.AABBBounds.width();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/component/cell-content.ts"],"names":[],"mappings":"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","file":"cell-content.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { IGroupGraphicAttribute } from '@visactor/vrender';\nimport { RichText } from '@visactor/vrender';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport { WrapText } from '../graphic/text';\n\n/*\n * cell区域规划\n * 左侧占位区 | 中央内容区 | 右侧占位区\n *\n * cell width设置\n * 1. 固定width\n * 2. 自动撑开\n * cell height设置\n * 1. 固定height\n * 2. 无折行,单行自动撑开\n * 2. 折行,多行自动撑开\n *\n * 中央内容区横向对齐方式\n * 纵向对齐方式\n * padding\n */\n\ninterface ICellContentOption {\n autoWidth: boolean;\n autoHeight: boolean;\n cellWidth: number;\n cellHeight: number;\n align: CanvasTextAlign;\n baseline: CanvasTextBaseline;\n}\n\n/**\n * @description: 单元格内容组件,包含content icon & wraptext/richtext\n * @return {*}\n */\nexport class CellContent extends Group {\n _leftGroup: Group;\n _rightGroup: Group;\n _centerGroup: Group;\n\n _autoWidth = false;\n _autoHeight = false;\n _cellWidth: number;\n _cellHeight: number;\n _align: CanvasTextAlign;\n _baseline: CanvasTextBaseline;\n\n constructor(params: IGroupGraphicAttribute) {\n super(params);\n\n this._leftGroup = new Group({\n pickable: false,\n fill: false,\n stroke: false\n });\n this._leftGroup.role = 'content-left';\n this._rightGroup = new Group({\n pickable: false,\n fill: false,\n stroke: false\n });\n this._rightGroup.role = 'content-right';\n this._centerGroup = new Group({\n pickable: false,\n fill: false,\n stroke: false\n });\n this._centerGroup.role = 'content-center';\n\n this.appendChild(this._leftGroup);\n this.appendChild(this._rightGroup);\n this.appendChild(this._centerGroup);\n }\n\n setCellContentOption(option: ICellContentOption) {\n this._autoWidth = option.autoWidth;\n this._autoHeight = option.autoHeight;\n this._cellWidth = option.cellWidth;\n this._cellHeight = option.cellHeight;\n this._align = option.align;\n this._baseline = option.baseline;\n }\n\n addLeftOccupyingIcon(icon: Icon) {\n icon.setAttribute('x', this._leftGroup.width + (icon.attribute.marginLeft ?? 0));\n this._leftGroup.appendChild(icon);\n this._leftGroup.setDeltaWidth(\n (icon.attribute.marginLeft ?? 0) + (icon.attribute.marginRight ?? 0) + icon.attribute.width\n );\n }\n\n addRightOccupyingIcon(icon: Icon) {\n icon.setAttribute('x', this._rightGroup.width + (icon.attribute.marginLeft ?? 0));\n this._rightGroup.appendChild(icon);\n this._rightGroup.setDeltaWidth(\n (icon.attribute.marginLeft ?? 0) + (icon.attribute.marginRight ?? 0) + icon.attribute.width\n );\n }\n\n addContent(content: Icon | WrapText | RichText) {\n const lastChild = this._centerGroup.lastChild as Icon | WrapText | RichText;\n if (lastChild) {\n // 横排content,新加入content更新x坐标\n content.setAttributes({\n x: lastChild.attribute.x + lastChild.AABBBounds.width()\n });\n }\n this._centerGroup.appendChild(content);\n if (content instanceof WrapText) {\n this._centerGroup.setAttribute('pickable', false);\n content.setAttribute('textAlign', 'left');\n }\n }\n\n layout() {\n // 计算左侧占位区域尺寸\n let leftOccupyingWidth = this._leftGroup.width;\n if (leftOccupyingWidth === Infinity) {\n leftOccupyingWidth = 0;\n }\n // 计算右侧占位区域尺寸\n let rightOccupyingWidth = this._rightGroup.width;\n if (rightOccupyingWidth === -Infinity) {\n rightOccupyingWidth = 0;\n }\n\n // 计算中央内容区域尺寸\n if (this._autoWidth) {\n // 计算内容本身宽度\n const centerWidth = this._centerGroup.width;\n // 更新cell宽度\n this._cellWidth = leftOccupyingWidth + rightOccupyingWidth + centerWidth;\n // this.attribute.width = this._cellWidth;\n this.setAttribute('width', this._cellWidth);\n } else {\n // 计算留给内容的宽度\n const contentWidth = this._cellWidth - leftOccupyingWidth - rightOccupyingWidth;\n // 更新内容宽度\n this.updateCenterLayout(contentWidth);\n const centerWidth = this._centerGroup.width;\n this._cellWidth = leftOccupyingWidth + rightOccupyingWidth + centerWidth;\n // this.attribute.width = this._cellWidth;\n this.setAttribute('width', this._cellWidth);\n }\n // 更新水平位置\n this.updateHorizontalPos();\n\n // if (this._autoHeight) {\n const leftOccupyingHeight = this._leftGroup.height;\n const rightOccupyingHeight = this._rightGroup.height;\n const centerHeight = this._centerGroup.height;\n\n this._cellHeight = Math.max(leftOccupyingHeight, rightOccupyingHeight, centerHeight);\n // this.attribute.height = this._cellHeight;\n this.setAttribute('height', this._cellHeight);\n // }\n\n // 更新纵向位置\n this.updateVerticalPos();\n }\n\n updateCenterLayout(contentWidth: number) {\n // 计算留给文字的空间\n let textWidth = contentWidth;\n this._centerGroup.forEachChildren(child => {\n if (child instanceof Icon) {\n textWidth -= child.AABBBounds.width();\n }\n });\n\n // 更新文字宽度\n const text = this._centerGroup.getChildByName('text');\n if (text instanceof RichText) {\n text.setAttribute('width', textWidth);\n } else if (text instanceof WrapText) {\n text.setAttribute('maxLineWidth', textWidth);\n }\n\n // 按顺序更新x\n let x = 0;\n this._centerGroup.forEachChildren((child: Icon | WrapText | RichText) => {\n child.setAttribute('x', x);\n x += child.AABBBounds.width();\n });\n }\n\n updateHorizontalPos() {\n this._leftGroup.setAttribute('x', 0);\n this._rightGroup.setAttribute('x', this._cellWidth - this._rightGroup.width);\n this._centerGroup.setAttribute('x', this._leftGroup.width);\n // 对齐方式由外部处理\n if (this._align === 'left' || this._align === 'start') {\n this.setAttribute('dx', 0);\n } else if (this._align === 'center') {\n this.setAttribute('dx', -this.attribute.width / 2);\n } else if (this._align === 'right' || this._align === 'end') {\n this.setAttribute('dx', -this.attribute.width);\n }\n }\n\n updateVerticalPos() {\n if (this._baseline === 'top') {\n this._leftGroup.setAttribute('y', 0);\n this._rightGroup.setAttribute('y', 0);\n this._centerGroup.setAttribute('y', 0);\n } else if (this._baseline === 'middle') {\n // 处理Group内icon对齐\n this._leftGroup.forEachChildren((icon: Icon) => {\n icon.setAttribute('y', (this._leftGroup.height - icon.AABBBounds.height()) / 2);\n });\n this._rightGroup.forEachChildren((icon: Icon) => {\n icon.setAttribute('y', (this._rightGroup.height - icon.AABBBounds.height()) / 2);\n });\n\n this._leftGroup.setAttribute('y', this._cellHeight / 2 - this._leftGroup.height / 2);\n this._rightGroup.setAttribute('y', this._cellHeight / 2 - this._rightGroup.height / 2);\n this._centerGroup.setAttribute('y', this._cellHeight / 2 - this._centerGroup.height / 2);\n } else if (this._baseline === 'bottom') {\n // 处理Group内icon对齐\n this._leftGroup.forEachChildren((icon: Icon) => {\n icon.setAttribute('y', this._leftGroup.height - icon.AABBBounds.height());\n });\n this._rightGroup.forEachChildren((icon: Icon) => {\n icon.setAttribute('y', this._rightGroup.height - icon.AABBBounds.height());\n });\n\n this._leftGroup.setAttribute('y', this._cellHeight - this._leftGroup.height);\n this._rightGroup.setAttribute('y', this._cellHeight - this._rightGroup.height);\n this._centerGroup.setAttribute('y', this._cellHeight - this._centerGroup.height);\n }\n }\n\n updateWidth(width: number) {\n this._cellWidth = width;\n this.layout();\n }\n\n updateHeight(height: number) {\n this._cellHeight = height;\n this.layout();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/cell-content.ts"],"names":[],"mappings":"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","file":"cell-content.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { IGroupGraphicAttribute } from '@visactor/vrender';\nimport { RichText } from '@visactor/vrender';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport { WrapText } from '../graphic/text';\n\n/*\n * cell区域规划\n * 左侧占位区 | 中央内容区 | 右侧占位区\n *\n * cell width设置\n * 1. 固定width\n * 2. 自动撑开\n * cell height设置\n * 1. 固定height\n * 2. 无折行,单行自动撑开\n * 2. 折行,多行自动撑开\n *\n * 中央内容区横向对齐方式\n * 纵向对齐方式\n * padding\n */\n\ninterface ICellContentOption {\n autoWidth: boolean;\n autoHeight: boolean;\n cellWidth: number;\n cellHeight: number;\n align: CanvasTextAlign;\n baseline: CanvasTextBaseline;\n}\n\n/**\n * @description: 单元格内容组件,包含content icon & wraptext/richtext\n * @return {*}\n */\nexport class CellContent extends Group {\n _leftGroup: Group;\n _rightGroup: Group;\n _centerGroup: Group;\n\n _autoWidth = false;\n _autoHeight = false;\n _cellWidth: number;\n _cellHeight: number;\n _align: CanvasTextAlign;\n _baseline: CanvasTextBaseline;\n\n constructor(params: IGroupGraphicAttribute) {\n super(params);\n\n this._leftGroup = new Group({\n pickable: false,\n fill: false,\n stroke: false\n });\n this._leftGroup.role = 'content-left';\n this._rightGroup = new Group({\n pickable: false,\n fill: false,\n stroke: false\n });\n this._rightGroup.role = 'content-right';\n this._centerGroup = new Group({\n pickable: false,\n fill: false,\n stroke: false\n });\n this._centerGroup.role = 'content-center';\n\n this.appendChild(this._leftGroup);\n this.appendChild(this._rightGroup);\n this.appendChild(this._centerGroup);\n }\n\n setCellContentOption(option: ICellContentOption) {\n this._autoWidth = option.autoWidth;\n this._autoHeight = option.autoHeight;\n this._cellWidth = option.cellWidth;\n this._cellHeight = option.cellHeight;\n this._align = option.align;\n this._baseline = option.baseline;\n }\n\n addLeftOccupyingIcon(icon: Icon) {\n icon.setAttribute('x', this._leftGroup.width + (icon.attribute.marginLeft ?? 0));\n this._leftGroup.appendChild(icon);\n this._leftGroup.setDeltaWidth(\n (icon.attribute.marginLeft ?? 0) + (icon.attribute.marginRight ?? 0) + icon.attribute.width\n );\n }\n\n addRightOccupyingIcon(icon: Icon) {\n icon.setAttribute('x', this._rightGroup.width + (icon.attribute.marginLeft ?? 0));\n this._rightGroup.appendChild(icon);\n this._rightGroup.setDeltaWidth(\n (icon.attribute.marginLeft ?? 0) + (icon.attribute.marginRight ?? 0) + icon.attribute.width\n );\n }\n\n addContent(content: Icon | WrapText | RichText) {\n const lastChild = this._centerGroup.lastChild as Icon | WrapText | RichText;\n if (lastChild) {\n // 横排content,新加入content更新x坐标\n content.setAttributes({\n x: lastChild.attribute.x + lastChild.AABBBounds.width()\n });\n }\n this._centerGroup.appendChild(content);\n if (content instanceof WrapText) {\n this._centerGroup.setAttribute('pickable', false);\n content.setAttribute('textAlign', 'left');\n }\n }\n\n layout() {\n // 计算左侧占位区域尺寸\n let leftOccupyingWidth = this._leftGroup.width;\n if (leftOccupyingWidth === Infinity) {\n leftOccupyingWidth = 0;\n }\n // 计算右侧占位区域尺寸\n let rightOccupyingWidth = this._rightGroup.width;\n if (rightOccupyingWidth === -Infinity) {\n rightOccupyingWidth = 0;\n }\n\n // 计算中央内容区域尺寸\n if (this._autoWidth) {\n // 计算内容本身宽度\n const centerWidth = this._centerGroup.width;\n // 更新cell宽度\n this._cellWidth = leftOccupyingWidth + rightOccupyingWidth + centerWidth;\n // this.attribute.width = this._cellWidth;\n this.setAttribute('width', this._cellWidth);\n } else {\n // 计算留给内容的宽度\n const contentWidth = this._cellWidth - leftOccupyingWidth - rightOccupyingWidth;\n // 更新内容宽度\n this.updateCenterLayout(contentWidth);\n const centerWidth = this._centerGroup.width;\n this._cellWidth = leftOccupyingWidth + rightOccupyingWidth + centerWidth;\n // this.attribute.width = this._cellWidth;\n this.setAttribute('width', this._cellWidth);\n }\n // 更新水平位置\n this.updateHorizontalPos();\n\n // if (this._autoHeight) {\n const leftOccupyingHeight = this._leftGroup.height;\n const rightOccupyingHeight = this._rightGroup.height;\n const centerHeight = this._centerGroup.height;\n\n this._cellHeight = Math.max(leftOccupyingHeight, rightOccupyingHeight, centerHeight);\n // this.attribute.height = this._cellHeight;\n this.setAttribute('height', this._cellHeight);\n // }\n\n // 更新纵向位置\n this.updateVerticalPos();\n }\n\n updateCenterLayout(contentWidth: number) {\n // 计算留给文字的空间\n let textWidth = contentWidth;\n this._centerGroup.forEachChildren(child => {\n if (child instanceof Icon) {\n textWidth -= child.AABBBounds.width();\n }\n });\n\n // 更新文字宽度\n const text = this._centerGroup.getChildByName('text');\n if (text instanceof RichText) {\n text.setAttribute('width', textWidth);\n } else if (text instanceof WrapText) {\n text.setAttribute('maxLineWidth', textWidth);\n }\n\n // 按顺序更新x\n let x = 0;\n this._centerGroup.forEachChildren((child: Icon | WrapText | RichText) => {\n child.setAttribute('x', x);\n x += child.AABBBounds.width();\n });\n }\n\n updateHorizontalPos() {\n this._leftGroup.setAttribute('x', 0);\n this._rightGroup.setAttribute('x', this._cellWidth - this._rightGroup.width);\n this._centerGroup.setAttribute('x', this._leftGroup.width);\n // 对齐方式由外部处理\n if (this._align === 'left' || this._align === 'start') {\n this.setAttribute('dx', 0);\n } else if (this._align === 'center') {\n this.setAttribute('dx', -this.attribute.width / 2);\n } else if (this._align === 'right' || this._align === 'end') {\n this.setAttribute('dx', -this.attribute.width);\n }\n }\n\n updateVerticalPos() {\n if (this._baseline === 'top') {\n this._leftGroup.setAttribute('y', 0);\n this._rightGroup.setAttribute('y', 0);\n this._centerGroup.setAttribute('y', 0);\n } else if (this._baseline === 'middle') {\n // 处理Group内icon对齐\n this._leftGroup.forEachChildren((icon: Icon) => {\n icon.setAttribute('y', (this._leftGroup.height - icon.AABBBounds.height()) / 2);\n });\n this._rightGroup.forEachChildren((icon: Icon) => {\n icon.setAttribute('y', (this._rightGroup.height - icon.AABBBounds.height()) / 2);\n });\n\n this._leftGroup.setAttribute('y', this._cellHeight / 2 - this._leftGroup.height / 2);\n this._rightGroup.setAttribute('y', this._cellHeight / 2 - this._rightGroup.height / 2);\n this._centerGroup.setAttribute('y', this._cellHeight / 2 - this._centerGroup.height / 2);\n } else if (this._baseline === 'bottom') {\n // 处理Group内icon对齐\n this._leftGroup.forEachChildren((icon: Icon) => {\n icon.setAttribute('y', this._leftGroup.height - icon.AABBBounds.height());\n });\n this._rightGroup.forEachChildren((icon: Icon) => {\n icon.setAttribute('y', this._rightGroup.height - icon.AABBBounds.height());\n });\n\n this._leftGroup.setAttribute('y', this._cellHeight - this._leftGroup.height);\n this._rightGroup.setAttribute('y', this._cellHeight - this._rightGroup.height);\n this._centerGroup.setAttribute('y', this._cellHeight - this._centerGroup.height);\n }\n }\n\n updateWidth(width: number) {\n this._cellWidth = width;\n this.layout();\n }\n\n updateHeight(height: number) {\n this._cellHeight = height;\n this.layout();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/component/cell-mover.ts"],"names":[],"mappings":"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","file":"cell-mover.js","sourcesContent":["import type { ILine, IRect, ISymbol } from '@visactor/vrender';\nimport { createLine, createRect, createSymbol } from '@visactor/vrender';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport type { Group } from '../graphic/group';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport class CellMover {\n columnMoverLabel: ISymbol;\n columnMoverLine: ILine;\n columnMoverBack: IRect;\n table: BaseTableAPI;\n x?: number;\n\n constructor(table: BaseTableAPI) {\n const columnMoverLineWidth = table.theme.dragHeaderSplitLine.lineWidth;\n const columnMoverLineColor = table.theme.dragHeaderSplitLine.lineColor;\n const columnMoverShadowBlockColor = table.theme.dragHeaderSplitLine.shadowBlockColor;\n\n this.columnMoverLabel = createSymbol({\n visible: false,\n pickable: false,\n x: 0,\n y: 0,\n symbolType: 'triangle',\n fill: columnMoverLineColor as string\n });\n this.columnMoverLine = createLine({\n visible: false,\n pickable: false,\n stroke: columnMoverLineColor as string,\n lineWidth: columnMoverLineWidth as number,\n x: 0,\n y: 0,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ]\n });\n\n // 列顺序调整阴影块\n this.columnMoverBack = createRect({\n visible: false,\n pickable: false,\n fill: columnMoverShadowBlockColor,\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n\n this.table = table;\n }\n\n appand(parent: Group) {\n parent.appendChild(this.columnMoverLabel);\n parent.appendChild(this.columnMoverLine);\n parent.appendChild(this.columnMoverBack);\n }\n\n show(col: number, row: number, delta: number) {\n const cellLocation = this.table.getCellLocation(col, row);\n const mergeInfo = getCellMergeInfo(this.table, col, row);\n if (mergeInfo) {\n col = mergeInfo.start.col;\n row = mergeInfo.start.row;\n }\n\n let rectX = 0;\n let rectY = 0;\n let rectWidth = 0;\n let rectHeight = 0;\n let rectDx = 0;\n let rectDy = 0;\n let symbolX = 0;\n let symbolY = 0;\n let symbolRotate = Math.PI;\n const linePoints: { x: number; y: number }[] = [];\n if (cellLocation === 'columnHeader') {\n rectX = this.table.getColsWidth(0, col - 1) - this.table.stateManeger.scroll.horizontalBarPos;\n rectY = this.table.getRowsHeight(0, this.table.frozenRowCount - 1);\n rectHeight = this.table.tableNoFrameHeight;\n if (mergeInfo) {\n rectWidth = this.table.getColsWidth(mergeInfo.start.col, mergeInfo.end.col);\n } else {\n rectWidth = this.table.getColWidth(col);\n }\n rectDx = rectX - delta;\n\n symbolX = rectX + rectWidth;\n symbolY = 2;\n\n linePoints.push({ x: 0, y: 0 });\n linePoints.push({ x: 0, y: this.table.tableNoFrameHeight });\n } else if (cellLocation === 'rowHeader') {\n rectY = this.table.getRowsHeight(0, row - 1) - this.table.stateManeger.scroll.verticalBarPos;\n rectX = this.table.getColsWidth(0, this.table.frozenColCount - 1);\n rectWidth = this.table.tableNoFrameWidth;\n if (mergeInfo) {\n rectHeight = this.table.getRowsHeight(mergeInfo.start.row, mergeInfo.end.row);\n } else {\n rectHeight = this.table.getRowHeight(row);\n }\n rectDy = rectY - delta;\n\n symbolX = 2;\n symbolY = rectY + rectHeight;\n symbolRotate = Math.PI / 2;\n\n linePoints.push({ x: 0, y: 0 });\n linePoints.push({ x: this.table.tableNoFrameWidth, y: 0 });\n }\n\n this.columnMoverBack.setAttributes({\n visible: true,\n x: rectX - rectDx,\n y: rectY - rectDy,\n width: rectWidth,\n height: rectHeight,\n dx: rectDx,\n dy: rectDy\n });\n this.columnMoverLine.setAttributes({\n x: symbolX,\n y: symbolY,\n visible: true,\n points: linePoints\n });\n this.columnMoverLabel.setAttributes({\n visible: true,\n x: symbolX,\n y: symbolY,\n angle: symbolRotate\n });\n }\n\n hide() {\n this.columnMoverLabel.setAttribute('visible', false);\n this.columnMoverLine.setAttribute('visible', false);\n this.columnMoverBack.setAttribute('visible', false);\n }\n\n update(backX: number | undefined, lineX: number | undefined, backY: number | undefined, lineY: number | undefined) {\n if (typeof backX === 'number' && typeof lineX === 'number') {\n this.columnMoverLabel.setAttribute('x', lineX - this.table.stateManeger.scroll.horizontalBarPos);\n this.columnMoverLine.setAttribute('x', lineX - this.table.stateManeger.scroll.horizontalBarPos);\n this.columnMoverBack.setAttribute('x', backX);\n } else if (typeof backY === 'number' && typeof lineY === 'number') {\n this.columnMoverLabel.setAttribute('y', lineY - this.table.stateManeger.scroll.verticalBarPos);\n this.columnMoverLine.setAttribute('y', lineY - this.table.stateManeger.scroll.verticalBarPos);\n this.columnMoverBack.setAttribute('y', backY);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/cell-mover.ts"],"names":[],"mappings":"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","file":"cell-mover.js","sourcesContent":["import type { ILine, IRect, ISymbol } from '@visactor/vrender';\nimport { createLine, createRect, createSymbol } from '@visactor/vrender';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport type { Group } from '../graphic/group';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport class CellMover {\n columnMoverLabel: ISymbol;\n columnMoverLine: ILine;\n columnMoverBack: IRect;\n table: BaseTableAPI;\n x?: number;\n\n constructor(table: BaseTableAPI) {\n const columnMoverLineWidth = table.theme.dragHeaderSplitLine.lineWidth;\n const columnMoverLineColor = table.theme.dragHeaderSplitLine.lineColor;\n const columnMoverShadowBlockColor = table.theme.dragHeaderSplitLine.shadowBlockColor;\n\n this.columnMoverLabel = createSymbol({\n visible: false,\n pickable: false,\n x: 0,\n y: 0,\n symbolType: 'triangle',\n fill: columnMoverLineColor as string\n });\n this.columnMoverLine = createLine({\n visible: false,\n pickable: false,\n stroke: columnMoverLineColor as string,\n lineWidth: columnMoverLineWidth as number,\n x: 0,\n y: 0,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ]\n });\n\n // 列顺序调整阴影块\n this.columnMoverBack = createRect({\n visible: false,\n pickable: false,\n fill: columnMoverShadowBlockColor,\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n\n this.table = table;\n }\n\n appand(parent: Group) {\n parent.appendChild(this.columnMoverLabel);\n parent.appendChild(this.columnMoverLine);\n parent.appendChild(this.columnMoverBack);\n }\n\n show(col: number, row: number, delta: number) {\n const cellLocation = this.table.getCellLocation(col, row);\n const mergeInfo = getCellMergeInfo(this.table, col, row);\n if (mergeInfo) {\n col = mergeInfo.start.col;\n row = mergeInfo.start.row;\n }\n\n let rectX = 0;\n let rectY = 0;\n let rectWidth = 0;\n let rectHeight = 0;\n let rectDx = 0;\n let rectDy = 0;\n let symbolX = 0;\n let symbolY = 0;\n let symbolRotate = Math.PI;\n const linePoints: { x: number; y: number }[] = [];\n if (cellLocation === 'columnHeader') {\n rectX = this.table.getColsWidth(0, col - 1) - this.table.stateManeger.scroll.horizontalBarPos;\n rectY = this.table.getRowsHeight(0, this.table.frozenRowCount - 1);\n rectHeight = this.table.tableNoFrameHeight;\n if (mergeInfo) {\n rectWidth = this.table.getColsWidth(mergeInfo.start.col, mergeInfo.end.col);\n } else {\n rectWidth = this.table.getColWidth(col);\n }\n rectDx = rectX - delta;\n\n symbolX = rectX + rectWidth;\n symbolY = 2;\n\n linePoints.push({ x: 0, y: 0 });\n linePoints.push({ x: 0, y: this.table.tableNoFrameHeight });\n } else if (cellLocation === 'rowHeader') {\n rectY = this.table.getRowsHeight(0, row - 1) - this.table.stateManeger.scroll.verticalBarPos;\n rectX = this.table.getColsWidth(0, this.table.frozenColCount - 1);\n rectWidth = this.table.tableNoFrameWidth;\n if (mergeInfo) {\n rectHeight = this.table.getRowsHeight(mergeInfo.start.row, mergeInfo.end.row);\n } else {\n rectHeight = this.table.getRowHeight(row);\n }\n rectDy = rectY - delta;\n\n symbolX = 2;\n symbolY = rectY + rectHeight;\n symbolRotate = Math.PI / 2;\n\n linePoints.push({ x: 0, y: 0 });\n linePoints.push({ x: this.table.tableNoFrameWidth, y: 0 });\n }\n\n this.columnMoverBack.setAttributes({\n visible: true,\n x: rectX - rectDx,\n y: rectY - rectDy,\n width: rectWidth,\n height: rectHeight,\n dx: rectDx,\n dy: rectDy\n });\n this.columnMoverLine.setAttributes({\n x: symbolX,\n y: symbolY,\n visible: true,\n points: linePoints\n });\n this.columnMoverLabel.setAttributes({\n visible: true,\n x: symbolX,\n y: symbolY,\n angle: symbolRotate\n });\n }\n\n hide() {\n this.columnMoverLabel.setAttribute('visible', false);\n this.columnMoverLine.setAttribute('visible', false);\n this.columnMoverBack.setAttribute('visible', false);\n }\n\n update(backX: number | undefined, lineX: number | undefined, backY: number | undefined, lineY: number | undefined) {\n if (typeof backX === 'number' && typeof lineX === 'number') {\n this.columnMoverLabel.setAttribute('x', lineX - this.table.stateManeger.scroll.horizontalBarPos);\n this.columnMoverLine.setAttribute('x', lineX - this.table.stateManeger.scroll.horizontalBarPos);\n this.columnMoverBack.setAttribute('x', backX);\n } else if (typeof backY === 'number' && typeof lineY === 'number') {\n this.columnMoverLabel.setAttribute('y', lineY - this.table.stateManeger.scroll.verticalBarPos);\n this.columnMoverLine.setAttribute('y', lineY - this.table.stateManeger.scroll.verticalBarPos);\n this.columnMoverBack.setAttribute('y', backY);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/component/custom.ts"],"names":[],"mappings":"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","file":"custom.js","sourcesContent":["import type { Cursor } from '@visactor/vrender';\nimport { createArc, createCircle, createLine, createRect, Group as VGroup } from '@visactor/vrender';\nimport { isFunction, isObject, isString, isValid } from '@visactor/vutils';\nimport type {\n ICustomLayout,\n ICustomRender,\n ICustomRenderElement,\n ICustomRenderElements,\n RectElement\n} from '../../ts-types';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport { WrapText } from '../graphic/text';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { percentCalcObj, Rect } from '../../render/layout';\n\nexport function dealWithCustom(\n customLayout: ICustomLayout,\n customRender: ICustomRender,\n col: number,\n row: number,\n width: number,\n height: number,\n autoWidth: boolean,\n autoHeight: boolean,\n table: BaseTableAPI\n) {\n let renderDefault = true;\n let expectedWidth: number;\n let expectedHeight: number;\n let customElements;\n let elementsGroup: VGroup;\n\n if (typeof customLayout === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customLayout(arg);\n if (customRenderObj.rootContainer) {\n customRenderObj.rootContainer = decodeReactDom(customRenderObj.rootContainer);\n }\n // expectedWidth = customRenderObj.expectedWidth;\n // expectedHeight = customRenderObj.expectedHeight;\n if (customRenderObj.rootContainer instanceof VGroup) {\n elementsGroup = customRenderObj.rootContainer;\n elementsGroup.name = 'custom-container';\n // } else if (customRenderObj.rootContainer) {\n // customElements = customRenderObj.rootContainer.getElements(undefined, false, false);\n }\n renderDefault = customRenderObj.renderDefault;\n } else if (typeof customRender === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customRender(arg);\n if (customRenderObj) {\n customElements = customRenderObj.elements;\n renderDefault = customRenderObj.renderDefault;\n expectedWidth = customRenderObj.expectedWidth;\n expectedHeight = customRenderObj.expectedHeight;\n }\n } else if (customRender) {\n expectedWidth = customRender.expectedWidth;\n expectedHeight = customRender.expectedHeight;\n customElements = customRender.elements;\n renderDefault = customRender.renderDefault;\n }\n\n if (customElements) {\n const value = table.getCellValue(col, row);\n elementsGroup = adjustElementToGroup(\n customElements,\n autoWidth ? expectedWidth : width,\n autoHeight ? expectedHeight : height,\n value\n );\n }\n\n // for percent calc\n dealPercentCalc(elementsGroup, width, height);\n\n return {\n elementsGroup,\n renderDefault\n };\n}\n\nfunction adjustElementToGroup(\n elements: ICustomRenderElements,\n width: number,\n height: number,\n value: any\n): VGroup | undefined {\n const customGroup = new VGroup({\n x: 0,\n y: 0,\n width,\n height,\n fill: false,\n stroke: false,\n pickable: false\n });\n customGroup.name = 'custom-container';\n\n const elementsAdjusted = adjustElementsPos(elements, width, height, value);\n elementsAdjusted.forEach(element => {\n switch (element.type) {\n case 'arc':\n const arc = createArc({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n outerRadius: element.radius as number,\n startAngle: element.startAngle as number,\n endAngle: element.endAngle as number,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(arc);\n break;\n case 'text':\n if (element.background) {\n const expandX = element.background?.expandX ?? 0;\n const expandY = element.background?.expandY ?? 0;\n const textBackRect = createRect({\n x: (element.x as number) - expandX,\n y: (element.y as number) - expandY,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width + expandX * 2,\n height: element.height + expandY * 2,\n cornerRadius: element.background?.cornerRadius ?? 0,\n // fill: true,\n fill: element.background?.fill ?? '#888'\n });\n customGroup.appendChild(textBackRect);\n }\n const text = new WrapText(\n Object.assign(\n {\n pickable: !!element.clickable,\n fill: element.color ?? element.fill\n },\n element as any\n )\n );\n customGroup.appendChild(text);\n break;\n case 'rect':\n const rect = createRect({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n cornerRadius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(rect);\n break;\n case 'circle':\n const circle = createCircle({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n radius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(circle);\n break;\n case 'icon':\n const icon = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.svg as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n icon.role = 'icon-custom';\n customGroup.appendChild(icon);\n break;\n case 'image':\n const image = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.src as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor,\n shape: element.shape\n });\n image.role = 'image-custom';\n customGroup.appendChild(image);\n break;\n\n case 'line':\n const line = createLine({\n points: element.points,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(line);\n break;\n }\n });\n\n return customGroup;\n}\n\nfunction adjustElementsPos(\n originalElements: ICustomRenderElements,\n // rect: RectProps,\n width: number,\n height: number,\n // borderLineWidths: number[],\n value: any\n): ICustomRenderElements {\n const result: ICustomRenderElements = [];\n // const { left, top, width, height } = rect;\n const left = 0;\n const top = 0;\n const borderLineWidths = [0, 0, 0, 0];\n\n for (let i = 0; i < originalElements.length; i++) {\n const originalElement = originalElements[i];\n const element = Object.assign({}, originalElement);\n // 执行相关函数\n for (const name in element) {\n if (element.hasOwnProperty(name) && isFunction(element[name])) {\n element[name] = (element[name] as Function)(value);\n }\n }\n\n // 转换字符串值(百分比、px)\n const rect = element as RectElement;\n if (isValid(rect.x)) {\n rect.x = isString(rect.x)\n ? transformString((rect as any).x as string, width - borderLineWidths[1])\n : Number(rect.x);\n }\n if (isValid(rect.y)) {\n rect.y = isString(rect.y)\n ? transformString((rect as any).y as string, height - borderLineWidths[2])\n : Number(rect.y);\n }\n if ('width' in element) {\n element.width = isString(element.width)\n ? transformString(element.width as string, width - borderLineWidths[1])\n : Number(element.width);\n }\n if ('height' in element) {\n element.height = isString(element.height)\n ? transformString(element.height as string, height - borderLineWidths[2])\n : Number(element.height);\n }\n if ('radius' in element) {\n element.radius = isString(element.radius)\n ? transformString(element.radius as string, Math.min(width - borderLineWidths[1], height - borderLineWidths[2]))\n : Number(element.radius);\n }\n if ('hover' in element) {\n // 转换字符串值(百分比、px)\n element.hover.x = isString(element.hover.x)\n ? transformString(element.hover.x as string, width - borderLineWidths[1])\n : Number(element.hover.x);\n element.hover.y = isString(element.hover.y)\n ? transformString(element.hover.y as string, height - borderLineWidths[2])\n : Number(element.hover.y);\n element.hover.width = isString(element.hover.width)\n ? transformString(element.hover.width as string, width - borderLineWidths[1])\n : Number(element.hover.width);\n\n element.hover.height = isString(element.hover.height)\n ? transformString(element.hover.height as string, height - borderLineWidths[2])\n : Number(element.hover.height);\n element.hover.x += left;\n element.hover.y += top;\n }\n // 矫正位置\n rect.x = rect.x + left;\n rect.y = rect.y + top;\n\n result.push(element as unknown as ICustomRenderElement);\n }\n\n return result;\n}\n\nfunction transformString(str: string, size?: number): number {\n if (str.endsWith('px')) {\n return parseInt(str, 10);\n } else if (str.endsWith('%') && size) {\n return (parseInt(str, 10) / 100) * size;\n }\n return parseInt(str, 10);\n}\n\nexport function dealPercentCalc(group: VGroup, parentWidth: number, parentHeight: number) {\n if (!group) {\n return;\n }\n group.forEachChildren((child: VGroup) => {\n if (isObject(child.attribute.width) && (child.attribute.width as percentCalcObj).percent) {\n child.setAttribute(\n 'width',\n ((child.attribute.width as percentCalcObj).percent / 100) * parentWidth +\n ((child.attribute.width as percentCalcObj).delta ?? 0)\n );\n }\n\n if (isObject(child.attribute.height) && (child.attribute.height as percentCalcObj).percent) {\n child.setAttribute(\n 'height',\n ((child.attribute.height as percentCalcObj).percent / 100) * parentHeight +\n ((child.attribute.height as percentCalcObj).delta ?? 0)\n );\n }\n\n if (child.type === 'group') {\n dealPercentCalc(child, child.attribute.width, child.attribute.height);\n }\n });\n}\n\n// temp devode for react jsx customLayout\nexport function decodeReactDom(dom: any) {\n if (!dom.$$typeof) {\n // not react\n return dom;\n }\n const type = dom.type;\n const { attribute, children } = dom.props;\n const g = type({ attribute });\n g.id = attribute.id;\n g.name = attribute.name;\n children &&\n children.length &&\n children.forEach((item: any) => {\n const c = decodeReactDom(item);\n g.add(c);\n });\n return g;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/custom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAS3E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,MAAM,UAAU,cAAc,CAC5B,YAA2B,EAC3B,YAA2B,EAC3B,GAAW,EACX,GAAW,EACX,KAAa,EACb,MAAc,EACd,SAAkB,EAClB,UAAmB,EACnB,KAAmB;IAEnB,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,aAAqB,CAAC;IAC1B,IAAI,cAAsB,CAAC;IAC3B,IAAI,cAAc,CAAC;IACnB,IAAI,aAAqB,CAAC;IAE1B,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;QACtC,MAAM,GAAG,GAAG;YACV,GAAG;YACH,GAAG;YACH,SAAS,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC7C,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;YACzC,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,MAAM;gBACd,KAAK;gBACL,MAAM;aACP;YACD,KAAK;SACN,CAAC;QACF,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,eAAe,CAAC,aAAa,EAAE;YACjC,eAAe,CAAC,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SAC/E;QAGD,IAAI,eAAe,CAAC,aAAa,YAAY,MAAM,EAAE;YACnD,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;YAC9C,aAAa,CAAC,IAAI,GAAG,kBAAkB,CAAC;SAGzC;QACD,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;KAC/C;SAAM,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;QAC7C,MAAM,GAAG,GAAG;YACV,GAAG;YACH,GAAG;YACH,SAAS,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC7C,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;YACzC,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,MAAM;gBACd,KAAK;gBACL,MAAM;aACP;YACD,KAAK;SACN,CAAC;QACF,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,eAAe,EAAE;YACnB,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC;YAC1C,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;YAC9C,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;YAC9C,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;SACjD;KACF;SAAM,IAAI,YAAY,EAAE;QACvB,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QAC3C,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;QAC7C,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC;QACvC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;KAC5C;IAED,IAAI,cAAc,EAAE;QAClB,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,aAAa,GAAG,oBAAoB,CAClC,cAAc,EACd,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EACjC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,EACpC,KAAK,CACN,CAAC;KACH;IAGD,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE9C,OAAO;QACL,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAA+B,EAC/B,KAAa,EACb,MAAc,EACd,KAAU;IAEV,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC;QAC7B,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK;QACL,MAAM;QACN,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IACH,WAAW,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAEtC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3E,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;;QACjC,QAAQ,OAAO,CAAC,IAAI,EAAE;YACpB,KAAK,KAAK;gBACR,MAAM,GAAG,GAAG,SAAS,CAAC;oBACpB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,IAAI,EAAE,OAAO,CAAC,IAAc;oBAC5B,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,WAAW,EAAE,OAAO,CAAC,MAAgB;oBACrC,UAAU,EAAE,OAAO,CAAC,UAAoB;oBACxC,QAAQ,EAAE,OAAO,CAAC,QAAkB;oBACpC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;oBAC7B,MAAM,EAAE,OAAO,CAAC,MAAgB;iBACjC,CAAC,CAAC;gBACH,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,OAAO,CAAC,UAAU,EAAE;oBACtB,MAAM,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,OAAO,mCAAI,CAAC,CAAC;oBACjD,MAAM,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,OAAO,mCAAI,CAAC,CAAC;oBACjD,MAAM,YAAY,GAAG,UAAU,CAAC;wBAC9B,CAAC,EAAG,OAAO,CAAC,CAAY,GAAG,OAAO;wBAClC,CAAC,EAAG,OAAO,CAAC,CAAY,GAAG,OAAO;wBAClC,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;wBAC/B,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;wBAC/B,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC;wBAClC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC;wBACpC,YAAY,EAAE,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,YAAY,mCAAI,CAAC;wBAEnD,IAAI,EAAE,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,IAAI,mCAAI,MAAM;qBACzC,CAAC,CAAC;oBACH,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;iBACvC;gBACD,MAAM,IAAI,GAAG,IAAI,QAAQ,CACvB,MAAM,CAAC,MAAM,CACX;oBACE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;oBAC7B,IAAI,EAAE,MAAA,OAAO,CAAC,KAAK,mCAAI,OAAO,CAAC,IAAI;iBACpC,EACD,OAAc,CACf,CACF,CAAC;gBACF,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,IAAI,GAAG,UAAU,CAAC;oBACtB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,KAAK,EAAE,OAAO,CAAC,KAAe;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,YAAY,EAAE,OAAO,CAAC,MAAgB;oBACtC,IAAI,EAAE,OAAO,CAAC,IAAc;oBAC5B,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;oBAC7B,MAAM,EAAE,OAAO,CAAC,MAAgB;iBACjC,CAAC,CAAC;gBACH,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,MAAM,GAAG,YAAY,CAAC;oBAC1B,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,IAAI,EAAE,OAAO,CAAC,IAAc;oBAC5B,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;oBAC7B,MAAM,EAAE,OAAO,CAAC,MAAgB;iBACjC,CAAC,CAAC;gBACH,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;oBACpB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,KAAK,EAAE,OAAO,CAAC,KAAe;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,KAAK,EAAE,OAAO,CAAC,GAAa;oBAC5B,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAA,OAAO,CAAC,KAAK,CAAC,KAAK,mCAAI,OAAO,CAAC,KAAK,CAAY,CAAC,CAAC,CAAC,SAAS;oBAC/F,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAA,OAAO,CAAC,KAAK,CAAC,KAAK,mCAAI,OAAO,CAAC,KAAK,CAAY,CAAC,CAAC,CAAC,SAAS;oBAChG,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,KAAK,CAAC,OAAO,mCAAI,oBAAoB,CAAC,CAAC,CAAC,SAAS;oBAC1F,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;oBAC7B,MAAM,EAAE,OAAO,CAAC,MAAgB;iBACjC,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;gBAC1B,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC;oBACrB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,CAAC,EAAE,OAAO,CAAC,CAAW;oBACtB,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,EAAE,EAAE,CAAC,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC,CAAW;oBAC/B,KAAK,EAAE,OAAO,CAAC,KAAe;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,KAAK,EAAE,OAAO,CAAC,GAAa;oBAC5B,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAA,OAAO,CAAC,KAAK,CAAC,KAAK,mCAAI,OAAO,CAAC,KAAK,CAAY,CAAC,CAAC,CAAC,SAAS;oBAC/F,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAA,OAAO,CAAC,KAAK,CAAC,KAAK,mCAAI,OAAO,CAAC,KAAK,CAAY,CAAC,CAAC,CAAC,SAAS;oBAChG,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,KAAK,CAAC,OAAO,mCAAI,oBAAoB,CAAC,CAAC,CAAC,SAAS;oBAC1F,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;oBAC7B,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC;gBAC5B,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM;YAER,KAAK,MAAM;gBACT,MAAM,IAAI,GAAG,UAAU,CAAC;oBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,MAAM,EAAE,OAAO,CAAC,MAAgB;oBAChC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;oBAC7B,MAAM,EAAE,OAAO,CAAC,MAAgB;iBACjC,CAAC,CAAC;gBACH,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;SACT;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB,CACxB,gBAAuC,EAEvC,KAAa,EACb,MAAc,EAEd,KAAU;IAEV,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,MAAM,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QAEnD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;YAC1B,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC7D,OAAO,CAAC,IAAI,CAAC,GAAI,OAAO,CAAC,IAAI,CAAc,CAAC,KAAK,CAAC,CAAC;aACpD;SACF;QAGD,MAAM,IAAI,GAAG,OAAsB,CAAC;QACpC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,eAAe,CAAE,IAAY,CAAC,CAAW,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACpB;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,eAAe,CAAE,IAAY,CAAC,CAAW,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC1E,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACpB;QACD,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAe,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACvE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,IAAI,QAAQ,IAAI,OAAO,EAAE;YACvB,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAgB,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC5B;QACD,IAAI,QAAQ,IAAI,OAAO,EAAE;YACvB,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC5B;QACD,IAAI,OAAO,IAAI,OAAO,EAAE;YAEtB,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAW,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAW,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC1E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBACjD,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAe,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC7E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEhC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnD,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,MAAgB,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;SACxB;QAED,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QAEtB,MAAM,CAAC,IAAI,CAAC,OAA0C,CAAC,CAAC;KACzD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,IAAa;IACjD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;KAC1B;SAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;QACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;KACzC;IACD,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,WAAmB,EAAE,YAAoB;IACtF,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IACD,KAAK,CAAC,eAAe,CAAC,CAAC,KAAa,EAAE,EAAE;;QACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,KAAK,CAAC,SAAS,CAAC,KAAwB,CAAC,OAAO,EAAE;YACxF,KAAK,CAAC,YAAY,CAChB,OAAO,EACP,CAAE,KAAK,CAAC,SAAS,CAAC,KAAwB,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,WAAW;gBACrE,CAAC,MAAC,KAAK,CAAC,SAAS,CAAC,KAAwB,CAAC,KAAK,mCAAI,CAAC,CAAC,CACzD,CAAC;SACH;QAED,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAK,KAAK,CAAC,SAAS,CAAC,MAAyB,CAAC,OAAO,EAAE;YAC1F,KAAK,CAAC,YAAY,CAChB,QAAQ,EACR,CAAE,KAAK,CAAC,SAAS,CAAC,MAAyB,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,YAAY;gBACvE,CAAC,MAAC,KAAK,CAAC,SAAS,CAAC,MAAyB,CAAC,KAAK,mCAAI,CAAC,CAAC,CAC1D,CAAC;SACH;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACvE;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,UAAU,cAAc,CAAC,GAAQ;IACrC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;QAEjB,OAAO,GAAG,CAAC;KACZ;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IACpB,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IACxB,QAAQ;QACN,QAAQ,CAAC,MAAM;QACf,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAC7B,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,CAAC;AACX,CAAC","file":"custom.js","sourcesContent":["import type { Cursor } from '@visactor/vrender';\nimport { createArc, createCircle, createLine, createRect, Group as VGroup } from '@visactor/vrender';\nimport { isFunction, isObject, isString, isValid } from '@visactor/vutils';\nimport type {\n ICustomLayout,\n ICustomRender,\n ICustomRenderElement,\n ICustomRenderElements,\n RectElement\n} from '../../ts-types';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport { WrapText } from '../graphic/text';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { percentCalcObj, Rect } from '../../render/layout';\n\nexport function dealWithCustom(\n customLayout: ICustomLayout,\n customRender: ICustomRender,\n col: number,\n row: number,\n width: number,\n height: number,\n autoWidth: boolean,\n autoHeight: boolean,\n table: BaseTableAPI\n) {\n let renderDefault = true;\n let expectedWidth: number;\n let expectedHeight: number;\n let customElements;\n let elementsGroup: VGroup;\n\n if (typeof customLayout === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customLayout(arg);\n if (customRenderObj.rootContainer) {\n customRenderObj.rootContainer = decodeReactDom(customRenderObj.rootContainer);\n }\n // expectedWidth = customRenderObj.expectedWidth;\n // expectedHeight = customRenderObj.expectedHeight;\n if (customRenderObj.rootContainer instanceof VGroup) {\n elementsGroup = customRenderObj.rootContainer;\n elementsGroup.name = 'custom-container';\n // } else if (customRenderObj.rootContainer) {\n // customElements = customRenderObj.rootContainer.getElements(undefined, false, false);\n }\n renderDefault = customRenderObj.renderDefault;\n } else if (typeof customRender === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customRender(arg);\n if (customRenderObj) {\n customElements = customRenderObj.elements;\n renderDefault = customRenderObj.renderDefault;\n expectedWidth = customRenderObj.expectedWidth;\n expectedHeight = customRenderObj.expectedHeight;\n }\n } else if (customRender) {\n expectedWidth = customRender.expectedWidth;\n expectedHeight = customRender.expectedHeight;\n customElements = customRender.elements;\n renderDefault = customRender.renderDefault;\n }\n\n if (customElements) {\n const value = table.getCellValue(col, row);\n elementsGroup = adjustElementToGroup(\n customElements,\n autoWidth ? expectedWidth : width,\n autoHeight ? expectedHeight : height,\n value\n );\n }\n\n // for percent calc\n dealPercentCalc(elementsGroup, width, height);\n\n return {\n elementsGroup,\n renderDefault\n };\n}\n\nfunction adjustElementToGroup(\n elements: ICustomRenderElements,\n width: number,\n height: number,\n value: any\n): VGroup | undefined {\n const customGroup = new VGroup({\n x: 0,\n y: 0,\n width,\n height,\n fill: false,\n stroke: false,\n pickable: false\n });\n customGroup.name = 'custom-container';\n\n const elementsAdjusted = adjustElementsPos(elements, width, height, value);\n elementsAdjusted.forEach(element => {\n switch (element.type) {\n case 'arc':\n const arc = createArc({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n outerRadius: element.radius as number,\n startAngle: element.startAngle as number,\n endAngle: element.endAngle as number,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(arc);\n break;\n case 'text':\n if (element.background) {\n const expandX = element.background?.expandX ?? 0;\n const expandY = element.background?.expandY ?? 0;\n const textBackRect = createRect({\n x: (element.x as number) - expandX,\n y: (element.y as number) - expandY,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width + expandX * 2,\n height: element.height + expandY * 2,\n cornerRadius: element.background?.cornerRadius ?? 0,\n // fill: true,\n fill: element.background?.fill ?? '#888'\n });\n customGroup.appendChild(textBackRect);\n }\n const text = new WrapText(\n Object.assign(\n {\n pickable: !!element.clickable,\n fill: element.color ?? element.fill\n },\n element as any\n )\n );\n customGroup.appendChild(text);\n break;\n case 'rect':\n const rect = createRect({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n cornerRadius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(rect);\n break;\n case 'circle':\n const circle = createCircle({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n radius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(circle);\n break;\n case 'icon':\n const icon = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.svg as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n icon.role = 'icon-custom';\n customGroup.appendChild(icon);\n break;\n case 'image':\n const image = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.src as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor,\n shape: element.shape\n });\n image.role = 'image-custom';\n customGroup.appendChild(image);\n break;\n\n case 'line':\n const line = createLine({\n points: element.points,\n stroke: element.stroke as string,\n pickable: !!element.clickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(line);\n break;\n }\n });\n\n return customGroup;\n}\n\nfunction adjustElementsPos(\n originalElements: ICustomRenderElements,\n // rect: RectProps,\n width: number,\n height: number,\n // borderLineWidths: number[],\n value: any\n): ICustomRenderElements {\n const result: ICustomRenderElements = [];\n // const { left, top, width, height } = rect;\n const left = 0;\n const top = 0;\n const borderLineWidths = [0, 0, 0, 0];\n\n for (let i = 0; i < originalElements.length; i++) {\n const originalElement = originalElements[i];\n const element = Object.assign({}, originalElement);\n // 执行相关函数\n for (const name in element) {\n if (element.hasOwnProperty(name) && isFunction(element[name])) {\n element[name] = (element[name] as Function)(value);\n }\n }\n\n // 转换字符串值(百分比、px)\n const rect = element as RectElement;\n if (isValid(rect.x)) {\n rect.x = isString(rect.x)\n ? transformString((rect as any).x as string, width - borderLineWidths[1])\n : Number(rect.x);\n }\n if (isValid(rect.y)) {\n rect.y = isString(rect.y)\n ? transformString((rect as any).y as string, height - borderLineWidths[2])\n : Number(rect.y);\n }\n if ('width' in element) {\n element.width = isString(element.width)\n ? transformString(element.width as string, width - borderLineWidths[1])\n : Number(element.width);\n }\n if ('height' in element) {\n element.height = isString(element.height)\n ? transformString(element.height as string, height - borderLineWidths[2])\n : Number(element.height);\n }\n if ('radius' in element) {\n element.radius = isString(element.radius)\n ? transformString(element.radius as string, Math.min(width - borderLineWidths[1], height - borderLineWidths[2]))\n : Number(element.radius);\n }\n if ('hover' in element) {\n // 转换字符串值(百分比、px)\n element.hover.x = isString(element.hover.x)\n ? transformString(element.hover.x as string, width - borderLineWidths[1])\n : Number(element.hover.x);\n element.hover.y = isString(element.hover.y)\n ? transformString(element.hover.y as string, height - borderLineWidths[2])\n : Number(element.hover.y);\n element.hover.width = isString(element.hover.width)\n ? transformString(element.hover.width as string, width - borderLineWidths[1])\n : Number(element.hover.width);\n\n element.hover.height = isString(element.hover.height)\n ? transformString(element.hover.height as string, height - borderLineWidths[2])\n : Number(element.hover.height);\n element.hover.x += left;\n element.hover.y += top;\n }\n // 矫正位置\n rect.x = rect.x + left;\n rect.y = rect.y + top;\n\n result.push(element as unknown as ICustomRenderElement);\n }\n\n return result;\n}\n\nfunction transformString(str: string, size?: number): number {\n if (str.endsWith('px')) {\n return parseInt(str, 10);\n } else if (str.endsWith('%') && size) {\n return (parseInt(str, 10) / 100) * size;\n }\n return parseInt(str, 10);\n}\n\nexport function dealPercentCalc(group: VGroup, parentWidth: number, parentHeight: number) {\n if (!group) {\n return;\n }\n group.forEachChildren((child: VGroup) => {\n if (isObject(child.attribute.width) && (child.attribute.width as percentCalcObj).percent) {\n child.setAttribute(\n 'width',\n ((child.attribute.width as percentCalcObj).percent / 100) * parentWidth +\n ((child.attribute.width as percentCalcObj).delta ?? 0)\n );\n }\n\n if (isObject(child.attribute.height) && (child.attribute.height as percentCalcObj).percent) {\n child.setAttribute(\n 'height',\n ((child.attribute.height as percentCalcObj).percent / 100) * parentHeight +\n ((child.attribute.height as percentCalcObj).delta ?? 0)\n );\n }\n\n if (child.type === 'group') {\n dealPercentCalc(child, child.attribute.width, child.attribute.height);\n }\n });\n}\n\n// temp devode for react jsx customLayout\nexport function decodeReactDom(dom: any) {\n if (!dom.$$typeof) {\n // not react\n return dom;\n }\n const type = dom.type;\n const { attribute, children } = dom.props;\n const g = type({ attribute });\n g.id = attribute.id;\n g.name = attribute.name;\n children &&\n children.length &&\n children.forEach((item: any) => {\n const c = decodeReactDom(item);\n g.add(c);\n });\n return g;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/component/drill-icon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAKrC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AAE/B,MAAM,OAAO,SAAS;IAGpB;QACE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAoB,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,IAAI;YACR,CAAC,EAAE,CAAC,IAAI;YACR,KAAK,EAAE,UAAU,CAAC,GAAG;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;YACzB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM,EAAE,UAAU,CAAC,MAAgB;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAa;QAClB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,OAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,SAAkB,EAAE,OAAgB,EAAE,KAAiB;QACpG,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACtB,CAAC,EAAE,CAAC,IAAI;gBACR,CAAC,EAAE,CAAC,IAAI;gBACR,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;SACR;QAED,MAAM,eAAe,GAAG,UAAU,CAAC,SAAoB,CAAC;QACxD,MAAM,aAAa,GAAG,UAAU,CAAC,OAAkB,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YACtB,CAAC;YACD,CAAC;YACD,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG;YAC1D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/C,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;CACF","file":"drill-icon.js","sourcesContent":["import type { Cursor } from '@visactor/vrender';\nimport { Icon } from '../graphic/icon';\nimport * as icons from '../../icons';\nimport type { SvgIcon } from '../../ts-types';\nimport type { Group } from '../graphic/group';\nimport type { Scenegraph } from '../scenegraph';\n\nconst regedIcons = icons.get();\n\nexport class DrillIcon {\n icon: Icon;\n\n constructor() {\n const iconOption = regedIcons.drillDown as SvgIcon;\n this.icon = new Icon({\n x: -1000,\n y: -1000,\n image: iconOption.svg,\n width: iconOption.width,\n height: iconOption.height,\n dx: -iconOption.width / 2,\n dy: -iconOption.height / 2,\n visible: false,\n funcType: iconOption.funcType,\n cursor: iconOption.cursor as Cursor\n });\n this.icon.role = 'icon-drill';\n }\n\n appand(parent: Group) {\n parent.appendChild(this.icon);\n }\n\n update(visible: boolean, x: number, y: number, drillDown: boolean, drillUp: boolean, scene: Scenegraph) {\n if (!visible || (drillDown && drillUp)) {\n this.icon.setAttributes({\n x: -1000,\n y: -1000,\n visible: false\n });\n scene.updateNextFrame();\n return;\n }\n\n const drillDownOption = regedIcons.drillDown as SvgIcon;\n const drillUpOption = regedIcons.drillUp as SvgIcon;\n this.icon.setAttributes({\n x,\n y,\n image: drillDown ? drillDownOption.svg : drillUpOption.svg,\n visible: true\n });\n this.icon.loadImage(this.icon.attribute.image);\n scene.updateNextFrame();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/drill-icon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAKrC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AAE/B,MAAM,OAAO,SAAS;IAGpB;QACE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAoB,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,IAAI;YACR,CAAC,EAAE,CAAC,IAAI;YACR,KAAK,EAAE,UAAU,CAAC,GAAG;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;YACzB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM,EAAE,UAAU,CAAC,MAAgB;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAa;QAClB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,OAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,SAAkB,EAAE,OAAgB,EAAE,KAAiB;QACpG,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACtB,CAAC,EAAE,CAAC,IAAI;gBACR,CAAC,EAAE,CAAC,IAAI;gBACR,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;SACR;QAED,MAAM,eAAe,GAAG,UAAU,CAAC,SAAoB,CAAC;QACxD,MAAM,aAAa,GAAG,UAAU,CAAC,OAAkB,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YACtB,CAAC;YACD,CAAC;YACD,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG;YAC1D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/C,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;CACF","file":"drill-icon.js","sourcesContent":["import type { Cursor } from '@visactor/vrender';\nimport { Icon } from '../graphic/icon';\nimport * as icons from '../../icons';\nimport type { SvgIcon } from '../../ts-types';\nimport type { Group } from '../graphic/group';\nimport type { Scenegraph } from '../scenegraph';\n\nconst regedIcons = icons.get();\n\nexport class DrillIcon {\n icon: Icon;\n\n constructor() {\n const iconOption = regedIcons.drillDown as SvgIcon;\n this.icon = new Icon({\n x: -1000,\n y: -1000,\n image: iconOption.svg,\n width: iconOption.width,\n height: iconOption.height,\n dx: -iconOption.width / 2,\n dy: -iconOption.height / 2,\n visible: false,\n funcType: iconOption.funcType,\n cursor: iconOption.cursor as Cursor\n });\n this.icon.role = 'icon-drill';\n }\n\n appand(parent: Group) {\n parent.appendChild(this.icon);\n }\n\n update(visible: boolean, x: number, y: number, drillDown: boolean, drillUp: boolean, scene: Scenegraph) {\n if (!visible || (drillDown && drillUp)) {\n this.icon.setAttributes({\n x: -1000,\n y: -1000,\n visible: false\n });\n scene.updateNextFrame();\n return;\n }\n\n const drillDownOption = regedIcons.drillDown as SvgIcon;\n const drillUpOption = regedIcons.drillUp as SvgIcon;\n this.icon.setAttributes({\n x,\n y,\n image: drillDown ? drillDownOption.svg : drillUpOption.svg,\n visible: true\n });\n this.icon.loadImage(this.icon.attribute.image);\n scene.updateNextFrame();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/component/menu.ts"],"names":[],"mappings":"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","file":"menu.js","sourcesContent":["import type { FederatedEvent, IGroup } from '@visactor/vrender';\nimport { createRect, Text } from '@visactor/vrender';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { MenuListItem } from '../../ts-types';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\n/**\n * 菜单类型\n * dropDown 下拉菜单\n * contextmenu 右键菜单\n * custom 自定义菜单\n */\nexport enum MenuType {\n 'dropDown' = 'dropDown',\n 'contextmenu' = 'contextmenu',\n 'custom' = 'custom'\n}\n\ntype MenuInfo = MenuListItem[];\n\nconst menuStyle = {\n fontSize: 12,\n fontFamily: 'Arial,sans-serif',\n color: '#000',\n highlightColor: '#2E68CF',\n hoverBgColor: '#EEE',\n lineHeight: 12 + 9 + 9,\n bgColor: '#FFF',\n cornerRadius: 4,\n borderWidth: 0.5,\n borderColor: '#CCC',\n menuPadding: 6,\n menuItemPadding: 9,\n maxLineWidth: 200\n};\n\nexport class MenuHandler {\n private _table: BaseTableAPI;\n private _menuInstance: IGroup;\n private _menuInfo: {\n x: number;\n y: number;\n col: number;\n row: number;\n type: MenuType;\n menuInfo: MenuListItem[];\n highlightIndex: number;\n };\n // private _attachInfo?: AttachInfo | null;\n\n constructor(table: BaseTableAPI) {\n this._table = table;\n this._menuInstance = new Group({\n x: 0,\n y: 0,\n // visible: false,\n fill: menuStyle.bgColor,\n stroke: menuStyle.borderColor,\n cornerRadius: menuStyle.cornerRadius,\n lineWidth: menuStyle.borderWidth\n });\n this._menuInfo = {\n x: -1,\n y: -1,\n col: -1,\n row: -1,\n type: MenuType.dropDown,\n menuInfo: [],\n highlightIndex: -1\n };\n\n // this._menuInstance.setTheme({\n // rect: {\n // width: 100,\n // },\n // });\n\n // 绑定事件\n // this._bindTableEvent(table);\n }\n\n bindTableComponent(componentGroup: Group) {\n componentGroup.appendChild(this._menuInstance);\n\n this.bindEvent();\n }\n\n release() {\n // do nothing\n }\n\n attach(x: number, y: number, col: number, row: number, type: MenuType, menuInfo?: MenuInfo) {\n if (type === MenuType.dropDown && this.checkDropDownMenuChange(col, row)) {\n // 菜单内容变化,更新菜单Group\n const tableMenuInfo = this.getMenuInfo(col, row, type);\n if (!tableMenuInfo) {\n return;\n }\n const { menuInfo, highlightIndex } = tableMenuInfo;\n this.updateMenuInfo(col, row, type, menuInfo, highlightIndex);\n this.updateMenuInstance(menuInfo, highlightIndex);\n // this.updatePosition(x - this._table.scenegraph.x, y - this._table.scenegraph.y);\n } else if (type === MenuType.contextmenu) {\n if (this.checkContextMenuChange(x, y)) {\n const tableMenuInfo = this.getMenuInfo(col, row, type);\n if (!tableMenuInfo) {\n return;\n }\n const { menuInfo, highlightIndex } = tableMenuInfo;\n this.updateMenuInfo(col, row, type, menuInfo, highlightIndex);\n this.updateMenuInstance(menuInfo, highlightIndex);\n }\n }\n this.updatePosition(x - this._table.scenegraph.x, y - this._table.scenegraph.y);\n\n this.addToScene();\n }\n\n updateMenuInfo(col: number, row: number, type: MenuType, menuInfo: MenuListItem[], highlightIndex: number) {\n this._menuInfo.col = col;\n this._menuInfo.row = row;\n this._menuInfo.type = type;\n this._menuInfo.menuInfo = menuInfo;\n this._menuInfo.highlightIndex = highlightIndex;\n }\n\n checkDropDownMenuChange(col: number, row: number) {\n const { type, col: curCol, row: curRow } = this._menuInfo;\n if (type === MenuType.dropDown && col === curCol && row === curRow) {\n return false;\n }\n return true;\n }\n\n checkContextMenuChange(x: number, y: number) {\n const { type, menuInfo } = this._menuInfo;\n if (type === MenuType.contextmenu && menuInfo === this._table.internalProps.menu?.contextMenuItems) {\n return false;\n }\n return true;\n }\n\n updateMenuInstance(menuInfo: MenuInfo, highlightIndex: number) {\n // 清空Mark\n this._menuInstance.removeAllChild();\n\n // menu padding\n let y = menuStyle.menuPadding;\n const x = menuStyle.menuPadding;\n let maxWidth = 0;\n menuInfo.forEach((item, index) => {\n const isisHighlight = highlightIndex === index;\n let icon;\n let text;\n if (typeof item === 'string') {\n text = item;\n } else if (typeof item === 'object') {\n text = item.text;\n if (isisHighlight) {\n icon = item.selectedIcon;\n } else {\n icon = item.icon;\n }\n }\n\n const group = new Group({\n y,\n x,\n // childrenPickable: false,\n height: menuStyle.lineHeight,\n fill: menuStyle.bgColor\n });\n group.role = 'menu-item';\n this._menuInstance.appendChild(group);\n\n // 处理背景hover效果\n group.stateProxy = (stateName: string) => {\n if (stateName === 'hover') {\n return {\n fill: menuStyle.hoverBgColor\n };\n }\n return {\n fill: menuStyle.bgColor\n };\n };\n group.addEventListener('pointerenter', (e: FederatedEvent) => {\n group.addState('hover', true, false);\n this._table.scenegraph.updateNextFrame();\n });\n group.addEventListener('pointerleave', (e: FederatedEvent) => {\n group.removeState('hover', false);\n this._table.scenegraph.updateNextFrame();\n });\n\n const textMark = new Text({\n x: menuStyle.menuItemPadding,\n y: menuStyle.menuItemPadding,\n fill: isisHighlight ? menuStyle.highlightColor : menuStyle.color,\n text,\n textBaseline: 'top',\n fontSize: menuStyle.fontSize,\n fontFamily: menuStyle.fontFamily,\n pickable: false,\n maxLineWidth: menuStyle.maxLineWidth,\n ellipsis: '…'\n // lineHeight: menuStyle.lineHeight,\n });\n group.addChild(textMark);\n\n if (icon) {\n const textHeight = textMark.AABBBounds.height();\n const iconWidth = icon.width ?? 16;\n const iconHeight = icon.height ?? 16;\n const iconMark = new Icon({\n x: menuStyle.menuItemPadding,\n y: (menuStyle.lineHeight - iconHeight) / 2,\n width: iconWidth,\n height: iconHeight,\n image: icon.svg,\n pickable: false\n });\n iconMark.role = 'menu-icon';\n group.insertBefore(iconMark, textMark);\n textMark.setAttribute('x', iconWidth + menuStyle.menuItemPadding);\n }\n\n // const textWidth = textMark.AABBBounds.width();\n maxWidth = Math.max(group.AABBBounds.width(), maxWidth);\n\n y += menuStyle.lineHeight;\n });\n\n this._menuInstance.setAttributes({\n width: maxWidth + menuStyle.menuItemPadding * 2 + menuStyle.menuPadding * 2,\n height: y + menuStyle.menuPadding\n });\n this._menuInstance.forEachChildren((itemGroup: Group) => {\n itemGroup.setAttribute('width', maxWidth + menuStyle.menuItemPadding * 2);\n });\n }\n\n updatePosition(x: number, y: number) {\n // to do: 位置躲避\n this._menuInstance.setAttributes({\n x: this._menuInfo.type === MenuType.dropDown ? x - this._menuInstance.attribute.width : x,\n y\n });\n this._menuInfo.x = MenuType.dropDown ? x - this._menuInstance.attribute.width : x;\n this._menuInfo.y = y;\n }\n\n addToScene() {\n this._table.scenegraph.updateNextFrame();\n }\n\n detach() {\n this._menuInstance.setAttributes({\n // visible: false,\n x: -1000,\n y: -1000\n });\n // this._menuInstance.hideAll();\n this._table.scenegraph.updateNextFrame();\n }\n\n /**\n * @description: 获取对应单元格的菜单内容\n * @param {number} col\n * @param {number} row\n * @param {MenuType} type\n * @return {*}\n */\n getMenuInfo(col: number, row: number, type: MenuType) {\n if (type === MenuType.dropDown) {\n const { dropDownMenu = this._table.globalDropDownMenu, pivotInfo } = this._table._getHeaderLayoutMap(col, row);\n let highlightIndex = -1;\n if (Array.isArray(dropDownMenu)) {\n for (let i = 0; i < dropDownMenu.length; i++) {\n if (this._table._dropDownMenuIsHighlight(col, row, i)) {\n highlightIndex = i;\n break;\n }\n }\n }\n return {\n menuInfo: dropDownMenu,\n highlightIndex\n };\n } else if (type === MenuType.contextmenu) {\n const contextmenu = this._table.internalProps.menu?.contextMenuItems;\n let menuInfo;\n if (Array.isArray(contextmenu)) {\n menuInfo = contextmenu;\n } else if (typeof contextmenu === 'function') {\n const { field } = this._table.isHeader(col, row)\n ? this._table.getHeaderDefine(col, row)\n : this._table.getBodyColumnDefine(col, row);\n menuInfo = contextmenu(field, row);\n }\n return {\n menuInfo,\n highlightIndex: -1\n };\n }\n return undefined;\n }\n\n bindEvent() {\n // 监听菜单内容click\n this._menuInstance.addEventListener('click', (e: FederatedEvent) => {\n const { target } = e;\n if (target && (target as unknown as Group).role === 'menu-item') {\n // 成功点击menu-item,触发自定义事件\n const resultMenuInfo = this.getEventInfo(target as unknown as Group);\n const resultTableInfo = this._table.getMenuInfo(this._menuInfo.col, this._menuInfo.row, this._menuInfo.type);\n const result = Object.assign(resultMenuInfo, resultTableInfo);\n this._table.fireListeners(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, result);\n\n // 由DROPDOWNMENU_CLICK事件清空菜单\n // this.detach();\n }\n });\n }\n\n getEventInfo(target: IGroup): {\n col: number;\n row: number;\n menuKey: string;\n dropDownIndex: number;\n text: string;\n highlight: boolean;\n } {\n const parent = target.parent as IGroup;\n let index = 0;\n parent.forEachChildren((child: IGroup, i: number) => {\n if (child === target) {\n index = i - 1; // index 0为背景rect\n return true;\n }\n return false;\n });\n\n const text =\n typeof this._menuInfo.menuInfo[index] === 'string'\n ? this._menuInfo.menuInfo[index]\n : (this._menuInfo.menuInfo[index] as any).text;\n const menuKey =\n typeof this._menuInfo.menuInfo[index] === 'string'\n ? text\n : (this._menuInfo.menuInfo[index] as any).menuKey || text;\n\n return {\n col: this._menuInfo.col,\n row: this._menuInfo.row,\n dropDownIndex: index,\n highlight: index === this._menuInfo.highlightIndex,\n text,\n menuKey\n };\n }\n\n get bounds() {\n return this._menuInstance.globalAABBBounds;\n }\n}\n\n// class MenuContainer {}\n\n// class MenuElement {}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/menu.ts"],"names":[],"mappings":"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","file":"menu.js","sourcesContent":["import type { FederatedEvent, IGroup } from '@visactor/vrender';\nimport { createRect, Text } from '@visactor/vrender';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { MenuListItem } from '../../ts-types';\nimport { Group } from '../graphic/group';\nimport { Icon } from '../graphic/icon';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\n/**\n * 菜单类型\n * dropDown 下拉菜单\n * contextmenu 右键菜单\n * custom 自定义菜单\n */\nexport enum MenuType {\n 'dropDown' = 'dropDown',\n 'contextmenu' = 'contextmenu',\n 'custom' = 'custom'\n}\n\ntype MenuInfo = MenuListItem[];\n\nconst menuStyle = {\n fontSize: 12,\n fontFamily: 'Arial,sans-serif',\n color: '#000',\n highlightColor: '#2E68CF',\n hoverBgColor: '#EEE',\n lineHeight: 12 + 9 + 9,\n bgColor: '#FFF',\n cornerRadius: 4,\n borderWidth: 0.5,\n borderColor: '#CCC',\n menuPadding: 6,\n menuItemPadding: 9,\n maxLineWidth: 200\n};\n\nexport class MenuHandler {\n private _table: BaseTableAPI;\n private _menuInstance: IGroup;\n private _menuInfo: {\n x: number;\n y: number;\n col: number;\n row: number;\n type: MenuType;\n menuInfo: MenuListItem[];\n highlightIndex: number;\n };\n // private _attachInfo?: AttachInfo | null;\n\n constructor(table: BaseTableAPI) {\n this._table = table;\n this._menuInstance = new Group({\n x: 0,\n y: 0,\n // visible: false,\n fill: menuStyle.bgColor,\n stroke: menuStyle.borderColor,\n cornerRadius: menuStyle.cornerRadius,\n lineWidth: menuStyle.borderWidth\n });\n this._menuInfo = {\n x: -1,\n y: -1,\n col: -1,\n row: -1,\n type: MenuType.dropDown,\n menuInfo: [],\n highlightIndex: -1\n };\n\n // this._menuInstance.setTheme({\n // rect: {\n // width: 100,\n // },\n // });\n\n // 绑定事件\n // this._bindTableEvent(table);\n }\n\n bindTableComponent(componentGroup: Group) {\n componentGroup.appendChild(this._menuInstance);\n\n this.bindEvent();\n }\n\n release() {\n // do nothing\n }\n\n attach(x: number, y: number, col: number, row: number, type: MenuType, menuInfo?: MenuInfo) {\n if (type === MenuType.dropDown && this.checkDropDownMenuChange(col, row)) {\n // 菜单内容变化,更新菜单Group\n const tableMenuInfo = this.getMenuInfo(col, row, type);\n if (!tableMenuInfo) {\n return;\n }\n const { menuInfo, highlightIndex } = tableMenuInfo;\n this.updateMenuInfo(col, row, type, menuInfo, highlightIndex);\n this.updateMenuInstance(menuInfo, highlightIndex);\n // this.updatePosition(x - this._table.scenegraph.x, y - this._table.scenegraph.y);\n } else if (type === MenuType.contextmenu) {\n if (this.checkContextMenuChange(x, y)) {\n const tableMenuInfo = this.getMenuInfo(col, row, type);\n if (!tableMenuInfo) {\n return;\n }\n const { menuInfo, highlightIndex } = tableMenuInfo;\n this.updateMenuInfo(col, row, type, menuInfo, highlightIndex);\n this.updateMenuInstance(menuInfo, highlightIndex);\n }\n }\n this.updatePosition(x - this._table.scenegraph.x, y - this._table.scenegraph.y);\n\n this.addToScene();\n }\n\n updateMenuInfo(col: number, row: number, type: MenuType, menuInfo: MenuListItem[], highlightIndex: number) {\n this._menuInfo.col = col;\n this._menuInfo.row = row;\n this._menuInfo.type = type;\n this._menuInfo.menuInfo = menuInfo;\n this._menuInfo.highlightIndex = highlightIndex;\n }\n\n checkDropDownMenuChange(col: number, row: number) {\n const { type, col: curCol, row: curRow } = this._menuInfo;\n if (type === MenuType.dropDown && col === curCol && row === curRow) {\n return false;\n }\n return true;\n }\n\n checkContextMenuChange(x: number, y: number) {\n const { type, menuInfo } = this._menuInfo;\n if (type === MenuType.contextmenu && menuInfo === this._table.internalProps.menu?.contextMenuItems) {\n return false;\n }\n return true;\n }\n\n updateMenuInstance(menuInfo: MenuInfo, highlightIndex: number) {\n // 清空Mark\n this._menuInstance.removeAllChild();\n\n // menu padding\n let y = menuStyle.menuPadding;\n const x = menuStyle.menuPadding;\n let maxWidth = 0;\n menuInfo.forEach((item, index) => {\n const isisHighlight = highlightIndex === index;\n let icon;\n let text;\n if (typeof item === 'string') {\n text = item;\n } else if (typeof item === 'object') {\n text = item.text;\n if (isisHighlight) {\n icon = item.selectedIcon;\n } else {\n icon = item.icon;\n }\n }\n\n const group = new Group({\n y,\n x,\n // childrenPickable: false,\n height: menuStyle.lineHeight,\n fill: menuStyle.bgColor\n });\n group.role = 'menu-item';\n this._menuInstance.appendChild(group);\n\n // 处理背景hover效果\n group.stateProxy = (stateName: string) => {\n if (stateName === 'hover') {\n return {\n fill: menuStyle.hoverBgColor\n };\n }\n return {\n fill: menuStyle.bgColor\n };\n };\n group.addEventListener('pointerenter', (e: FederatedEvent) => {\n group.addState('hover', true, false);\n this._table.scenegraph.updateNextFrame();\n });\n group.addEventListener('pointerleave', (e: FederatedEvent) => {\n group.removeState('hover', false);\n this._table.scenegraph.updateNextFrame();\n });\n\n const textMark = new Text({\n x: menuStyle.menuItemPadding,\n y: menuStyle.menuItemPadding,\n fill: isisHighlight ? menuStyle.highlightColor : menuStyle.color,\n text,\n textBaseline: 'top',\n fontSize: menuStyle.fontSize,\n fontFamily: menuStyle.fontFamily,\n pickable: false,\n maxLineWidth: menuStyle.maxLineWidth,\n ellipsis: '…'\n // lineHeight: menuStyle.lineHeight,\n });\n group.addChild(textMark);\n\n if (icon) {\n const textHeight = textMark.AABBBounds.height();\n const iconWidth = icon.width ?? 16;\n const iconHeight = icon.height ?? 16;\n const iconMark = new Icon({\n x: menuStyle.menuItemPadding,\n y: (menuStyle.lineHeight - iconHeight) / 2,\n width: iconWidth,\n height: iconHeight,\n image: icon.svg,\n pickable: false\n });\n iconMark.role = 'menu-icon';\n group.insertBefore(iconMark, textMark);\n textMark.setAttribute('x', iconWidth + menuStyle.menuItemPadding);\n }\n\n // const textWidth = textMark.AABBBounds.width();\n maxWidth = Math.max(group.AABBBounds.width(), maxWidth);\n\n y += menuStyle.lineHeight;\n });\n\n this._menuInstance.setAttributes({\n width: maxWidth + menuStyle.menuItemPadding * 2 + menuStyle.menuPadding * 2,\n height: y + menuStyle.menuPadding\n });\n this._menuInstance.forEachChildren((itemGroup: Group) => {\n itemGroup.setAttribute('width', maxWidth + menuStyle.menuItemPadding * 2);\n });\n }\n\n updatePosition(x: number, y: number) {\n // to do: 位置躲避\n this._menuInstance.setAttributes({\n x: this._menuInfo.type === MenuType.dropDown ? x - this._menuInstance.attribute.width : x,\n y\n });\n this._menuInfo.x = MenuType.dropDown ? x - this._menuInstance.attribute.width : x;\n this._menuInfo.y = y;\n }\n\n addToScene() {\n this._table.scenegraph.updateNextFrame();\n }\n\n detach() {\n this._menuInstance.setAttributes({\n // visible: false,\n x: -1000,\n y: -1000\n });\n // this._menuInstance.hideAll();\n this._table.scenegraph.updateNextFrame();\n }\n\n /**\n * @description: 获取对应单元格的菜单内容\n * @param {number} col\n * @param {number} row\n * @param {MenuType} type\n * @return {*}\n */\n getMenuInfo(col: number, row: number, type: MenuType) {\n if (type === MenuType.dropDown) {\n const { dropDownMenu = this._table.globalDropDownMenu, pivotInfo } = this._table._getHeaderLayoutMap(col, row);\n let highlightIndex = -1;\n if (Array.isArray(dropDownMenu)) {\n for (let i = 0; i < dropDownMenu.length; i++) {\n if (this._table._dropDownMenuIsHighlight(col, row, i)) {\n highlightIndex = i;\n break;\n }\n }\n }\n return {\n menuInfo: dropDownMenu,\n highlightIndex\n };\n } else if (type === MenuType.contextmenu) {\n const contextmenu = this._table.internalProps.menu?.contextMenuItems;\n let menuInfo;\n if (Array.isArray(contextmenu)) {\n menuInfo = contextmenu;\n } else if (typeof contextmenu === 'function') {\n const { field } = this._table.isHeader(col, row)\n ? this._table.getHeaderDefine(col, row)\n : this._table.getBodyColumnDefine(col, row);\n menuInfo = contextmenu(field, row);\n }\n return {\n menuInfo,\n highlightIndex: -1\n };\n }\n return undefined;\n }\n\n bindEvent() {\n // 监听菜单内容click\n this._menuInstance.addEventListener('click', (e: FederatedEvent) => {\n const { target } = e;\n if (target && (target as unknown as Group).role === 'menu-item') {\n // 成功点击menu-item,触发自定义事件\n const resultMenuInfo = this.getEventInfo(target as unknown as Group);\n const resultTableInfo = this._table.getMenuInfo(this._menuInfo.col, this._menuInfo.row, this._menuInfo.type);\n const result = Object.assign(resultMenuInfo, resultTableInfo);\n this._table.fireListeners(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, result);\n\n // 由DROPDOWNMENU_CLICK事件清空菜单\n // this.detach();\n }\n });\n }\n\n getEventInfo(target: IGroup): {\n col: number;\n row: number;\n menuKey: string;\n dropDownIndex: number;\n text: string;\n highlight: boolean;\n } {\n const parent = target.parent as IGroup;\n let index = 0;\n parent.forEachChildren((child: IGroup, i: number) => {\n if (child === target) {\n index = i - 1; // index 0为背景rect\n return true;\n }\n return false;\n });\n\n const text =\n typeof this._menuInfo.menuInfo[index] === 'string'\n ? this._menuInfo.menuInfo[index]\n : (this._menuInfo.menuInfo[index] as any).text;\n const menuKey =\n typeof this._menuInfo.menuInfo[index] === 'string'\n ? text\n : (this._menuInfo.menuInfo[index] as any).menuKey || text;\n\n return {\n col: this._menuInfo.col,\n row: this._menuInfo.row,\n dropDownIndex: index,\n highlight: index === this._menuInfo.highlightIndex,\n text,\n menuKey\n };\n }\n\n get bounds() {\n return this._menuInstance.globalAABBBounds;\n }\n}\n\n// class MenuContainer {}\n\n// class MenuElement {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/component/table-component.ts"],"names":[],"mappings":"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","file":"table-component.js","sourcesContent":["import type { ILine, IRect, IGroup } from '@visactor/vrender';\nimport { createRect, createLine, createText, createGroup, createSymbol } from '@visactor/vrender';\nimport { ScrollBar } from '@visactor/vrender-components';\nimport type { Group } from '../graphic/group';\nimport type { WrapText } from '../graphic/text';\nimport { MenuHandler } from './menu';\nimport { DrillIcon } from './drill-icon';\nimport { CellMover } from './cell-mover';\nimport { getColX } from './util';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\n/**\n * @description: 表格内容外组件\n * @return {*}\n */\nexport class TableComponent {\n table: BaseTableAPI;\n\n border: IRect; // 表格外边框\n // selectBorder: IRect; // 表格选择区域边框\n columnResizeLine: ILine; // 表格列宽调整基准线\n columnResizeBgLine: ILine; // 表格列宽调整基准线背景\n columnResizeLabel: IGroup; // 表格列宽调整标记\n menu: MenuHandler; // 表格菜单\n vScrollBar: ScrollBar; // 表格横向滚动条\n hScrollBar: ScrollBar; // 表格纵向滚动条\n frozenShadowLine: IRect; // 表格冻结列右侧阴影块\n drillIcon: DrillIcon; // drill icon\n cellMover: CellMover; // 表格列顺序调整标记\n\n constructor(table: BaseTableAPI) {\n this.table = table;\n const theme = this.table.theme;\n\n // 滚动条\n this.createScrollBar();\n\n // 列宽调整基准线\n const columnResizeColor = theme.columnResize?.lineColor;\n const columnResizeWidth = theme.columnResize?.lineWidth;\n const columnResizeBgColor = theme.columnResize?.bgColor;\n const columnResizeBgWidth = theme.columnResize?.width;\n this.columnResizeLine = createLine({\n visible: false,\n pickable: false,\n stroke: columnResizeColor as string,\n lineWidth: columnResizeWidth as number,\n x: 0,\n y: 0,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ]\n });\n this.columnResizeBgLine = createLine({\n visible: false,\n pickable: false,\n stroke: columnResizeBgColor as string,\n lineWidth: columnResizeBgWidth as number,\n x: 0,\n y: 0,\n // dx: -(columnResizeBgWidth - columnResizeWidth) / 2,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ]\n });\n\n // 列宽调整文字标签\n const columnResizeLabelText = createText({\n visible: false,\n pickable: false,\n x: 0,\n y: 0,\n fontSize: 10,\n fill: '#FFF',\n text: '',\n textBaseline: 'top',\n dx: 12 + 4,\n dy: -8 + 2\n });\n const columnResizeLabelBack = createRect({\n visible: false,\n pickable: false,\n fill: '#3073F2',\n x: 0,\n y: 0,\n width: 38,\n height: 16,\n cornerRadius: 5,\n dx: 12,\n dy: -8\n });\n this.columnResizeLabel = createGroup({\n visible: false,\n pickable: false,\n x: 0,\n y: 0\n });\n this.columnResizeLabel.appendChild(columnResizeLabelBack);\n this.columnResizeLabel.appendChild(columnResizeLabelText);\n\n // 列顺序调整基准线\n this.cellMover = new CellMover(this.table);\n\n // 冻结列阴影\n const shadowWidth = theme.frozenColumnLine?.shadow?.width;\n const shadowStartColor = theme.frozenColumnLine?.shadow?.startColor;\n const shadowEndColor = theme.frozenColumnLine?.shadow?.endColor;\n this.frozenShadowLine = createRect({\n visible: true,\n pickable: false,\n x: 0,\n y: 0,\n width: shadowWidth,\n height: 0,\n fill: {\n gradient: 'linear',\n x0: 0,\n y0: 0,\n x1: 1,\n y1: 0,\n stops: [\n { color: shadowStartColor, offset: 0 },\n { color: shadowEndColor, offset: 1 }\n ]\n }\n });\n\n // TO BE DONE 冻结列border(theme.frozenColumnLine?.border)\n\n // 弹出窗口\n // this.menu = createGroup({\n // visible: false,\n // pickable: false,\n // x: 0,\n // y: 0,\n // });\n this.menu = new MenuHandler(this.table);\n\n this.drillIcon = new DrillIcon();\n }\n\n /**\n * @description: 组件mark加入到容器Group中\n * @param {Group} componentGroup\n * @return {*}\n */\n addToGroup(componentGroup: Group) {\n componentGroup.addChild(this.frozenShadowLine);\n // componentGroup.addChild(this.selectBorder);\n componentGroup.addChild(this.columnResizeBgLine);\n componentGroup.addChild(this.columnResizeLine);\n componentGroup.addChild(this.columnResizeLabel);\n if (this.table.theme.scrollStyle.hoverOn) {\n componentGroup.addChild(this.hScrollBar);\n componentGroup.addChild(this.vScrollBar);\n } else {\n componentGroup.stage.defaultLayer.addChild(this.hScrollBar);\n componentGroup.stage.defaultLayer.addChild(this.vScrollBar);\n }\n this.menu.bindTableComponent(componentGroup);\n this.drillIcon.appand(componentGroup);\n this.cellMover.appand(componentGroup);\n }\n\n /**\n * @description: 创建滚动条组件\n * @return {*}\n */\n createScrollBar() {\n const theme = this.table.theme;\n const scrollRailColor = theme.scrollStyle?.scrollRailColor as string;\n const scrollSliderColor = theme.scrollStyle?.scrollSliderColor as string;\n const width = theme.scrollStyle?.width as number;\n // const visible = theme.scrollStyle?.visible as string;\n // const hoverOn = theme.scrollStyle?.hoverOn as boolean;\n\n this.hScrollBar = new ScrollBar({\n direction: 'horizontal',\n x: -this.table.tableNoFrameWidth * 2,\n y: -this.table.tableNoFrameHeight * 2,\n width: this.table.tableNoFrameWidth,\n height: width,\n padding: 0,\n railStyle: {\n fill: scrollRailColor\n },\n sliderStyle: {\n fill: scrollSliderColor\n },\n range: [0, 0.1],\n // scrollRange: [0.4, 0.8]\n visible: false\n });\n // hack方案实现初始化隐藏滚动条,也可以add到stage之后执行hideAll\n (this.hScrollBar as any).render();\n this.hScrollBar.hideAll();\n\n this.vScrollBar = new ScrollBar({\n direction: 'vertical',\n x: -this.table.tableNoFrameWidth * 2,\n y: -this.table.tableNoFrameHeight * 2,\n width,\n height: this.table.tableNoFrameHeight - this.table.getFrozenRowsHeight(),\n padding: 0,\n railStyle: {\n fill: scrollRailColor\n },\n sliderStyle: {\n fill: scrollSliderColor\n },\n range: [0, 0.1],\n visible: false\n });\n (this.vScrollBar as any).render();\n this.vScrollBar.hideAll();\n }\n\n /**\n * @description: 更新滚动条尺寸\n * @return {*}\n */\n updateScrollBar() {\n const oldHorizontalBarPos = this.table.stateManeger.scroll.horizontalBarPos;\n const oldVerticalBarPos = this.table.stateManeger.scroll.verticalBarPos;\n\n const theme = this.table.theme;\n const width = theme.scrollStyle?.width as number;\n const visible = theme.scrollStyle?.visible as string;\n // const hoverOn = theme.scrollStyle?.hoverOn as boolean;\n const tableWidth = Math.ceil(this.table.scenegraph.tableGroup.attribute.width);\n const tableHeight = Math.ceil(this.table.scenegraph.tableGroup.attribute.height);\n\n const totalHeight = this.table.getAllRowsHeight();\n const totalWidth = this.table.getAllColsWidth();\n const frozenRowsHeight = this.table.getFrozenRowsHeight();\n const frozenColsWidth = this.table.getFrozenColsWidth();\n const bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight();\n const rightFrozenColsWidth = this.table.getRightFrozenColsWidth();\n if (totalWidth > tableWidth) {\n const y = Math.min(tableHeight, totalHeight);\n const rangeEnd = Math.max(0.05, (tableWidth - frozenColsWidth) / (totalWidth - frozenColsWidth));\n this.hScrollBar.setAttributes({\n x: frozenColsWidth + (!this.table.theme.scrollStyle.hoverOn ? this.table.scenegraph.tableGroup.attribute.x : 0),\n y: y - (this.table.theme.scrollStyle.hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.y),\n width: tableWidth - frozenColsWidth - rightFrozenColsWidth,\n range: [0, rangeEnd],\n visible: visible === 'always'\n });\n const bounds = this.hScrollBar.AABBBounds && this.hScrollBar.globalAABBBounds;\n (this.hScrollBar as any)._viewPosition = {\n x: bounds.x1,\n y: bounds.y1\n };\n if (visible === 'always') {\n this.hScrollBar.showAll();\n }\n } else {\n this.hScrollBar.setAttributes({\n x: -this.table.tableNoFrameWidth * 2,\n y: -this.table.tableNoFrameHeight * 2,\n width: 0,\n visible: false\n });\n }\n\n if (totalHeight > tableHeight) {\n const x = Math.min(tableWidth, totalWidth);\n const rangeEnd = Math.max(0.05, (tableHeight - frozenRowsHeight) / (totalHeight - frozenRowsHeight));\n this.vScrollBar.setAttributes({\n x: x - (this.table.theme.scrollStyle.hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.x),\n y:\n frozenRowsHeight + (!this.table.theme.scrollStyle.hoverOn ? this.table.scenegraph.tableGroup.attribute.y : 0),\n height: tableHeight - frozenRowsHeight - bottomFrozenRowsHeight,\n range: [0, rangeEnd],\n visible: visible === 'always'\n });\n const bounds = this.vScrollBar.AABBBounds && this.vScrollBar.globalAABBBounds;\n (this.vScrollBar as any)._viewPosition = {\n x: bounds.x1,\n y: bounds.y1\n };\n\n if (visible === 'always') {\n this.vScrollBar.showAll();\n }\n } else {\n this.vScrollBar.setAttributes({\n x: -this.table.tableNoFrameWidth * 2,\n y: -this.table.tableNoFrameHeight * 2,\n height: 0,\n visible: false\n });\n }\n\n this.table.stateManeger.setScrollLeft(oldHorizontalBarPos);\n this.table.stateManeger.setScrollTop(oldVerticalBarPos);\n }\n\n /**\n * @description: 隐藏列宽调整组件\n * @return {*}\n */\n hideResizeCol() {\n // this.columnResizeLine.attribute.visible = false;\n this.columnResizeLine.setAttribute('visible', false);\n this.columnResizeBgLine.setAttribute('visible', false);\n this.columnResizeLabel.setAttribute('visible', false);\n this.columnResizeLabel.hideAll();\n }\n\n /**\n * @description: 显示列宽调整组件\n * @param {number} col\n * @param {number} y\n * @return {*}\n */\n showResizeCol(col: number, y: number, isRightFrozen?: boolean) {\n // this.columnResizeLine.attribute.visible = false;\n // 基准线\n const colX = getColX(col, this.table, isRightFrozen);\n this.columnResizeLine.setAttributes({\n visible: true,\n x: colX,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: this.table.getRowsHeight(0, this.table.rowCount - 1) }\n ]\n });\n this.columnResizeBgLine.setAttributes({\n visible: true,\n x: colX,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: this.table.getRowsHeight(0, this.table.rowCount - 1) }\n ]\n });\n\n // 标签\n // this.columnResizeLabel.setAttribute('visible', true);\n this.columnResizeLabel.showAll();\n this.columnResizeLabel.setAttributes({\n visible: true,\n x: colX,\n y\n });\n (this.columnResizeLabel.lastChild as WrapText).setAttribute('text', `${this.table.getColWidth(col)}px`);\n }\n\n /**\n * @description: 更新列宽调整组件\n * @param {number} col\n * @param {number} y 标签显示的y坐标\n * @return {*}\n */\n updateResizeCol(col: number, y: number, isRightFrozen?: boolean) {\n // 基准线\n const colX = getColX(col, this.table, isRightFrozen);\n // this.columnResizeLine.setAttribute('x', x);\n this.columnResizeLine.setAttributes({\n x: colX,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: this.table.getRowsHeight(0, this.table.rowCount - 1) } // todo: 优化points赋值\n ]\n });\n this.columnResizeBgLine.setAttributes({\n x: colX,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: this.table.getRowsHeight(0, this.table.rowCount - 1) } // todo: 优化points赋值\n ]\n });\n\n // 标签\n this.columnResizeLabel.setAttributes({\n x: colX,\n y\n });\n (this.columnResizeLabel.lastChild as WrapText).setAttribute('text', `${Math.floor(this.table.getColWidth(col))}px`);\n }\n\n /**\n * @description: 隐藏列顺序调整组件\n * @return {*}\n */\n hideMoveCol() {\n this.cellMover.hide();\n }\n\n /**\n * @description: 显示列顺序调整组件\n * @param {number} col\n * @param {number} x\n * @return {*}\n */\n showMoveCol(col: number, row: number, delta: number) {\n this.cellMover.show(col, row, delta);\n }\n\n /**\n * @description: 更新列顺序调整组件\n * @param {number} backX\n * @param {number} lineX\n * @return {*}\n */\n updateMoveCol(backX: number, lineX: number, backY: number, lineY: number) {\n this.cellMover.update(backX, lineX, backY, lineY);\n }\n\n /**\n * @description: 显示冻结列shadow\n * @param {number} col\n * @return {*}\n */\n setFrozenColumnShadow(col: number, isRightFrozen?: boolean) {\n if (col < 0) {\n this.frozenShadowLine.setAttributes({\n visible: false\n });\n } else {\n // const colX = this.table.getColsWidth(0, col);\n const colX = getColX(col, this.table, isRightFrozen);\n this.frozenShadowLine.setAttributes({\n visible: true,\n x: colX,\n height: this.table.getRowsHeight(0, this.table.rowCount - 1)\n });\n }\n }\n\n hideVerticalScrollBar() {\n const visable = this.table.theme.scrollStyle.visible;\n if (visable !== 'focus' && visable !== 'scrolling') {\n return;\n }\n this.vScrollBar.setAttribute('visible', false);\n this.vScrollBar.hideAll();\n this.table.scenegraph.updateNextFrame();\n }\n showVerticalScrollBar() {\n const visable = this.table.theme.scrollStyle.visible;\n if (visable !== 'focus' && visable !== 'scrolling') {\n return;\n }\n this.vScrollBar.setAttribute('visible', true);\n this.vScrollBar.showAll();\n this.table.scenegraph.updateNextFrame();\n }\n hideHorizontalScrollBar() {\n const visable = this.table.theme.scrollStyle.visible;\n if (visable !== 'focus' && visable !== 'scrolling') {\n return;\n }\n this.hScrollBar.setAttribute('visible', false);\n this.hScrollBar.hideAll();\n this.table.scenegraph.updateNextFrame();\n }\n showHorizontalScrollBar() {\n const visable = this.table.theme.scrollStyle.visible;\n if (visable !== 'focus' && visable !== 'scrolling') {\n return;\n }\n this.hScrollBar.setAttribute('visible', true);\n this.hScrollBar.showAll();\n this.table.scenegraph.updateNextFrame();\n }\n updateVerticalScrollBarPos(topRatio: number) {\n const range = this.vScrollBar.attribute.range;\n const size = range[1] - range[0];\n const range0 = topRatio * (1 - size);\n this.vScrollBar.setAttribute('range', [range0, range0 + size]);\n const bounds = this.vScrollBar.AABBBounds && this.vScrollBar.globalAABBBounds;\n (this.vScrollBar as any)._viewPosition = {\n x: bounds.x1,\n y: bounds.y1\n };\n }\n updateHorizontalScrollBarPos(leftRatio: number) {\n const range = this.hScrollBar.attribute.range;\n const size = range[1] - range[0];\n const range0 = leftRatio * (1 - size);\n this.hScrollBar.setAttribute('range', [range0, range0 + size]);\n const bounds = this.hScrollBar.AABBBounds && this.hScrollBar.globalAABBBounds;\n (this.hScrollBar as any)._viewPosition = {\n x: bounds.x1,\n y: bounds.y1\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/table-component.ts"],"names":[],"mappings":"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","file":"table-component.js","sourcesContent":["import type { ILine, IRect, IGroup } from '@visactor/vrender';\nimport { createRect, createLine, createText, createGroup, createSymbol } from '@visactor/vrender';\nimport { ScrollBar } from '@visactor/vrender-components';\nimport type { Group } from '../graphic/group';\nimport type { WrapText } from '../graphic/text';\nimport { MenuHandler } from './menu';\nimport { DrillIcon } from './drill-icon';\nimport { CellMover } from './cell-mover';\nimport { getColX } from './util';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\n/**\n * @description: 表格内容外组件\n * @return {*}\n */\nexport class TableComponent {\n table: BaseTableAPI;\n\n border: IRect; // 表格外边框\n // selectBorder: IRect; // 表格选择区域边框\n columnResizeLine: ILine; // 表格列宽调整基准线\n columnResizeBgLine: ILine; // 表格列宽调整基准线背景\n columnResizeLabel: IGroup; // 表格列宽调整标记\n menu: MenuHandler; // 表格菜单\n vScrollBar: ScrollBar; // 表格横向滚动条\n hScrollBar: ScrollBar; // 表格纵向滚动条\n frozenShadowLine: IRect; // 表格冻结列右侧阴影块\n drillIcon: DrillIcon; // drill icon\n cellMover: CellMover; // 表格列顺序调整标记\n\n constructor(table: BaseTableAPI) {\n this.table = table;\n const theme = this.table.theme;\n\n // 滚动条\n this.createScrollBar();\n\n // 列宽调整基准线\n const columnResizeColor = theme.columnResize?.lineColor;\n const columnResizeWidth = theme.columnResize?.lineWidth;\n const columnResizeBgColor = theme.columnResize?.bgColor;\n const columnResizeBgWidth = theme.columnResize?.width;\n this.columnResizeLine = createLine({\n visible: false,\n pickable: false,\n stroke: columnResizeColor as string,\n lineWidth: columnResizeWidth as number,\n x: 0,\n y: 0,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ]\n });\n this.columnResizeBgLine = createLine({\n visible: false,\n pickable: false,\n stroke: columnResizeBgColor as string,\n lineWidth: columnResizeBgWidth as number,\n x: 0,\n y: 0,\n // dx: -(columnResizeBgWidth - columnResizeWidth) / 2,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ]\n });\n\n // 列宽调整文字标签\n const columnResizeLabelText = createText({\n visible: false,\n pickable: false,\n x: 0,\n y: 0,\n fontSize: 10,\n fill: '#FFF',\n text: '',\n textBaseline: 'top',\n dx: 12 + 4,\n dy: -8 + 2\n });\n const columnResizeLabelBack = createRect({\n visible: false,\n pickable: false,\n fill: '#3073F2',\n x: 0,\n y: 0,\n width: 38,\n height: 16,\n cornerRadius: 5,\n dx: 12,\n dy: -8\n });\n this.columnResizeLabel = createGroup({\n visible: false,\n pickable: false,\n x: 0,\n y: 0\n });\n this.columnResizeLabel.appendChild(columnResizeLabelBack);\n this.columnResizeLabel.appendChild(columnResizeLabelText);\n\n // 列顺序调整基准线\n this.cellMover = new CellMover(this.table);\n\n // 冻结列阴影\n const shadowWidth = theme.frozenColumnLine?.shadow?.width;\n const shadowStartColor = theme.frozenColumnLine?.shadow?.startColor;\n const shadowEndColor = theme.frozenColumnLine?.shadow?.endColor;\n this.frozenShadowLine = createRect({\n visible: true,\n pickable: false,\n x: 0,\n y: 0,\n width: shadowWidth,\n height: 0,\n fill: {\n gradient: 'linear',\n x0: 0,\n y0: 0,\n x1: 1,\n y1: 0,\n stops: [\n { color: shadowStartColor, offset: 0 },\n { color: shadowEndColor, offset: 1 }\n ]\n }\n });\n\n // TO BE DONE 冻结列border(theme.frozenColumnLine?.border)\n\n // 弹出窗口\n // this.menu = createGroup({\n // visible: false,\n // pickable: false,\n // x: 0,\n // y: 0,\n // });\n this.menu = new MenuHandler(this.table);\n\n this.drillIcon = new DrillIcon();\n }\n\n /**\n * @description: 组件mark加入到容器Group中\n * @param {Group} componentGroup\n * @return {*}\n */\n addToGroup(componentGroup: Group) {\n componentGroup.addChild(this.frozenShadowLine);\n // componentGroup.addChild(this.selectBorder);\n componentGroup.addChild(this.columnResizeBgLine);\n componentGroup.addChild(this.columnResizeLine);\n componentGroup.addChild(this.columnResizeLabel);\n if (this.table.theme.scrollStyle.hoverOn) {\n componentGroup.addChild(this.hScrollBar);\n componentGroup.addChild(this.vScrollBar);\n } else {\n componentGroup.stage.defaultLayer.addChild(this.hScrollBar);\n componentGroup.stage.defaultLayer.addChild(this.vScrollBar);\n }\n this.menu.bindTableComponent(componentGroup);\n this.drillIcon.appand(componentGroup);\n this.cellMover.appand(componentGroup);\n }\n\n /**\n * @description: 创建滚动条组件\n * @return {*}\n */\n createScrollBar() {\n const theme = this.table.theme;\n const scrollRailColor = theme.scrollStyle?.scrollRailColor as string;\n const scrollSliderColor = theme.scrollStyle?.scrollSliderColor as string;\n const width = theme.scrollStyle?.width as number;\n // const visible = theme.scrollStyle?.visible as string;\n // const hoverOn = theme.scrollStyle?.hoverOn as boolean;\n\n this.hScrollBar = new ScrollBar({\n direction: 'horizontal',\n x: -this.table.tableNoFrameWidth * 2,\n y: -this.table.tableNoFrameHeight * 2,\n width: this.table.tableNoFrameWidth,\n height: width,\n padding: 0,\n railStyle: {\n fill: scrollRailColor\n },\n sliderStyle: {\n fill: scrollSliderColor\n },\n range: [0, 0.1],\n // scrollRange: [0.4, 0.8]\n visible: false\n });\n // hack方案实现初始化隐藏滚动条,也可以add到stage之后执行hideAll\n (this.hScrollBar as any).render();\n this.hScrollBar.hideAll();\n\n this.vScrollBar = new ScrollBar({\n direction: 'vertical',\n x: -this.table.tableNoFrameWidth * 2,\n y: -this.table.tableNoFrameHeight * 2,\n width,\n height: this.table.tableNoFrameHeight - this.table.getFrozenRowsHeight(),\n padding: 0,\n railStyle: {\n fill: scrollRailColor\n },\n sliderStyle: {\n fill: scrollSliderColor\n },\n range: [0, 0.1],\n visible: false\n });\n (this.vScrollBar as any).render();\n this.vScrollBar.hideAll();\n }\n\n /**\n * @description: 更新滚动条尺寸\n * @return {*}\n */\n updateScrollBar() {\n const oldHorizontalBarPos = this.table.stateManeger.scroll.horizontalBarPos;\n const oldVerticalBarPos = this.table.stateManeger.scroll.verticalBarPos;\n\n const theme = this.table.theme;\n const width = theme.scrollStyle?.width as number;\n const visible = theme.scrollStyle?.visible as string;\n // const hoverOn = theme.scrollStyle?.hoverOn as boolean;\n const tableWidth = Math.ceil(this.table.scenegraph.tableGroup.attribute.width);\n const tableHeight = Math.ceil(this.table.scenegraph.tableGroup.attribute.height);\n\n const totalHeight = this.table.getAllRowsHeight();\n const totalWidth = this.table.getAllColsWidth();\n const frozenRowsHeight = this.table.getFrozenRowsHeight();\n const frozenColsWidth = this.table.getFrozenColsWidth();\n const bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight();\n const rightFrozenColsWidth = this.table.getRightFrozenColsWidth();\n if (totalWidth > tableWidth) {\n const y = Math.min(tableHeight, totalHeight);\n const rangeEnd = Math.max(0.05, (tableWidth - frozenColsWidth) / (totalWidth - frozenColsWidth));\n this.hScrollBar.setAttributes({\n x: frozenColsWidth + (!this.table.theme.scrollStyle.hoverOn ? this.table.scenegraph.tableGroup.attribute.x : 0),\n y: y - (this.table.theme.scrollStyle.hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.y),\n width: tableWidth - frozenColsWidth - rightFrozenColsWidth,\n range: [0, rangeEnd],\n visible: visible === 'always'\n });\n const bounds = this.hScrollBar.AABBBounds && this.hScrollBar.globalAABBBounds;\n (this.hScrollBar as any)._viewPosition = {\n x: bounds.x1,\n y: bounds.y1\n };\n if (visible === 'always') {\n this.hScrollBar.showAll();\n }\n } else {\n this.hScrollBar.setAttributes({\n x: -this.table.tableNoFrameWidth * 2,\n y: -this.table.tableNoFrameHeight * 2,\n width: 0,\n visible: false\n });\n }\n\n if (totalHeight > tableHeight) {\n const x = Math.min(tableWidth, totalWidth);\n const rangeEnd = Math.max(0.05, (tableHeight - frozenRowsHeight) / (totalHeight - frozenRowsHeight));\n this.vScrollBar.setAttributes({\n x: x - (this.table.theme.scrollStyle.hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.x),\n y:\n frozenRowsHeight + (!this.table.theme.scrollStyle.hoverOn ? this.table.scenegraph.tableGroup.attribute.y : 0),\n height: tableHeight - frozenRowsHeight - bottomFrozenRowsHeight,\n range: [0, rangeEnd],\n visible: visible === 'always'\n });\n const bounds = this.vScrollBar.AABBBounds && this.vScrollBar.globalAABBBounds;\n (this.vScrollBar as any)._viewPosition = {\n x: bounds.x1,\n y: bounds.y1\n };\n\n if (visible === 'always') {\n this.vScrollBar.showAll();\n }\n } else {\n this.vScrollBar.setAttributes({\n x: -this.table.tableNoFrameWidth * 2,\n y: -this.table.tableNoFrameHeight * 2,\n height: 0,\n visible: false\n });\n }\n\n this.table.stateManeger.setScrollLeft(oldHorizontalBarPos);\n this.table.stateManeger.setScrollTop(oldVerticalBarPos);\n }\n\n /**\n * @description: 隐藏列宽调整组件\n * @return {*}\n */\n hideResizeCol() {\n // this.columnResizeLine.attribute.visible = false;\n this.columnResizeLine.setAttribute('visible', false);\n this.columnResizeBgLine.setAttribute('visible', false);\n this.columnResizeLabel.setAttribute('visible', false);\n this.columnResizeLabel.hideAll();\n }\n\n /**\n * @description: 显示列宽调整组件\n * @param {number} col\n * @param {number} y\n * @return {*}\n */\n showResizeCol(col: number, y: number, isRightFrozen?: boolean) {\n // this.columnResizeLine.attribute.visible = false;\n // 基准线\n const colX = getColX(col, this.table, isRightFrozen);\n this.columnResizeLine.setAttributes({\n visible: true,\n x: colX,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: this.table.getRowsHeight(0, this.table.rowCount - 1) }\n ]\n });\n this.columnResizeBgLine.setAttributes({\n visible: true,\n x: colX,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: this.table.getRowsHeight(0, this.table.rowCount - 1) }\n ]\n });\n\n // 标签\n // this.columnResizeLabel.setAttribute('visible', true);\n this.columnResizeLabel.showAll();\n this.columnResizeLabel.setAttributes({\n visible: true,\n x: colX,\n y\n });\n (this.columnResizeLabel.lastChild as WrapText).setAttribute('text', `${this.table.getColWidth(col)}px`);\n }\n\n /**\n * @description: 更新列宽调整组件\n * @param {number} col\n * @param {number} y 标签显示的y坐标\n * @return {*}\n */\n updateResizeCol(col: number, y: number, isRightFrozen?: boolean) {\n // 基准线\n const colX = getColX(col, this.table, isRightFrozen);\n // this.columnResizeLine.setAttribute('x', x);\n this.columnResizeLine.setAttributes({\n x: colX,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: this.table.getRowsHeight(0, this.table.rowCount - 1) } // todo: 优化points赋值\n ]\n });\n this.columnResizeBgLine.setAttributes({\n x: colX,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: this.table.getRowsHeight(0, this.table.rowCount - 1) } // todo: 优化points赋值\n ]\n });\n\n // 标签\n this.columnResizeLabel.setAttributes({\n x: colX,\n y\n });\n (this.columnResizeLabel.lastChild as WrapText).setAttribute('text', `${Math.floor(this.table.getColWidth(col))}px`);\n }\n\n /**\n * @description: 隐藏列顺序调整组件\n * @return {*}\n */\n hideMoveCol() {\n this.cellMover.hide();\n }\n\n /**\n * @description: 显示列顺序调整组件\n * @param {number} col\n * @param {number} x\n * @return {*}\n */\n showMoveCol(col: number, row: number, delta: number) {\n this.cellMover.show(col, row, delta);\n }\n\n /**\n * @description: 更新列顺序调整组件\n * @param {number} backX\n * @param {number} lineX\n * @return {*}\n */\n updateMoveCol(backX: number, lineX: number, backY: number, lineY: number) {\n this.cellMover.update(backX, lineX, backY, lineY);\n }\n\n /**\n * @description: 显示冻结列shadow\n * @param {number} col\n * @return {*}\n */\n setFrozenColumnShadow(col: number, isRightFrozen?: boolean) {\n if (col < 0) {\n this.frozenShadowLine.setAttributes({\n visible: false\n });\n } else {\n // const colX = this.table.getColsWidth(0, col);\n const colX = getColX(col, this.table, isRightFrozen);\n this.frozenShadowLine.setAttributes({\n visible: true,\n x: colX,\n height: this.table.getRowsHeight(0, this.table.rowCount - 1)\n });\n }\n }\n\n hideVerticalScrollBar() {\n const visable = this.table.theme.scrollStyle.visible;\n if (visable !== 'focus' && visable !== 'scrolling') {\n return;\n }\n this.vScrollBar.setAttribute('visible', false);\n this.vScrollBar.hideAll();\n this.table.scenegraph.updateNextFrame();\n }\n showVerticalScrollBar() {\n const visable = this.table.theme.scrollStyle.visible;\n if (visable !== 'focus' && visable !== 'scrolling') {\n return;\n }\n this.vScrollBar.setAttribute('visible', true);\n this.vScrollBar.showAll();\n this.table.scenegraph.updateNextFrame();\n }\n hideHorizontalScrollBar() {\n const visable = this.table.theme.scrollStyle.visible;\n if (visable !== 'focus' && visable !== 'scrolling') {\n return;\n }\n this.hScrollBar.setAttribute('visible', false);\n this.hScrollBar.hideAll();\n this.table.scenegraph.updateNextFrame();\n }\n showHorizontalScrollBar() {\n const visable = this.table.theme.scrollStyle.visible;\n if (visable !== 'focus' && visable !== 'scrolling') {\n return;\n }\n this.hScrollBar.setAttribute('visible', true);\n this.hScrollBar.showAll();\n this.table.scenegraph.updateNextFrame();\n }\n updateVerticalScrollBarPos(topRatio: number) {\n const range = this.vScrollBar.attribute.range;\n const size = range[1] - range[0];\n const range0 = topRatio * (1 - size);\n this.vScrollBar.setAttribute('range', [range0, range0 + size]);\n const bounds = this.vScrollBar.AABBBounds && this.vScrollBar.globalAABBBounds;\n (this.vScrollBar as any)._viewPosition = {\n x: bounds.x1,\n y: bounds.y1\n };\n }\n updateHorizontalScrollBarPos(leftRatio: number) {\n const range = this.hScrollBar.attribute.range;\n const size = range[1] - range[0];\n const range0 = leftRatio * (1 - size);\n this.hScrollBar.setAttribute('range', [range0, range0 + size]);\n const bounds = this.hScrollBar.AABBBounds && this.hScrollBar.globalAABBBounds;\n (this.hScrollBar as any)._viewPosition = {\n x: bounds.x1,\n y: bounds.y1\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["scenegraph/component/util.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,KAAmB,EAAE,aAAuB;IAC/E,IAAI,aAAa,EAAE;QACjB,OAAO,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KAC9E;IACD,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE;QAC/B,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC;KAC1B;IACD,OAAO,IAAI,CAAC;AACd,CAAC","file":"util.js","sourcesContent":["import type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function getColX(col: number, table: BaseTableAPI, isRightFrozen?: boolean) {\n if (isRightFrozen) {\n return table.tableNoFrameWidth - table.getColsWidth(col, table.colCount - 1);\n }\n let colX = table.getColsWidth(0, col);\n if (col >= table.frozenColCount) {\n colX -= table.scrollLeft;\n }\n return colX;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/util.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,KAAmB,EAAE,aAAuB;IAC/E,IAAI,aAAa,EAAE;QACjB,OAAO,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KAC9E;IACD,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE;QAC/B,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC;KAC1B;IACD,OAAO,IAAI,CAAC;AACd,CAAC","file":"util.js","sourcesContent":["import type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function getColX(col: number, table: BaseTableAPI, isRightFrozen?: boolean) {\n if (isRightFrozen) {\n return table.tableNoFrameWidth - table.getColsWidth(col, table.colCount - 1);\n }\n let colX = table.getColsWidth(0, col);\n if (col >= table.frozenColCount) {\n colX -= table.scrollLeft;\n }\n return colX;\n}\n"]}