@visactor/vseed 0.3.15 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/buildSpec.js +1 -0
  4. package/dist/esm/builder/builder/buildSpec.js.map +1 -1
  5. package/dist/esm/builder/builder/builder.d.ts +1212 -302
  6. package/dist/esm/builder/register/all.js +4 -1
  7. package/dist/esm/builder/register/all.js.map +1 -1
  8. package/dist/esm/builder/register/chartType/circlePacking.d.ts +5 -0
  9. package/dist/esm/builder/register/chartType/circlePacking.js +9 -0
  10. package/dist/esm/builder/register/chartType/circlePacking.js.map +1 -0
  11. package/dist/esm/builder/register/chartType/index.d.ts +3 -0
  12. package/dist/esm/builder/register/chartType/index.js +4 -1
  13. package/dist/esm/builder/register/chartType/sunburst.d.ts +5 -0
  14. package/dist/esm/builder/register/chartType/sunburst.js +9 -0
  15. package/dist/esm/builder/register/chartType/sunburst.js.map +1 -0
  16. package/dist/esm/builder/register/chartType/treeMap.d.ts +5 -0
  17. package/dist/esm/builder/register/chartType/treeMap.js +9 -0
  18. package/dist/esm/builder/register/chartType/treeMap.js.map +1 -0
  19. package/dist/esm/dataReshape/constant.d.ts +2 -0
  20. package/dist/esm/dataReshape/constant.js +3 -1
  21. package/dist/esm/dataReshape/constant.js.map +1 -1
  22. package/dist/esm/dataReshape/unfoldDimensions.js +8 -2
  23. package/dist/esm/dataReshape/unfoldDimensions.js.map +1 -1
  24. package/dist/esm/pipeline/advanced/chart/pipeline/circlePacking.d.ts +2 -0
  25. package/dist/esm/pipeline/advanced/chart/pipeline/circlePacking.js +33 -0
  26. package/dist/esm/pipeline/advanced/chart/pipeline/circlePacking.js.map +1 -0
  27. package/dist/esm/pipeline/advanced/chart/pipeline/index.d.ts +6 -3
  28. package/dist/esm/pipeline/advanced/chart/pipeline/index.js +7 -4
  29. package/dist/esm/pipeline/advanced/chart/pipeline/raceBar.js +33 -2
  30. package/dist/esm/pipeline/advanced/chart/pipeline/raceBar.js.map +1 -1
  31. package/dist/esm/pipeline/advanced/chart/pipeline/raceColumn.js +34 -2
  32. package/dist/esm/pipeline/advanced/chart/pipeline/raceColumn.js.map +1 -1
  33. package/dist/esm/pipeline/advanced/chart/pipeline/raceScatter.js +28 -2
  34. package/dist/esm/pipeline/advanced/chart/pipeline/raceScatter.js.map +1 -1
  35. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +1 -3
  36. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
  37. package/dist/esm/pipeline/advanced/chart/pipeline/sunburst.d.ts +2 -0
  38. package/dist/esm/pipeline/advanced/chart/pipeline/sunburst.js +33 -0
  39. package/dist/esm/pipeline/advanced/chart/pipeline/sunburst.js.map +1 -0
  40. package/dist/esm/pipeline/advanced/chart/pipeline/treeMap.d.ts +2 -0
  41. package/dist/esm/pipeline/advanced/chart/pipeline/treeMap.js +33 -0
  42. package/dist/esm/pipeline/advanced/chart/pipeline/treeMap.js.map +1 -0
  43. package/dist/esm/pipeline/advanced/chart/pipes/config/circlePacking.d.ts +2 -0
  44. package/dist/esm/pipeline/advanced/chart/pipes/config/circlePacking.js +27 -0
  45. package/dist/esm/pipeline/advanced/chart/pipes/config/circlePacking.js.map +1 -0
  46. package/dist/esm/pipeline/advanced/chart/pipes/config/index.d.ts +3 -0
  47. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js +4 -1
  48. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js.map +1 -1
  49. package/dist/esm/pipeline/advanced/chart/pipes/config/sunburst.d.ts +2 -0
  50. package/dist/esm/pipeline/advanced/chart/pipes/config/sunburst.js +27 -0
  51. package/dist/esm/pipeline/advanced/chart/pipes/config/sunburst.js.map +1 -0
  52. package/dist/esm/pipeline/advanced/chart/pipes/config/treeMap.d.ts +2 -0
  53. package/dist/esm/pipeline/advanced/chart/pipes/config/treeMap.js +27 -0
  54. package/dist/esm/pipeline/advanced/chart/pipes/config/treeMap.js.map +1 -0
  55. package/dist/esm/pipeline/advanced/chart/pipes/encoding/hierarchy.d.ts +3 -0
  56. package/dist/esm/pipeline/advanced/chart/pipes/encoding/hierarchy.js +77 -0
  57. package/dist/esm/pipeline/advanced/chart/pipes/encoding/hierarchy.js.map +1 -0
  58. package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.d.ts +4 -0
  59. package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.js +5 -1
  60. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.d.ts +3 -0
  61. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.js +81 -0
  62. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.js.map +1 -0
  63. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.d.ts +3 -0
  64. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.js +81 -0
  65. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.js.map +1 -0
  66. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceScatter.d.ts +3 -0
  67. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceScatter.js +83 -0
  68. package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceScatter.js.map +1 -0
  69. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
  70. package/dist/esm/pipeline/advanced/chart/pipes/reshape/index.d.ts +2 -0
  71. package/dist/esm/pipeline/advanced/chart/pipes/reshape/index.js +3 -1
  72. package/dist/esm/pipeline/spec/chart/pipeline/circlePacking.d.ts +1 -0
  73. package/dist/esm/pipeline/spec/chart/pipeline/circlePacking.js +36 -0
  74. package/dist/esm/pipeline/spec/chart/pipeline/circlePacking.js.map +1 -0
  75. package/dist/esm/pipeline/spec/chart/pipeline/index.d.ts +3 -0
  76. package/dist/esm/pipeline/spec/chart/pipeline/index.js +4 -1
  77. package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js +3 -3
  78. package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js.map +1 -1
  79. package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js +3 -3
  80. package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js.map +1 -1
  81. package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js +14 -7
  82. package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js.map +1 -1
  83. package/dist/esm/pipeline/spec/chart/pipeline/sunburst.d.ts +1 -0
  84. package/dist/esm/pipeline/spec/chart/pipeline/sunburst.js +36 -0
  85. package/dist/esm/pipeline/spec/chart/pipeline/sunburst.js.map +1 -0
  86. package/dist/esm/pipeline/spec/chart/pipeline/treeMap.d.ts +1 -0
  87. package/dist/esm/pipeline/spec/chart/pipeline/treeMap.js +39 -0
  88. package/dist/esm/pipeline/spec/chart/pipeline/treeMap.js.map +1 -0
  89. package/dist/esm/pipeline/spec/chart/pipes/axes/bandAxisStyle.js +6 -1
  90. package/dist/esm/pipeline/spec/chart/pipes/axes/bandAxisStyle.js.map +1 -1
  91. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js +6 -1
  92. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js.map +1 -1
  93. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +5 -2
  94. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  95. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +5 -2
  96. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  97. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.d.ts +10 -0
  98. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js +119 -0
  99. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js.map +1 -0
  100. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.d.ts +2 -0
  101. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js +72 -0
  102. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js.map +1 -0
  103. package/dist/esm/pipeline/spec/chart/pipes/dataset/index.d.ts +2 -0
  104. package/dist/esm/pipeline/spec/chart/pipes/dataset/index.js +3 -1
  105. package/dist/esm/pipeline/spec/chart/pipes/{player/playerXBand.d.ts → hierarchy/drill.d.ts} +1 -1
  106. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/drill.js +7 -0
  107. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/drill.js.map +1 -0
  108. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/index.d.ts +1 -0
  109. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/index.js +2 -0
  110. package/dist/esm/pipeline/spec/chart/pipes/index.d.ts +1 -0
  111. package/dist/esm/pipeline/spec/chart/pipes/index.js +1 -0
  112. package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.d.ts +2 -0
  113. package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js +35 -0
  114. package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js.map +1 -0
  115. package/dist/esm/pipeline/spec/chart/pipes/init/index.d.ts +3 -0
  116. package/dist/esm/pipeline/spec/chart/pipes/init/index.js +4 -1
  117. package/dist/esm/pipeline/spec/chart/pipes/{player/playerYLinear.d.ts → init/sunburst.d.ts} +1 -1
  118. package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js +43 -0
  119. package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js.map +1 -0
  120. package/dist/esm/pipeline/spec/chart/pipes/{player/playerYBand.d.ts → init/treeMap.d.ts} +1 -1
  121. package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js +25 -0
  122. package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js.map +1 -0
  123. package/dist/esm/pipeline/spec/chart/pipes/label/index.d.ts +4 -0
  124. package/dist/esm/pipeline/spec/chart/pipes/label/index.js +5 -1
  125. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  126. package/dist/esm/pipeline/spec/chart/pipes/label/labelCirclePacking.d.ts +2 -0
  127. package/dist/esm/pipeline/spec/chart/pipes/label/labelCirclePacking.js +23 -0
  128. package/dist/esm/pipeline/spec/chart/pipes/label/labelCirclePacking.js.map +1 -0
  129. package/dist/esm/pipeline/spec/chart/pipes/{player/playerXLinear.d.ts → label/labelSunburst.d.ts} +1 -1
  130. package/dist/esm/pipeline/spec/chart/pipes/label/labelSunburst.js +26 -0
  131. package/dist/esm/pipeline/spec/chart/pipes/label/labelSunburst.js.map +1 -0
  132. package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapGroup.d.ts +2 -0
  133. package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapGroup.js +31 -0
  134. package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapGroup.js.map +1 -0
  135. package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.d.ts +2 -0
  136. package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js +68 -0
  137. package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js.map +1 -0
  138. package/dist/esm/pipeline/spec/chart/pipes/player/index.d.ts +0 -4
  139. package/dist/esm/pipeline/spec/chart/pipes/player/index.js +0 -4
  140. package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.js +45 -16
  141. package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.js.map +1 -1
  142. package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.js +47 -21
  143. package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.js.map +1 -1
  144. package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.js +13 -9
  145. package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.js.map +1 -1
  146. package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.d.ts +1 -0
  147. package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.js +2 -1
  148. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchy.d.ts +2 -0
  149. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchy.js +84 -0
  150. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchy.js.map +1 -0
  151. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipTreeMap.d.ts +2 -0
  152. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipTreeMap.js +93 -0
  153. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipTreeMap.js.map +1 -0
  154. package/dist/esm/pipeline/utils/constant.d.ts +3 -0
  155. package/dist/esm/pipeline/utils/constant.js +3 -0
  156. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  157. package/dist/esm/pipeline/utils/measures/typeGuard.d.ts +2 -2
  158. package/dist/esm/pipeline/utils/measures/typeGuard.js +1 -1
  159. package/dist/esm/pipeline/utils/measures/typeGuard.js.map +1 -1
  160. package/dist/esm/theme/common/player.js +2 -0
  161. package/dist/esm/theme/common/player.js.map +1 -1
  162. package/dist/esm/theme/dark/area.d.ts +156 -0
  163. package/dist/esm/theme/dark/area.js +29 -0
  164. package/dist/esm/theme/dark/area.js.map +1 -0
  165. package/dist/esm/theme/dark/bar.d.ts +238 -0
  166. package/dist/esm/theme/dark/bar.js +49 -0
  167. package/dist/esm/theme/dark/bar.js.map +1 -0
  168. package/dist/esm/theme/dark/boxPlot.d.ts +80 -0
  169. package/dist/esm/theme/dark/boxPlot.js +31 -0
  170. package/dist/esm/theme/dark/boxPlot.js.map +1 -0
  171. package/dist/esm/theme/dark/column.d.ts +411 -0
  172. package/dist/esm/theme/dark/column.js +64 -0
  173. package/dist/esm/theme/dark/column.js.map +1 -0
  174. package/dist/esm/theme/dark/dark.js +42 -328
  175. package/dist/esm/theme/dark/dark.js.map +1 -1
  176. package/dist/esm/theme/dark/dualAxis.d.ts +122 -0
  177. package/dist/esm/theme/dark/dualAxis.js +34 -0
  178. package/dist/esm/theme/dark/dualAxis.js.map +1 -0
  179. package/dist/esm/theme/dark/funnel.d.ts +64 -0
  180. package/dist/esm/theme/dark/funnel.js +22 -0
  181. package/dist/esm/theme/dark/funnel.js.map +1 -0
  182. package/dist/esm/theme/dark/heatmap.d.ts +66 -0
  183. package/dist/esm/theme/dark/heatmap.js +30 -0
  184. package/dist/esm/theme/dark/heatmap.js.map +1 -0
  185. package/dist/esm/theme/dark/hierarchy.d.ts +189 -0
  186. package/dist/esm/theme/dark/hierarchy.js +21 -0
  187. package/dist/esm/theme/dark/hierarchy.js.map +1 -0
  188. package/dist/esm/theme/dark/histogram.d.ts +252 -0
  189. package/dist/esm/theme/dark/histogram.js +29 -0
  190. package/dist/esm/theme/dark/histogram.js.map +1 -0
  191. package/dist/esm/theme/dark/line.d.ts +78 -0
  192. package/dist/esm/theme/dark/line.js +28 -0
  193. package/dist/esm/theme/dark/line.js.map +1 -0
  194. package/dist/esm/theme/dark/pie.d.ts +130 -0
  195. package/dist/esm/theme/dark/pie.js +26 -0
  196. package/dist/esm/theme/dark/pie.js.map +1 -0
  197. package/dist/esm/theme/dark/race.d.ts +717 -0
  198. package/dist/esm/theme/dark/race.js +138 -0
  199. package/dist/esm/theme/dark/race.js.map +1 -0
  200. package/dist/esm/theme/dark/radar.d.ts +63 -0
  201. package/dist/esm/theme/dark/radar.js +19 -0
  202. package/dist/esm/theme/dark/radar.js.map +1 -0
  203. package/dist/esm/theme/dark/rose.d.ts +128 -0
  204. package/dist/esm/theme/dark/rose.js +25 -0
  205. package/dist/esm/theme/dark/rose.js.map +1 -0
  206. package/dist/esm/theme/dark/scatter.d.ts +345 -0
  207. package/dist/esm/theme/dark/scatter.js +50 -0
  208. package/dist/esm/theme/dark/scatter.js.map +1 -0
  209. package/dist/esm/theme/light/area.d.ts +156 -0
  210. package/dist/esm/theme/light/area.js +29 -0
  211. package/dist/esm/theme/light/area.js.map +1 -0
  212. package/dist/esm/theme/light/bar.d.ts +238 -0
  213. package/dist/esm/theme/light/bar.js +49 -0
  214. package/dist/esm/theme/light/bar.js.map +1 -0
  215. package/dist/esm/theme/light/boxPlot.d.ts +80 -0
  216. package/dist/esm/theme/light/boxPlot.js +30 -0
  217. package/dist/esm/theme/light/boxPlot.js.map +1 -0
  218. package/dist/esm/theme/light/column.d.ts +411 -0
  219. package/dist/esm/theme/light/column.js +64 -0
  220. package/dist/esm/theme/light/column.js.map +1 -0
  221. package/dist/esm/theme/light/dualAxis.d.ts +122 -0
  222. package/dist/esm/theme/light/dualAxis.js +34 -0
  223. package/dist/esm/theme/light/dualAxis.js.map +1 -0
  224. package/dist/esm/theme/light/funnel.d.ts +64 -0
  225. package/dist/esm/theme/light/funnel.js +22 -0
  226. package/dist/esm/theme/light/funnel.js.map +1 -0
  227. package/dist/esm/theme/light/heatmap.d.ts +66 -0
  228. package/dist/esm/theme/light/heatmap.js +30 -0
  229. package/dist/esm/theme/light/heatmap.js.map +1 -0
  230. package/dist/esm/theme/light/hierarchy.d.ts +189 -0
  231. package/dist/esm/theme/light/hierarchy.js +21 -0
  232. package/dist/esm/theme/light/hierarchy.js.map +1 -0
  233. package/dist/esm/theme/light/histogram.d.ts +252 -0
  234. package/dist/esm/theme/light/histogram.js +29 -0
  235. package/dist/esm/theme/light/histogram.js.map +1 -0
  236. package/dist/esm/theme/light/light.js +42 -334
  237. package/dist/esm/theme/light/light.js.map +1 -1
  238. package/dist/esm/theme/light/line.d.ts +78 -0
  239. package/dist/esm/theme/light/line.js +28 -0
  240. package/dist/esm/theme/light/line.js.map +1 -0
  241. package/dist/esm/theme/light/pie.d.ts +130 -0
  242. package/dist/esm/theme/light/pie.js +26 -0
  243. package/dist/esm/theme/light/pie.js.map +1 -0
  244. package/dist/esm/theme/light/race.d.ts +899 -0
  245. package/dist/esm/theme/light/race.js +172 -0
  246. package/dist/esm/theme/light/race.js.map +1 -0
  247. package/dist/esm/theme/light/radar.d.ts +63 -0
  248. package/dist/esm/theme/light/radar.js +19 -0
  249. package/dist/esm/theme/light/radar.js.map +1 -0
  250. package/dist/esm/theme/light/rose.d.ts +128 -0
  251. package/dist/esm/theme/light/rose.js +25 -0
  252. package/dist/esm/theme/light/rose.js.map +1 -0
  253. package/dist/esm/theme/light/scatter.d.ts +345 -0
  254. package/dist/esm/theme/light/scatter.js +50 -0
  255. package/dist/esm/theme/light/scatter.js.map +1 -0
  256. package/dist/esm/types/chartType/area/zArea.d.ts +13 -2
  257. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +13 -2
  258. package/dist/esm/types/chartType/bar/zBar.d.ts +13 -2
  259. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +13 -2
  260. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +13 -2
  261. package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +13 -2
  262. package/dist/esm/types/chartType/circlePacking/circlePacking.d.ts +85 -0
  263. package/dist/esm/types/chartType/circlePacking/circlePacking.js +0 -0
  264. package/dist/esm/types/chartType/circlePacking/index.d.ts +2 -0
  265. package/dist/esm/types/chartType/circlePacking/index.js +1 -0
  266. package/dist/esm/types/chartType/circlePacking/zCirclePacking.d.ts +263 -0
  267. package/dist/esm/types/chartType/circlePacking/zCirclePacking.js +19 -0
  268. package/dist/esm/types/chartType/circlePacking/zCirclePacking.js.map +1 -0
  269. package/dist/esm/types/chartType/column/zColumn.d.ts +13 -3
  270. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +13 -3
  271. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +13 -2
  272. package/dist/esm/types/chartType/donut/zDonut.d.ts +4 -1
  273. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +26 -4
  274. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +4 -1
  275. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +2 -0
  276. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +14 -3
  277. package/dist/esm/types/chartType/index.d.ts +3 -0
  278. package/dist/esm/types/chartType/index.js +3 -0
  279. package/dist/esm/types/chartType/line/zLine.d.ts +13 -2
  280. package/dist/esm/types/chartType/pie/zPie.d.ts +4 -1
  281. package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +2 -0
  282. package/dist/esm/types/chartType/raceBar/raceBar.d.ts +3 -4
  283. package/dist/esm/types/chartType/raceBar/zRaceBar.d.ts +13 -3
  284. package/dist/esm/types/chartType/raceColumn/raceColumn.d.ts +3 -3
  285. package/dist/esm/types/chartType/raceColumn/zRaceColumn.d.ts +13 -3
  286. package/dist/esm/types/chartType/raceScatter/raceScatter.d.ts +16 -2
  287. package/dist/esm/types/chartType/raceScatter/zRaceScatter.d.ts +16 -4
  288. package/dist/esm/types/chartType/raceScatter/zRaceScatter.js +2 -0
  289. package/dist/esm/types/chartType/raceScatter/zRaceScatter.js.map +1 -1
  290. package/dist/esm/types/chartType/radar/zRadar.d.ts +4 -1
  291. package/dist/esm/types/chartType/rose/zRose.d.ts +4 -1
  292. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +4 -1
  293. package/dist/esm/types/chartType/scatter/zScatter.d.ts +14 -3
  294. package/dist/esm/types/chartType/sunburst/index.d.ts +2 -0
  295. package/dist/esm/types/chartType/sunburst/index.js +1 -0
  296. package/dist/esm/types/chartType/sunburst/sunburst.d.ts +86 -0
  297. package/dist/esm/types/chartType/sunburst/sunburst.js +0 -0
  298. package/dist/esm/types/chartType/sunburst/zSunburst.d.ts +263 -0
  299. package/dist/esm/types/chartType/sunburst/zSunburst.js +19 -0
  300. package/dist/esm/types/chartType/sunburst/zSunburst.js.map +1 -0
  301. package/dist/esm/types/chartType/table/zTable.d.ts +2 -0
  302. package/dist/esm/types/chartType/treeMap/index.d.ts +2 -0
  303. package/dist/esm/types/chartType/treeMap/index.js +1 -0
  304. package/dist/esm/types/chartType/treeMap/treeMap.d.ts +85 -0
  305. package/dist/esm/types/chartType/treeMap/treeMap.js +0 -0
  306. package/dist/esm/types/chartType/treeMap/zTreeMap.d.ts +263 -0
  307. package/dist/esm/types/chartType/treeMap/zTreeMap.js +19 -0
  308. package/dist/esm/types/chartType/treeMap/zTreeMap.js.map +1 -0
  309. package/dist/esm/types/properties/chartType/chartType.d.ts +6 -1
  310. package/dist/esm/types/properties/chartType/chartType.js +6 -0
  311. package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
  312. package/dist/esm/types/properties/config/annotation/index.d.ts +1 -1
  313. package/dist/esm/types/properties/config/annotation/index.js +1 -1
  314. package/dist/esm/types/properties/config/annotation/{zAnnotaion.js → zAnnotation.js} +1 -1
  315. package/dist/esm/types/properties/config/annotation/zAnnotation.js.map +1 -0
  316. package/dist/esm/types/properties/config/area.d.ts +18 -2
  317. package/dist/esm/types/properties/config/area.js +1 -1
  318. package/dist/esm/types/properties/config/area.js.map +1 -1
  319. package/dist/esm/types/properties/config/axes/bandAxis.d.ts +26 -0
  320. package/dist/esm/types/properties/config/axes/linearAxis.d.ts +30 -4
  321. package/dist/esm/types/properties/config/axes/zBandAxis.d.ts +8 -0
  322. package/dist/esm/types/properties/config/axes/zBandAxis.js +4 -0
  323. package/dist/esm/types/properties/config/axes/zBandAxis.js.map +1 -1
  324. package/dist/esm/types/properties/config/axes/zLinearAxis.d.ts +10 -2
  325. package/dist/esm/types/properties/config/axes/zLinearAxis.js +5 -1
  326. package/dist/esm/types/properties/config/axes/zLinearAxis.js.map +1 -1
  327. package/dist/esm/types/properties/config/bar.d.ts +27 -3
  328. package/dist/esm/types/properties/config/bar.js +1 -1
  329. package/dist/esm/types/properties/config/bar.js.map +1 -1
  330. package/dist/esm/types/properties/config/boxplot.d.ts +9 -1
  331. package/dist/esm/types/properties/config/boxplot.js +1 -1
  332. package/dist/esm/types/properties/config/boxplot.js.map +1 -1
  333. package/dist/esm/types/properties/config/circlePacking.d.ts +211 -0
  334. package/dist/esm/types/properties/config/circlePacking.js +18 -0
  335. package/dist/esm/types/properties/config/circlePacking.js.map +1 -0
  336. package/dist/esm/types/properties/config/column.d.ts +27 -3
  337. package/dist/esm/types/properties/config/column.js +1 -1
  338. package/dist/esm/types/properties/config/column.js.map +1 -1
  339. package/dist/esm/types/properties/config/config.d.ts +986 -183
  340. package/dist/esm/types/properties/config/config.js +6 -0
  341. package/dist/esm/types/properties/config/config.js.map +1 -1
  342. package/dist/esm/types/properties/config/dualAxis.d.ts +24 -4
  343. package/dist/esm/types/properties/config/dualAxis.js +1 -1
  344. package/dist/esm/types/properties/config/dualAxis.js.map +1 -1
  345. package/dist/esm/types/properties/config/heatmap.d.ts +8 -0
  346. package/dist/esm/types/properties/config/histogram.d.ts +9 -1
  347. package/dist/esm/types/properties/config/histogram.js +1 -1
  348. package/dist/esm/types/properties/config/histogram.js.map +1 -1
  349. package/dist/esm/types/properties/config/index.d.ts +3 -0
  350. package/dist/esm/types/properties/config/index.js +3 -0
  351. package/dist/esm/types/properties/config/line.d.ts +9 -1
  352. package/dist/esm/types/properties/config/line.js +1 -1
  353. package/dist/esm/types/properties/config/line.js.map +1 -1
  354. package/dist/esm/types/properties/config/player/player.d.ts +2 -2
  355. package/dist/esm/types/properties/config/player/zPlayer.d.ts +0 -1
  356. package/dist/esm/types/properties/config/player/zPlayer.js +0 -1
  357. package/dist/esm/types/properties/config/player/zPlayer.js.map +1 -1
  358. package/dist/esm/types/properties/config/race.d.ts +64 -12
  359. package/dist/esm/types/properties/config/race.js +2 -2
  360. package/dist/esm/types/properties/config/race.js.map +1 -1
  361. package/dist/esm/types/properties/config/scatter.d.ts +10 -2
  362. package/dist/esm/types/properties/config/scatter.js +1 -1
  363. package/dist/esm/types/properties/config/scatter.js.map +1 -1
  364. package/dist/esm/types/properties/config/sunburst.d.ts +211 -0
  365. package/dist/esm/types/properties/config/sunburst.js +18 -0
  366. package/dist/esm/types/properties/config/sunburst.js.map +1 -0
  367. package/dist/esm/types/properties/config/treeMap.d.ts +211 -0
  368. package/dist/esm/types/properties/config/treeMap.js +18 -0
  369. package/dist/esm/types/properties/config/treeMap.js.map +1 -0
  370. package/dist/esm/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +2 -0
  371. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +4 -0
  372. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js +2 -0
  373. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js.map +1 -1
  374. package/dist/esm/types/properties/dimensions/hierarchyDimension.d.ts +11 -0
  375. package/dist/esm/types/properties/dimensions/hierarchyDimension.js +0 -0
  376. package/dist/esm/types/properties/dimensions/index.d.ts +4 -0
  377. package/dist/esm/types/properties/dimensions/raceBarDimension.d.ts +17 -0
  378. package/dist/esm/types/properties/dimensions/raceBarDimension.js +0 -0
  379. package/dist/esm/types/properties/dimensions/raceColumnDimension.d.ts +20 -0
  380. package/dist/esm/types/properties/dimensions/raceColumnDimension.js +0 -0
  381. package/dist/esm/types/properties/dimensions/raceScatterDimension.d.ts +14 -0
  382. package/dist/esm/types/properties/dimensions/raceScatterDimension.js +0 -0
  383. package/dist/esm/types/properties/dimensions/zDimensions.d.ts +6 -0
  384. package/dist/esm/types/properties/dimensions/zDimensions.js +2 -11
  385. package/dist/esm/types/properties/dimensions/zDimensions.js.map +1 -1
  386. package/dist/esm/types/properties/encoding/dimensionEncoding.d.ts +1 -1
  387. package/dist/esm/types/properties/encoding/encoding.d.ts +11 -4
  388. package/dist/esm/types/properties/encoding/zDimensionEncoding.d.ts +4 -0
  389. package/dist/esm/types/properties/encoding/zDimensionEncoding.js +6 -2
  390. package/dist/esm/types/properties/encoding/zDimensionEncoding.js.map +1 -1
  391. package/dist/esm/types/properties/encoding/zEncoding.d.ts +4 -2
  392. package/dist/esm/types/properties/encoding/zEncoding.js +4 -2
  393. package/dist/esm/types/properties/encoding/zEncoding.js.map +1 -1
  394. package/dist/esm/types/properties/measures/hierarchyMeasures.d.ts +4 -0
  395. package/dist/esm/types/properties/measures/hierarchyMeasures.js +0 -0
  396. package/dist/esm/types/properties/measures/index.d.ts +2 -0
  397. package/dist/esm/types/properties/measures/raceBarMeasure.d.ts +12 -0
  398. package/dist/esm/types/properties/measures/raceBarMeasure.js +0 -0
  399. package/dist/esm/types/properties/theme/customTheme.d.ts +2762 -1156
  400. package/dist/esm/types/vseed.d.ts +2 -2
  401. package/dist/esm/types/zVseed.d.ts +1257 -266
  402. package/dist/esm/types/zVseed.js +4 -1
  403. package/dist/esm/types/zVseed.js.map +1 -1
  404. package/dist/umd/index.js +4918 -3110
  405. package/dist/umd/index.js.map +1 -1
  406. package/package.json +6 -5
  407. package/dist/esm/pipeline/spec/chart/pipes/player/playerXBand.js +0 -10
  408. package/dist/esm/pipeline/spec/chart/pipes/player/playerXBand.js.map +0 -1
  409. package/dist/esm/pipeline/spec/chart/pipes/player/playerXLinear.js +0 -14
  410. package/dist/esm/pipeline/spec/chart/pipes/player/playerXLinear.js.map +0 -1
  411. package/dist/esm/pipeline/spec/chart/pipes/player/playerYBand.js +0 -13
  412. package/dist/esm/pipeline/spec/chart/pipes/player/playerYBand.js.map +0 -1
  413. package/dist/esm/pipeline/spec/chart/pipes/player/playerYLinear.js +0 -14
  414. package/dist/esm/pipeline/spec/chart/pipes/player/playerYLinear.js.map +0 -1
  415. package/dist/esm/types/properties/config/annotation/zAnnotaion.js.map +0 -1
  416. /package/dist/esm/types/properties/config/annotation/{zAnnotaion.d.ts → zAnnotation.d.ts} +0 -0
@@ -0,0 +1,119 @@
1
+ import { findAllMeasures } from "../../../../utils/index.js";
2
+ const datasetHierarchy = (spec, context)=>{
3
+ const result = {
4
+ ...spec
5
+ };
6
+ const { advancedVSeed } = context;
7
+ const { datasetReshapeInfo, dataset, measures } = advancedVSeed;
8
+ const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
9
+ const hierarchyFields = advancedVSeed.encoding?.hierarchy || [];
10
+ const measureKeys = findAllMeasures(measures).map((m)=>m.id);
11
+ if (!hierarchyFields.length) {
12
+ result.data = [
13
+ {
14
+ id: 'data',
15
+ values: dataset
16
+ }
17
+ ];
18
+ return result;
19
+ }
20
+ const tree = buildTree(dataset, hierarchyFields, foldInfo, unfoldInfo, measureKeys);
21
+ result.data = [
22
+ {
23
+ id: 'data',
24
+ values: tree
25
+ }
26
+ ];
27
+ return result;
28
+ };
29
+ const buildTree = (dataset, hierarchyFields, foldInfo, unfoldInfo, measureKeys = [])=>{
30
+ const { measureValue, measureId, measureName } = foldInfo;
31
+ const { encodingColor, encodingColorId } = unfoldInfo;
32
+ const collectFields = [
33
+ measureId,
34
+ measureName,
35
+ encodingColor,
36
+ encodingColorId
37
+ ].filter(Boolean);
38
+ const root = {
39
+ name: 'root',
40
+ children: []
41
+ };
42
+ dataset.forEach((datum)=>{
43
+ let currentNode = root;
44
+ for(let i = 0; i < hierarchyFields.length; i++){
45
+ const field = hierarchyFields[i];
46
+ const value = String(datum[field]);
47
+ let child = currentNode.children.find((c)=>c.name === value);
48
+ if (!child) {
49
+ child = {
50
+ name: value,
51
+ children: []
52
+ };
53
+ for(let j = 0; j <= i; j++)child[hierarchyFields[j]] = datum[hierarchyFields[j]];
54
+ currentNode.children.push(child);
55
+ }
56
+ currentNode = child;
57
+ }
58
+ if (!currentNode.isLeaf) {
59
+ Object.assign(currentNode, datum);
60
+ currentNode.isLeaf = true;
61
+ if (measureValue) currentNode[measureValue] = 0;
62
+ measureKeys.forEach((key)=>{
63
+ currentNode[key] = 0;
64
+ });
65
+ collectFields.forEach((field)=>{
66
+ currentNode[`_set_${field}`] = new Set();
67
+ });
68
+ }
69
+ if (measureValue && void 0 !== datum[measureValue]) currentNode[measureValue] += Number(datum[measureValue]);
70
+ measureKeys.forEach((key)=>{
71
+ if (void 0 !== datum[key]) currentNode[key] = (currentNode[key] || 0) + Number(datum[key]);
72
+ });
73
+ collectFields.forEach((field)=>{
74
+ if (datum[field]) currentNode[`_set_${field}`].add(datum[field]);
75
+ });
76
+ if (measureValue) currentNode.value = currentNode[measureValue];
77
+ });
78
+ const flattenSets = (node)=>{
79
+ collectFields.forEach((field)=>{
80
+ const setKey = `_set_${field}`;
81
+ if (node[setKey]) {
82
+ node[field] = Array.from(node[setKey]).join('+');
83
+ delete node[setKey];
84
+ }
85
+ });
86
+ };
87
+ const mergeCollectFieldsFromChildren = (node)=>{
88
+ collectFields.forEach((field)=>{
89
+ const merged = new Set();
90
+ node.children.forEach((child)=>{
91
+ if (child[field]) child[field].split('+').forEach((v)=>merged.add(v));
92
+ });
93
+ if (merged.size > 0) node[field] = Array.from(merged).join('+');
94
+ });
95
+ };
96
+ const aggregate = (node)=>{
97
+ if (node.isLeaf) {
98
+ flattenSets(node);
99
+ return node.value || 0;
100
+ }
101
+ if (!node.children?.length) return node.value || 0;
102
+ let sum = 0;
103
+ node.children.forEach((child)=>{
104
+ sum += aggregate(child);
105
+ measureKeys.forEach((key)=>{
106
+ node[key] = (node[key] || 0) + (child[key] || 0);
107
+ });
108
+ });
109
+ node.value = sum;
110
+ if (measureValue) node[measureValue] = sum;
111
+ mergeCollectFieldsFromChildren(node);
112
+ return sum;
113
+ };
114
+ root.children.forEach(aggregate);
115
+ return root.children;
116
+ };
117
+ export { buildTree, datasetHierarchy };
118
+
119
+ //# sourceMappingURL=datasetHierarchy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/dataset/datasetHierarchy.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetHierarchy.ts"],"sourcesContent":["import { findAllMeasures } from 'src/pipeline/utils'\nimport type { VChartSpecPipe, Datum, FoldInfo, UnfoldInfo } from 'src/types'\n\nexport const datasetHierarchy: VChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo, dataset, measures } = advancedVSeed\n const { foldInfo, unfoldInfo } = datasetReshapeInfo[0]\n\n // 1. 获取 hierarchy encoding 对应的字段\n // 在 advanced pipeline 中,encodingForHierarchy 已经确保了 dimensions 被正确映射到 'hierarchy' 通道\n const hierarchyFields = (advancedVSeed.encoding as Datum)?.hierarchy || []\n\n const measureKeys = findAllMeasures(measures).map((m) => m.id)\n\n // 2. 如果没有 hierarchy 字段,直接返回原始数据(虽然这可能导致图表无法正确渲染,但比报错好)\n if (!hierarchyFields.length) {\n result.data = [{ id: 'data', values: dataset }]\n return result\n }\n\n // 3. 构建树形结构\n const tree = buildTree(dataset, hierarchyFields, foldInfo, unfoldInfo, measureKeys)\n\n result.data = [\n {\n id: 'data',\n values: tree,\n },\n ]\n\n return result\n}\n\n/**\n * @description 将平铺的数据集构建为树形结构\n * @param dataset 平铺的数据集\n * @param hierarchyFields 层级字段列表\n * @param measureValueField 指标值字段名\n * @param measureIdField 指标ID字段名\n */\nexport const buildTree = (\n dataset: Datum[],\n hierarchyFields: string[],\n foldInfo: FoldInfo,\n unfoldInfo: UnfoldInfo,\n measureKeys: string[] = [],\n) => {\n const { measureValue, measureId, measureName } = foldInfo\n const { encodingColor, encodingColorId } = unfoldInfo\n\n // 统一管理需要 Set 收集 → join('+') 的字段\n const collectFields = [measureId, measureName, encodingColor, encodingColorId].filter(Boolean) as string[]\n\n const root: Datum = { name: 'root', children: [] }\n\n dataset.forEach((datum) => {\n let currentNode = root\n\n // 遍历层级字段,构建路径\n for (let i = 0; i < hierarchyFields.length; i++) {\n const field = hierarchyFields[i]\n const value = String(datum[field])\n\n let child = currentNode.children.find((c: Datum) => c.name === value)\n\n if (!child) {\n child = { name: value, children: [] }\n for (let j = 0; j <= i; j++) {\n child[hierarchyFields[j]] = datum[hierarchyFields[j]]\n }\n currentNode.children.push(child)\n }\n\n currentNode = child\n }\n\n // 叶子节点:首次访问时初始化\n if (!currentNode.isLeaf) {\n Object.assign(currentNode, datum)\n currentNode.isLeaf = true\n\n // 初始化数值累加器\n if (measureValue) currentNode[measureValue] = 0\n measureKeys.forEach((key) => {\n currentNode[key] = 0\n })\n\n // 初始化 Set 收集器\n collectFields.forEach((field) => {\n currentNode[`_set_${field}`] = new Set()\n })\n }\n\n // 聚合 measureValue\n if (measureValue && datum[measureValue] !== undefined) {\n currentNode[measureValue] += Number(datum[measureValue])\n }\n\n // 聚合各个 measure\n measureKeys.forEach((key) => {\n if (datum[key] !== undefined) {\n currentNode[key] = (currentNode[key] || 0) + Number(datum[key])\n }\n })\n\n // 收集需要 join 的字段值\n collectFields.forEach((field) => {\n if (datum[field]) currentNode[`_set_${field}`].add(datum[field])\n })\n\n // 更新 value 字段\n if (measureValue) {\n currentNode.value = currentNode[measureValue]\n }\n })\n\n // 将 Set 转为 '+' 拼接的字符串\n const flattenSets = (node: Datum) => {\n collectFields.forEach((field) => {\n const setKey = `_set_${field}`\n if (node[setKey]) {\n node[field] = Array.from(node[setKey]).join('+')\n delete node[setKey]\n }\n })\n }\n\n // 从子节点的 '+' 字符串中收集所有唯一值,合并到父节点\n const mergeCollectFieldsFromChildren = (node: Datum) => {\n collectFields.forEach((field) => {\n const merged = new Set<string>()\n node.children.forEach((child: Datum) => {\n if (child[field]) {\n child[field].split('+').forEach((v: string) => merged.add(v))\n }\n })\n if (merged.size > 0) {\n node[field] = Array.from(merged).join('+')\n }\n })\n }\n\n // 后序遍历:自底向上聚合\n const aggregate = (node: Datum): number => {\n if (node.isLeaf) {\n flattenSets(node)\n return node.value || 0\n }\n\n if (!node.children?.length) {\n return node.value || 0\n }\n\n let sum = 0\n node.children.forEach((child: Datum) => {\n sum += aggregate(child)\n measureKeys.forEach((key) => {\n node[key] = (node[key] || 0) + (child[key] || 0)\n })\n })\n\n node.value = sum\n if (measureValue) node[measureValue] = sum\n\n mergeCollectFieldsFromChildren(node)\n\n return sum\n }\n\n root.children.forEach(aggregate)\n\n return root.children\n}\n"],"names":["datasetHierarchy","spec","context","result","advancedVSeed","datasetReshapeInfo","dataset","measures","foldInfo","unfoldInfo","hierarchyFields","measureKeys","findAllMeasures","m","tree","buildTree","measureValue","measureId","measureName","encodingColor","encodingColorId","collectFields","Boolean","root","datum","currentNode","i","field","value","String","child","c","j","Object","key","Set","undefined","Number","flattenSets","node","setKey","Array","mergeCollectFieldsFromChildren","merged","v","aggregate","sum"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { PivotChartSpecPipe } from '../../../../../types';
2
+ export declare const datasetPivotHierarchy: PivotChartSpecPipe;
@@ -0,0 +1,72 @@
1
+ import { findAllMeasures } from "../../../../utils/index.js";
2
+ import { buildTree } from "./datasetHierarchy.js";
3
+ import { omit } from "remeda";
4
+ const datasetPivotHierarchy = (spec, context)=>{
5
+ const result = {
6
+ ...spec
7
+ };
8
+ const { advancedVSeed } = context;
9
+ const { dataset, datasetReshapeInfo, measures } = advancedVSeed;
10
+ const measureKeys = findAllMeasures(measures).map((m)=>m.id);
11
+ const hierarchyFields = advancedVSeed.encoding?.hierarchy || [];
12
+ const rows = advancedVSeed.encoding?.row || [];
13
+ const columns = advancedVSeed.encoding?.column || [];
14
+ const pivotDims = [
15
+ ...rows,
16
+ ...columns
17
+ ];
18
+ const records = dataset.reduce((pre, cur, index)=>{
19
+ const id = datasetReshapeInfo[index].id;
20
+ const { foldInfo, unfoldInfo } = datasetReshapeInfo[index];
21
+ if (pivotDims.length > 0) {
22
+ const groupedDataset = groupByDimensions(cur, pivotDims);
23
+ pre[id] = groupedDataset.flatMap((data)=>{
24
+ const root = {
25
+ ...data,
26
+ children: buildTree(data.children, hierarchyFields, foldInfo, unfoldInfo, measureKeys)
27
+ };
28
+ const rootProps = omit(root, [
29
+ 'children'
30
+ ]);
31
+ const rootTree = root.children.map((child)=>({
32
+ ...child,
33
+ ...rootProps
34
+ }));
35
+ return rootTree;
36
+ });
37
+ } else {
38
+ const tree = buildTree(cur, hierarchyFields, foldInfo, unfoldInfo, measureKeys);
39
+ pre[id] = tree;
40
+ }
41
+ return pre;
42
+ }, {});
43
+ return {
44
+ ...result,
45
+ records: records
46
+ };
47
+ };
48
+ function groupByDimensions(data, dimKeys) {
49
+ if (0 === dimKeys.length) return data;
50
+ const buckets = new Map();
51
+ for (const item of data){
52
+ const compositeKey = dimKeys.map((k)=>String(item[k])).join('\x00');
53
+ if (!buckets.has(compositeKey)) {
54
+ const dimValues = {};
55
+ for (const k of dimKeys)dimValues[k] = item[k];
56
+ buckets.set(compositeKey, {
57
+ dimValues,
58
+ items: []
59
+ });
60
+ }
61
+ buckets.get(compositeKey).items.push(item);
62
+ }
63
+ const result = [];
64
+ for (const [, { dimValues, items }] of buckets)result.push({
65
+ ...dimValues,
66
+ children: items
67
+ });
68
+ return result;
69
+ }
70
+ export { datasetPivotHierarchy };
71
+
72
+ //# sourceMappingURL=datasetPivotHierarchy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.ts"],"sourcesContent":["import { findAllMeasures } from 'src/pipeline/utils'\nimport type { PivotChartSpecPipe, Datum } from 'src/types'\nimport { buildTree } from './datasetHierarchy'\nimport { omit } from 'remeda'\n\nexport const datasetPivotHierarchy: PivotChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { dataset, datasetReshapeInfo, measures } = advancedVSeed\n const measureKeys = findAllMeasures(measures).map((m) => m.id)\n\n const hierarchyFields = (advancedVSeed.encoding as Datum)?.hierarchy || []\n const rows = (advancedVSeed.encoding as Datum)?.row || []\n const columns = (advancedVSeed.encoding as Datum)?.column || []\n const pivotDims = [...rows, ...columns]\n const records = dataset.reduce(\n (pre, cur, index) => {\n const id = datasetReshapeInfo[index].id\n const { foldInfo, unfoldInfo } = datasetReshapeInfo[index]\n\n if (pivotDims.length > 0) {\n const groupedDataset = groupByDimensions(cur as Datum[], pivotDims) as Datum[]\n pre[id] = groupedDataset.flatMap((data) => {\n const root = {\n ...data,\n children: buildTree(data.children as Datum[], hierarchyFields, foldInfo, unfoldInfo, measureKeys),\n }\n const rootProps = omit(root, ['children'])\n const rootTree = root.children.map((child: Datum) => ({\n ...child,\n ...rootProps,\n }))\n return rootTree\n })\n } else {\n const tree = buildTree(cur as Datum[], hierarchyFields, foldInfo, unfoldInfo, measureKeys)\n pre[id] = tree\n }\n\n return pre\n },\n {} as Record<string, any>,\n )\n\n return {\n ...result,\n records: records,\n }\n}\n\nfunction groupByDimensions<T extends Record<string, any>>(data: T[], dimKeys: string[]): any[] {\n if (dimKeys.length === 0) {\n return data\n }\n\n // 用所有 dimKeys 的值拼接成复合 key\n const buckets = new Map<string, { dimValues: Record<string, any>; items: T[] }>()\n\n for (const item of data) {\n const compositeKey = dimKeys.map((k) => String(item[k])).join('\\x00')\n\n if (!buckets.has(compositeKey)) {\n const dimValues: Record<string, any> = {}\n for (const k of dimKeys) {\n dimValues[k] = item[k]\n }\n buckets.set(compositeKey, { dimValues, items: [] })\n }\n buckets.get(compositeKey)!.items.push(item)\n }\n\n const result: any[] = []\n // @ts-expect-error 忽略类型检查\n for (const [, { dimValues, items }] of buckets) {\n result.push({\n ...dimValues, // 平铺所有维度 key:value\n children: items,\n })\n }\n\n return result\n}\n"],"names":["datasetPivotHierarchy","spec","context","result","advancedVSeed","dataset","datasetReshapeInfo","measures","measureKeys","findAllMeasures","m","hierarchyFields","rows","columns","pivotDims","records","pre","cur","index","id","foldInfo","unfoldInfo","groupedDataset","groupByDimensions","data","root","buildTree","rootProps","omit","rootTree","child","tree","dimKeys","buckets","Map","item","compositeKey","k","String","dimValues","items"],"mappings":";;;AAKO,MAAMA,wBAA4C,CAACC,MAAMC;IAC9D,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,OAAO,EAAEC,kBAAkB,EAAEC,QAAQ,EAAE,GAAGH;IAClD,MAAMI,cAAcC,gBAAgBF,UAAU,GAAG,CAAC,CAACG,IAAMA,EAAE,EAAE;IAE7D,MAAMC,kBAAmBP,cAAc,QAAQ,EAAY,aAAa,EAAE;IAC1E,MAAMQ,OAAQR,cAAc,QAAQ,EAAY,OAAO,EAAE;IACzD,MAAMS,UAAWT,cAAc,QAAQ,EAAY,UAAU,EAAE;IAC/D,MAAMU,YAAY;WAAIF;WAASC;KAAQ;IACvC,MAAME,UAAUV,QAAQ,MAAM,CAC5B,CAACW,KAAKC,KAAKC;QACT,MAAMC,KAAKb,kBAAkB,CAACY,MAAM,CAAC,EAAE;QACvC,MAAM,EAAEE,QAAQ,EAAEC,UAAU,EAAE,GAAGf,kBAAkB,CAACY,MAAM;QAE1D,IAAIJ,UAAU,MAAM,GAAG,GAAG;YACxB,MAAMQ,iBAAiBC,kBAAkBN,KAAgBH;YACzDE,GAAG,CAACG,GAAG,GAAGG,eAAe,OAAO,CAAC,CAACE;gBAChC,MAAMC,OAAO;oBACX,GAAGD,IAAI;oBACP,UAAUE,UAAUF,KAAK,QAAQ,EAAab,iBAAiBS,UAAUC,YAAYb;gBACvF;gBACA,MAAMmB,YAAYC,KAAKH,MAAM;oBAAC;iBAAW;gBACzC,MAAMI,WAAWJ,KAAK,QAAQ,CAAC,GAAG,CAAC,CAACK,QAAkB;wBACpD,GAAGA,KAAK;wBACR,GAAGH,SAAS;oBACd;gBACA,OAAOE;YACT;QACF,OAAO;YACL,MAAME,OAAOL,UAAUT,KAAgBN,iBAAiBS,UAAUC,YAAYb;YAC9EQ,GAAG,CAACG,GAAG,GAAGY;QACZ;QAEA,OAAOf;IACT,GACA,CAAC;IAGH,OAAO;QACL,GAAGb,MAAM;QACT,SAASY;IACX;AACF;AAEA,SAASQ,kBAAiDC,IAAS,EAAEQ,OAAiB;IACpF,IAAIA,AAAmB,MAAnBA,QAAQ,MAAM,EAChB,OAAOR;IAIT,MAAMS,UAAU,IAAIC;IAEpB,KAAK,MAAMC,QAAQX,KAAM;QACvB,MAAMY,eAAeJ,QAAQ,GAAG,CAAC,CAACK,IAAMC,OAAOH,IAAI,CAACE,EAAE,GAAG,IAAI,CAAC;QAE9D,IAAI,CAACJ,QAAQ,GAAG,CAACG,eAAe;YAC9B,MAAMG,YAAiC,CAAC;YACxC,KAAK,MAAMF,KAAKL,QACdO,SAAS,CAACF,EAAE,GAAGF,IAAI,CAACE,EAAE;YAExBJ,QAAQ,GAAG,CAACG,cAAc;gBAAEG;gBAAW,OAAO,EAAE;YAAC;QACnD;QACAN,QAAQ,GAAG,CAACG,cAAe,KAAK,CAAC,IAAI,CAACD;IACxC;IAEA,MAAMhC,SAAgB,EAAE;IAExB,KAAK,MAAM,GAAG,EAAEoC,SAAS,EAAEC,KAAK,EAAE,CAAC,IAAIP,QACrC9B,OAAO,IAAI,CAAC;QACV,GAAGoC,SAAS;QACZ,UAAUC;IACZ;IAGF,OAAOrC;AACT"}
@@ -6,3 +6,5 @@ export { datasetDualAxis } from './datasetDualAxis';
6
6
  export { datasetScatter } from './datasetScatter';
7
7
  export { datasetHistogram } from './datasetHistogram';
8
8
  export { datasetBoxplot } from './datasetBoxplot';
9
+ export { datasetHierarchy } from './datasetHierarchy';
10
+ export { datasetPivotHierarchy } from './datasetPivotHierarchy';
@@ -6,4 +6,6 @@ import { datasetDualAxis } from "./datasetDualAxis.js";
6
6
  import { datasetScatter } from "./datasetScatter.js";
7
7
  import { datasetHistogram } from "./datasetHistogram.js";
8
8
  import { datasetBoxplot } from "./datasetBoxplot.js";
9
- export { datasetBoxplot, datasetDualAxis, datasetHistogram, datasetPivot, datasetScatter, datasetXY, datasetYX, progressive };
9
+ import { datasetHierarchy } from "./datasetHierarchy.js";
10
+ import { datasetPivotHierarchy } from "./datasetPivotHierarchy.js";
11
+ export { datasetBoxplot, datasetDualAxis, datasetHierarchy, datasetHistogram, datasetPivot, datasetPivotHierarchy, datasetScatter, datasetXY, datasetYX, progressive };
@@ -1,2 +1,2 @@
1
1
  import type { VChartSpecPipe } from '../../../../../types';
2
- export declare const playerXBand: VChartSpecPipe;
2
+ export declare const drill: VChartSpecPipe;
@@ -0,0 +1,7 @@
1
+ const drill = (spec)=>({
2
+ ...spec,
3
+ drill: true
4
+ });
5
+ export { drill };
6
+
7
+ //# sourceMappingURL=drill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/hierarchy/drill.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/hierarchy/drill.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\n\nexport const drill: VChartSpecPipe = (spec) => {\n return {\n ...spec,\n drill: true,\n }\n}\n"],"names":["drill","spec"],"mappings":"AAEO,MAAMA,QAAwB,CAACC,OAC7B;QACL,GAAGA,IAAI;QACP,OAAO;IACT"}
@@ -0,0 +1 @@
1
+ export { drill } from './drill';
@@ -0,0 +1,2 @@
1
+ import { drill } from "./drill.js";
2
+ export { drill };
@@ -22,3 +22,4 @@ export * from './regressionLine';
22
22
  export * from './region';
23
23
  export * from './pipeFilter';
24
24
  export * from './player';
25
+ export * from './hierarchy';
@@ -22,3 +22,4 @@ export * from "./regressionLine/index.js";
22
22
  export * from "./region/index.js";
23
23
  export * from "./pipeFilter/index.js";
24
24
  export * from "./player/index.js";
25
+ export * from "./hierarchy/index.js";
@@ -0,0 +1,2 @@
1
+ import type { VChartSpecPipe } from '../../../../../types';
2
+ export declare const initCirclePacking: VChartSpecPipe;
@@ -0,0 +1,35 @@
1
+ const initCirclePacking = (spec, context)=>{
2
+ const result = {
3
+ ...spec
4
+ };
5
+ const { advancedVSeed } = context;
6
+ const { datasetReshapeInfo } = advancedVSeed;
7
+ const { foldInfo } = datasetReshapeInfo[0];
8
+ result.type = 'circlePacking';
9
+ result.categoryField = 'name';
10
+ result.valueField = foldInfo.measureValue;
11
+ result.circlePacking = {
12
+ style: {
13
+ fillOpacity: (d)=>d.isLeaf ? 0.75 : 0.25
14
+ }
15
+ };
16
+ result.layoutPadding = [
17
+ 0,
18
+ 10,
19
+ 10
20
+ ];
21
+ result.padding = 0;
22
+ result.animationEnter = {
23
+ easing: 'cubicInOut'
24
+ };
25
+ result.animationExit = {
26
+ easing: 'cubicInOut'
27
+ };
28
+ result.animationUpdate = {
29
+ easing: 'cubicInOut'
30
+ };
31
+ return result;
32
+ };
33
+ export { initCirclePacking };
34
+
35
+ //# sourceMappingURL=circlePacking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/init/circlePacking.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/circlePacking.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ICirclePackingChartSpec } from '@visactor/vchart'\n\nexport const initCirclePacking: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ICirclePackingChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'circlePacking'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n // Style configuration\n result.circlePacking = {\n style: {\n fillOpacity: (d: any) => (d.isLeaf ? 0.75 : 0.25),\n },\n }\n result.layoutPadding = [0, 10, 10]\n result.padding = 0\n // Animation configuration\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initCirclePacking","spec","context","result","advancedVSeed","datasetReshapeInfo","foldInfo","d"],"mappings":"AAGO,MAAMA,oBAAoC,CAACC,MAAMC;IACtD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAE,GAAGD;IAC/B,MAAM,EAAEE,QAAQ,EAAE,GAAGD,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGG,SAAS,YAAY;IAEzCH,OAAO,aAAa,GAAG;QACrB,OAAO;YACL,aAAa,CAACI,IAAYA,EAAE,MAAM,GAAG,OAAO;QAC9C;IACF;IACAJ,OAAO,aAAa,GAAG;QAAC;QAAG;QAAI;KAAG;IAClCA,OAAO,OAAO,GAAG;IAEjBA,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
@@ -14,4 +14,7 @@ export { initFunnel } from './funnel';
14
14
  export { initPivot } from './pivot';
15
15
  export { initDualAxis } from './dualAxis';
16
16
  export { initHistogram } from './histogram';
17
+ export { initTreeMap } from './treeMap';
18
+ export { initSunburst } from './sunburst';
19
+ export { initCirclePacking } from './circlePacking';
17
20
  export { initBoxplot } from './boxplot';
@@ -14,5 +14,8 @@ import { initFunnel } from "./funnel.js";
14
14
  import { initPivot } from "./pivot.js";
15
15
  import { initDualAxis } from "./dualAxis.js";
16
16
  import { initHistogram } from "./histogram.js";
17
+ import { initTreeMap } from "./treeMap.js";
18
+ import { initSunburst } from "./sunburst.js";
19
+ import { initCirclePacking } from "./circlePacking.js";
17
20
  import { initBoxplot } from "./boxplot.js";
18
- export { initArea, initBar, initBarParallel, initBoxplot, initColumn, initColumnParallel, initDonut, initDualAxis, initFunnel, initHistogram, initLine, initPie, initPivot, initRadar, initRose, initRoseParallel, initScatter };
21
+ export { initArea, initBar, initBarParallel, initBoxplot, initCirclePacking, initColumn, initColumnParallel, initDonut, initDualAxis, initFunnel, initHistogram, initLine, initPie, initPivot, initRadar, initRose, initRoseParallel, initScatter, initSunburst, initTreeMap };
@@ -1,2 +1,2 @@
1
1
  import type { VChartSpecPipe } from '../../../../../types';
2
- export declare const playerYLinear: VChartSpecPipe;
2
+ export declare const initSunburst: VChartSpecPipe;
@@ -0,0 +1,43 @@
1
+ const initSunburst = (spec, context)=>{
2
+ const result = {
3
+ ...spec
4
+ };
5
+ const { advancedVSeed } = context;
6
+ const { datasetReshapeInfo, encoding } = advancedVSeed;
7
+ const { foldInfo } = datasetReshapeInfo[0];
8
+ result.type = 'sunburst';
9
+ result.categoryField = 'name';
10
+ result.valueField = foldInfo.measureValue;
11
+ result.outerRadius = 1;
12
+ result.innerRadius = 0;
13
+ result.gap = 0;
14
+ result.offsetX = 0;
15
+ result.offsetY = 0;
16
+ result.padding = 0;
17
+ result.labelAutoVisible = {
18
+ enable: true,
19
+ circumference: 5
20
+ };
21
+ result.sunburst = {
22
+ visible: true,
23
+ style: {
24
+ fillOpacity: (datum)=>{
25
+ if (encoding.hierarchy?.length === 1) return 1;
26
+ return datum.isLeaf ? 0.4 : 0.8;
27
+ }
28
+ }
29
+ };
30
+ result.animationEnter = {
31
+ easing: 'cubicInOut'
32
+ };
33
+ result.animationExit = {
34
+ easing: 'cubicInOut'
35
+ };
36
+ result.animationUpdate = {
37
+ easing: 'cubicInOut'
38
+ };
39
+ return result;
40
+ };
41
+ export { initSunburst };
42
+
43
+ //# sourceMappingURL=sunburst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/init/sunburst.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/sunburst.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ISunburstChartSpec } from '@visactor/vchart'\n\nexport const initSunburst: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISunburstChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo, encoding } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'sunburst'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n result.outerRadius = 1\n result.innerRadius = 0\n result.gap = 0\n result.offsetX = 0\n result.offsetY = 0\n result.padding = 0\n result.labelAutoVisible = {\n enable: true,\n circumference: 5,\n }\n result.sunburst = {\n visible: true,\n style: {\n fillOpacity: (datum: any) => {\n if (encoding.hierarchy?.length === 1) {\n return 1\n }\n return datum.isLeaf ? 0.4 : 0.8\n },\n },\n }\n\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initSunburst","spec","context","result","advancedVSeed","datasetReshapeInfo","encoding","foldInfo","datum"],"mappings":"AAGO,MAAMA,eAA+B,CAACC,MAAMC;IACjD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAEC,QAAQ,EAAE,GAAGF;IACzC,MAAM,EAAEG,QAAQ,EAAE,GAAGF,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGI,SAAS,YAAY;IACzCJ,OAAO,WAAW,GAAG;IACrBA,OAAO,WAAW,GAAG;IACrBA,OAAO,GAAG,GAAG;IACbA,OAAO,OAAO,GAAG;IACjBA,OAAO,OAAO,GAAG;IACjBA,OAAO,OAAO,GAAG;IACjBA,OAAO,gBAAgB,GAAG;QACxB,QAAQ;QACR,eAAe;IACjB;IACAA,OAAO,QAAQ,GAAG;QAChB,SAAS;QACT,OAAO;YACL,aAAa,CAACK;gBACZ,IAAIF,SAAS,SAAS,EAAE,WAAW,GACjC,OAAO;gBAET,OAAOE,MAAM,MAAM,GAAG,MAAM;YAC9B;QACF;IACF;IAEAL,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
@@ -1,2 +1,2 @@
1
1
  import type { VChartSpecPipe } from '../../../../../types';
2
- export declare const playerYBand: VChartSpecPipe;
2
+ export declare const initTreeMap: VChartSpecPipe;
@@ -0,0 +1,25 @@
1
+ const initTreeMap = (spec, context)=>{
2
+ const result = {
3
+ ...spec
4
+ };
5
+ const { advancedVSeed } = context;
6
+ const { datasetReshapeInfo } = advancedVSeed;
7
+ const { foldInfo } = datasetReshapeInfo[0];
8
+ result.type = 'treemap';
9
+ result.categoryField = 'name';
10
+ result.valueField = foldInfo.measureValue;
11
+ result.padding = 0;
12
+ result.animationEnter = {
13
+ easing: 'cubicInOut'
14
+ };
15
+ result.animationExit = {
16
+ easing: 'cubicInOut'
17
+ };
18
+ result.animationUpdate = {
19
+ easing: 'cubicInOut'
20
+ };
21
+ return result;
22
+ };
23
+ export { initTreeMap };
24
+
25
+ //# sourceMappingURL=treeMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/init/treeMap.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/treeMap.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ITreemapChartSpec } from '@visactor/vchart'\n\nexport const initTreeMap: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ITreemapChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'treemap'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n result.padding = 0\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initTreeMap","spec","context","result","advancedVSeed","datasetReshapeInfo","foldInfo"],"mappings":"AAGO,MAAMA,cAA8B,CAACC,MAAMC;IAChD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAE,GAAGD;IAC/B,MAAM,EAAEE,QAAQ,EAAE,GAAGD,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGG,SAAS,YAAY;IACzCH,OAAO,OAAO,GAAG;IACjBA,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
@@ -3,3 +3,7 @@ export { labelDualAxis } from './labelDualAxis';
3
3
  export { labelScatter } from './labelScatter';
4
4
  export { labelPie } from './labelPie';
5
5
  export { labelBoxPlot } from './labelBoxPlot';
6
+ export { labelCirclePacking } from './labelCirclePacking';
7
+ export { labelSunburst } from './labelSunburst';
8
+ export { labelTreeMapLeaf } from './labelTreeMapLeaf';
9
+ export { labelTreeMapGroup } from './labelTreeMapGroup';
@@ -3,4 +3,8 @@ import { labelDualAxis } from "./labelDualAxis.js";
3
3
  import { labelScatter } from "./labelScatter.js";
4
4
  import { labelPie } from "./labelPie.js";
5
5
  import { labelBoxPlot } from "./labelBoxPlot.js";
6
- export { label, labelBoxPlot, labelDualAxis, labelPie, labelScatter };
6
+ import { labelCirclePacking } from "./labelCirclePacking.js";
7
+ import { labelSunburst } from "./labelSunburst.js";
8
+ import { labelTreeMapLeaf } from "./labelTreeMapLeaf.js";
9
+ import { labelTreeMapGroup } from "./labelTreeMapGroup.js";
10
+ export { label, labelBoxPlot, labelCirclePacking, labelDualAxis, labelPie, labelScatter, labelSunburst, labelTreeMapGroup, labelTreeMapLeaf };
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/label/label.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/label.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport { createFormatter, createFormatterByMeasure, DATUM_HIDE_KEY, findMeasureById } from '../../../../utils'\nimport type {\n Datum,\n Dimension,\n Dimensions,\n Encoding,\n FoldInfo,\n Formatter,\n Label,\n Measure,\n Measures,\n NumFormat,\n VChartSpecPipe,\n} from 'src/types'\nimport { isNumber, merge, uniqueBy } from 'remeda'\nimport { selector } from 'src/dataSelector'\nimport { MeasureId } from 'src/dataReshape/constant'\n\nexport const label: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const foldInfo = datasetReshapeInfo[0].foldInfo as FoldInfo\n\n const { label } = baseConfig\n\n result.label = buildLabel(\n label,\n vseed.measures,\n vseed.dimensions,\n advancedVSeed.dimensions!,\n advancedVSeed.measures!,\n encoding as Encoding,\n [foldInfo],\n ) as unknown as ILineChartSpec['label']\n\n return result\n}\n\nexport const generateMeasureValue = (\n value: number | string,\n measure: Measure,\n labelAutoFormat?: boolean,\n numFormat: NumFormat = {},\n) => {\n const format = merge(numFormat, measure.numFormat || measure.format)\n const mergedMeasure = { ...measure, numFormat: format, autoFormat: labelAutoFormat || measure.autoFormat }\n\n const formatter = createFormatterByMeasure(mergedMeasure)\n return formatter(value)\n}\n\nexport const generateMeasurePercent = (value: number | string, sum: number, formatter: Formatter) => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const percentValue = num / sum\n return formatter(percentValue)\n}\n\nexport const buildLabel = (\n label: Label,\n vseedMeasures: Measures = [],\n vseedDimensions: Dimensions = [],\n advancedVSeedDimensions: Dimensions,\n advancedVSeedMeasures: Measures,\n encoding: Encoding,\n foldInfoList: (Pick<FoldInfo, 'measureId' | 'measureValue'> & Partial<Pick<FoldInfo, 'statistics'>>)[],\n) => {\n const {\n enable,\n wrap,\n showValue,\n showValuePercent,\n showDimension,\n labelOverlap,\n labelColorSmartInvert,\n labelStroke,\n labelColor,\n labelFontSize,\n labelFontWeight,\n labelBackgroundColor,\n labelPosition,\n autoFormat,\n numFormat = {},\n } = label\n\n const hasDimLabelEncoding = vseedDimensions.some((item) => encoding.label?.includes(item.id))\n\n const labelDims = uniqueBy(\n hasDimLabelEncoding\n ? vseedDimensions.filter((item) => encoding.label?.includes(item.id))\n : showDimension\n ? advancedVSeedDimensions.filter((d) => d.id !== MeasureId && d.encoding !== 'row' && d.encoding !== 'column')\n : [],\n (item: Dimension) => item.id,\n )\n\n const labelMeas = uniqueBy(\n vseedMeasures.filter((item) => encoding.label?.includes(item.id)),\n (item: Measure) => item.id,\n )\n\n const percentFormat: NumFormat = merge(numFormat, {\n type: 'percent',\n } as NumFormat)\n\n const percentFormatter = createFormatter(percentFormat)\n\n const result = {\n visible: enable,\n dataFilter: (data: Datum[]) => {\n return data.filter((entry) => {\n return entry.data?.[DATUM_HIDE_KEY] !== true && selector(entry.data as Datum, label.selector, 'Or')\n })\n },\n formatMethod: (_: unknown, datum: Datum) => {\n const result = []\n\n const dimLabels = labelDims.map((item: Dimension) => {\n const id = item.id\n return datum[id] as number | string\n })\n\n const meaLabels = labelMeas.map((item: Measure) =>\n generateMeasureValue(datum[item.id] as number | string, item, autoFormat, numFormat),\n )\n\n result.push(...dimLabels)\n\n foldInfoList.forEach((foldInfo) => {\n const { measureId, measureValue, statistics } = foldInfo\n const measure = findMeasureById(advancedVSeedMeasures, datum[measureId] as string)\n if (measure) {\n const measureValueLabel = generateMeasureValue(\n datum[measureValue] as number | string,\n measure,\n autoFormat,\n numFormat,\n )\n\n if (showValue) {\n result.push(measureValueLabel)\n }\n if (showValuePercent) {\n if (isNumber(datum['__VCHART_ARC_RATIO'])) {\n // 饼图/环图需要使用实际占比数据\n result.push(generateMeasurePercent(datum['__VCHART_ARC_RATIO'], 1, percentFormatter))\n } else if (statistics && isNumber(statistics.sum)) {\n result.push(\n generateMeasurePercent(datum[measureValue] as number | string, statistics.sum, percentFormatter),\n )\n }\n }\n }\n })\n\n result.push(...meaLabels)\n\n if (wrap) {\n return result\n }\n return result.join(' ')\n },\n syncState: true,\n position: labelPosition,\n style: {\n stroke: labelStroke,\n fill: labelColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n background: labelBackgroundColor,\n },\n smartInvert: labelColorSmartInvert,\n }\n\n if (labelColorSmartInvert) {\n ;(result.style as any).lineWidth = 2 // label 边框线宽度,不设置这个会导致智能反色失败\n }\n\n if (labelOverlap) {\n ;(result as any).overlap = {\n hideOnHit: true,\n clampForce: true,\n }\n }\n\n return result\n}\n"],"names":["label","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","encoding","baseConfig","foldInfo","buildLabel","generateMeasureValue","value","measure","labelAutoFormat","numFormat","format","merge","mergedMeasure","formatter","createFormatterByMeasure","generateMeasurePercent","sum","String","num","Number","percentValue","vseedMeasures","vseedDimensions","advancedVSeedDimensions","advancedVSeedMeasures","foldInfoList","enable","wrap","showValue","showValuePercent","showDimension","labelOverlap","labelColorSmartInvert","labelStroke","labelColor","labelFontSize","labelFontWeight","labelBackgroundColor","labelPosition","autoFormat","hasDimLabelEncoding","item","labelDims","uniqueBy","d","MeasureId","labelMeas","percentFormat","percentFormatter","createFormatter","data","entry","DATUM_HIDE_KEY","selector","_","datum","dimLabels","id","meaLabels","measureId","measureValue","statistics","findMeasureById","measureValueLabel","isNumber"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/label/label.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/label.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport { createFormatter, createFormatterByMeasure, DATUM_HIDE_KEY, findMeasureById } from '../../../../utils'\nimport type {\n Datum,\n Dimension,\n Dimensions,\n Encoding,\n FoldInfo,\n Formatter,\n Label,\n Measure,\n Measures,\n NumFormat,\n VChartSpecPipe,\n} from 'src/types'\nimport { isNumber, merge, uniqueBy } from 'remeda'\nimport { selector } from 'src/dataSelector'\nimport { MeasureId } from 'src/dataReshape/constant'\n\nexport const label: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const foldInfo = datasetReshapeInfo[0].foldInfo as FoldInfo\n\n const { label } = baseConfig\n result.label = buildLabel(\n label,\n vseed.measures,\n vseed.dimensions,\n advancedVSeed.dimensions!,\n advancedVSeed.measures!,\n encoding as Encoding,\n [foldInfo],\n ) as unknown as ILineChartSpec['label']\n\n return result\n}\n\nexport const generateMeasureValue = (\n value: number | string,\n measure: Measure,\n labelAutoFormat?: boolean,\n numFormat: NumFormat = {},\n) => {\n const format = merge(numFormat, measure.numFormat || measure.format)\n const mergedMeasure = { ...measure, numFormat: format, autoFormat: labelAutoFormat || measure.autoFormat }\n\n const formatter = createFormatterByMeasure(mergedMeasure)\n return formatter(value)\n}\n\nexport const generateMeasurePercent = (value: number | string, sum: number, formatter: Formatter) => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const percentValue = num / sum\n return formatter(percentValue)\n}\n\nexport const buildLabel = (\n label: Label,\n vseedMeasures: Measures = [],\n vseedDimensions: Dimensions = [],\n advancedVSeedDimensions: Dimensions,\n advancedVSeedMeasures: Measures,\n encoding: Encoding,\n foldInfoList: (Pick<FoldInfo, 'measureId' | 'measureValue'> & Partial<Pick<FoldInfo, 'statistics'>>)[],\n) => {\n const {\n enable,\n wrap,\n showValue,\n showValuePercent,\n showDimension,\n labelOverlap,\n labelColorSmartInvert,\n labelStroke,\n labelColor,\n labelFontSize,\n labelFontWeight,\n labelBackgroundColor,\n labelPosition,\n autoFormat,\n numFormat = {},\n } = label\n\n const hasDimLabelEncoding = vseedDimensions.some((item) => encoding.label?.includes(item.id))\n\n const labelDims = uniqueBy(\n hasDimLabelEncoding\n ? vseedDimensions.filter((item) => encoding.label?.includes(item.id))\n : showDimension\n ? advancedVSeedDimensions.filter((d) => d.id !== MeasureId && d.encoding !== 'row' && d.encoding !== 'column')\n : [],\n (item: Dimension) => item.id,\n )\n\n const labelMeas = uniqueBy(\n vseedMeasures.filter((item) => encoding.label?.includes(item.id)),\n (item: Measure) => item.id,\n )\n\n const percentFormat: NumFormat = merge(numFormat, {\n type: 'percent',\n } as NumFormat)\n\n const percentFormatter = createFormatter(percentFormat)\n\n const result = {\n visible: enable,\n dataFilter: (data: Datum[]) => {\n return data.filter((entry) => {\n return entry.data?.[DATUM_HIDE_KEY] !== true && selector(entry.data as Datum, label.selector, 'Or')\n })\n },\n formatMethod: (_: unknown, datum: Datum) => {\n const result = []\n\n const dimLabels = labelDims.map((item: Dimension) => {\n const id = item.id\n return datum[id] as number | string\n })\n\n const meaLabels = labelMeas.map((item: Measure) =>\n generateMeasureValue(datum[item.id] as number | string, item, autoFormat, numFormat),\n )\n\n result.push(...dimLabels)\n\n foldInfoList.forEach((foldInfo) => {\n const { measureId, measureValue, statistics } = foldInfo\n const measure = findMeasureById(advancedVSeedMeasures, datum[measureId] as string)\n if (measure) {\n const measureValueLabel = generateMeasureValue(\n datum[measureValue] as number | string,\n measure,\n autoFormat,\n numFormat,\n )\n\n if (showValue) {\n result.push(measureValueLabel)\n }\n if (showValuePercent) {\n if (isNumber(datum['__VCHART_ARC_RATIO'])) {\n // 饼图/环图需要使用实际占比数据\n result.push(generateMeasurePercent(datum['__VCHART_ARC_RATIO'], 1, percentFormatter))\n } else if (statistics && isNumber(statistics.sum)) {\n result.push(\n generateMeasurePercent(datum[measureValue] as number | string, statistics.sum, percentFormatter),\n )\n }\n }\n }\n })\n\n result.push(...meaLabels)\n\n if (wrap) {\n return result\n }\n return result.join(' ')\n },\n syncState: true,\n position: labelPosition,\n style: {\n stroke: labelStroke,\n fill: labelColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n background: labelBackgroundColor,\n },\n smartInvert: labelColorSmartInvert,\n }\n\n if (labelColorSmartInvert) {\n ;(result.style as any).lineWidth = 2 // label 边框线宽度,不设置这个会导致智能反色失败\n }\n\n if (labelOverlap) {\n ;(result as any).overlap = {\n hideOnHit: true,\n clampForce: true,\n }\n }\n\n return result\n}\n"],"names":["label","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","encoding","baseConfig","foldInfo","buildLabel","generateMeasureValue","value","measure","labelAutoFormat","numFormat","format","merge","mergedMeasure","formatter","createFormatterByMeasure","generateMeasurePercent","sum","String","num","Number","percentValue","vseedMeasures","vseedDimensions","advancedVSeedDimensions","advancedVSeedMeasures","foldInfoList","enable","wrap","showValue","showValuePercent","showDimension","labelOverlap","labelColorSmartInvert","labelStroke","labelColor","labelFontSize","labelFontWeight","labelBackgroundColor","labelPosition","autoFormat","hasDimLabelEncoding","item","labelDims","uniqueBy","d","MeasureId","labelMeas","percentFormat","percentFormatter","createFormatter","data","entry","DATUM_HIDE_KEY","selector","_","datum","dimLabels","id","meaLabels","measureId","measureValue","statistics","findMeasureById","measureValueLabel","isNumber"],"mappings":";;;;AAmBO,MAAMA,cAAwB,CAACC,MAAMC;IAC1C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,kBAAkB,EAAE,GAAGF;IAC/B,MAAM,EAAEG,SAAS,EAAEC,QAAQ,EAAE,GAAGJ;IAChC,MAAMK,aAAaL,cAAc,MAAM,CAACG,UAAU;IAClD,MAAMG,WAAWJ,kBAAkB,CAAC,EAAE,CAAC,QAAQ;IAE/C,MAAM,EAAEN,KAAK,EAAE,GAAGS;IAClBN,OAAO,KAAK,GAAGQ,WACbX,OACAK,MAAM,QAAQ,EACdA,MAAM,UAAU,EAChBD,cAAc,UAAU,EACxBA,cAAc,QAAQ,EACtBI,UACA;QAACE;KAAS;IAGZ,OAAOP;AACT;AAEO,MAAMS,uBAAuB,CAClCC,OACAC,SACAC,iBACAC,YAAuB,CAAC,CAAC;IAEzB,MAAMC,SAASC,MAAMF,WAAWF,QAAQ,SAAS,IAAIA,QAAQ,MAAM;IACnE,MAAMK,gBAAgB;QAAE,GAAGL,OAAO;QAAE,WAAWG;QAAQ,YAAYF,mBAAmBD,QAAQ,UAAU;IAAC;IAEzG,MAAMM,YAAYC,yBAAyBF;IAC3C,OAAOC,UAAUP;AACnB;AAEO,MAAMS,yBAAyB,CAACT,OAAwBU,KAAaH;IAC1E,IAAIP,QAAAA,OAAuC,OAAOW,OAAOX;IACzD,MAAMY,MAAMC,OAAOb;IACnB,IAAIa,OAAO,KAAK,CAACD,MAAM,OAAOD,OAAOX;IAErC,MAAMc,eAAeF,MAAMF;IAC3B,OAAOH,UAAUO;AACnB;AAEO,MAAMhB,aAAa,CACxBX,OACA4B,gBAA0B,EAAE,EAC5BC,kBAA8B,EAAE,EAChCC,yBACAC,uBACAvB,UACAwB;IAEA,MAAM,EACJC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,gBAAgB,EAChBC,aAAa,EACbC,YAAY,EACZC,qBAAqB,EACrBC,WAAW,EACXC,UAAU,EACVC,aAAa,EACbC,eAAe,EACfC,oBAAoB,EACpBC,aAAa,EACbC,UAAU,EACV9B,YAAY,CAAC,CAAC,EACf,GAAGhB;IAEJ,MAAM+C,sBAAsBlB,gBAAgB,IAAI,CAAC,CAACmB,OAASxC,SAAS,KAAK,EAAE,SAASwC,KAAK,EAAE;IAE3F,MAAMC,YAAYC,SAChBH,sBACIlB,gBAAgB,MAAM,CAAC,CAACmB,OAASxC,SAAS,KAAK,EAAE,SAASwC,KAAK,EAAE,KACjEX,gBACEP,wBAAwB,MAAM,CAAC,CAACqB,IAAMA,EAAE,EAAE,KAAKC,aAAaD,AAAe,UAAfA,EAAE,QAAQ,IAAcA,AAAe,aAAfA,EAAE,QAAQ,IAC9F,EAAE,EACR,CAACH,OAAoBA,KAAK,EAAE;IAG9B,MAAMK,YAAYH,SAChBtB,cAAc,MAAM,CAAC,CAACoB,OAASxC,SAAS,KAAK,EAAE,SAASwC,KAAK,EAAE,IAC/D,CAACA,OAAkBA,KAAK,EAAE;IAG5B,MAAMM,gBAA2BpC,MAAMF,WAAW;QAChD,MAAM;IACR;IAEA,MAAMuC,mBAAmBC,gBAAgBF;IAEzC,MAAMnD,SAAS;QACb,SAAS8B;QACT,YAAY,CAACwB,OACJA,KAAK,MAAM,CAAC,CAACC,QACXA,MAAM,IAAI,EAAE,CAACC,eAAe,KAAK,QAAQC,SAASF,MAAM,IAAI,EAAW1D,MAAM,QAAQ,EAAE;QAGlG,cAAc,CAAC6D,GAAYC;YACzB,MAAM3D,SAAS,EAAE;YAEjB,MAAM4D,YAAYd,UAAU,GAAG,CAAC,CAACD;gBAC/B,MAAMgB,KAAKhB,KAAK,EAAE;gBAClB,OAAOc,KAAK,CAACE,GAAG;YAClB;YAEA,MAAMC,YAAYZ,UAAU,GAAG,CAAC,CAACL,OAC/BpC,qBAAqBkD,KAAK,CAACd,KAAK,EAAE,CAAC,EAAqBA,MAAMF,YAAY9B;YAG5Eb,OAAO,IAAI,IAAI4D;YAEf/B,aAAa,OAAO,CAAC,CAACtB;gBACpB,MAAM,EAAEwD,SAAS,EAAEC,YAAY,EAAEC,UAAU,EAAE,GAAG1D;gBAChD,MAAMI,UAAUuD,gBAAgBtC,uBAAuB+B,KAAK,CAACI,UAAU;gBACvE,IAAIpD,SAAS;oBACX,MAAMwD,oBAAoB1D,qBACxBkD,KAAK,CAACK,aAAa,EACnBrD,SACAgC,YACA9B;oBAGF,IAAImB,WACFhC,OAAO,IAAI,CAACmE;oBAEd,IAAIlC,kBACF;wBAAA,IAAImC,SAAST,KAAK,CAAC,qBAAqB,GAEtC3D,OAAO,IAAI,CAACmB,uBAAuBwC,KAAK,CAAC,qBAAqB,EAAE,GAAGP;6BAC9D,IAAIa,cAAcG,SAASH,WAAW,GAAG,GAC9CjE,OAAO,IAAI,CACTmB,uBAAuBwC,KAAK,CAACK,aAAa,EAAqBC,WAAW,GAAG,EAAEb;oBAEnF;gBAEJ;YACF;YAEApD,OAAO,IAAI,IAAI8D;YAEf,IAAI/B,MACF,OAAO/B;YAET,OAAOA,OAAO,IAAI,CAAC;QACrB;QACA,WAAW;QACX,UAAU0C;QACV,OAAO;YACL,QAAQL;YACR,MAAMC;YACN,UAAUC;YACV,YAAYC;YACZ,YAAYC;QACd;QACA,aAAaL;IACf;IAEA,IAAIA,uBACApC,OAAO,KAAK,CAAS,SAAS,GAAG;IAGrC,IAAImC,cACAnC,OAAe,OAAO,GAAG;QACzB,WAAW;QACX,YAAY;IACd;IAGF,OAAOA;AACT"}
@@ -0,0 +1,2 @@
1
+ import type { VChartSpecPipe } from '../../../../../types';
2
+ export declare const labelCirclePacking: VChartSpecPipe;
@@ -0,0 +1,23 @@
1
+ import { label as external_label_js_label } from "./label.js";
2
+ const labelCirclePacking = (spec, context)=>{
3
+ const { advancedVSeed } = context;
4
+ const { chartType } = advancedVSeed;
5
+ const baseConfig = advancedVSeed.config[chartType];
6
+ const { label } = baseConfig;
7
+ const result = external_label_js_label(spec, context);
8
+ if (label?.enable) {
9
+ const labelSpec = result.label;
10
+ result.label = {
11
+ ...labelSpec,
12
+ style: {
13
+ ...labelSpec?.style,
14
+ fontSize: 10,
15
+ visible: (d)=>1 === d.depth
16
+ }
17
+ };
18
+ }
19
+ return result;
20
+ };
21
+ export { labelCirclePacking };
22
+
23
+ //# sourceMappingURL=labelCirclePacking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/label/labelCirclePacking.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelCirclePacking.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Label, VChartSpecPipe } from 'src/types'\nimport { label as commonLabel } from './label'\n\nexport const labelCirclePacking: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const { label } = baseConfig\n\n // Reuse common label logic to build basic label config\n const result = commonLabel(spec, context) as ILineChartSpec\n\n // If label is enabled, override with circlePacking specific logic\n if (label?.enable) {\n const labelSpec = result.label as any\n result.label = {\n ...labelSpec,\n style: {\n ...labelSpec?.style,\n fontSize: 10,\n visible: (d: any) => {\n return d.depth === 1\n },\n },\n }\n }\n\n return result\n}\n"],"names":["labelCirclePacking","spec","context","advancedVSeed","chartType","baseConfig","label","result","commonLabel","labelSpec","d"],"mappings":";AAIO,MAAMA,qBAAqC,CAACC,MAAMC;IACvD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,aAAaF,cAAc,MAAM,CAACC,UAAU;IAClD,MAAM,EAAEE,KAAK,EAAE,GAAGD;IAGlB,MAAME,SAASC,wBAAYP,MAAMC;IAGjC,IAAII,OAAO,QAAQ;QACjB,MAAMG,YAAYF,OAAO,KAAK;QAC9BA,OAAO,KAAK,GAAG;YACb,GAAGE,SAAS;YACZ,OAAO;gBACL,GAAGA,WAAW,KAAK;gBACnB,UAAU;gBACV,SAAS,CAACC,IACDA,AAAY,MAAZA,EAAE,KAAK;YAElB;QACF;IACF;IAEA,OAAOH;AACT"}
@@ -1,2 +1,2 @@
1
1
  import type { VChartSpecPipe } from '../../../../../types';
2
- export declare const playerXLinear: VChartSpecPipe;
2
+ export declare const labelSunburst: VChartSpecPipe;
@@ -0,0 +1,26 @@
1
+ import { label as external_label_js_label } from "./label.js";
2
+ const labelSunburst = (spec, context)=>{
3
+ const { advancedVSeed } = context;
4
+ const { chartType, encoding } = advancedVSeed;
5
+ const baseConfig = advancedVSeed.config[chartType];
6
+ const { label } = baseConfig;
7
+ const result = external_label_js_label(spec, context);
8
+ if (label?.enable) {
9
+ const labelSpec = result.label;
10
+ result.label = {
11
+ ...labelSpec,
12
+ style: {
13
+ ...labelSpec?.style,
14
+ fontSize: 12,
15
+ fillOpacity: (datum)=>{
16
+ if (encoding.hierarchy?.length === 1) return 1;
17
+ return datum.isLeaf ? 0.4 : 0.6;
18
+ }
19
+ }
20
+ };
21
+ }
22
+ return result;
23
+ };
24
+ export { labelSunburst };
25
+
26
+ //# sourceMappingURL=labelSunburst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/label/labelSunburst.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelSunburst.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Label, VChartSpecPipe } from 'src/types'\nimport { label as commonLabel } from './label'\n\nexport const labelSunburst: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const { label } = baseConfig\n\n // Reuse common label logic\n const result = commonLabel(spec, context) as ILineChartSpec\n\n // Override with sunburst specific logic\n if (label?.enable) {\n const labelSpec = result.label as any\n result.label = {\n ...labelSpec,\n style: {\n ...labelSpec?.style,\n fontSize: 12,\n fillOpacity: (datum: any) => {\n if (encoding.hierarchy?.length === 1) {\n return 1\n }\n return datum.isLeaf ? 0.4 : 0.6\n },\n },\n }\n }\n\n return result\n}\n"],"names":["labelSunburst","spec","context","advancedVSeed","chartType","encoding","baseConfig","label","result","commonLabel","labelSpec","datum"],"mappings":";AAIO,MAAMA,gBAAgC,CAACC,MAAMC;IAClD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAEC,QAAQ,EAAE,GAAGF;IAChC,MAAMG,aAAaH,cAAc,MAAM,CAACC,UAAU;IAClD,MAAM,EAAEG,KAAK,EAAE,GAAGD;IAGlB,MAAME,SAASC,wBAAYR,MAAMC;IAGjC,IAAIK,OAAO,QAAQ;QACjB,MAAMG,YAAYF,OAAO,KAAK;QAC9BA,OAAO,KAAK,GAAG;YACb,GAAGE,SAAS;YACZ,OAAO;gBACL,GAAGA,WAAW,KAAK;gBACnB,UAAU;gBACV,aAAa,CAACC;oBACZ,IAAIN,SAAS,SAAS,EAAE,WAAW,GACjC,OAAO;oBAET,OAAOM,MAAM,MAAM,GAAG,MAAM;gBAC9B;YACF;QACF;IACF;IAEA,OAAOH;AACT"}
@@ -0,0 +1,2 @@
1
+ import type { VChartSpecPipe } from '../../../../../types';
2
+ export declare const labelTreeMapGroup: VChartSpecPipe;