@visactor/vtable 0.9.2-alpha.3 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/cjs/ListTable.d.ts +1 -2
  2. package/cjs/ListTable.js +13 -17
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotTable.d.ts +1 -2
  5. package/cjs/PivotTable.js +13 -18
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/body-helper/style/MultilineTextStyle.js +2 -2
  8. package/cjs/body-helper/style/MultilineTextStyle.js.map +1 -1
  9. package/cjs/body-helper/style/ProgressBarStyle.js +15 -15
  10. package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -1
  11. package/cjs/body-helper/style/Style.d.ts +1 -0
  12. package/cjs/body-helper/style/Style.js +28 -25
  13. package/cjs/body-helper/style/Style.js.map +1 -1
  14. package/cjs/core/BaseTable.d.ts +5 -18
  15. package/cjs/core/BaseTable.js +37 -94
  16. package/cjs/core/BaseTable.js.map +1 -1
  17. package/cjs/core/TABLE_EVENT_TYPE.d.ts +0 -3
  18. package/cjs/core/TABLE_EVENT_TYPE.js +1 -4
  19. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  20. package/cjs/core/style.js +1 -1
  21. package/cjs/core/style.js.map +1 -1
  22. package/cjs/core/tableHelper.js +2 -1
  23. package/cjs/data/CachedDataSource.js +1 -2
  24. package/cjs/data/DataSource.js +2 -2
  25. package/cjs/data/DataSource.js.map +1 -1
  26. package/cjs/dataset/dataset.d.ts +19 -12
  27. package/cjs/dataset/dataset.js +196 -168
  28. package/cjs/dataset/dataset.js.map +1 -1
  29. package/cjs/event/EventHandler.js.map +1 -1
  30. package/cjs/event/EventTarget.d.ts +5 -5
  31. package/cjs/event/EventTarget.js +2 -2
  32. package/cjs/event/EventTarget.js.map +1 -1
  33. package/cjs/event/event.js +4 -7
  34. package/cjs/event/event.js.map +1 -1
  35. package/cjs/event/listener/table-group.js +6 -8
  36. package/cjs/event/listener/table-group.js.map +1 -1
  37. package/cjs/event/sparkline-event.js.map +1 -1
  38. package/cjs/event/util.js +1 -0
  39. package/cjs/header-helper/header-helper.js +1 -1
  40. package/cjs/header-helper/header-helper.js.map +1 -1
  41. package/cjs/header-helper/style/MultilineTextHeaderStyle.js +2 -2
  42. package/cjs/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
  43. package/cjs/header-helper/style/Style.d.ts +1 -0
  44. package/cjs/header-helper/style/Style.js +28 -25
  45. package/cjs/header-helper/style/Style.js.map +1 -1
  46. package/cjs/index.d.ts +3 -4
  47. package/cjs/index.js +2 -11
  48. package/cjs/index.js.map +1 -1
  49. package/cjs/layout/index.js +1 -2
  50. package/cjs/layout/pivot-header-layout.d.ts +5 -11
  51. package/cjs/layout/pivot-header-layout.js +12 -42
  52. package/cjs/layout/pivot-header-layout.js.map +1 -1
  53. package/cjs/layout/pivot-layout.d.ts +8 -53
  54. package/cjs/layout/pivot-layout.js +89 -393
  55. package/cjs/layout/pivot-layout.js.map +1 -1
  56. package/cjs/layout/simple-header-layout.d.ts +0 -8
  57. package/cjs/layout/simple-header-layout.js +0 -34
  58. package/cjs/layout/simple-header-layout.js.map +1 -1
  59. package/{es/components → cjs}/menu/dom/BaseMenu.d.ts +2 -2
  60. package/cjs/menu/dom/BaseMenu.js.map +1 -0
  61. package/cjs/menu/dom/Menu.js.map +1 -0
  62. package/cjs/{components/menu → menu}/dom/MenuHandler.d.ts +2 -2
  63. package/cjs/{components/menu → menu}/dom/MenuHandler.js +1 -1
  64. package/cjs/menu/dom/MenuHandler.js.map +1 -0
  65. package/{es/components → cjs}/menu/dom/logic/MenuContainer.d.ts +2 -2
  66. package/cjs/{components/menu → menu}/dom/logic/MenuContainer.js +2 -2
  67. package/cjs/menu/dom/logic/MenuContainer.js.map +1 -0
  68. package/cjs/{components/menu → menu}/dom/logic/MenuElement.d.ts +2 -2
  69. package/cjs/{components/menu → menu}/dom/logic/MenuElement.js +4 -4
  70. package/cjs/menu/dom/logic/MenuElement.js.map +1 -0
  71. package/cjs/menu/dom/logic/MenuElementStyle.js.map +1 -0
  72. package/cjs/scenegraph/component/table-component.js +3 -3
  73. package/cjs/scenegraph/component/table-component.js.map +1 -1
  74. package/cjs/scenegraph/graphic/chart.d.ts +0 -3
  75. package/cjs/scenegraph/graphic/chart.js +6 -21
  76. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  77. package/cjs/scenegraph/graphic/contributions/chart-render.js +3 -15
  78. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  79. package/cjs/scenegraph/group-creater/cell-helper.js +3 -8
  80. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  81. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +1 -2
  82. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  83. package/cjs/scenegraph/group-creater/column.js.map +1 -1
  84. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  85. package/cjs/scenegraph/group-creater/progress/proxy.js +35 -29
  86. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  87. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
  88. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  89. package/cjs/scenegraph/layout/auto-width.d.ts +2 -0
  90. package/cjs/scenegraph/layout/auto-width.js +85 -0
  91. package/cjs/scenegraph/layout/auto-width.js.map +1 -0
  92. package/cjs/scenegraph/layout/compute-col-width.js +15 -23
  93. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  94. package/cjs/scenegraph/layout/compute-row-height.js +9 -20
  95. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  96. package/cjs/scenegraph/layout/move-cell.js +1 -1
  97. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  98. package/cjs/scenegraph/layout/update-cell.js +2 -3
  99. package/cjs/scenegraph/layout/update-cell.js.map +1 -1
  100. package/cjs/scenegraph/layout/update-height.js +1 -1
  101. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  102. package/cjs/scenegraph/layout/update-row.js +1 -1
  103. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  104. package/cjs/scenegraph/layout/update-width.js +1 -1
  105. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  106. package/cjs/scenegraph/refresh-node/update-chart.d.ts +0 -3
  107. package/cjs/scenegraph/refresh-node/update-chart.js +5 -48
  108. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  109. package/cjs/scenegraph/scenegraph.d.ts +0 -9
  110. package/cjs/scenegraph/scenegraph.js +18 -144
  111. package/cjs/scenegraph/scenegraph.js.map +1 -1
  112. package/cjs/scenegraph/stick-text/index.js +8 -10
  113. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  114. package/cjs/scenegraph/style/frame-border.js +5 -1
  115. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  116. package/cjs/state/state.js +1 -1
  117. package/cjs/state/state.js.map +1 -1
  118. package/cjs/themes/DEFAULT.js +2 -1
  119. package/cjs/tools/LimitPromiseQueue.js +1 -2
  120. package/cjs/tools/calc.d.ts +0 -3
  121. package/cjs/tools/calc.js +3 -11
  122. package/cjs/tools/calc.js.map +1 -1
  123. package/cjs/tools/diff-cell.js +2 -2
  124. package/cjs/tools/dom.js +1 -1
  125. package/cjs/tools/env.js +1 -1
  126. package/{es/components → cjs}/tooltip/BaseTooltip.d.ts +3 -3
  127. package/cjs/tooltip/BaseTooltip.js.map +1 -0
  128. package/cjs/tooltip/Tooltip.js.map +1 -0
  129. package/{es/components → cjs}/tooltip/TooltipHandler.d.ts +4 -4
  130. package/cjs/{components/tooltip → tooltip}/TooltipHandler.js +1 -1
  131. package/cjs/tooltip/TooltipHandler.js.map +1 -0
  132. package/{es/components → cjs}/tooltip/logic/BubbleTooltipElement.d.ts +4 -4
  133. package/cjs/{components/tooltip → tooltip}/logic/BubbleTooltipElement.js +1 -1
  134. package/cjs/tooltip/logic/BubbleTooltipElement.js.map +1 -0
  135. package/cjs/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -0
  136. package/cjs/ts-types/base-table.d.ts +12 -29
  137. package/cjs/ts-types/base-table.js.map +1 -1
  138. package/cjs/ts-types/column/style.d.ts +1 -0
  139. package/cjs/ts-types/column/style.js.map +1 -1
  140. package/cjs/ts-types/events.d.ts +83 -100
  141. package/cjs/ts-types/events.js.map +1 -1
  142. package/cjs/ts-types/list-table/layout-map/api.d.ts +0 -2
  143. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  144. package/cjs/ts-types/new-data-set.d.ts +5 -18
  145. package/cjs/ts-types/new-data-set.js +2 -2
  146. package/cjs/ts-types/new-data-set.js.map +1 -1
  147. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +0 -4
  148. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +1 -3
  149. package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
  150. package/cjs/ts-types/pivot-table/corner.d.ts +3 -3
  151. package/cjs/ts-types/pivot-table/corner.js.map +1 -1
  152. package/cjs/ts-types/pivot-table/indicator/index.d.ts +0 -1
  153. package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -1
  154. package/cjs/ts-types/pivot-table/title.d.ts +1 -1
  155. package/cjs/ts-types/pivot-table/title.js.map +1 -1
  156. package/cjs/ts-types/table-engine.d.ts +3 -27
  157. package/cjs/ts-types/table-engine.js.map +1 -1
  158. package/dist/vtable.js +11839 -22467
  159. package/dist/vtable.min.js +2 -4
  160. package/es/ListTable.d.ts +1 -2
  161. package/es/ListTable.js +13 -17
  162. package/es/ListTable.js.map +1 -1
  163. package/es/PivotTable.d.ts +1 -2
  164. package/es/PivotTable.js +14 -19
  165. package/es/PivotTable.js.map +1 -1
  166. package/es/body-helper/style/MultilineTextStyle.js +2 -2
  167. package/es/body-helper/style/MultilineTextStyle.js.map +1 -1
  168. package/es/body-helper/style/ProgressBarStyle.js +15 -15
  169. package/es/body-helper/style/ProgressBarStyle.js.map +1 -1
  170. package/es/body-helper/style/Style.d.ts +1 -0
  171. package/es/body-helper/style/Style.js +28 -25
  172. package/es/body-helper/style/Style.js.map +1 -1
  173. package/es/core/BaseTable.d.ts +5 -18
  174. package/es/core/BaseTable.js +39 -98
  175. package/es/core/BaseTable.js.map +1 -1
  176. package/es/core/TABLE_EVENT_TYPE.d.ts +0 -3
  177. package/es/core/TABLE_EVENT_TYPE.js +1 -4
  178. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  179. package/es/core/style.js +1 -1
  180. package/es/core/style.js.map +1 -1
  181. package/es/core/tableHelper.js +2 -1
  182. package/es/data/CachedDataSource.js +1 -2
  183. package/es/data/DataSource.js +2 -2
  184. package/es/data/DataSource.js.map +1 -1
  185. package/es/dataset/dataset.d.ts +19 -12
  186. package/es/dataset/dataset.js +187 -161
  187. package/es/dataset/dataset.js.map +1 -1
  188. package/es/event/EventHandler.js.map +1 -1
  189. package/es/event/EventTarget.d.ts +5 -5
  190. package/es/event/EventTarget.js +2 -2
  191. package/es/event/EventTarget.js.map +1 -1
  192. package/es/event/event.js +3 -8
  193. package/es/event/event.js.map +1 -1
  194. package/es/event/listener/table-group.js +6 -8
  195. package/es/event/listener/table-group.js.map +1 -1
  196. package/es/event/sparkline-event.js.map +1 -1
  197. package/es/event/util.js +2 -1
  198. package/es/header-helper/header-helper.js +1 -1
  199. package/es/header-helper/header-helper.js.map +1 -1
  200. package/es/header-helper/style/MultilineTextHeaderStyle.js +2 -2
  201. package/es/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
  202. package/es/header-helper/style/Style.d.ts +1 -0
  203. package/es/header-helper/style/Style.js +28 -25
  204. package/es/header-helper/style/Style.js.map +1 -1
  205. package/es/index.d.ts +3 -4
  206. package/es/index.js +2 -4
  207. package/es/index.js.map +1 -1
  208. package/es/layout/index.js +1 -2
  209. package/es/layout/pivot-header-layout.d.ts +5 -11
  210. package/es/layout/pivot-header-layout.js +11 -41
  211. package/es/layout/pivot-header-layout.js.map +1 -1
  212. package/es/layout/pivot-layout.d.ts +8 -53
  213. package/es/layout/pivot-layout.js +87 -396
  214. package/es/layout/pivot-layout.js.map +1 -1
  215. package/es/layout/simple-header-layout.d.ts +0 -8
  216. package/es/layout/simple-header-layout.js +0 -34
  217. package/es/layout/simple-header-layout.js.map +1 -1
  218. package/{cjs/components → es}/menu/dom/BaseMenu.d.ts +2 -2
  219. package/es/menu/dom/BaseMenu.js.map +1 -0
  220. package/es/menu/dom/Menu.js.map +1 -0
  221. package/es/{components/menu → menu}/dom/MenuHandler.d.ts +2 -2
  222. package/es/{components/menu → menu}/dom/MenuHandler.js +2 -2
  223. package/es/menu/dom/MenuHandler.js.map +1 -0
  224. package/{cjs/components → es}/menu/dom/logic/MenuContainer.d.ts +2 -2
  225. package/es/{components/menu → menu}/dom/logic/MenuContainer.js +4 -4
  226. package/es/menu/dom/logic/MenuContainer.js.map +1 -0
  227. package/es/{components/menu → menu}/dom/logic/MenuElement.d.ts +2 -2
  228. package/es/{components/menu → menu}/dom/logic/MenuElement.js +9 -9
  229. package/es/menu/dom/logic/MenuElement.js.map +1 -0
  230. package/es/menu/dom/logic/MenuElementStyle.js.map +1 -0
  231. package/es/scenegraph/component/table-component.js +3 -3
  232. package/es/scenegraph/component/table-component.js.map +1 -1
  233. package/es/scenegraph/graphic/chart.d.ts +0 -3
  234. package/es/scenegraph/graphic/chart.js +5 -22
  235. package/es/scenegraph/graphic/chart.js.map +1 -1
  236. package/es/scenegraph/graphic/contributions/chart-render.js +3 -15
  237. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  238. package/es/scenegraph/group-creater/cell-helper.js +2 -9
  239. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  240. package/es/scenegraph/group-creater/cell-type/chart-cell.js +1 -2
  241. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  242. package/es/scenegraph/group-creater/column.js.map +1 -1
  243. package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
  244. package/es/scenegraph/group-creater/progress/proxy.js +34 -27
  245. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  246. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
  247. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  248. package/es/scenegraph/layout/auto-width.d.ts +2 -0
  249. package/es/scenegraph/layout/auto-width.js +82 -0
  250. package/es/scenegraph/layout/auto-width.js.map +1 -0
  251. package/es/scenegraph/layout/compute-col-width.js +15 -23
  252. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  253. package/es/scenegraph/layout/compute-row-height.js +9 -20
  254. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  255. package/es/scenegraph/layout/move-cell.js +1 -1
  256. package/es/scenegraph/layout/move-cell.js.map +1 -1
  257. package/es/scenegraph/layout/update-cell.js +1 -3
  258. package/es/scenegraph/layout/update-cell.js.map +1 -1
  259. package/es/scenegraph/layout/update-height.js +1 -1
  260. package/es/scenegraph/layout/update-height.js.map +1 -1
  261. package/es/scenegraph/layout/update-row.js +1 -1
  262. package/es/scenegraph/layout/update-row.js.map +1 -1
  263. package/es/scenegraph/layout/update-width.js +1 -1
  264. package/es/scenegraph/layout/update-width.js.map +1 -1
  265. package/es/scenegraph/refresh-node/update-chart.d.ts +0 -3
  266. package/es/scenegraph/refresh-node/update-chart.js +4 -45
  267. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  268. package/es/scenegraph/scenegraph.d.ts +0 -9
  269. package/es/scenegraph/scenegraph.js +19 -146
  270. package/es/scenegraph/scenegraph.js.map +1 -1
  271. package/es/scenegraph/stick-text/index.js +8 -10
  272. package/es/scenegraph/stick-text/index.js.map +1 -1
  273. package/es/scenegraph/style/frame-border.js +5 -1
  274. package/es/scenegraph/style/frame-border.js.map +1 -1
  275. package/es/state/state.js +1 -1
  276. package/es/state/state.js.map +1 -1
  277. package/es/themes/DEFAULT.js +2 -1
  278. package/es/tools/LimitPromiseQueue.js +1 -2
  279. package/es/tools/calc.d.ts +0 -3
  280. package/es/tools/calc.js +0 -10
  281. package/es/tools/calc.js.map +1 -1
  282. package/es/tools/diff-cell.js +1 -1
  283. package/es/tools/dom.js +1 -1
  284. package/es/tools/env.js +1 -1
  285. package/{cjs/components → es}/tooltip/BaseTooltip.d.ts +3 -3
  286. package/es/tooltip/BaseTooltip.js.map +1 -0
  287. package/es/tooltip/Tooltip.js.map +1 -0
  288. package/{cjs/components → es}/tooltip/TooltipHandler.d.ts +4 -4
  289. package/es/{components/tooltip → tooltip}/TooltipHandler.js +4 -4
  290. package/es/tooltip/TooltipHandler.js.map +1 -0
  291. package/{cjs/components → es}/tooltip/logic/BubbleTooltipElement.d.ts +4 -4
  292. package/es/{components/tooltip → tooltip}/logic/BubbleTooltipElement.js +4 -4
  293. package/es/tooltip/logic/BubbleTooltipElement.js.map +1 -0
  294. package/es/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -0
  295. package/es/ts-types/base-table.d.ts +12 -29
  296. package/es/ts-types/base-table.js.map +1 -1
  297. package/es/ts-types/column/style.d.ts +1 -0
  298. package/es/ts-types/column/style.js.map +1 -1
  299. package/es/ts-types/events.d.ts +83 -100
  300. package/es/ts-types/events.js.map +1 -1
  301. package/es/ts-types/list-table/layout-map/api.d.ts +0 -2
  302. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  303. package/es/ts-types/new-data-set.d.ts +5 -18
  304. package/es/ts-types/new-data-set.js +2 -2
  305. package/es/ts-types/new-data-set.js.map +1 -1
  306. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +0 -4
  307. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +0 -4
  308. package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
  309. package/es/ts-types/pivot-table/corner.d.ts +3 -3
  310. package/es/ts-types/pivot-table/corner.js.map +1 -1
  311. package/es/ts-types/pivot-table/indicator/index.d.ts +0 -1
  312. package/es/ts-types/pivot-table/indicator/index.js.map +1 -1
  313. package/es/ts-types/pivot-table/title.d.ts +1 -1
  314. package/es/ts-types/pivot-table/title.js.map +1 -1
  315. package/es/ts-types/table-engine.d.ts +3 -27
  316. package/es/ts-types/table-engine.js.map +1 -1
  317. package/package.json +8 -14
  318. package/cjs/PivotChart.d.ts +0 -68
  319. package/cjs/PivotChart.js +0 -427
  320. package/cjs/PivotChart.js.map +0 -1
  321. package/cjs/components/axis/axis.d.ts +0 -45
  322. package/cjs/components/axis/axis.js +0 -146
  323. package/cjs/components/axis/axis.js.map +0 -1
  324. package/cjs/components/axis/band-scale.d.ts +0 -18
  325. package/cjs/components/axis/band-scale.js +0 -54
  326. package/cjs/components/axis/band-scale.js.map +0 -1
  327. package/cjs/components/axis/get-axis-attributes.d.ts +0 -136
  328. package/cjs/components/axis/get-axis-attributes.js +0 -169
  329. package/cjs/components/axis/get-axis-attributes.js.map +0 -1
  330. package/cjs/components/axis/label-overlap.d.ts +0 -3
  331. package/cjs/components/axis/label-overlap.js +0 -46
  332. package/cjs/components/axis/label-overlap.js.map +0 -1
  333. package/cjs/components/axis/linear-scale.d.ts +0 -45
  334. package/cjs/components/axis/linear-scale.js +0 -120
  335. package/cjs/components/axis/linear-scale.js.map +0 -1
  336. package/cjs/components/legend/get-legend-attributes.d.ts +0 -5
  337. package/cjs/components/legend/get-legend-attributes.js +0 -90
  338. package/cjs/components/legend/get-legend-attributes.js.map +0 -1
  339. package/cjs/components/legend/legend.d.ts +0 -23
  340. package/cjs/components/legend/legend.js +0 -94
  341. package/cjs/components/legend/legend.js.map +0 -1
  342. package/cjs/components/menu/dom/BaseMenu.js.map +0 -1
  343. package/cjs/components/menu/dom/Menu.js.map +0 -1
  344. package/cjs/components/menu/dom/MenuHandler.js.map +0 -1
  345. package/cjs/components/menu/dom/logic/MenuContainer.js.map +0 -1
  346. package/cjs/components/menu/dom/logic/MenuElement.js.map +0 -1
  347. package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +0 -1
  348. package/cjs/components/title/title.d.ts +0 -12
  349. package/cjs/components/title/title.js +0 -66
  350. package/cjs/components/title/title.js.map +0 -1
  351. package/cjs/components/tooltip/BaseTooltip.js.map +0 -1
  352. package/cjs/components/tooltip/Tooltip.js.map +0 -1
  353. package/cjs/components/tooltip/TooltipHandler.js.map +0 -1
  354. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +0 -1
  355. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +0 -1
  356. package/cjs/components/util/orient.d.ts +0 -3
  357. package/cjs/components/util/orient.js +0 -14
  358. package/cjs/components/util/orient.js.map +0 -1
  359. package/cjs/components/util/register.d.ts +0 -3
  360. package/cjs/components/util/register.js +0 -15
  361. package/cjs/components/util/register.js.map +0 -1
  362. package/cjs/components/util/tick-data/config.d.ts +0 -1
  363. package/cjs/components/util/tick-data/config.js +0 -6
  364. package/cjs/components/util/tick-data/config.js.map +0 -1
  365. package/cjs/components/util/tick-data/continuous.d.ts +0 -2
  366. package/cjs/components/util/tick-data/continuous.js +0 -39
  367. package/cjs/components/util/tick-data/continuous.js.map +0 -1
  368. package/cjs/components/util/tick-data/discrete/linear.d.ts +0 -2
  369. package/cjs/components/util/tick-data/discrete/linear.js +0 -66
  370. package/cjs/components/util/tick-data/discrete/linear.js.map +0 -1
  371. package/cjs/components/util/tick-data/discrete/polar-angle.d.ts +0 -2
  372. package/cjs/components/util/tick-data/discrete/polar-angle.js +0 -46
  373. package/cjs/components/util/tick-data/discrete/polar-angle.js.map +0 -1
  374. package/cjs/components/util/tick-data/index.d.ts +0 -2
  375. package/cjs/components/util/tick-data/index.js +0 -17
  376. package/cjs/components/util/tick-data/index.js.map +0 -1
  377. package/cjs/components/util/tick-data/util.d.ts +0 -21
  378. package/cjs/components/util/tick-data/util.js +0 -115
  379. package/cjs/components/util/tick-data/util.js.map +0 -1
  380. package/cjs/components/util/transform.d.ts +0 -5
  381. package/cjs/components/util/transform.js +0 -45
  382. package/cjs/components/util/transform.js.map +0 -1
  383. package/cjs/dataset/statistics-helper.d.ts +0 -68
  384. package/cjs/dataset/statistics-helper.js +0 -173
  385. package/cjs/dataset/statistics-helper.js.map +0 -1
  386. package/cjs/dataset/util/zero-align.d.ts +0 -10
  387. package/cjs/dataset/util/zero-align.js +0 -119
  388. package/cjs/dataset/util/zero-align.js.map +0 -1
  389. package/cjs/event/VChartEventProxy.d.ts +0 -1
  390. package/cjs/event/VChartEventProxy.js +0 -1
  391. package/cjs/event/VChartEventProxy.js.map +0 -1
  392. package/cjs/event/pivot-chart/axis-click.d.ts +0 -2
  393. package/cjs/event/pivot-chart/axis-click.js +0 -42
  394. package/cjs/event/pivot-chart/axis-click.js.map +0 -1
  395. package/cjs/layout/pivot-chart/get-axis-config.d.ts +0 -2
  396. package/cjs/layout/pivot-chart/get-axis-config.js +0 -118
  397. package/cjs/layout/pivot-chart/get-axis-config.js.map +0 -1
  398. package/cjs/layout/pivot-chart/get-chart-spec.d.ts +0 -4
  399. package/cjs/layout/pivot-chart/get-chart-spec.js +0 -118
  400. package/cjs/layout/pivot-chart/get-chart-spec.js.map +0 -1
  401. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +0 -3
  402. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +0 -71
  403. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +0 -1
  404. package/cjs/ts-types/component/axis.d.ts +0 -12
  405. package/cjs/ts-types/component/axis.js +0 -6
  406. package/cjs/ts-types/component/axis.js.map +0 -1
  407. package/cjs/ts-types/component/legend.d.ts +0 -5
  408. package/cjs/ts-types/component/legend.js +0 -6
  409. package/cjs/ts-types/component/legend.js.map +0 -1
  410. package/cjs/ts-types/component/title.d.ts +0 -47
  411. package/cjs/ts-types/component/title.js +0 -6
  412. package/cjs/ts-types/component/title.js.map +0 -1
  413. package/cjs/ts-types/component/util.d.ts +0 -1
  414. package/cjs/ts-types/component/util.js +0 -6
  415. package/cjs/ts-types/component/util.js.map +0 -1
  416. package/es/PivotChart.d.ts +0 -68
  417. package/es/PivotChart.js +0 -437
  418. package/es/PivotChart.js.map +0 -1
  419. package/es/components/axis/axis.d.ts +0 -45
  420. package/es/components/axis/axis.js +0 -155
  421. package/es/components/axis/axis.js.map +0 -1
  422. package/es/components/axis/band-scale.d.ts +0 -18
  423. package/es/components/axis/band-scale.js +0 -46
  424. package/es/components/axis/band-scale.js.map +0 -1
  425. package/es/components/axis/get-axis-attributes.d.ts +0 -136
  426. package/es/components/axis/get-axis-attributes.js +0 -166
  427. package/es/components/axis/get-axis-attributes.js.map +0 -1
  428. package/es/components/axis/label-overlap.d.ts +0 -3
  429. package/es/components/axis/label-overlap.js +0 -39
  430. package/es/components/axis/label-overlap.js.map +0 -1
  431. package/es/components/axis/linear-scale.d.ts +0 -45
  432. package/es/components/axis/linear-scale.js +0 -104
  433. package/es/components/axis/linear-scale.js.map +0 -1
  434. package/es/components/legend/get-legend-attributes.d.ts +0 -5
  435. package/es/components/legend/get-legend-attributes.js +0 -84
  436. package/es/components/legend/get-legend-attributes.js.map +0 -1
  437. package/es/components/legend/legend.d.ts +0 -23
  438. package/es/components/legend/legend.js +0 -93
  439. package/es/components/legend/legend.js.map +0 -1
  440. package/es/components/menu/dom/BaseMenu.js.map +0 -1
  441. package/es/components/menu/dom/Menu.js.map +0 -1
  442. package/es/components/menu/dom/MenuHandler.js.map +0 -1
  443. package/es/components/menu/dom/logic/MenuContainer.js.map +0 -1
  444. package/es/components/menu/dom/logic/MenuElement.js.map +0 -1
  445. package/es/components/menu/dom/logic/MenuElementStyle.js.map +0 -1
  446. package/es/components/title/title.d.ts +0 -12
  447. package/es/components/title/title.js +0 -61
  448. package/es/components/title/title.js.map +0 -1
  449. package/es/components/tooltip/BaseTooltip.js.map +0 -1
  450. package/es/components/tooltip/Tooltip.js.map +0 -1
  451. package/es/components/tooltip/TooltipHandler.js.map +0 -1
  452. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +0 -1
  453. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +0 -1
  454. package/es/components/util/orient.d.ts +0 -3
  455. package/es/components/util/orient.js +0 -8
  456. package/es/components/util/orient.js.map +0 -1
  457. package/es/components/util/register.d.ts +0 -3
  458. package/es/components/util/register.js +0 -8
  459. package/es/components/util/register.js.map +0 -1
  460. package/es/components/util/tick-data/config.d.ts +0 -1
  461. package/es/components/util/tick-data/config.js +0 -2
  462. package/es/components/util/tick-data/config.js.map +0 -1
  463. package/es/components/util/tick-data/continuous.d.ts +0 -2
  464. package/es/components/util/tick-data/continuous.js +0 -38
  465. package/es/components/util/tick-data/continuous.js.map +0 -1
  466. package/es/components/util/tick-data/discrete/linear.d.ts +0 -2
  467. package/es/components/util/tick-data/discrete/linear.js +0 -59
  468. package/es/components/util/tick-data/discrete/linear.js.map +0 -1
  469. package/es/components/util/tick-data/discrete/polar-angle.d.ts +0 -2
  470. package/es/components/util/tick-data/discrete/polar-angle.js +0 -39
  471. package/es/components/util/tick-data/discrete/polar-angle.js.map +0 -1
  472. package/es/components/util/tick-data/index.d.ts +0 -2
  473. package/es/components/util/tick-data/index.js +0 -19
  474. package/es/components/util/tick-data/index.js.map +0 -1
  475. package/es/components/util/tick-data/util.d.ts +0 -21
  476. package/es/components/util/tick-data/util.js +0 -104
  477. package/es/components/util/tick-data/util.js.map +0 -1
  478. package/es/components/util/transform.d.ts +0 -5
  479. package/es/components/util/transform.js +0 -34
  480. package/es/components/util/transform.js.map +0 -1
  481. package/es/dataset/statistics-helper.d.ts +0 -68
  482. package/es/dataset/statistics-helper.js +0 -152
  483. package/es/dataset/statistics-helper.js.map +0 -1
  484. package/es/dataset/util/zero-align.d.ts +0 -10
  485. package/es/dataset/util/zero-align.js +0 -111
  486. package/es/dataset/util/zero-align.js.map +0 -1
  487. package/es/event/VChartEventProxy.d.ts +0 -1
  488. package/es/event/VChartEventProxy.js +0 -1
  489. package/es/event/VChartEventProxy.js.map +0 -1
  490. package/es/event/pivot-chart/axis-click.d.ts +0 -2
  491. package/es/event/pivot-chart/axis-click.js +0 -36
  492. package/es/event/pivot-chart/axis-click.js.map +0 -1
  493. package/es/layout/pivot-chart/get-axis-config.d.ts +0 -2
  494. package/es/layout/pivot-chart/get-axis-config.js +0 -110
  495. package/es/layout/pivot-chart/get-axis-config.js.map +0 -1
  496. package/es/layout/pivot-chart/get-chart-spec.d.ts +0 -4
  497. package/es/layout/pivot-chart/get-chart-spec.js +0 -109
  498. package/es/layout/pivot-chart/get-chart-spec.js.map +0 -1
  499. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +0 -3
  500. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +0 -65
  501. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +0 -1
  502. package/es/ts-types/component/axis.d.ts +0 -12
  503. package/es/ts-types/component/axis.js +0 -2
  504. package/es/ts-types/component/axis.js.map +0 -1
  505. package/es/ts-types/component/legend.d.ts +0 -5
  506. package/es/ts-types/component/legend.js +0 -2
  507. package/es/ts-types/component/legend.js.map +0 -1
  508. package/es/ts-types/component/title.d.ts +0 -47
  509. package/es/ts-types/component/title.js +0 -2
  510. package/es/ts-types/component/title.js.map +0 -1
  511. package/es/ts-types/component/util.d.ts +0 -1
  512. package/es/ts-types/component/util.js +0 -2
  513. package/es/ts-types/component/util.js.map +0 -1
  514. /package/cjs/{components/menu → menu}/dom/BaseMenu.js +0 -0
  515. /package/cjs/{components/menu → menu}/dom/Menu.d.ts +0 -0
  516. /package/cjs/{components/menu → menu}/dom/Menu.js +0 -0
  517. /package/cjs/{components/menu → menu}/dom/logic/MenuElementStyle.d.ts +0 -0
  518. /package/cjs/{components/menu → menu}/dom/logic/MenuElementStyle.js +0 -0
  519. /package/cjs/{components/tooltip → tooltip}/BaseTooltip.js +0 -0
  520. /package/cjs/{components/tooltip → tooltip}/Tooltip.d.ts +0 -0
  521. /package/cjs/{components/tooltip → tooltip}/Tooltip.js +0 -0
  522. /package/cjs/{components/tooltip → tooltip}/logic/BubbleTooltipElementStyle.d.ts +0 -0
  523. /package/cjs/{components/tooltip → tooltip}/logic/BubbleTooltipElementStyle.js +0 -0
  524. /package/es/{components/menu → menu}/dom/BaseMenu.js +0 -0
  525. /package/es/{components/menu → menu}/dom/Menu.d.ts +0 -0
  526. /package/es/{components/menu → menu}/dom/Menu.js +0 -0
  527. /package/es/{components/menu → menu}/dom/logic/MenuElementStyle.d.ts +0 -0
  528. /package/es/{components/menu → menu}/dom/logic/MenuElementStyle.js +0 -0
  529. /package/es/{components/tooltip → tooltip}/BaseTooltip.js +0 -0
  530. /package/es/{components/tooltip → tooltip}/Tooltip.d.ts +0 -0
  531. /package/es/{components/tooltip → tooltip}/Tooltip.js +0 -0
  532. /package/es/{components/tooltip → tooltip}/logic/BubbleTooltipElementStyle.d.ts +0 -0
  533. /package/es/{components/tooltip → tooltip}/logic/BubbleTooltipElementStyle.js +0 -0
package/es/PivotChart.js DELETED
@@ -1,437 +0,0 @@
1
- import { AggregationType } from "./ts-types";
2
-
3
- import { HierarchyState } from "./ts-types";
4
-
5
- import { getField } from "./data/DataSource";
6
-
7
- import { PivotLayoutMap } from "./layout/pivot-layout";
8
-
9
- import { PIVOT_CHART_EVENT_TYPE } from "./ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE";
10
-
11
- import { cellInRange, emptyFn } from "./tools/helper";
12
-
13
- import { Dataset } from "./dataset/dataset";
14
-
15
- import { _setDataSource } from "./core/tableHelper";
16
-
17
- import { BaseTable } from "./core/BaseTable";
18
-
19
- import { clearChartCacheImage, updateChartData } from "./scenegraph/refresh-node/update-chart";
20
-
21
- import { isArray } from "@visactor/vutils";
22
-
23
- export class PivotChart extends BaseTable {
24
- constructor(options) {
25
- var _a, _b;
26
- if (super(options), this._selectedDataItemsInChart = [], this._selectedDimensionInChart = [],
27
- this._chartEventMap = {}, options.layout && Object.assign(options, options.layout),
28
- this.setCustomStateNameToSpec(), this.internalProps.dataConfig = {
29
- isPivotChart: !0
30
- }, this.internalProps.enableDataAnalysis = !0, this._axes = isArray(options.axes) ? options.axes : [],
31
- this.internalProps.enableDataAnalysis && (options.rows || options.columns)) {
32
- const rowKeys = options.rows.reduce(((keys, rowObj) => ("string" == typeof rowObj ? keys.push(rowObj) : keys.push(rowObj.dimensionKey),
33
- keys)), []), columnKeys = options.columns.reduce(((keys, columnObj) => ("string" == typeof columnObj ? keys.push(columnObj) : keys.push(columnObj.dimensionKey),
34
- keys)), []), indicatorKeys = null !== (_b = null === (_a = options.indicators) || void 0 === _a ? void 0 : _a.reduce(((keys, indicatorObj) => ("string" == typeof indicatorObj ? keys.push(indicatorObj) : keys.push(indicatorObj.indicatorKey),
35
- keys)), [])) && void 0 !== _b ? _b : [];
36
- this.internalProps.dataConfig.collectValuesBy = this._generateCollectValuesConfig(columnKeys, rowKeys),
37
- this.internalProps.dataConfig.aggregationRules = this._generateAggregationRules(),
38
- this.dataset = new Dataset(this.internalProps.dataConfig, rowKeys, columnKeys, indicatorKeys, options.records, options.columnTree, options.rowTree);
39
- }
40
- this.refreshHeader(), options.dataSource ? _setDataSource(this, options.dataSource) : options.records ? this.setRecords(options.records, this.internalProps.sortState) : this.setRecords([]);
41
- }
42
- static get EVENT_TYPE() {
43
- return PIVOT_CHART_EVENT_TYPE;
44
- }
45
- get pivotChartAxes() {
46
- return this._axes;
47
- }
48
- isListTable() {
49
- return !1;
50
- }
51
- isPivotTable() {
52
- return !0;
53
- }
54
- isPivotChart() {
55
- return !0;
56
- }
57
- _canResizeColumn(col, row) {
58
- const ifCan = super._canResizeColumn(col, row);
59
- if (ifCan && !this.internalProps.layoutMap.indicatorsAsCol) {
60
- const cellDefine = this.internalProps.layoutMap.getBody(col, this.columnHeaderLevelCount);
61
- if (null == cellDefine ? void 0 : cellDefine.disableColumnResize) return !1;
62
- }
63
- return ifCan;
64
- }
65
- updateOption(options, accelerateFirstScreen = !1) {
66
- var _a;
67
- const internalProps = this.internalProps;
68
- if (super.updateOption(options), this.setCustomStateNameToSpec(), internalProps.dataConfig = {},
69
- this.internalProps.enableDataAnalysis = !0, this.internalProps.enableDataAnalysis && (options.rows || options.columns)) {
70
- const rowKeys = options.rows.reduce(((keys, rowObj) => ("string" == typeof rowObj ? keys.push(rowObj) : keys.push(rowObj.dimensionKey),
71
- keys)), []), columnKeys = options.columns.reduce(((keys, columnObj) => ("string" == typeof columnObj ? keys.push(columnObj) : keys.push(columnObj.dimensionKey),
72
- keys)), []), indicatorKeys = options.indicators.reduce(((keys, indicatorObj) => ("string" == typeof indicatorObj ? keys.push(indicatorObj) : keys.push(indicatorObj.indicatorKey),
73
- keys)), []);
74
- this.internalProps.dataConfig.collectValuesBy = this._generateCollectValuesConfig(columnKeys, rowKeys),
75
- this.internalProps.dataConfig.aggregationRules = this._generateAggregationRules(),
76
- this.dataset = new Dataset(this.internalProps.dataConfig, rowKeys, columnKeys, indicatorKeys, null !== (_a = options.records) && void 0 !== _a ? _a : this.internalProps.records, options.columnTree, options.rowTree);
77
- }
78
- return this.refreshHeader(), internalProps.disposables && (internalProps.disposables.forEach((disposable => {
79
- var _a;
80
- return null === (_a = null == disposable ? void 0 : disposable.dispose) || void 0 === _a ? void 0 : _a.call(disposable);
81
- })), internalProps.disposables = null), this._updateSize(), options.dataSource ? _setDataSource(this, options.dataSource) : options.records ? this.setRecords(options.records, void 0) : (this._resetFrozenColCount(),
82
- this.scenegraph.createSceneGraph(), this.invalidate()), new Promise((resolve => {
83
- setTimeout(resolve, 0);
84
- }));
85
- }
86
- refreshHeader() {
87
- var _a, _b;
88
- const internalProps = this.internalProps;
89
- internalProps.headerEvents && internalProps.headerEvents.forEach((id => this.unlisten(id))),
90
- this.internalProps.enableDataAnalysis && (internalProps.layoutMap = new PivotLayoutMap(this, this.dataset));
91
- for (let col = 0; col < internalProps.layoutMap.columnWidths.length; col++) {
92
- const {width: width, minWidth: minWidth, maxWidth: maxWidth} = null !== (_b = null === (_a = internalProps.layoutMap.columnWidths) || void 0 === _a ? void 0 : _a[col]) && void 0 !== _b ? _b : {};
93
- width && ("string" == typeof width && "auto" !== width || "number" == typeof width && width > 0) && this.setColWidth(col, width),
94
- minWidth && ("number" == typeof minWidth && minWidth > 0 || "string" == typeof minWidth) && this.setMinColWidth(col, minWidth),
95
- maxWidth && ("number" == typeof maxWidth && maxWidth > 0 || "string" == typeof maxWidth) && this.setMaxColWidth(col, maxWidth);
96
- }
97
- this.refreshRowColCount();
98
- }
99
- refreshRowColCount() {
100
- var _a, _b, _c, _d;
101
- const {layoutMap: layoutMap} = this.internalProps;
102
- layoutMap && (this.colCount = null !== (_a = layoutMap.colCount) && void 0 !== _a ? _a : 0,
103
- this.rowCount = null !== (_b = layoutMap.rowCount) && void 0 !== _b ? _b : 0, this.frozenColCount = layoutMap.rowHeaderLevelCount,
104
- this.frozenRowCount = layoutMap.headerLevelCount, this.bottomFrozenRowCount = null !== (_c = null == layoutMap ? void 0 : layoutMap.bottomFrozenRowCount) && void 0 !== _c ? _c : 0,
105
- this.rightFrozenColCount = null !== (_d = null == layoutMap ? void 0 : layoutMap.rightFrozenColCount) && void 0 !== _d ? _d : 0);
106
- }
107
- _getSortFuncFromHeaderOption(columns, field, fieldKey) {}
108
- syncHierarchyState(sourceNode, targetNode) {
109
- var _a, _b;
110
- sourceNode.value === targetNode.value && sourceNode.dimensionKey === targetNode.dimensionKey && (targetNode.hierarchyState = null !== (_a = targetNode.hierarchyState) && void 0 !== _a ? _a : (null == targetNode ? void 0 : targetNode.children) ? sourceNode.hierarchyState : void 0,
111
- null === (_b = null == targetNode ? void 0 : targetNode.children) || void 0 === _b || _b.forEach(((targetChildNode, index) => {
112
- var _a;
113
- (null === (_a = null == sourceNode ? void 0 : sourceNode.children) || void 0 === _a ? void 0 : _a[index]) && targetChildNode && this.syncHierarchyState(sourceNode.children[index], targetChildNode);
114
- })));
115
- }
116
- getRecordIndexByRow(row) {
117
- const {layoutMap: layoutMap} = this.internalProps;
118
- return layoutMap.getRecordIndexByRow(row);
119
- }
120
- getRecordIndexByCol(col) {
121
- const {layoutMap: layoutMap} = this.internalProps;
122
- return layoutMap.getRecordIndexByCol(col);
123
- }
124
- getFieldData(field, col, row) {
125
- var _a;
126
- if (null == field) return null;
127
- const table = this;
128
- if (table.internalProps.layoutMap.isHeader(col, row)) return null;
129
- const rowIndex = this.getRecordIndexByRow(row), colIndex = this.getRecordIndexByCol(col), dataValue = null === (_a = table.dataSource) || void 0 === _a ? void 0 : _a.getField(rowIndex, colIndex);
130
- if ("string" != typeof field) {
131
- const cellHeaderPaths = table.internalProps.layoutMap.getCellHeaderPaths(col, row);
132
- return getField(Object.assign({
133
- dataValue: dataValue
134
- }, cellHeaderPaths), field, emptyFn);
135
- }
136
- return dataValue;
137
- }
138
- getCellValue(col, row) {
139
- var _a, _b;
140
- if (this.internalProps.layoutMap.isHeader(col, row)) {
141
- const {caption: caption, fieldFormat: fieldFormat} = this.internalProps.layoutMap.getHeader(col, row);
142
- return "function" == typeof fieldFormat ? fieldFormat(caption) : caption;
143
- }
144
- if (this.dataset) {
145
- const colKey = null !== (_a = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)]) && void 0 !== _a ? _a : [], rowKey = null !== (_b = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)]) && void 0 !== _b ? _b : [], aggregator = this.dataset.getAggregator(rowKey[rowKey.length - 1], colKey[colKey.length - 1], this.internalProps.layoutMap.getIndicatorKey(col, row));
146
- return aggregator.value ? aggregator.value() : void 0;
147
- }
148
- const {field: field, fieldFormat: fieldFormat} = this.internalProps.layoutMap.getBody(col, row);
149
- return this.getFieldData(fieldFormat || field, col, row);
150
- }
151
- getCellOriginValue(col, row) {
152
- var _a, _b;
153
- const table = this;
154
- if (table.internalProps.layoutMap.isHeader(col, row)) {
155
- const {caption: caption} = table.internalProps.layoutMap.getHeader(col, row);
156
- return "function" == typeof caption ? caption() : caption;
157
- }
158
- if (this.dataset) {
159
- const colKey = null !== (_a = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)]) && void 0 !== _a ? _a : [], rowKey = null !== (_b = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)]) && void 0 !== _b ? _b : [], aggregator = this.dataset.getAggregator(rowKey[rowKey.length - 1], colKey[colKey.length - 1], this.internalProps.layoutMap.getIndicatorKey(col, row));
160
- return aggregator.value ? aggregator.value() : void 0;
161
- }
162
- const {field: field} = table.internalProps.layoutMap.getBody(col, row);
163
- return table.getFieldData(field, col, row);
164
- }
165
- getCellOriginRecord(col, row) {
166
- var _a, _b;
167
- if (!this.internalProps.layoutMap.isHeader(col, row) && this.dataset) {
168
- const colKey = null !== (_a = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)]) && void 0 !== _a ? _a : [], rowKey = null !== (_b = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)]) && void 0 !== _b ? _b : [];
169
- return this.dataset.getAggregator(rowKey[rowKey.length - 1], colKey[colKey.length - 1], this.internalProps.layoutMap.getIndicatorKey(col, row)).records;
170
- }
171
- }
172
- updateSortRules(sortRules) {
173
- this.internalProps.dataConfig.sortRules = sortRules, this.dataset.updateSortRules(sortRules),
174
- this.internalProps.layoutMap.updateDataset(this.dataset), this.invalidate();
175
- }
176
- updatePivotSortState(pivotSortStateConfig) {
177
- for (let i = 0; i < pivotSortStateConfig.length; i++) {
178
- const {dimensions: dimensions, order: order} = pivotSortStateConfig[i], cellAddress = this.internalProps.layoutMap.getPivotCellAdress(dimensions);
179
- cellAddress && this.pivotSortState.push({
180
- col: cellAddress.col,
181
- row: cellAddress.row,
182
- order: order
183
- });
184
- }
185
- }
186
- getPivotSortState(col, row) {
187
- if (!this.pivotSortState) return;
188
- const cellRange = this.getCellRange(col, row);
189
- for (let i = 0; i < this.pivotSortState.length; i++) {
190
- const {col: sortCol, row: sortRow, order: order} = this.pivotSortState[i];
191
- if (cellInRange(cellRange, sortCol, sortRow)) return order;
192
- }
193
- }
194
- moveHeaderPosition(source, target) {
195
- var _a, _b, _c, _d, _e, _f;
196
- const moveContext = this.internalProps.layoutMap.moveHeaderPosition(source, target);
197
- if (moveContext) {
198
- if ("column" === moveContext.moveType) {
199
- if ((null === (_b = null === (_a = this.options.records) || void 0 === _a ? void 0 : _a[0]) || void 0 === _b ? void 0 : _b.constructor) === Array) for (let row = 0; row < this.records.length; row++) {
200
- const sourceColumns = this.records[row].splice(moveContext.sourceIndex - this.rowHeaderLevelCount, moveContext.moveSize);
201
- sourceColumns.unshift(moveContext.targetIndex - this.rowHeaderLevelCount, 0), Array.prototype.splice.apply(this.records[row], sourceColumns);
202
- }
203
- this.colWidthsMap.adjustOrder(moveContext.sourceIndex, moveContext.targetIndex, moveContext.moveSize);
204
- for (let col = 0; col < this.internalProps.layoutMap.columnWidths.length; col++) {
205
- const {minWidth: minWidth, maxWidth: maxWidth} = null !== (_d = null === (_c = this.internalProps.layoutMap.columnWidths) || void 0 === _c ? void 0 : _c[col]) && void 0 !== _d ? _d : {};
206
- minWidth && ("number" == typeof minWidth && minWidth > 0 || "string" == typeof minWidth) && this.setMinColWidth(col, minWidth),
207
- maxWidth && ("number" == typeof maxWidth && maxWidth > 0 || "string" == typeof maxWidth) && this.setMaxColWidth(col, maxWidth);
208
- }
209
- } else if ("row" === moveContext.moveType) {
210
- if ((null === (_f = null === (_e = this.options.records) || void 0 === _e ? void 0 : _e[0]) || void 0 === _f ? void 0 : _f.constructor) === Array) {
211
- const sourceRows = this.records.splice(moveContext.sourceIndex - this.columnHeaderLevelCount, moveContext.moveSize);
212
- sourceRows.unshift(moveContext.targetIndex - this.columnHeaderLevelCount, 0), Array.prototype.splice.apply(this.records, sourceRows);
213
- }
214
- this.rowHeightsMap.adjustOrder(moveContext.sourceIndex, moveContext.targetIndex, moveContext.moveSize);
215
- }
216
- return !0;
217
- }
218
- return !1;
219
- }
220
- toggleHierarchyState(col, row) {
221
- const hierarchyState = this.getHierarchyState(col, row);
222
- hierarchyState === HierarchyState.expand ? this.fireListeners(PIVOT_CHART_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {
223
- col: col,
224
- row: row,
225
- hierarchyState: HierarchyState.collapse
226
- }) : hierarchyState === HierarchyState.collapse && this.fireListeners(PIVOT_CHART_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {
227
- col: col,
228
- row: row,
229
- hierarchyState: HierarchyState.expand,
230
- originData: this.getCellOriginRecord(col, row)
231
- });
232
- const result = this.internalProps.layoutMap.toggleHierarchyState(col, row);
233
- this.refreshRowColCount(), this.clearCellStyleCache(), this.scenegraph.updateHierarchyIcon(col, row),
234
- this.scenegraph.updateRow(result.removeCellPositions, result.addCellPositions);
235
- }
236
- getHeaderCellAddressByPath(dimensionPaths) {
237
- return this.internalProps.layoutMap.getPivotCellAdress(dimensionPaths);
238
- }
239
- getCellAddressByHeaderPaths(dimensionPaths) {
240
- return this.internalProps.layoutMap.getCellAdressByHeaderPath(dimensionPaths);
241
- }
242
- getHeaderPathByXY(coordinate) {
243
- let cellAddr;
244
- cellAddr = coordinate ? this.getCellAt(coordinate.x + this.getFrozenColsWidth() + this.scrollLeft + 1, coordinate.y + this.getFrozenRowsHeight() + this.scrollTop + 1) : this.getCellAt(this.getFrozenColsWidth() + this.scrollLeft + 1, this.getFrozenRowsHeight() + this.scrollTop + 1);
245
- return this.internalProps.layoutMap.getCellHeaderPaths(cellAddr.col, cellAddr.row);
246
- }
247
- getHierarchyState(col, row) {
248
- var _a;
249
- return null === (_a = this._getHeaderLayoutMap(col, row)) || void 0 === _a ? void 0 : _a.hierarchyState;
250
- }
251
- hasHierarchyTreeHeader() {
252
- return "tree" === this.internalProps.layoutMap.rowHierarchyType;
253
- }
254
- getMenuInfo(col, row, type) {
255
- const dimensionInfos = this.internalProps.layoutMap.getPivotDimensionInfo(col, row);
256
- return {
257
- dimensionKey: dimensionInfos[dimensionInfos.length - 1].dimensionKey,
258
- value: this.getCellValue(col, row),
259
- cellType: this.getCellType(col, row),
260
- isPivotCorner: this.isCornerHeader(col, row)
261
- };
262
- }
263
- _generateCollectValuesConfig(columnKeys, rowKeys) {
264
- var _a, _b, _c, _d;
265
- const option = this.options, collectValuesBy = {};
266
- for (let i = 0, len = option.indicators.length; i < len; i++) if ("string" != typeof option.indicators[i] && option.indicators[i].chartSpec) if (!1 === option.indicatorsAsCol) {
267
- const indicatorDefine = option.indicators[i];
268
- if (collectValuesBy[indicatorDefine.indicatorKey] = {
269
- by: rowKeys,
270
- range: !0,
271
- sumBy: !1 !== (null === (_a = indicatorDefine.chartSpec) || void 0 === _a ? void 0 : _a.stack) && columnKeys.concat(null === (_b = indicatorDefine.chartSpec) || void 0 === _b ? void 0 : _b.xField)
272
- }, indicatorDefine.chartSpec.series) indicatorDefine.chartSpec.series.forEach((chartSeries => {
273
- const xField = "string" == typeof chartSeries.xField ? chartSeries.xField : chartSeries.xField[0];
274
- collectValuesBy[xField] = {
275
- by: columnKeys,
276
- type: "horizontal" !== chartSeries.direction ? "xField" : void 0,
277
- range: "horizontal" === chartSeries.direction
278
- };
279
- const yField = chartSeries.yField;
280
- collectValuesBy[yField] = {
281
- by: rowKeys,
282
- range: "horizontal" !== chartSeries.direction,
283
- sumBy: !1 !== chartSeries.stack && columnKeys.concat(xField)
284
- };
285
- })); else {
286
- const xField = "string" == typeof indicatorDefine.chartSpec.xField ? indicatorDefine.chartSpec.xField : indicatorDefine.chartSpec.xField[0];
287
- collectValuesBy[xField] = {
288
- by: columnKeys,
289
- type: "horizontal" !== indicatorDefine.chartSpec.direction ? "xField" : void 0,
290
- range: "horizontal" === indicatorDefine.chartSpec.direction
291
- };
292
- const yField = indicatorDefine.chartSpec.yField;
293
- collectValuesBy[yField] = {
294
- by: rowKeys,
295
- range: "horizontal" !== option.indicators[i].chartSpec.direction,
296
- sumBy: !1 !== indicatorDefine.chartSpec.stack && columnKeys.concat(xField)
297
- };
298
- }
299
- } else {
300
- const indicatorDefine = option.indicators[i];
301
- if (collectValuesBy[indicatorDefine.indicatorKey] = {
302
- by: columnKeys,
303
- range: !0,
304
- sumBy: !1 !== (null === (_c = indicatorDefine.chartSpec) || void 0 === _c ? void 0 : _c.stack) && rowKeys.concat(null === (_d = indicatorDefine.chartSpec) || void 0 === _d ? void 0 : _d.yField)
305
- }, indicatorDefine.chartSpec.series) indicatorDefine.chartSpec.series.forEach((chartSeries => {
306
- const yField = "string" == typeof chartSeries.yField ? chartSeries.yField : chartSeries.yField[0];
307
- collectValuesBy[yField] = {
308
- by: rowKeys,
309
- type: "horizontal" === chartSeries.direction ? "yField" : void 0,
310
- range: "horizontal" !== chartSeries.direction
311
- };
312
- const xField = chartSeries.xField;
313
- collectValuesBy[xField] = {
314
- by: columnKeys,
315
- range: "horizontal" === chartSeries.direction,
316
- sumBy: !1 !== chartSeries.stack && rowKeys.concat(yField)
317
- };
318
- })); else {
319
- const yField = "string" == typeof indicatorDefine.chartSpec.yField ? indicatorDefine.chartSpec.yField : indicatorDefine.chartSpec.yField[0];
320
- collectValuesBy[yField] = {
321
- by: rowKeys,
322
- type: "horizontal" === indicatorDefine.chartSpec.direction ? "yField" : void 0,
323
- range: "horizontal" !== indicatorDefine.chartSpec.direction
324
- };
325
- const xField = indicatorDefine.chartSpec.xField;
326
- collectValuesBy[xField] = {
327
- by: columnKeys,
328
- range: "horizontal" === option.indicators[i].chartSpec.direction,
329
- sumBy: !1 !== indicatorDefine.chartSpec.stack && rowKeys.concat(yField)
330
- };
331
- }
332
- }
333
- return collectValuesBy;
334
- }
335
- _generateAggregationRules() {
336
- const aggregationRules = [];
337
- return this.options.indicators.forEach((indicator => {
338
- var _a, _b;
339
- if ("string" == typeof indicator) aggregationRules.push({
340
- indicatorKey: indicator,
341
- field: indicator,
342
- aggregationType: AggregationType.RECORD
343
- }); else if (null === (_a = indicator.chartSpec) || void 0 === _a ? void 0 : _a.series) {
344
- const fields = [];
345
- null === (_b = indicator.chartSpec) || void 0 === _b || _b.series.forEach((seriesSpec => {
346
- const seriesField = !1 === this.options.indicatorsAsCol ? seriesSpec.yField : seriesSpec.xField;
347
- -1 === fields.indexOf(seriesField) && fields.push(seriesField);
348
- })), aggregationRules.push({
349
- indicatorKey: indicator.indicatorKey,
350
- field: fields,
351
- aggregationType: AggregationType.RECORD
352
- });
353
- } else aggregationRules.push({
354
- indicatorKey: indicator.indicatorKey,
355
- field: indicator.indicatorKey,
356
- aggregationType: AggregationType.RECORD
357
- });
358
- })), aggregationRules;
359
- }
360
- setCustomStateNameToSpec() {
361
- const setCustomStateName = spec => {
362
- var _a, _b, _c, _d, _e, _f, _g, _h;
363
- (null === (_b = null === (_a = spec.bar) || void 0 === _a ? void 0 : _a.state) || void 0 === _b ? void 0 : _b.selected) && (spec.bar.state.vtable_selected = spec.bar.state.selected,
364
- spec.bar.state.vtable_selected_reverse = spec.bar.state.selected_reverse, delete spec.bar.state.selected,
365
- delete spec.bar.state.selected_reverse), (null === (_d = null === (_c = spec.point) || void 0 === _c ? void 0 : _c.state) || void 0 === _d ? void 0 : _d.selected) && (spec.point.state.vtable_selected = spec.point.state.selected,
366
- spec.point.state.vtable_selected_reverse = spec.point.state.selected_reverse, delete spec.point.state.selected,
367
- delete spec.point.state.selected_reverse), (null === (_f = null === (_e = spec.line) || void 0 === _e ? void 0 : _e.state) || void 0 === _f ? void 0 : _f.selected) && (spec.line.state.vtable_selected = spec.line.state.selected,
368
- spec.line.state.vtable_selected_reverse = spec.line.state.selected_reverse, delete spec.line.state.selected,
369
- delete spec.line.state.selected_reverse), (null === (_h = null === (_g = spec.area) || void 0 === _g ? void 0 : _g.state) || void 0 === _h ? void 0 : _h.selected) && (spec.area.state.vtable_selected = spec.area.state.selected,
370
- spec.area.state.vtable_selected_reverse = spec.area.state.selected_reverse, delete spec.area.state.selected,
371
- delete spec.area.state.selected_reverse);
372
- };
373
- this.options.indicators.forEach((indicator => {
374
- if (indicator.chartSpec) {
375
- const spec = indicator.chartSpec;
376
- spec.series ? spec.series.forEach((series => {
377
- setCustomStateName(series);
378
- })) : setCustomStateName(spec);
379
- }
380
- }));
381
- }
382
- _getActiveChartInstance() {
383
- var _a, _b, _c, _d, _e, _f;
384
- const cellGroup = this.scenegraph.getCell(null === (_b = null === (_a = this.stateManeger.hover) || void 0 === _a ? void 0 : _a.cellPos) || void 0 === _b ? void 0 : _b.col, null === (_d = null === (_c = this.stateManeger.hover) || void 0 === _c ? void 0 : _c.cellPos) || void 0 === _d ? void 0 : _d.row);
385
- return "chart" === (null === (_f = null === (_e = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _e ? void 0 : _e[0]) || void 0 === _f ? void 0 : _f.type) ? cellGroup.getChildren()[0].activeChartInstance : null;
386
- }
387
- listenChart(type, listener) {
388
- this._chartEventMap[type] = listener;
389
- }
390
- unlistenChart(type) {
391
- delete this._chartEventMap[type];
392
- }
393
- _bindChartEvent(activeChartInstance) {
394
- if (activeChartInstance) for (const key in this._chartEventMap) activeChartInstance.on(key, this._chartEventMap[key]);
395
- }
396
- updateFilterRules(filterRules) {
397
- this.internalProps.dataConfig.filterRules = filterRules, this.dataset.updateFilterRules(filterRules),
398
- clearChartCacheImage(this.scenegraph), updateChartData(this.scenegraph), this.invalidate();
399
- }
400
- setLegendSelected(selectedData) {
401
- this.internalProps.legends.legendComponent.setSelected(selectedData);
402
- }
403
- getChartDatumPosition(datum, cellHeaderPaths) {
404
- var _a;
405
- const cellAddr = this.getCellAddressByHeaderPaths(cellHeaderPaths), cellPosition = this.getCellRelativeRect(cellAddr.col, cellAddr.row);
406
- console.log(cellPosition);
407
- const cellGroup = this.scenegraph.getCell(cellAddr.col, cellAddr.row);
408
- let position;
409
- const chartNode = null === (_a = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _a ? void 0 : _a[0];
410
- if (chartNode.attribute.chartInstance) {
411
- const chartInstance = chartNode.attribute.chartInstance, {dataId: dataId, data: data, viewBox: viewBox, axes: axes} = chartNode.attribute;
412
- axes.forEach(((axis, index) => {
413
- var _a, _b, _c, _d;
414
- if ("linear" === axis.type) {
415
- chartInstance._chart._components[index]._domain = {
416
- min: null !== (_b = null === (_a = axis.range) || void 0 === _a ? void 0 : _a.min) && void 0 !== _b ? _b : 0,
417
- max: null !== (_d = null === (_c = axis.range) || void 0 === _c ? void 0 : _c.max) && void 0 !== _d ? _d : 0
418
- };
419
- } else if ("band" === axis.type) {
420
- const chartAxis = chartInstance._chart._components[index];
421
- chartAxis._spec.domain = axis.domain.slice(0), chartAxis.updateScaleDomain();
422
- }
423
- })), chartInstance.updateViewBox({
424
- x1: viewBox.x1 - chartNode.getRootNode().table.scrollLeft,
425
- x2: viewBox.x2 - chartNode.getRootNode().table.scrollLeft,
426
- y1: viewBox.y1 - chartNode.getRootNode().table.scrollTop,
427
- y2: viewBox.y2 - chartNode.getRootNode().table.scrollTop
428
- }), chartInstance.updateDataSync(dataId, data), position = chartInstance.convertDatumToPosition(datum),
429
- this.invalidate();
430
- }
431
- return position ? {
432
- x: Math.round(position.x + cellPosition.bounds.x1),
433
- y: Math.round(position.y + cellPosition.bounds.y1)
434
- } : null;
435
- }
436
- }
437
- //# sourceMappingURL=PivotChart.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["PivotChart.ts"],"names":[],"mappings":"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","file":"PivotChart.js","sourcesContent":["import type {\n FieldData,\n FieldDef,\n FieldFormat,\n PivotTableAPI,\n SortRules,\n PivotSortState,\n CellAddress,\n ICellHeaderPaths,\n DropDownMenuEventInfo,\n FieldKeyDef,\n IHeaderTreeDefine,\n IDimensionInfo,\n SortOrder,\n IIndicator,\n PivotChartConstructorOptions,\n CollectValueBy,\n AggregationRules,\n AggregationRule,\n AnyFunction,\n FilterRules,\n IPivotTableCellHeaderPaths\n} from './ts-types';\nimport { AggregationType } from './ts-types';\nimport { HierarchyState } from './ts-types';\nimport type { PivotHeaderLayoutMap } from './layout/pivot-header-layout';\nimport { getField } from './data/DataSource';\nimport { PivotLayoutMap } from './layout/pivot-layout';\nimport { PIVOT_CHART_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\nimport { cellInRange, emptyFn } from './tools/helper';\nimport { Dataset } from './dataset/dataset';\nimport { _setDataSource } from './core/tableHelper';\nimport { BaseTable } from './core/BaseTable';\nimport type { PivotTableProtected } from './ts-types/base-table';\nimport type { IChartColumnIndicator } from './ts-types/pivot-table/indicator/chart-indicator';\nimport type { Chart } from './scenegraph/graphic/chart';\nimport { clearChartCacheImage, updateChartData } from './scenegraph/refresh-node/update-chart';\nimport type { ITableAxisOption } from './ts-types/component/axis';\nimport { isArray } from '@visactor/vutils';\n\nexport class PivotChart extends BaseTable implements PivotTableAPI {\n declare internalProps: PivotTableProtected;\n declare options: PivotChartConstructorOptions;\n pivotSortState: PivotSortState[];\n\n dataset?: Dataset; //数据处理对象 开启数据透视分析的表\n\n _selectedDataItemsInChart: any[] = [];\n _selectedDimensionInChart: { key: string; value: string }[] = [];\n _chartEventMap: Record<string, AnyFunction> = {};\n\n _axes: ITableAxisOption[];\n constructor(options: PivotChartConstructorOptions) {\n super(options);\n if ((options as any).layout) {\n //TODO hack处理之前的demo都是定义到layout上的 所以这里直接并到options中\n Object.assign(options, (options as any).layout);\n }\n this.setCustomStateNameToSpec();\n this.internalProps.dataConfig = { isPivotChart: true };\n this.internalProps.enableDataAnalysis = true;\n this._axes = isArray(options.axes) ? options.axes : [];\n\n if (this.internalProps.enableDataAnalysis && (options.rows || options.columns)) {\n const rowKeys = options.rows.reduce((keys, rowObj) => {\n if (typeof rowObj === 'string') {\n keys.push(rowObj);\n } else {\n keys.push(rowObj.dimensionKey);\n }\n return keys;\n }, []);\n const columnKeys = options.columns.reduce((keys, columnObj) => {\n if (typeof columnObj === 'string') {\n keys.push(columnObj);\n } else {\n keys.push(columnObj.dimensionKey);\n }\n return keys;\n }, []);\n const indicatorKeys =\n options.indicators?.reduce((keys, indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n }\n return keys;\n }, []) ?? [];\n this.internalProps.dataConfig.collectValuesBy = this._generateCollectValuesConfig(columnKeys, rowKeys);\n this.internalProps.dataConfig.aggregationRules = this._generateAggregationRules();\n this.dataset = new Dataset(\n this.internalProps.dataConfig,\n rowKeys,\n columnKeys,\n indicatorKeys,\n options.records,\n options.columnTree,\n options.rowTree\n );\n }\n\n this.refreshHeader();\n if (options.dataSource) {\n _setDataSource(this, options.dataSource);\n } else if (options.records) {\n this.setRecords(options.records as any, this.internalProps.sortState);\n } else {\n this.setRecords([]);\n }\n }\n static get EVENT_TYPE(): typeof PIVOT_CHART_EVENT_TYPE {\n return PIVOT_CHART_EVENT_TYPE;\n }\n get pivotChartAxes() {\n return this._axes;\n }\n\n isListTable(): false {\n return false;\n }\n isPivotTable(): true {\n return true;\n }\n isPivotChart(): true {\n return true;\n }\n _canResizeColumn(col: number, row: number): boolean {\n const ifCan = super._canResizeColumn(col, row);\n if (ifCan) {\n if (!this.internalProps.layoutMap.indicatorsAsCol) {\n // 列上是否配置了禁止拖拽列宽的配置项disableColumnResize\n const cellDefine = this.internalProps.layoutMap.getBody(col, this.columnHeaderLevelCount);\n if (cellDefine?.disableColumnResize) {\n return false;\n }\n }\n }\n return ifCan;\n }\n updateOption(options: PivotChartConstructorOptions, accelerateFirstScreen = false) {\n const internalProps = this.internalProps;\n //维护选中状态\n // const range = internalProps.selection.range; //保留原有单元格选中状态\n super.updateOption(options);\n\n this.setCustomStateNameToSpec();\n // 更新protectedSpace\n internalProps.dataConfig = {};\n this.internalProps.enableDataAnalysis = true;\n //TODO 这里需要加上判断 dataConfig是否有配置变化\n if (this.internalProps.enableDataAnalysis && (options.rows || options.columns)) {\n const rowKeys = options.rows.reduce((keys, rowObj) => {\n if (typeof rowObj === 'string') {\n keys.push(rowObj);\n } else {\n keys.push(rowObj.dimensionKey);\n }\n return keys;\n }, []);\n const columnKeys = options.columns.reduce((keys, columnObj) => {\n if (typeof columnObj === 'string') {\n keys.push(columnObj);\n } else {\n keys.push(columnObj.dimensionKey);\n }\n return keys;\n }, []);\n const indicatorKeys = options.indicators.reduce((keys, indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n }\n return keys;\n }, []);\n\n this.internalProps.dataConfig.collectValuesBy = this._generateCollectValuesConfig(columnKeys, rowKeys);\n this.internalProps.dataConfig.aggregationRules = this._generateAggregationRules();\n this.dataset = new Dataset(\n this.internalProps.dataConfig,\n rowKeys,\n columnKeys,\n indicatorKeys,\n options.records ?? this.internalProps.records,\n options.columnTree,\n options.rowTree\n );\n }\n // 更新表头\n this.refreshHeader();\n\n // this.hasMedia = null; // 避免重复绑定\n // 清空目前数据\n if (internalProps.disposables) {\n internalProps.disposables.forEach(disposable => disposable?.dispose?.());\n internalProps.disposables = null;\n }\n // // 恢复selection状态\n // internalProps.selection.range = range;\n this._updateSize();\n // 传入新数据\n if (options.dataSource) {\n _setDataSource(this, options.dataSource);\n } else if (options.records) {\n this.setRecords(options.records as any, undefined);\n } else {\n this._resetFrozenColCount();\n // 生成单元格场景树\n this.scenegraph.createSceneGraph();\n this.invalidate();\n }\n\n return new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n }\n\n refreshHeader(): void {\n const internalProps = this.internalProps;\n\n //原表头绑定的事件 解除掉\n if (internalProps.headerEvents) {\n internalProps.headerEvents.forEach((id: number) => this.unlisten(id));\n }\n\n if (this.internalProps.enableDataAnalysis) {\n internalProps.layoutMap = new PivotLayoutMap(this, this.dataset);\n }\n\n //设置列宽\n for (let col = 0; col < internalProps.layoutMap.columnWidths.length; col++) {\n const { width, minWidth, maxWidth } = internalProps.layoutMap.columnWidths?.[col] ?? {};\n // width 为 \"auto\" 时先不存储ColWidth\n if (width && ((typeof width === 'string' && width !== 'auto') || (typeof width === 'number' && width > 0))) {\n this.setColWidth(col, width);\n }\n if (minWidth && ((typeof minWidth === 'number' && minWidth > 0) || typeof minWidth === 'string')) {\n this.setMinColWidth(col, minWidth);\n }\n if (maxWidth && ((typeof maxWidth === 'number' && maxWidth > 0) || typeof maxWidth === 'string')) {\n this.setMaxColWidth(col, maxWidth);\n }\n }\n //刷新表头,原来这里是_refreshRowCount 后改名为_refreshRowColCount 因为表头定义会影响行数,而转置模式下会影响列数\n this.refreshRowColCount();\n }\n\n refreshRowColCount(): void {\n const table = this;\n const { layoutMap } = table.internalProps;\n if (!layoutMap) {\n return;\n }\n table.colCount = layoutMap.colCount ?? 0;\n table.rowCount = layoutMap.rowCount ?? 0;\n table.frozenColCount = layoutMap.rowHeaderLevelCount; //TODO\n table.frozenRowCount = layoutMap.headerLevelCount;\n\n table.bottomFrozenRowCount = layoutMap?.bottomFrozenRowCount ?? 0;\n table.rightFrozenColCount = layoutMap?.rightFrozenColCount ?? 0;\n }\n protected _getSortFuncFromHeaderOption(\n columns: undefined,\n field: FieldDef,\n fieldKey?: FieldKeyDef\n ): ((v1: any, v2: any, order: SortOrder) => 0 | 1 | -1) | undefined {\n return undefined;\n }\n /**\n * 将现有tree中的的hierarchyState同步到rows透视树中\n * @param sourceNode\n * @param targetNode\n */\n private syncHierarchyState(sourceNode: any, targetNode: IHeaderTreeDefine) {\n if (sourceNode.value === targetNode.value && sourceNode.dimensionKey === targetNode.dimensionKey) {\n targetNode.hierarchyState =\n targetNode.hierarchyState ?? (targetNode?.children ? sourceNode.hierarchyState : undefined);\n targetNode?.children?.forEach((targetChildNode: IHeaderTreeDefine, index: number) => {\n if (sourceNode?.children?.[index] && targetChildNode) {\n this.syncHierarchyState(sourceNode.children[index], targetChildNode);\n }\n });\n }\n }\n\n getRecordIndexByRow(row: number): number {\n const { layoutMap } = this.internalProps;\n return layoutMap.getRecordIndexByRow(row);\n }\n getRecordIndexByCol(col: number): number {\n const { layoutMap } = this.internalProps;\n return layoutMap.getRecordIndexByCol(col);\n }\n getFieldData(field: FieldDef | FieldFormat | undefined, col: number, row: number): FieldData {\n if (field === null || field === undefined) {\n return null;\n }\n const table = this;\n if (table.internalProps.layoutMap.isHeader(col, row)) {\n return null;\n }\n const rowIndex = this.getRecordIndexByRow(row);\n const colIndex = this.getRecordIndexByCol(col);\n const dataValue = table.dataSource?.getField(rowIndex, colIndex);\n if (typeof field !== 'string') {\n //field为函数format\n const cellHeaderPaths = table.internalProps.layoutMap.getCellHeaderPaths(col, row);\n return getField({ dataValue, ...cellHeaderPaths }, field, emptyFn as any);\n }\n return dataValue;\n }\n\n getCellValue(col: number, row: number): FieldData {\n if (this.internalProps.layoutMap.isHeader(col, row)) {\n const { caption, fieldFormat } = this.internalProps.layoutMap.getHeader(col, row);\n return typeof fieldFormat === 'function' ? fieldFormat(caption) : caption;\n }\n if (this.dataset) {\n const colKey = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)] ?? [];\n const rowKey = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)] ?? [];\n const aggregator = this.dataset.getAggregator(\n rowKey[rowKey.length - 1],\n colKey[colKey.length - 1],\n (this.internalProps.layoutMap as PivotLayoutMap).getIndicatorKey(col, row)\n );\n return aggregator.value ? aggregator.value() : undefined;\n }\n const { field, fieldFormat } = this.internalProps.layoutMap.getBody(col, row);\n return this.getFieldData(fieldFormat || field, col, row);\n }\n\n getCellOriginValue(col: number, row: number): FieldData {\n const table = this;\n if (table.internalProps.layoutMap.isHeader(col, row)) {\n const { caption } = table.internalProps.layoutMap.getHeader(col, row);\n return typeof caption === 'function' ? caption() : caption;\n }\n if (this.dataset) {\n const colKey = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)] ?? [];\n const rowKey = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)] ?? [];\n const aggregator = this.dataset.getAggregator(\n rowKey[rowKey.length - 1],\n colKey[colKey.length - 1],\n (this.internalProps.layoutMap as PivotLayoutMap).getIndicatorKey(col, row)\n );\n return aggregator.value ? aggregator.value() : undefined;\n // return ''\n }\n const { field } = table.internalProps.layoutMap.getBody(col, row);\n return table.getFieldData(field, col, row);\n }\n\n // 获取原始数据\n getCellOriginRecord(col: number, row: number) {\n const table = this;\n if (table.internalProps.layoutMap.isHeader(col, row)) {\n return undefined;\n }\n if (this.dataset) {\n const colKey = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)] ?? [];\n const rowKey = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)] ?? [];\n const aggregator = this.dataset.getAggregator(\n rowKey[rowKey.length - 1],\n colKey[colKey.length - 1],\n (this.internalProps.layoutMap as PivotLayoutMap).getIndicatorKey(col, row)\n );\n return aggregator.records;\n // return ''\n }\n return undefined;\n }\n /**\n * 全量更新排序规则\n * @param sortRules\n */\n updateSortRules(sortRules: SortRules) {\n this.internalProps.dataConfig.sortRules = sortRules;\n this.dataset.updateSortRules(sortRules);\n (this.internalProps.layoutMap as PivotLayoutMap).updateDataset(this.dataset);\n this.invalidate();\n }\n updatePivotSortState(\n pivotSortStateConfig: {\n dimensions: IDimensionInfo[];\n order: SortOrder;\n }[]\n ) {\n // // dimensions: IDimensionInfo[], order: SortOrder\n // // 清空当前 pivot sort 状态\n // const cells = this.pivotSortState.map((cell) => ({ col: cell.col, row: cell.row }));\n // this.pivotSortState.length = 0;\n // cells.map((cell) => {\n // this.invalidateCellRange(this.getCellRange(cell.col, cell.row));\n // });\n\n // 更新 pivot sort 状态\n for (let i = 0; i < pivotSortStateConfig.length; i++) {\n const { dimensions, order } = pivotSortStateConfig[i];\n const cellAddress = (this.internalProps.layoutMap as PivotHeaderLayoutMap).getPivotCellAdress(dimensions);\n\n cellAddress &&\n this.pivotSortState.push({\n col: cellAddress.col,\n row: cellAddress.row,\n order\n });\n }\n\n // // 更新相关单元格样式\n // this.pivotSortState.map((cell) => {\n // this.invalidateCellRange(this.getCellRange(cell.col, cell.row));\n // });\n }\n\n getPivotSortState(col: number, row: number): SortOrder {\n if (!this.pivotSortState) {\n return undefined;\n }\n const cellRange = this.getCellRange(col, row);\n for (let i = 0; i < this.pivotSortState.length; i++) {\n const { col: sortCol, row: sortRow, order } = this.pivotSortState[i];\n\n if (cellInRange(cellRange, sortCol, sortRow)) {\n return order;\n }\n }\n return undefined;\n }\n /**\n * 拖拽移动表头位置\n * @param source 移动源位置\n * @param target 移动目标位置\n */\n moveHeaderPosition(source: CellAddress, target: CellAddress) {\n // 调用布局类 布局数据结构调整为移动位置后的\n const moveContext = (this.internalProps.layoutMap as PivotHeaderLayoutMap).moveHeaderPosition(source, target);\n if (moveContext) {\n if (moveContext.moveType === 'column') {\n // 是扁平数据结构 需要将二维数组this.records进行调整\n if (this.options.records?.[0]?.constructor === Array) {\n for (let row = 0; row < this.records.length; row++) {\n const sourceColumns = (this.records[row] as unknown as number[]).splice(\n moveContext.sourceIndex - this.rowHeaderLevelCount,\n moveContext.moveSize\n );\n sourceColumns.unshift((moveContext.targetIndex as any) - this.rowHeaderLevelCount, 0 as any);\n Array.prototype.splice.apply(this.records[row] as unknown as number[], sourceColumns);\n }\n }\n //colWidthsMap 中存储着每列的宽度 根据移动 sourceCol targetCol 调整其中的位置\n this.colWidthsMap.adjustOrder(moveContext.sourceIndex, moveContext.targetIndex, moveContext.moveSize);\n //下面代码取自refreshHeader列宽设置逻辑\n //设置列宽极限值 TODO 目前是有问题的 最大最小宽度限制 移动列位置后不正确\n for (let col = 0; col < this.internalProps.layoutMap.columnWidths.length; col++) {\n const { minWidth, maxWidth } = this.internalProps.layoutMap.columnWidths?.[col] ?? {};\n if (minWidth && ((typeof minWidth === 'number' && minWidth > 0) || typeof minWidth === 'string')) {\n this.setMinColWidth(col, minWidth);\n }\n if (maxWidth && ((typeof maxWidth === 'number' && maxWidth > 0) || typeof maxWidth === 'string')) {\n this.setMaxColWidth(col, maxWidth);\n }\n }\n } else if (moveContext.moveType === 'row') {\n // 是扁平数据结构 需要将二维数组this.records进行调整\n if (this.options.records?.[0]?.constructor === Array) {\n const sourceRows = (this.records as unknown as number[]).splice(\n moveContext.sourceIndex - this.columnHeaderLevelCount,\n moveContext.moveSize\n );\n sourceRows.unshift((moveContext.targetIndex as any) - this.columnHeaderLevelCount, 0 as any);\n Array.prototype.splice.apply(this.records, sourceRows);\n }\n //colWidthsMap 中存储着每列的宽度 根据移动 sourceCol targetCol 调整其中的位置\n this.rowHeightsMap.adjustOrder(moveContext.sourceIndex, moveContext.targetIndex, moveContext.moveSize);\n }\n return true;\n }\n return false;\n }\n /**\n * 表头切换层级状态\n * @param col\n * @param row\n */\n toggleHierarchyState(col: number, row: number) {\n const hierarchyState = this.getHierarchyState(col, row);\n if (hierarchyState === HierarchyState.expand) {\n this.fireListeners(PIVOT_CHART_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {\n col: col,\n row: row,\n hierarchyState: HierarchyState.collapse\n });\n } else if (hierarchyState === HierarchyState.collapse) {\n this.fireListeners(PIVOT_CHART_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {\n col: col,\n row: row,\n hierarchyState: HierarchyState.expand,\n originData: this.getCellOriginRecord(col, row)\n });\n }\n\n const result = (this.internalProps.layoutMap as PivotHeaderLayoutMap).toggleHierarchyState(col, row);\n //影响行数\n this.refreshRowColCount();\n // this.scenegraph.clearCells();\n // this.scenegraph.createSceneGraph();\n // this.invalidate();\n this.clearCellStyleCache();\n this.scenegraph.updateHierarchyIcon(col, row);\n this.scenegraph.updateRow(result.removeCellPositions, result.addCellPositions);\n }\n /**\n * 通过表头的维度值路径来计算单元格位置 getCellAddressByHeaderPaths接口更强大一些 不限表头 不限参数格式\n * @param dimensionPaths\n * @returns\n */\n getHeaderCellAddressByPath(dimensionPaths: IDimensionInfo[]): CellAddress {\n const cellAddress = (this.internalProps.layoutMap as PivotHeaderLayoutMap).getPivotCellAdress(dimensionPaths);\n return cellAddress;\n }\n /**\n * 通过表头的维度值路径来计算单元格位置\n * @param dimensionPaths\n * @returns\n */\n getCellAddressByHeaderPaths(\n dimensionPaths: // | {\n // colHeaderPaths: IDimensionInfo[];\n // rowHeaderPaths: IDimensionInfo[];\n // }\n IPivotTableCellHeaderPaths | IDimensionInfo[]\n ): CellAddress {\n const cellAddress = (this.internalProps.layoutMap as PivotHeaderLayoutMap).getCellAdressByHeaderPath(\n dimensionPaths\n );\n return cellAddress;\n }\n\n /**\n * 通过传入的坐标 获取该位置当前单元格的维度路径;\n * @param coordinate 从body左上角为原点 coordinate为偏移距离 去计算单元格的headerPath;\n * 如不传coordinate坐标则按取body中左上角第一个单元格的维度路径\n * @returns\n */\n getHeaderPathByXY(coordinate?: { x: number; y: number }): ICellHeaderPaths {\n let cellAddr;\n if (coordinate) {\n cellAddr = this.getCellAt(\n coordinate.x + this.getFrozenColsWidth() + this.scrollLeft + 1,\n coordinate.y + this.getFrozenRowsHeight() + this.scrollTop + 1\n );\n } else {\n cellAddr = this.getCellAt(\n this.getFrozenColsWidth() + this.scrollLeft + 1,\n this.getFrozenRowsHeight() + this.scrollTop + 1\n );\n }\n const cellHeaderPaths = this.internalProps.layoutMap.getCellHeaderPaths(cellAddr.col, cellAddr.row);\n return cellHeaderPaths;\n }\n getHierarchyState(col: number, row: number): HierarchyState {\n return this._getHeaderLayoutMap(col, row)?.hierarchyState;\n }\n\n hasHierarchyTreeHeader() {\n return (this.internalProps.layoutMap as PivotHeaderLayoutMap).rowHierarchyType === 'tree';\n }\n\n getMenuInfo(col: number, row: number, type: string): DropDownMenuEventInfo {\n const dimensionInfos = (this.internalProps.layoutMap as PivotHeaderLayoutMap).getPivotDimensionInfo(col, row);\n const result: DropDownMenuEventInfo = {\n dimensionKey: dimensionInfos[dimensionInfos.length - 1].dimensionKey,\n value: this.getCellValue(col, row),\n cellType: this.getCellType(col, row),\n isPivotCorner: this.isCornerHeader(col, row)\n };\n return result;\n }\n /**\n * 根据用户配置 生成 收集维度值collectValuesBy 的配置 传给dataset用\n * 这个收集规则的逻辑是按照正常使用方式:\n * 指标显示在行表头indicatorsAsCol=false时,图表yField为指标值,xField为维度值(考虑stack)direction为默认值'vertical';\n * 指标显示在列表头indicatorsAsCol=true时,图表xField为指标值,yField为维度值(考虑stack)direction为'horizontal';\n * @param columnKeys\n * @param rowKeys\n * @returns\n */\n private _generateCollectValuesConfig(columnKeys: string[], rowKeys: string[]) {\n const option = this.options;\n const collectValuesBy: Record<string, CollectValueBy> = {};\n\n for (let i = 0, len = option.indicators.length; i < len; i++) {\n if (typeof option.indicators[i] !== 'string' && (option.indicators[i] as IChartColumnIndicator).chartSpec) {\n if (option.indicatorsAsCol === false) {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: rowKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const xField = typeof chartSeries.xField === 'string' ? chartSeries.xField : chartSeries.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type: chartSeries.direction !== 'horizontal' ? 'xField' : undefined,\n range: chartSeries.direction === 'horizontal'\n };\n\n const yField = chartSeries.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: chartSeries.direction !== 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && columnKeys.concat(xField) // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n };\n });\n } else {\n const xField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.xField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.xField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal' ? 'xField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const yField = (indicatorDefine as IChartColumnIndicator).chartSpec.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction !== 'horizontal', // direction默认为'vertical'\n sumBy: (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false && columnKeys.concat(xField) // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n };\n }\n } else {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: columnKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const yField = typeof chartSeries.yField === 'string' ? chartSeries.yField : chartSeries.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type: chartSeries.direction === 'horizontal' ? 'yField' : undefined,\n range: chartSeries.direction !== 'horizontal'\n };\n\n const xField = chartSeries.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: chartSeries.direction === 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && rowKeys.concat(yField)\n };\n });\n } else {\n const yField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.yField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.yField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal' ? 'yField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const xField = (indicatorDefine as IChartColumnIndicator).chartSpec.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction === 'horizontal', // direction默认为'vertical'\n sumBy: (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false && rowKeys.concat(yField)\n };\n }\n }\n }\n }\n\n return collectValuesBy;\n }\n // private _generateAggregationRules(indicatorKeys: string[]): AggregationRules {\n // return indicatorKeys.map((indicatorKey: string) => {\n // return {\n // indicatorKey, //field转为指标key\n // field: indicatorKey, //指标依据字段\n // aggregationType: AggregationType.RECORD //计算类型\n // };\n // });\n // }\n private _generateAggregationRules() {\n const aggregationRules: AggregationRules = [];\n this.options.indicators.forEach((indicator: IIndicator | string) => {\n if (typeof indicator === 'string') {\n aggregationRules.push({\n indicatorKey: indicator, //field转为指标key\n field: indicator, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n } as AggregationRule<AggregationType.RECORD>);\n } else {\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n if ((indicator as IChartColumnIndicator).chartSpec?.series) {\n const fields: string[] = [];\n (indicator as IChartColumnIndicator).chartSpec?.series.forEach((seriesSpec: any) => {\n const seriesField = this.options.indicatorsAsCol === false ? seriesSpec.yField : seriesSpec.xField;\n if (fields.indexOf(seriesField) === -1) {\n fields.push(seriesField);\n }\n });\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: fields, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n } else {\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: indicator.indicatorKey, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n }\n }\n });\n\n return aggregationRules;\n }\n /** 将spec中的 selected和selected_reverse 更名为vtable_selected和vtable_selected_reverse */\n private setCustomStateNameToSpec() {\n /** 修改设置的selected 和 dselected_reverse的名字加前缀vtable */\n const setCustomStateName = (spec: any) => {\n if (spec.bar?.state?.selected) {\n spec.bar.state.vtable_selected = spec.bar.state.selected;\n spec.bar.state.vtable_selected_reverse = spec.bar.state.selected_reverse;\n delete spec.bar.state.selected;\n delete spec.bar.state.selected_reverse;\n }\n if (spec.point?.state?.selected) {\n spec.point.state.vtable_selected = spec.point.state.selected;\n spec.point.state.vtable_selected_reverse = spec.point.state.selected_reverse;\n delete spec.point.state.selected;\n delete spec.point.state.selected_reverse;\n }\n if (spec.line?.state?.selected) {\n spec.line.state.vtable_selected = spec.line.state.selected;\n spec.line.state.vtable_selected_reverse = spec.line.state.selected_reverse;\n delete spec.line.state.selected;\n delete spec.line.state.selected_reverse;\n }\n if (spec.area?.state?.selected) {\n spec.area.state.vtable_selected = spec.area.state.selected;\n spec.area.state.vtable_selected_reverse = spec.area.state.selected_reverse;\n delete spec.area.state.selected;\n delete spec.area.state.selected_reverse;\n }\n };\n this.options.indicators.forEach((indicator: string | IIndicator) => {\n if ((indicator as IChartColumnIndicator).chartSpec) {\n const spec = (indicator as IChartColumnIndicator).chartSpec;\n if (spec.series) {\n spec.series.forEach((series: any) => {\n setCustomStateName(series);\n });\n } else {\n setCustomStateName(spec);\n }\n }\n });\n }\n /** 获取当前hover单元格的图表实例。这个方法hover实时获取有点缺陷:鼠标hover到单元格上触发了 chart.ts中的activate方法 但此时this.stateManeger.hover?.cellPos?.col还是-1 */\n _getActiveChartInstance() {\n // 根据hover的单元格位置 获取单元格实例 拿到chart图元\n const cellGroup = this.scenegraph.getCell(\n this.stateManeger.hover?.cellPos?.col,\n this.stateManeger.hover?.cellPos?.row\n );\n return cellGroup?.getChildren()?.[0]?.type === 'chart'\n ? (cellGroup.getChildren()[0] as Chart).activeChartInstance\n : null;\n }\n /**\n * 监听vchart事件\n * @param type vchart事件类型\n * @param listener vchart事件监听器\n * @returns 事件监听器id\n */\n listenChart(type: string, listener: AnyFunction): void {\n // this.internalProps.layoutMap.columnObjects.forEach((indicatorObj: IndicatorData) => {\n // indicatorObj.chartInstance.on(type, listener);\n // });\n this._chartEventMap[type] = listener;\n }\n\n unlistenChart(type: string): void {\n // this.internalProps.layoutMap.columnObjects.forEach((indicatorObj: IndicatorData) => {\n // indicatorObj.chartInstance.off(type);\n // });\n delete this._chartEventMap[type];\n }\n /** 给activeChartInstance逐个绑定chart用户监听事件 */\n _bindChartEvent(activeChartInstance: any) {\n if (activeChartInstance) {\n for (const key in this._chartEventMap) {\n activeChartInstance.on(key, this._chartEventMap[key]);\n }\n }\n }\n /** 更新数据过滤规则,适用场景:点击图例项后 更新过滤规则 来更新图表 */\n updateFilterRules(filterRules: FilterRules) {\n this.internalProps.dataConfig.filterRules = filterRules;\n this.dataset.updateFilterRules(filterRules);\n clearChartCacheImage(this.scenegraph);\n updateChartData(this.scenegraph);\n this.invalidate();\n }\n /** 设置图例的选择状态。设置完后同步图表的状态需要配合updateFilterRules接口使用 */\n setLegendSelected(selectedData: (string | number)[]) {\n this.internalProps.legends.legendComponent.setSelected(selectedData);\n // this.updateFilterRules([{ filterKey: '20001', filteredValues: selectedData }]);\n // this.invalidate();\n }\n /**\n * 获取图表上某一个图元的位置\n * @param datum 图元对应的数据\n * @param cellHeaderPaths 单元格的header路径\n * @returns 图元在整个表格上的坐标位置(相对表格左上角视觉坐标)\n */\n getChartDatumPosition(datum: any, cellHeaderPaths: IPivotTableCellHeaderPaths): { x: number; y: number } {\n const cellAddr = this.getCellAddressByHeaderPaths(cellHeaderPaths);\n const cellPosition = this.getCellRelativeRect(cellAddr.col, cellAddr.row);\n console.log(cellPosition);\n const cellGroup = this.scenegraph.getCell(cellAddr.col, cellAddr.row);\n let position;\n const chartNode: Chart = cellGroup?.getChildren()?.[0] as Chart;\n if (chartNode.attribute.chartInstance) {\n const chartInstance = chartNode.attribute.chartInstance;\n const { dataId, data, viewBox, axes } = chartNode.attribute;\n axes.forEach((axis: any, index: number) => {\n if (axis.type === 'linear') {\n const chartAxis = chartInstance._chart._components[index];\n chartAxis._domain = {\n min: axis.range?.min ?? 0,\n max: axis.range?.max ?? 0\n };\n } else if (axis.type === 'band') {\n const chartAxis = chartInstance._chart._components[index];\n chartAxis._spec.domain = axis.domain.slice(0);\n chartAxis.updateScaleDomain();\n }\n });\n\n chartInstance.updateViewBox({\n x1: viewBox.x1 - (chartNode.getRootNode() as any).table.scrollLeft,\n x2: viewBox.x2 - (chartNode.getRootNode() as any).table.scrollLeft,\n y1: viewBox.y1 - (chartNode.getRootNode() as any).table.scrollTop,\n y2: viewBox.y2 - (chartNode.getRootNode() as any).table.scrollTop\n });\n chartInstance.updateDataSync(dataId, data);\n position = chartInstance.convertDatumToPosition(datum);\n this.invalidate();\n }\n return position\n ? { x: Math.round(position.x + cellPosition.bounds.x1), y: Math.round(position.y + cellPosition.bounds.y1) }\n : null;\n }\n}\n"]}
@@ -1,45 +0,0 @@
1
- import type { BaseTableAPI } from '../../ts-types/base-table';
2
- import type { ICellAxisOption } from '../../ts-types/component/axis';
3
- import { LineAxis, type LineAxisAttributes } from '@visactor/vrender-components';
4
- import type { IOrientType } from '../../ts-types/component/util';
5
- import { BandAxisScale } from './band-scale';
6
- import { DataView } from '@visactor/vdataset';
7
- import { LinearAxisScale } from './linear-scale';
8
- export declare class CartesianAxis {
9
- width: number;
10
- height: number;
11
- table: BaseTableAPI;
12
- option: ICellAxisOption;
13
- orient: IOrientType;
14
- visible: boolean;
15
- type: 'linear' | 'band' | 'time';
16
- inverse: boolean;
17
- data?: any[];
18
- tickData: DataView;
19
- scale: BandAxisScale | LinearAxisScale;
20
- component: LineAxis;
21
- constructor(option: ICellAxisOption, width: number, height: number, table: BaseTableAPI);
22
- initScale(): void;
23
- initData(): void;
24
- computeData(): void;
25
- initEvent(): void;
26
- createComponent(): void;
27
- overlap(): void;
28
- getLayoutRect(): {
29
- width: number;
30
- height: number;
31
- };
32
- getUpdateAttribute(): LineAxisAttributes;
33
- getLabelItems(length: number): any[];
34
- updateScaleRange(): void;
35
- setLayoutStartPosition(pos: any): {
36
- x: any;
37
- y: any;
38
- };
39
- private _getTitleLimit;
40
- getScale(): import("@visactor/vscale").BandScale | import("@visactor/vscale").LinearScale;
41
- getDomainSpec(): Required<{
42
- max?: number;
43
- min?: number;
44
- }>;
45
- }