@visactor/vseed 0.5.5 → 0.5.6

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 (215) hide show
  1. package/dist/cjs/index.cjs +2 -2
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/register/all.js +3 -1
  4. package/dist/esm/builder/register/all.js.map +1 -1
  5. package/dist/esm/builder/register/chartType/hierarchySankey.d.ts +4 -0
  6. package/dist/esm/builder/register/chartType/hierarchySankey.js +9 -0
  7. package/dist/esm/builder/register/chartType/hierarchySankey.js.map +1 -0
  8. package/dist/esm/builder/register/chartType/index.d.ts +2 -0
  9. package/dist/esm/builder/register/chartType/index.js +2 -0
  10. package/dist/esm/builder/register/chartType/sankey.d.ts +1 -0
  11. package/dist/esm/builder/register/chartType/sankey.js +9 -0
  12. package/dist/esm/builder/register/chartType/sankey.js.map +1 -0
  13. package/dist/esm/dataReshape/constant.d.ts +2 -0
  14. package/dist/esm/dataReshape/constant.js +3 -1
  15. package/dist/esm/dataReshape/constant.js.map +1 -1
  16. package/dist/esm/dataReshape/unfoldDimensions.js +8 -2
  17. package/dist/esm/dataReshape/unfoldDimensions.js.map +1 -1
  18. package/dist/esm/index.d.ts +1 -1
  19. package/dist/esm/index.js +1 -1
  20. package/dist/esm/pipeline/advanced/chart/pipeline/hierarchySankey.d.ts +2 -0
  21. package/dist/esm/pipeline/advanced/chart/pipeline/hierarchySankey.js +33 -0
  22. package/dist/esm/pipeline/advanced/chart/pipeline/hierarchySankey.js.map +1 -0
  23. package/dist/esm/pipeline/advanced/chart/pipeline/index.d.ts +2 -0
  24. package/dist/esm/pipeline/advanced/chart/pipeline/index.js +2 -0
  25. package/dist/esm/pipeline/advanced/chart/pipeline/sankey.d.ts +2 -0
  26. package/dist/esm/pipeline/advanced/chart/pipeline/sankey.js +33 -0
  27. package/dist/esm/pipeline/advanced/chart/pipeline/sankey.js.map +1 -0
  28. package/dist/esm/pipeline/advanced/chart/pipes/config/hierarchySankey.d.ts +2 -0
  29. package/dist/esm/pipeline/advanced/chart/pipes/config/hierarchySankey.js +27 -0
  30. package/dist/esm/pipeline/advanced/chart/pipes/config/hierarchySankey.js.map +1 -0
  31. package/dist/esm/pipeline/advanced/chart/pipes/config/index.d.ts +2 -0
  32. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js +2 -0
  33. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js.map +1 -1
  34. package/dist/esm/pipeline/advanced/chart/pipes/config/sankey.d.ts +2 -0
  35. package/dist/esm/pipeline/advanced/chart/pipes/config/sankey.js +27 -0
  36. package/dist/esm/pipeline/advanced/chart/pipes/config/sankey.js.map +1 -0
  37. package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.d.ts +1 -0
  38. package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.js +1 -0
  39. package/dist/esm/pipeline/advanced/chart/pipes/encoding/sankey.d.ts +3 -0
  40. package/dist/esm/pipeline/advanced/chart/pipes/encoding/sankey.js +83 -0
  41. package/dist/esm/pipeline/advanced/chart/pipes/encoding/sankey.js.map +1 -0
  42. package/dist/esm/pipeline/spec/chart/pipeline/hierarchySankey.d.ts +1 -0
  43. package/dist/esm/pipeline/spec/chart/pipeline/hierarchySankey.js +39 -0
  44. package/dist/esm/pipeline/spec/chart/pipeline/hierarchySankey.js.map +1 -0
  45. package/dist/esm/pipeline/spec/chart/pipeline/index.d.ts +2 -0
  46. package/dist/esm/pipeline/spec/chart/pipeline/index.js +2 -0
  47. package/dist/esm/pipeline/spec/chart/pipeline/sankey.d.ts +1 -0
  48. package/dist/esm/pipeline/spec/chart/pipeline/sankey.js +39 -0
  49. package/dist/esm/pipeline/spec/chart/pipeline/sankey.js.map +1 -0
  50. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js +5 -2
  51. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js.map +1 -1
  52. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchySankey.d.ts +4 -0
  53. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchySankey.js +136 -0
  54. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchySankey.js.map +1 -0
  55. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.d.ts +1 -0
  56. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js +1 -1
  57. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js.map +1 -1
  58. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchySankey.d.ts +2 -0
  59. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchySankey.js +44 -0
  60. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchySankey.js.map +1 -0
  61. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotSankey.d.ts +2 -0
  62. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotSankey.js +50 -0
  63. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotSankey.js.map +1 -0
  64. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetSankey.d.ts +16 -0
  65. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetSankey.js +97 -0
  66. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetSankey.js.map +1 -0
  67. package/dist/esm/pipeline/spec/chart/pipes/dataset/index.d.ts +4 -0
  68. package/dist/esm/pipeline/spec/chart/pipes/dataset/index.js +4 -0
  69. package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js +1 -1
  70. package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js.map +1 -1
  71. package/dist/esm/pipeline/spec/chart/pipes/init/hierarchySankey.d.ts +2 -0
  72. package/dist/esm/pipeline/spec/chart/pipes/init/hierarchySankey.js +32 -0
  73. package/dist/esm/pipeline/spec/chart/pipes/init/hierarchySankey.js.map +1 -0
  74. package/dist/esm/pipeline/spec/chart/pipes/init/index.d.ts +2 -0
  75. package/dist/esm/pipeline/spec/chart/pipes/init/index.js +2 -0
  76. package/dist/esm/pipeline/spec/chart/pipes/init/sankey.d.ts +2 -0
  77. package/dist/esm/pipeline/spec/chart/pipes/init/sankey.js +33 -0
  78. package/dist/esm/pipeline/spec/chart/pipes/init/sankey.js.map +1 -0
  79. package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js +1 -1
  80. package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js.map +1 -1
  81. package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js +1 -1
  82. package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js.map +1 -1
  83. package/dist/esm/pipeline/spec/chart/pipes/label/index.d.ts +2 -0
  84. package/dist/esm/pipeline/spec/chart/pipes/label/index.js +2 -0
  85. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  86. package/dist/esm/pipeline/spec/chart/pipes/label/labelHierarchySankey.d.ts +17 -0
  87. package/dist/esm/pipeline/spec/chart/pipes/label/labelHierarchySankey.js +92 -0
  88. package/dist/esm/pipeline/spec/chart/pipes/label/labelHierarchySankey.js.map +1 -0
  89. package/dist/esm/pipeline/spec/chart/pipes/label/labelSankey.d.ts +2 -0
  90. package/dist/esm/pipeline/spec/chart/pipes/label/labelSankey.js +78 -0
  91. package/dist/esm/pipeline/spec/chart/pipes/label/labelSankey.js.map +1 -0
  92. package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js +4 -4
  93. package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js.map +1 -1
  94. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js +1 -1
  95. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js.map +1 -1
  96. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js +1 -1
  97. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js.map +1 -1
  98. package/dist/esm/pipeline/spec/chart/pipes/markStyle/index.d.ts +1 -0
  99. package/dist/esm/pipeline/spec/chart/pipes/markStyle/index.js +1 -0
  100. package/dist/esm/pipeline/spec/chart/pipes/markStyle/sankeyInteractive.d.ts +2 -0
  101. package/dist/esm/pipeline/spec/chart/pipes/markStyle/sankeyInteractive.js +33 -0
  102. package/dist/esm/pipeline/spec/chart/pipes/markStyle/sankeyInteractive.js.map +1 -0
  103. package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.d.ts +2 -0
  104. package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.js +2 -0
  105. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchySankey.d.ts +2 -0
  106. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchySankey.js +150 -0
  107. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchySankey.js.map +1 -0
  108. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipSankey.d.ts +2 -0
  109. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipSankey.js +75 -0
  110. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipSankey.js.map +1 -0
  111. package/dist/esm/pipeline/utils/chatType.d.ts +2 -0
  112. package/dist/esm/pipeline/utils/chatType.js +3 -1
  113. package/dist/esm/pipeline/utils/chatType.js.map +1 -1
  114. package/dist/esm/pipeline/utils/constant.d.ts +2 -0
  115. package/dist/esm/pipeline/utils/constant.js +2 -0
  116. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  117. package/dist/esm/pipeline/utils/measures/typeGuard.js +1 -1
  118. package/dist/esm/pipeline/utils/measures/typeGuard.js.map +1 -1
  119. package/dist/esm/theme/dark/dark.js +3 -1
  120. package/dist/esm/theme/dark/dark.js.map +1 -1
  121. package/dist/esm/theme/dark/hierarchy.d.ts +132 -0
  122. package/dist/esm/theme/dark/hierarchy.js +3 -1
  123. package/dist/esm/theme/dark/hierarchy.js.map +1 -1
  124. package/dist/esm/theme/light/hierarchy.d.ts +132 -0
  125. package/dist/esm/theme/light/hierarchy.js +3 -1
  126. package/dist/esm/theme/light/hierarchy.js.map +1 -1
  127. package/dist/esm/theme/light/light.js +3 -1
  128. package/dist/esm/theme/light/light.js.map +1 -1
  129. package/dist/esm/types/chartType/area/zArea.d.ts +4 -0
  130. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +4 -0
  131. package/dist/esm/types/chartType/bar/zBar.d.ts +4 -0
  132. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +4 -0
  133. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +4 -0
  134. package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +4 -0
  135. package/dist/esm/types/chartType/circlePacking/zCirclePacking.d.ts +2 -0
  136. package/dist/esm/types/chartType/column/zColumn.d.ts +4 -0
  137. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +4 -0
  138. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +4 -0
  139. package/dist/esm/types/chartType/donut/zDonut.d.ts +4 -0
  140. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +2 -0
  141. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +4 -0
  142. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +2 -0
  143. package/dist/esm/types/chartType/hierarchySankey/hierarchySankey.d.ts +92 -0
  144. package/dist/esm/types/chartType/hierarchySankey/hierarchySankey.js +0 -0
  145. package/dist/esm/types/chartType/hierarchySankey/index.d.ts +2 -0
  146. package/dist/esm/types/chartType/hierarchySankey/index.js +1 -0
  147. package/dist/esm/types/chartType/hierarchySankey/zHierarchySankey.d.ts +422 -0
  148. package/dist/esm/types/chartType/hierarchySankey/zHierarchySankey.js +20 -0
  149. package/dist/esm/types/chartType/hierarchySankey/zHierarchySankey.js.map +1 -0
  150. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +4 -0
  151. package/dist/esm/types/chartType/index.d.ts +2 -0
  152. package/dist/esm/types/chartType/index.js +2 -0
  153. package/dist/esm/types/chartType/line/zLine.d.ts +4 -0
  154. package/dist/esm/types/chartType/pie/zPie.d.ts +4 -0
  155. package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +2 -0
  156. package/dist/esm/types/chartType/raceBar/zRaceBar.d.ts +4 -0
  157. package/dist/esm/types/chartType/raceColumn/zRaceColumn.d.ts +4 -0
  158. package/dist/esm/types/chartType/raceDonut/zRaceDonut.d.ts +4 -0
  159. package/dist/esm/types/chartType/raceLine/zRaceLine.d.ts +4 -0
  160. package/dist/esm/types/chartType/racePie/zRacePie.d.ts +4 -0
  161. package/dist/esm/types/chartType/raceScatter/zRaceScatter.d.ts +4 -0
  162. package/dist/esm/types/chartType/radar/zRadar.d.ts +4 -0
  163. package/dist/esm/types/chartType/rose/zRose.d.ts +4 -0
  164. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +4 -0
  165. package/dist/esm/types/chartType/sankey/index.d.ts +2 -0
  166. package/dist/esm/types/chartType/sankey/index.js +1 -0
  167. package/dist/esm/types/chartType/sankey/sankey.d.ts +91 -0
  168. package/dist/esm/types/chartType/sankey/sankey.js +0 -0
  169. package/dist/esm/types/chartType/sankey/zSankey.d.ts +422 -0
  170. package/dist/esm/types/chartType/sankey/zSankey.js +20 -0
  171. package/dist/esm/types/chartType/sankey/zSankey.js.map +1 -0
  172. package/dist/esm/types/chartType/scatter/zScatter.d.ts +4 -0
  173. package/dist/esm/types/chartType/sunburst/zSunburst.d.ts +2 -0
  174. package/dist/esm/types/chartType/table/zTable.d.ts +2 -0
  175. package/dist/esm/types/chartType/treeMap/zTreeMap.d.ts +2 -0
  176. package/dist/esm/types/properties/chartType/chartType.d.ts +3 -1
  177. package/dist/esm/types/properties/chartType/chartType.js +2 -0
  178. package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
  179. package/dist/esm/types/properties/config/config.d.ts +602 -0
  180. package/dist/esm/types/properties/config/config.js +4 -0
  181. package/dist/esm/types/properties/config/config.js.map +1 -1
  182. package/dist/esm/types/properties/config/hierarchySankey.d.ts +303 -0
  183. package/dist/esm/types/properties/config/hierarchySankey.js +18 -0
  184. package/dist/esm/types/properties/config/hierarchySankey.js.map +1 -0
  185. package/dist/esm/types/properties/config/index.d.ts +2 -0
  186. package/dist/esm/types/properties/config/index.js +2 -0
  187. package/dist/esm/types/properties/config/sankey.d.ts +303 -0
  188. package/dist/esm/types/properties/config/sankey.js +18 -0
  189. package/dist/esm/types/properties/config/sankey.js.map +1 -0
  190. package/dist/esm/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +2 -0
  191. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +4 -0
  192. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js +2 -0
  193. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js.map +1 -1
  194. package/dist/esm/types/properties/dimensions/index.d.ts +1 -0
  195. package/dist/esm/types/properties/dimensions/sankeyDimension.d.ts +15 -0
  196. package/dist/esm/types/properties/dimensions/sankeyDimension.js +0 -0
  197. package/dist/esm/types/properties/dimensions/zDimensions.d.ts +6 -0
  198. package/dist/esm/types/properties/encoding/dimensionEncoding.d.ts +3 -1
  199. package/dist/esm/types/properties/encoding/encoding.d.ts +8 -0
  200. package/dist/esm/types/properties/encoding/zDimensionEncoding.d.ts +4 -0
  201. package/dist/esm/types/properties/encoding/zDimensionEncoding.js +6 -2
  202. package/dist/esm/types/properties/encoding/zDimensionEncoding.js.map +1 -1
  203. package/dist/esm/types/properties/encoding/zEncoding.d.ts +4 -0
  204. package/dist/esm/types/properties/encoding/zEncoding.js +5 -1
  205. package/dist/esm/types/properties/encoding/zEncoding.js.map +1 -1
  206. package/dist/esm/types/properties/measures/index.d.ts +1 -0
  207. package/dist/esm/types/properties/measures/sankeyMeasure.d.ts +11 -0
  208. package/dist/esm/types/properties/measures/sankeyMeasure.js +0 -0
  209. package/dist/esm/types/properties/theme/customTheme.d.ts +3752 -2548
  210. package/dist/esm/types/vseed.d.ts +2 -2
  211. package/dist/esm/types/zVseed.js +3 -1
  212. package/dist/esm/types/zVseed.js.map +1 -1
  213. package/dist/umd/index.js +1303 -185
  214. package/dist/umd/index.js.map +1 -1
  215. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerCirclePacking, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHistogram, registerLine, registerPie, registerPivotTable, registerRaceBar, registerRaceColumn, registerRaceDonut, registerRaceLine, registerRacePie, registerRaceScatter, registerRadar, registerRose, registerRoseParallel, registerScatter, registerSunburst, registerTable, registerTreeMap } from "./chartType/index.js";
1
+ import { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerCirclePacking, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHierarchySankey, registerHistogram, registerLine, registerPie, registerPivotTable, registerRaceBar, registerRaceColumn, registerRaceDonut, registerRaceLine, registerRacePie, registerRaceScatter, registerRadar, registerRose, registerRoseParallel, registerSankey, registerScatter, registerSunburst, registerTable, registerTreeMap } from "./chartType/index.js";
2
2
  import { registerDarkTheme, registerLightTheme } from "./theme/index.js";
3
3
  const registerAll = ()=>{
4
4
  registerTable();
@@ -32,6 +32,8 @@ const registerAll = ()=>{
32
32
  registerTreeMap();
33
33
  registerSunburst();
34
34
  registerCirclePacking();
35
+ registerHierarchySankey();
36
+ registerSankey();
35
37
  registerLightTheme();
36
38
  registerDarkTheme();
37
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"builder/register/all.js","sources":["../../../../src/builder/register/all.ts"],"sourcesContent":["import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerRaceBar,\n registerRaceColumn,\n registerRaceScatter,\n registerRaceLine,\n registerRacePie,\n registerRaceDonut,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n registerPie,\n registerDonut,\n registerRose,\n registerRoseParallel,\n registerFunnel,\n registerScatter,\n registerTable,\n registerPivotTable,\n registerHeatmap,\n registerRadar,\n registerDualAxis,\n registerBoxPlot,\n registerHistogram,\n registerTreeMap,\n registerSunburst,\n registerCirclePacking,\n} from './chartType'\nimport { registerDarkTheme, registerLightTheme } from './theme'\n/**\n * @description 注册所有内置的图表类型和主题。\n * 包括:表格、透视表、折线图、柱状图、饼图、散点图等所有支持的图表,以及浅色/深色主题。\n * 在初始化应用时调用此函数,以确保所有功能可用。\n */\nexport const registerAll = () => {\n // table\n registerTable()\n registerPivotTable()\n // cartesian\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerRaceBar()\n registerRaceColumn()\n registerRaceScatter()\n registerRaceLine()\n registerRacePie()\n registerRaceDonut()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n registerScatter()\n registerDualAxis()\n // polar\n registerPie()\n registerDonut()\n registerRose()\n registerRoseParallel()\n registerRadar()\n // other\n registerFunnel()\n registerHeatmap()\n registerBoxPlot()\n registerHistogram()\n // hierarchy\n registerTreeMap()\n registerSunburst()\n registerCirclePacking()\n // theme\n registerLightTheme()\n registerDarkTheme()\n}\n"],"names":["registerAll","registerTable","registerPivotTable","registerLine","registerColumn","registerColumnParallel","registerColumnPercent","registerBar","registerRaceBar","registerRaceColumn","registerRaceScatter","registerRaceLine","registerRacePie","registerRaceDonut","registerBarParallel","registerBarPercent","registerArea","registerAreaPercent","registerScatter","registerDualAxis","registerPie","registerDonut","registerRose","registerRoseParallel","registerRadar","registerFunnel","registerHeatmap","registerBoxPlot","registerHistogram","registerTreeMap","registerSunburst","registerCirclePacking","registerLightTheme","registerDarkTheme"],"mappings":";;AAuCO,MAAMA,cAAc;IAEzBC;IACAC;IAEAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IAEAC;IACAC;AACF"}
1
+ {"version":3,"file":"builder/register/all.js","sources":["../../../../src/builder/register/all.ts"],"sourcesContent":["import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerRaceBar,\n registerRaceColumn,\n registerRaceScatter,\n registerRaceLine,\n registerRacePie,\n registerRaceDonut,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n registerPie,\n registerDonut,\n registerRose,\n registerRoseParallel,\n registerFunnel,\n registerScatter,\n registerTable,\n registerPivotTable,\n registerHeatmap,\n registerRadar,\n registerDualAxis,\n registerBoxPlot,\n registerHistogram,\n registerTreeMap,\n registerSunburst,\n registerCirclePacking,\n registerHierarchySankey,\n registerSankey,\n} from './chartType'\nimport { registerDarkTheme, registerLightTheme } from './theme'\n/**\n * @description 注册所有内置的图表类型和主题。\n * 包括:表格、透视表、折线图、柱状图、饼图、散点图等所有支持的图表,以及浅色/深色主题。\n * 在初始化应用时调用此函数,以确保所有功能可用。\n */\nexport const registerAll = () => {\n // table\n registerTable()\n registerPivotTable()\n // cartesian\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerRaceBar()\n registerRaceColumn()\n registerRaceScatter()\n registerRaceLine()\n registerRacePie()\n registerRaceDonut()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n registerScatter()\n registerDualAxis()\n // polar\n registerPie()\n registerDonut()\n registerRose()\n registerRoseParallel()\n registerRadar()\n // other\n registerFunnel()\n registerHeatmap()\n registerBoxPlot()\n registerHistogram()\n // hierarchy\n registerTreeMap()\n registerSunburst()\n registerCirclePacking()\n registerHierarchySankey()\n registerSankey()\n // theme\n registerLightTheme()\n registerDarkTheme()\n}\n"],"names":["registerAll","registerTable","registerPivotTable","registerLine","registerColumn","registerColumnParallel","registerColumnPercent","registerBar","registerRaceBar","registerRaceColumn","registerRaceScatter","registerRaceLine","registerRacePie","registerRaceDonut","registerBarParallel","registerBarPercent","registerArea","registerAreaPercent","registerScatter","registerDualAxis","registerPie","registerDonut","registerRose","registerRoseParallel","registerRadar","registerFunnel","registerHeatmap","registerBoxPlot","registerHistogram","registerTreeMap","registerSunburst","registerCirclePacking","registerHierarchySankey","registerSankey","registerLightTheme","registerDarkTheme"],"mappings":";;AAyCO,MAAMA,cAAc;IAEzBC;IACAC;IAEAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IACAC;IAEAC;IACAC;IACAC;IACAC;IACAC;IAEAC;IACAC;AACF"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @description 注册 HierarchySankey Chart 的构建管线。
3
+ */
4
+ export declare const registerHierarchySankey: () => void;
@@ -0,0 +1,9 @@
1
+ import { hierarchySankeyAdvancedPipeline, hierarchySankeySpecPipeline } from "../../../pipeline/index.js";
2
+ import { Builder } from "../../builder/index.js";
3
+ const registerHierarchySankey = ()=>{
4
+ Builder.registerAdvancedPipeline('hierarchySankey', hierarchySankeyAdvancedPipeline);
5
+ Builder.registerSpecPipeline('hierarchySankey', hierarchySankeySpecPipeline);
6
+ };
7
+ export { registerHierarchySankey };
8
+
9
+ //# sourceMappingURL=hierarchySankey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder/register/chartType/hierarchySankey.js","sources":["../../../../../src/builder/register/chartType/hierarchySankey.ts"],"sourcesContent":["import { hierarchySankeyAdvancedPipeline, hierarchySankeySpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\n/**\n * @description 注册 HierarchySankey Chart 的构建管线。\n */\nexport const registerHierarchySankey = () => {\n Builder.registerAdvancedPipeline('hierarchySankey', hierarchySankeyAdvancedPipeline)\n Builder.registerSpecPipeline('hierarchySankey', hierarchySankeySpecPipeline)\n}\n"],"names":["registerHierarchySankey","Builder","hierarchySankeyAdvancedPipeline","hierarchySankeySpecPipeline"],"mappings":";;AAMO,MAAMA,0BAA0B;IACrCC,QAAQ,wBAAwB,CAAC,mBAAmBC;IACpDD,QAAQ,oBAAoB,CAAC,mBAAmBE;AAClD"}
@@ -29,3 +29,5 @@ export { registerHistogram } from './histogram';
29
29
  export { registerTreeMap } from './treeMap';
30
30
  export { registerSunburst } from './sunburst';
31
31
  export { registerCirclePacking } from './circlePacking';
32
+ export { registerHierarchySankey } from './hierarchySankey';
33
+ export { registerSankey } from './sankey';
@@ -29,3 +29,5 @@ export { registerHistogram } from "./histogram.js";
29
29
  export { registerTreeMap } from "./treeMap.js";
30
30
  export { registerSunburst } from "./sunburst.js";
31
31
  export { registerCirclePacking } from "./circlePacking.js";
32
+ export { registerHierarchySankey } from "./hierarchySankey.js";
33
+ export { registerSankey } from "./sankey.js";
@@ -0,0 +1 @@
1
+ export declare const registerSankey: () => void;
@@ -0,0 +1,9 @@
1
+ import { sankeyAdvancedPipeline, sankeySpecPipeline } from "../../../pipeline/index.js";
2
+ import { Builder } from "../../builder/index.js";
3
+ const registerSankey = ()=>{
4
+ Builder.registerAdvancedPipeline('sankey', sankeyAdvancedPipeline);
5
+ Builder.registerSpecPipeline('sankey', sankeySpecPipeline);
6
+ };
7
+ export { registerSankey };
8
+
9
+ //# sourceMappingURL=sankey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder/register/chartType/sankey.js","sources":["../../../../../src/builder/register/chartType/sankey.ts"],"sourcesContent":["import { sankeyAdvancedPipeline, sankeySpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerSankey = () => {\n Builder.registerAdvancedPipeline('sankey', sankeyAdvancedPipeline)\n Builder.registerSpecPipeline('sankey', sankeySpecPipeline)\n}\n"],"names":["registerSankey","Builder","sankeyAdvancedPipeline","sankeySpecPipeline"],"mappings":";;AAGO,MAAMA,iBAAiB;IAC5BC,QAAQ,wBAAwB,CAAC,UAAUC;IAC3CD,QAAQ,oBAAoB,CAAC,UAAUE;AACzC"}
@@ -20,6 +20,8 @@ export declare const PlayerEncoding = "__Dim_Player__";
20
20
  export declare const ColorEncoding = "__Dim_Color__";
21
21
  export declare const ColorIdEncoding = "__Dim_ColorId__";
22
22
  export declare const HierarchyEncoding = "__Dim_Hierarchy__";
23
+ export declare const SourceEncoding = "__Dim_Source__";
24
+ export declare const TargetEncoding = "__Dim_Target__";
23
25
  export declare const BoxPlotPivotIndicator = "__BoxPlot_Pivot_Indicator__";
24
26
  export declare const Q1MeasureValue = "__Q1__";
25
27
  export declare const Q3MeasureValue = "__Q3__";
@@ -20,6 +20,8 @@ const PlayerEncoding = '__Dim_Player__';
20
20
  const ColorEncoding = '__Dim_Color__';
21
21
  const ColorIdEncoding = '__Dim_ColorId__';
22
22
  const HierarchyEncoding = '__Dim_Hierarchy__';
23
+ const SourceEncoding = '__Dim_Source__';
24
+ const TargetEncoding = '__Dim_Target__';
23
25
  const BoxPlotPivotIndicator = '__BoxPlot_Pivot_Indicator__';
24
26
  const Q1MeasureValue = '__Q1__';
25
27
  const Q3MeasureValue = '__Q3__';
@@ -32,6 +34,6 @@ const BinEndMeasureId = '__BinEnd__';
32
34
  const BinCountMeasureId = '__BinCount__';
33
35
  const BinPercentageMeasureId = '__BinPercentage__';
34
36
  const InnerRowIndex = '__row_index';
35
- export { AngleEncoding, BinCountMeasureId, BinEndMeasureId, BinPercentageMeasureId, BinStartMeasureId, BoxPlotPivotIndicator, ColorEncoding, ColorIdEncoding, DetailEncoding, DimAxisType, FoldMeasureId, FoldMeasureName, FoldMeasureValue, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, FoldXMeasureId, FoldXMeasureValue, FoldYMeasureId, FoldYMeasureValue, HierarchyEncoding, InnerRowIndex, LowerWhisker, MeasureId, MeasureName, MedianMeasureId, ORIGINAL_DATA, OutliersMeasureId, PlayerEncoding, Q1MeasureValue, Q3MeasureValue, Separator, UpperWhisker, XEncoding, YEncoding };
37
+ export { AngleEncoding, BinCountMeasureId, BinEndMeasureId, BinPercentageMeasureId, BinStartMeasureId, BoxPlotPivotIndicator, ColorEncoding, ColorIdEncoding, DetailEncoding, DimAxisType, FoldMeasureId, FoldMeasureName, FoldMeasureValue, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, FoldXMeasureId, FoldXMeasureValue, FoldYMeasureId, FoldYMeasureValue, HierarchyEncoding, InnerRowIndex, LowerWhisker, MeasureId, MeasureName, MedianMeasureId, ORIGINAL_DATA, OutliersMeasureId, PlayerEncoding, Q1MeasureValue, Q3MeasureValue, Separator, SourceEncoding, TargetEncoding, UpperWhisker, XEncoding, YEncoding };
36
38
 
37
39
  //# sourceMappingURL=constant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataReshape/constant.js","sources":["../../../src/dataReshape/constant.ts"],"sourcesContent":["// Reshape\nexport const ORIGINAL_DATA = '__OriginalData__'\nexport const Separator = '-'\n\n// Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureId = '__MeaId__'\nexport const FoldMeasureValue = '__MeaValue__'\nexport const MeasureId = FoldMeasureId\nexport const MeasureName = FoldMeasureName\n\n// Measures For DualAxis\nexport const FoldPrimaryMeasureValue = '__MeaPrimaryValue__'\nexport const FoldSecondaryMeasureValue = '__MeaSecondaryValue__'\nexport const DimAxisType = '__Dim_AxisType__'\n\n// Measures For Scatter\nexport const FoldXMeasureValue = '__MeaXValue__'\nexport const FoldYMeasureValue = '__MeaYValue__'\nexport const FoldXMeasureId = '__MeaXId__'\nexport const FoldYMeasureId = '__MeaYId__'\n// Encoding\nexport const XEncoding = '__Dim_X__'\nexport const YEncoding = '__Dim_Y__'\nexport const AngleEncoding = '__Dim_Angle__'\nexport const DetailEncoding = '__Dim_Detail__'\nexport const PlayerEncoding = '__Dim_Player__'\nexport const ColorEncoding = '__Dim_Color__'\nexport const ColorIdEncoding = '__Dim_ColorId__'\nexport const HierarchyEncoding = '__Dim_Hierarchy__'\n\n// Measures For boxPlot\nexport const BoxPlotPivotIndicator = '__BoxPlot_Pivot_Indicator__'\nexport const Q1MeasureValue = '__Q1__'\nexport const Q3MeasureValue = '__Q3__'\nexport const LowerWhisker = '__Lower_Whisker__'\nexport const UpperWhisker = '__Upper_Whisker__'\nexport const OutliersMeasureId = '__Outliers__'\nexport const MedianMeasureId = '__Meadian__'\n\n// Measures For Histogram\nexport const BinStartMeasureId = '__BinStart__'\nexport const BinEndMeasureId = '__BinEnd__'\nexport const BinCountMeasureId = '__BinCount__'\nexport const BinPercentageMeasureId = '__BinPercentage__'\n\n// Inner row index for code execute\nexport const InnerRowIndex = '__row_index'\n"],"names":["ORIGINAL_DATA","Separator","FoldMeasureName","FoldMeasureId","FoldMeasureValue","MeasureId","MeasureName","FoldPrimaryMeasureValue","FoldSecondaryMeasureValue","DimAxisType","FoldXMeasureValue","FoldYMeasureValue","FoldXMeasureId","FoldYMeasureId","XEncoding","YEncoding","AngleEncoding","DetailEncoding","PlayerEncoding","ColorEncoding","ColorIdEncoding","HierarchyEncoding","BoxPlotPivotIndicator","Q1MeasureValue","Q3MeasureValue","LowerWhisker","UpperWhisker","OutliersMeasureId","MedianMeasureId","BinStartMeasureId","BinEndMeasureId","BinCountMeasureId","BinPercentageMeasureId","InnerRowIndex"],"mappings":"AACO,MAAMA,gBAAgB;AACtB,MAAMC,YAAY;AAGlB,MAAMC,kBAAkB;AACxB,MAAMC,gBAAgB;AACtB,MAAMC,mBAAmB;AACzB,MAAMC,YAAYF;AAClB,MAAMG,cAAcJ;AAGpB,MAAMK,0BAA0B;AAChC,MAAMC,4BAA4B;AAClC,MAAMC,cAAc;AAGpB,MAAMC,oBAAoB;AAC1B,MAAMC,oBAAoB;AAC1B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AAEvB,MAAMC,YAAY;AAClB,MAAMC,YAAY;AAClB,MAAMC,gBAAgB;AACtB,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AACvB,MAAMC,gBAAgB;AACtB,MAAMC,kBAAkB;AACxB,MAAMC,oBAAoB;AAG1B,MAAMC,wBAAwB;AAC9B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AACvB,MAAMC,eAAe;AACrB,MAAMC,eAAe;AACrB,MAAMC,oBAAoB;AAC1B,MAAMC,kBAAkB;AAGxB,MAAMC,oBAAoB;AAC1B,MAAMC,kBAAkB;AACxB,MAAMC,oBAAoB;AAC1B,MAAMC,yBAAyB;AAG/B,MAAMC,gBAAgB"}
1
+ {"version":3,"file":"dataReshape/constant.js","sources":["../../../src/dataReshape/constant.ts"],"sourcesContent":["// Reshape\nexport const ORIGINAL_DATA = '__OriginalData__'\nexport const Separator = '-'\n\n// Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureId = '__MeaId__'\nexport const FoldMeasureValue = '__MeaValue__'\nexport const MeasureId = FoldMeasureId\nexport const MeasureName = FoldMeasureName\n\n// Measures For DualAxis\nexport const FoldPrimaryMeasureValue = '__MeaPrimaryValue__'\nexport const FoldSecondaryMeasureValue = '__MeaSecondaryValue__'\nexport const DimAxisType = '__Dim_AxisType__'\n\n// Measures For Scatter\nexport const FoldXMeasureValue = '__MeaXValue__'\nexport const FoldYMeasureValue = '__MeaYValue__'\nexport const FoldXMeasureId = '__MeaXId__'\nexport const FoldYMeasureId = '__MeaYId__'\n// Encoding\nexport const XEncoding = '__Dim_X__'\nexport const YEncoding = '__Dim_Y__'\nexport const AngleEncoding = '__Dim_Angle__'\nexport const DetailEncoding = '__Dim_Detail__'\nexport const PlayerEncoding = '__Dim_Player__'\nexport const ColorEncoding = '__Dim_Color__'\nexport const ColorIdEncoding = '__Dim_ColorId__'\nexport const HierarchyEncoding = '__Dim_Hierarchy__'\nexport const SourceEncoding = '__Dim_Source__'\nexport const TargetEncoding = '__Dim_Target__'\n\n// Measures For boxPlot\nexport const BoxPlotPivotIndicator = '__BoxPlot_Pivot_Indicator__'\nexport const Q1MeasureValue = '__Q1__'\nexport const Q3MeasureValue = '__Q3__'\nexport const LowerWhisker = '__Lower_Whisker__'\nexport const UpperWhisker = '__Upper_Whisker__'\nexport const OutliersMeasureId = '__Outliers__'\nexport const MedianMeasureId = '__Meadian__'\n\n// Measures For Histogram\nexport const BinStartMeasureId = '__BinStart__'\nexport const BinEndMeasureId = '__BinEnd__'\nexport const BinCountMeasureId = '__BinCount__'\nexport const BinPercentageMeasureId = '__BinPercentage__'\n\n// Inner row index for code execute\nexport const InnerRowIndex = '__row_index'\n"],"names":["ORIGINAL_DATA","Separator","FoldMeasureName","FoldMeasureId","FoldMeasureValue","MeasureId","MeasureName","FoldPrimaryMeasureValue","FoldSecondaryMeasureValue","DimAxisType","FoldXMeasureValue","FoldYMeasureValue","FoldXMeasureId","FoldYMeasureId","XEncoding","YEncoding","AngleEncoding","DetailEncoding","PlayerEncoding","ColorEncoding","ColorIdEncoding","HierarchyEncoding","SourceEncoding","TargetEncoding","BoxPlotPivotIndicator","Q1MeasureValue","Q3MeasureValue","LowerWhisker","UpperWhisker","OutliersMeasureId","MedianMeasureId","BinStartMeasureId","BinEndMeasureId","BinCountMeasureId","BinPercentageMeasureId","InnerRowIndex"],"mappings":"AACO,MAAMA,gBAAgB;AACtB,MAAMC,YAAY;AAGlB,MAAMC,kBAAkB;AACxB,MAAMC,gBAAgB;AACtB,MAAMC,mBAAmB;AACzB,MAAMC,YAAYF;AAClB,MAAMG,cAAcJ;AAGpB,MAAMK,0BAA0B;AAChC,MAAMC,4BAA4B;AAClC,MAAMC,cAAc;AAGpB,MAAMC,oBAAoB;AAC1B,MAAMC,oBAAoB;AAC1B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AAEvB,MAAMC,YAAY;AAClB,MAAMC,YAAY;AAClB,MAAMC,gBAAgB;AACtB,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AACvB,MAAMC,gBAAgB;AACtB,MAAMC,kBAAkB;AACxB,MAAMC,oBAAoB;AAC1B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AAGvB,MAAMC,wBAAwB;AAC9B,MAAMC,iBAAiB;AACvB,MAAMC,iBAAiB;AACvB,MAAMC,eAAe;AACrB,MAAMC,eAAe;AACrB,MAAMC,oBAAoB;AAC1B,MAAMC,kBAAkB;AAGxB,MAAMC,oBAAoB;AAC1B,MAAMC,kBAAkB;AACxB,MAAMC,oBAAoB;AAC1B,MAAMC,yBAAyB;AAG/B,MAAMC,gBAAgB"}
@@ -1,4 +1,4 @@
1
- import { AngleEncoding, ColorEncoding, ColorIdEncoding, DetailEncoding, HierarchyEncoding, MeasureId, MeasureName, PlayerEncoding, XEncoding, YEncoding } from "./constant.js";
1
+ import { AngleEncoding, ColorEncoding, ColorIdEncoding, DetailEncoding, HierarchyEncoding, MeasureId, MeasureName, PlayerEncoding, SourceEncoding, TargetEncoding, XEncoding, YEncoding } from "./constant.js";
2
2
  const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
3
3
  const { separator, formatDimensionValue } = options;
4
4
  const unfoldInfo = {
@@ -10,10 +10,12 @@ const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
10
10
  encodingColorId: ColorIdEncoding,
11
11
  encodingPlayer: PlayerEncoding,
12
12
  encodingHierarchy: HierarchyEncoding,
13
+ encodingSource: SourceEncoding,
14
+ encodingTarget: TargetEncoding,
13
15
  colorItems: [],
14
16
  colorIdMap: {}
15
17
  };
16
- const { color, x, y, detail, angle, player, hierarchy } = encoding;
18
+ const { color, x, y, detail, angle, player, hierarchy, source, target } = encoding;
17
19
  const angleDimensions = angle ? dimensions.filter((dim)=>angle.includes(dim.id)) : [];
18
20
  const xDimensions = x ? dimensions.filter((dim)=>x.includes(dim.id)) : [];
19
21
  const yDimensions = y ? dimensions.filter((dim)=>y.includes(dim.id)) : [];
@@ -21,6 +23,8 @@ const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
21
23
  const detailDimensions = detail ? dimensions.filter((dim)=>detail.includes(dim.id)) : [];
22
24
  const playerDimensions = player ? dimensions.filter((dim)=>player.includes(dim.id)) : [];
23
25
  const hierarchyDimensions = hierarchy ? dimensions.filter((dim)=>hierarchy.includes(dim.id)) : [];
26
+ const sourceDimensions = source ? dimensions.filter((dim)=>source.includes(dim.id)) : [];
27
+ const targetDimensions = target ? dimensions.filter((dim)=>target.includes(dim.id)) : [];
24
28
  const colorItems = new Set();
25
29
  const colorIdMap = {};
26
30
  for(let i = 0; i < dataset.length; i++){
@@ -32,6 +36,8 @@ const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
32
36
  applyEncoding(DetailEncoding, detailDimensions, datum, separator);
33
37
  applyEncoding(PlayerEncoding, playerDimensions, datum, separator);
34
38
  applyEncoding(HierarchyEncoding, hierarchyDimensions, datum, separator);
39
+ applyEncoding(SourceEncoding, sourceDimensions, datum, separator);
40
+ applyEncoding(TargetEncoding, targetDimensions, datum, separator);
35
41
  if (!colorDimensions.length || !datum[ColorEncoding]) continue;
36
42
  const colorId = String(datum[ColorEncoding] ?? '');
37
43
  datum[ColorIdEncoding] = colorId;
@@ -1 +1 @@
1
- {"version":3,"file":"dataReshape/unfoldDimensions.js","sources":["../../../src/dataReshape/unfoldDimensions.ts"],"sourcesContent":["import type { Dataset, Datum, Dimension, Encoding, UnfoldInfo } from 'src/types'\nimport {\n AngleEncoding,\n XEncoding,\n YEncoding,\n ColorEncoding,\n DetailEncoding,\n ColorIdEncoding,\n MeasureId,\n MeasureName,\n PlayerEncoding,\n HierarchyEncoding,\n} from './constant'\n\n/**\n * @description 展开并合并视觉通道的维度, 在foldMeasures后合并维度, 所以不需要进行笛卡尔积\n * @param dataset 原始数据集\n * @param dimensions 维度\n * @param encoding 编码\n * @param options\n * @returns\n */\nexport const unfoldDimensions = (\n dataset: Dataset,\n dimensions: Dimension[],\n encoding: Encoding,\n options: {\n foldMeasureId: string\n separator: string\n colorItemAsId: boolean\n formatDimensionValue?: (dimension: Dimension, value: unknown) => string\n },\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n const { separator, formatDimensionValue } = options\n\n const unfoldInfo: UnfoldInfo = {\n encodingAngle: AngleEncoding,\n encodingX: XEncoding,\n encodingY: YEncoding,\n encodingDetail: DetailEncoding,\n encodingColor: ColorEncoding,\n encodingColorId: ColorIdEncoding,\n encodingPlayer: PlayerEncoding,\n encodingHierarchy: HierarchyEncoding,\n\n colorItems: [],\n colorIdMap: {},\n }\n\n // 每个通道对应的维度\n const { color, x, y, detail, angle, player, hierarchy } = encoding\n const angleDimensions = angle ? dimensions.filter((dim) => angle.includes(dim.id)) : []\n const xDimensions = x ? dimensions.filter((dim) => x.includes(dim.id)) : []\n const yDimensions = y ? dimensions.filter((dim) => y.includes(dim.id)) : []\n const colorDimensions = color ? dimensions.filter((dim) => color.includes(dim.id)) : []\n const detailDimensions = detail ? dimensions.filter((dim) => detail.includes(dim.id)) : []\n const playerDimensions = player ? dimensions.filter((dim) => player.includes(dim.id)) : []\n const hierarchyDimensions = hierarchy ? dimensions.filter((dim) => hierarchy.includes(dim.id)) : []\n\n // 离散图例项\n const colorItems = new Set<string>()\n const colorIdMap: Record<string, { id: string; alias: string }> = {}\n\n // 遍历数据集, 按通道合并维度\n for (let i = 0; i < dataset.length; i++) {\n // 应用编码至Datum上\n const datum = dataset[i]\n\n /**\n * !important 这是全仓库, 最最最重要的五行代码, 贯穿VSeed整个生命周期, 是化繁为简的绝对核心\n * 1. 点睛之笔: 呼应foldMeasures, 此时此刻的datum一定是单点数据, 维度合并不可能造成任何冲突.\n * 2. 数据即通道\n * 3. 利用需要合并的维度, 直接进行join, 即可生成新的维度, 与指标彻底解耦;\n * 4. 以下通道均在一次遍历中完成, 不存在性能问题\n * 5. 以下通道均可放入多个维度\n */\n applyEncoding(AngleEncoding, angleDimensions, datum, separator)\n applyEncoding(XEncoding, xDimensions, datum, separator)\n applyEncoding(YEncoding, yDimensions, datum, separator)\n applyEncoding(ColorEncoding, colorDimensions, datum, separator)\n applyEncoding(DetailEncoding, detailDimensions, datum, separator)\n applyEncoding(PlayerEncoding, playerDimensions, datum, separator)\n applyEncoding(HierarchyEncoding, hierarchyDimensions, datum, separator)\n\n // 处理离散的颜色图例\n if (!colorDimensions.length || !datum[ColorEncoding]) {\n // 无颜色通道, 则跳过\n continue\n }\n const colorId = String(datum[ColorEncoding] ?? '')\n\n datum[ColorIdEncoding] = colorId\n\n colorIdMap[colorId] = {\n id: colorId,\n alias: getColorAliasItem(ColorEncoding, colorDimensions, datum, separator, formatDimensionValue),\n }\n colorItems.add(colorId)\n }\n\n unfoldInfo.colorItems = Array.from(colorItems)\n unfoldInfo.colorIdMap = colorIdMap\n\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * @description 应用编码至数据中, 此方法会原地修改数据\n * @param encoding 编码\n * @param dimensions 维度\n * @param datum 数据\n * @param separator 分隔符\n * @returns undefined\n */\nconst applyEncoding = (encoding: string, dimensions: Dimension[], datum: Datum, separator: string) => {\n if (encoding && dimensions.length) {\n datum[encoding] = dimensions.map((dim) => String(datum[dim.id])).join(separator)\n }\n}\n\nconst getColorAliasItem = (\n encoding: string,\n dimensions: Dimension[],\n datum: Datum,\n separator: string,\n formatDimensionValue?: (dimension: Dimension, value: unknown) => string,\n) => {\n if (encoding && dimensions.length) {\n return dimensions\n .map((dim) => {\n if (dim.id === MeasureId) {\n return String(datum[MeasureName])\n }\n\n const rawValue = datum[dim.id]\n return formatDimensionValue ? formatDimensionValue(dim, rawValue) : String(rawValue)\n })\n .join(separator)\n }\n return ''\n}\n"],"names":["unfoldDimensions","dataset","dimensions","encoding","options","separator","formatDimensionValue","unfoldInfo","AngleEncoding","XEncoding","YEncoding","DetailEncoding","ColorEncoding","ColorIdEncoding","PlayerEncoding","HierarchyEncoding","color","x","y","detail","angle","player","hierarchy","angleDimensions","dim","xDimensions","yDimensions","colorDimensions","detailDimensions","playerDimensions","hierarchyDimensions","colorItems","Set","colorIdMap","i","datum","applyEncoding","colorId","String","getColorAliasItem","Array","MeasureId","MeasureName","rawValue"],"mappings":"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"}
1
+ {"version":3,"file":"dataReshape/unfoldDimensions.js","sources":["../../../src/dataReshape/unfoldDimensions.ts"],"sourcesContent":["import type { Dataset, Datum, Dimension, Encoding, UnfoldInfo } from 'src/types'\nimport {\n AngleEncoding,\n XEncoding,\n YEncoding,\n ColorEncoding,\n DetailEncoding,\n ColorIdEncoding,\n MeasureId,\n MeasureName,\n PlayerEncoding,\n HierarchyEncoding,\n SourceEncoding,\n TargetEncoding,\n} from './constant'\n\n/**\n * @description 展开并合并视觉通道的维度, 在foldMeasures后合并维度, 所以不需要进行笛卡尔积\n * @param dataset 原始数据集\n * @param dimensions 维度\n * @param encoding 编码\n * @param options\n * @returns\n */\nexport const unfoldDimensions = (\n dataset: Dataset,\n dimensions: Dimension[],\n encoding: Encoding,\n options: {\n foldMeasureId: string\n separator: string\n colorItemAsId: boolean\n formatDimensionValue?: (dimension: Dimension, value: unknown) => string\n },\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n const { separator, formatDimensionValue } = options\n\n const unfoldInfo: UnfoldInfo = {\n encodingAngle: AngleEncoding,\n encodingX: XEncoding,\n encodingY: YEncoding,\n encodingDetail: DetailEncoding,\n encodingColor: ColorEncoding,\n encodingColorId: ColorIdEncoding,\n encodingPlayer: PlayerEncoding,\n encodingHierarchy: HierarchyEncoding,\n encodingSource: SourceEncoding,\n encodingTarget: TargetEncoding,\n\n colorItems: [],\n colorIdMap: {},\n }\n\n // 每个通道对应的维度\n const { color, x, y, detail, angle, player, hierarchy, source, target } = encoding\n const angleDimensions = angle ? dimensions.filter((dim) => angle.includes(dim.id)) : []\n const xDimensions = x ? dimensions.filter((dim) => x.includes(dim.id)) : []\n const yDimensions = y ? dimensions.filter((dim) => y.includes(dim.id)) : []\n const colorDimensions = color ? dimensions.filter((dim) => color.includes(dim.id)) : []\n const detailDimensions = detail ? dimensions.filter((dim) => detail.includes(dim.id)) : []\n const playerDimensions = player ? dimensions.filter((dim) => player.includes(dim.id)) : []\n const hierarchyDimensions = hierarchy ? dimensions.filter((dim) => hierarchy.includes(dim.id)) : []\n const sourceDimensions = source ? dimensions.filter((dim) => source.includes(dim.id)) : []\n const targetDimensions = target ? dimensions.filter((dim) => target.includes(dim.id)) : []\n\n // 离散图例项\n const colorItems = new Set<string>()\n const colorIdMap: Record<string, { id: string; alias: string }> = {}\n\n // 遍历数据集, 按通道合并维度\n for (let i = 0; i < dataset.length; i++) {\n // 应用编码至Datum上\n const datum = dataset[i]\n\n /**\n * !important 这是全仓库, 最最最重要的五行代码, 贯穿VSeed整个生命周期, 是化繁为简的绝对核心\n * 1. 点睛之笔: 呼应foldMeasures, 此时此刻的datum一定是单点数据, 维度合并不可能造成任何冲突.\n * 2. 数据即通道\n * 3. 利用需要合并的维度, 直接进行join, 即可生成新的维度, 与指标彻底解耦;\n * 4. 以下通道均在一次遍历中完成, 不存在性能问题\n * 5. 以下通道均可放入多个维度\n */\n applyEncoding(AngleEncoding, angleDimensions, datum, separator)\n applyEncoding(XEncoding, xDimensions, datum, separator)\n applyEncoding(YEncoding, yDimensions, datum, separator)\n applyEncoding(ColorEncoding, colorDimensions, datum, separator)\n applyEncoding(DetailEncoding, detailDimensions, datum, separator)\n applyEncoding(PlayerEncoding, playerDimensions, datum, separator)\n applyEncoding(HierarchyEncoding, hierarchyDimensions, datum, separator)\n applyEncoding(SourceEncoding, sourceDimensions, datum, separator)\n applyEncoding(TargetEncoding, targetDimensions, datum, separator)\n\n // 处理离散的颜色图例\n if (!colorDimensions.length || !datum[ColorEncoding]) {\n // 无颜色通道, 则跳过\n continue\n }\n const colorId = String(datum[ColorEncoding] ?? '')\n\n datum[ColorIdEncoding] = colorId\n\n colorIdMap[colorId] = {\n id: colorId,\n alias: getColorAliasItem(ColorEncoding, colorDimensions, datum, separator, formatDimensionValue),\n }\n colorItems.add(colorId)\n }\n\n unfoldInfo.colorItems = Array.from(colorItems)\n unfoldInfo.colorIdMap = colorIdMap\n\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * @description 应用编码至数据中, 此方法会原地修改数据\n * @param encoding 编码\n * @param dimensions 维度\n * @param datum 数据\n * @param separator 分隔符\n * @returns undefined\n */\nconst applyEncoding = (encoding: string, dimensions: Dimension[], datum: Datum, separator: string) => {\n if (encoding && dimensions.length) {\n datum[encoding] = dimensions.map((dim) => String(datum[dim.id])).join(separator)\n }\n}\n\nconst getColorAliasItem = (\n encoding: string,\n dimensions: Dimension[],\n datum: Datum,\n separator: string,\n formatDimensionValue?: (dimension: Dimension, value: unknown) => string,\n) => {\n if (encoding && dimensions.length) {\n return dimensions\n .map((dim) => {\n if (dim.id === MeasureId) {\n return String(datum[MeasureName])\n }\n\n const rawValue = datum[dim.id]\n return formatDimensionValue ? formatDimensionValue(dim, rawValue) : String(rawValue)\n })\n .join(separator)\n }\n return ''\n}\n"],"names":["unfoldDimensions","dataset","dimensions","encoding","options","separator","formatDimensionValue","unfoldInfo","AngleEncoding","XEncoding","YEncoding","DetailEncoding","ColorEncoding","ColorIdEncoding","PlayerEncoding","HierarchyEncoding","SourceEncoding","TargetEncoding","color","x","y","detail","angle","player","hierarchy","source","target","angleDimensions","dim","xDimensions","yDimensions","colorDimensions","detailDimensions","playerDimensions","hierarchyDimensions","sourceDimensions","targetDimensions","colorItems","Set","colorIdMap","i","datum","applyEncoding","colorId","String","getColorAliasItem","Array","MeasureId","MeasureName","rawValue"],"mappings":"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"}
@@ -2,7 +2,7 @@ export { Builder } from './builder';
2
2
  export { registerAll } from './builder/register/all';
3
3
  export { updateAdvanced, updateSpec } from './builder/register/custom';
4
4
  export { registerDarkTheme, registerLightTheme, registerCustomTheme } from './builder/register/theme';
5
- export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerColumn, registerColumnParallel, registerColumnPercent, registerLine, registerPie, registerDonut, registerRose, registerRoseParallel, registerFunnel, registerScatter, registerTable, registerPivotTable, registerHeatmap, registerRadar, registerBoxPlot, registerHistogram, registerDualAxis, } from './builder/register/chartType';
5
+ export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerColumn, registerColumnParallel, registerColumnPercent, registerLine, registerPie, registerDonut, registerRose, registerRoseParallel, registerFunnel, registerScatter, registerTable, registerPivotTable, registerHeatmap, registerRadar, registerBoxPlot, registerHistogram, registerDualAxis, registerHierarchySankey, registerSankey, } from './builder/register/chartType';
6
6
  export * from './pipeline';
7
7
  export * from './types';
8
8
  export * from './dataReshape';
package/dist/esm/index.js CHANGED
@@ -8,4 +8,4 @@ export { Builder } from "./builder/index.js";
8
8
  export { registerAll } from "./builder/register/all.js";
9
9
  export { updateAdvanced, updateSpec } from "./builder/register/custom.js";
10
10
  export { registerCustomTheme, registerDarkTheme, registerLightTheme } from "./builder/register/theme/index.js";
11
- export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHistogram, registerLine, registerPie, registerPivotTable, registerRadar, registerRose, registerRoseParallel, registerScatter, registerTable } from "./builder/register/chartType/index.js";
11
+ export { registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerBoxPlot, registerColumn, registerColumnParallel, registerColumnPercent, registerDonut, registerDualAxis, registerFunnel, registerHeatmap, registerHierarchySankey, registerHistogram, registerLine, registerPie, registerPivotTable, registerRadar, registerRose, registerRoseParallel, registerSankey, registerScatter, registerTable } from "./builder/register/chartType/index.js";
@@ -0,0 +1,2 @@
1
+ import type { AdvancedPipeline } from '../../../../types';
2
+ export declare const hierarchySankeyAdvancedPipeline: AdvancedPipeline;
@@ -0,0 +1,33 @@
1
+ import { annotation, buildMeasures, defaultDimensions, defaultEncodingForHierarchy, defaultMeasureId, defaultMeasures, encodingAdapter, encodingForHierarchy, hierarchySankeyConfig, initAdvancedVSeed, page, pickDimensionsForReshape, pivotAdapter, pivotReshapeWithEncoding, reshapeWithEncoding, theme } from "../pipes/index.js";
2
+ const hierarchySankeyAdvancedPipeline = [
3
+ page,
4
+ initAdvancedVSeed,
5
+ defaultMeasures,
6
+ defaultDimensions,
7
+ defaultMeasureId,
8
+ encodingAdapter([
9
+ buildMeasures([
10
+ 'size',
11
+ 'detail'
12
+ ]),
13
+ defaultEncodingForHierarchy
14
+ ], [
15
+ buildMeasures([
16
+ 'size',
17
+ 'detail'
18
+ ]),
19
+ encodingForHierarchy,
20
+ pickDimensionsForReshape
21
+ ]),
22
+ pivotAdapter([
23
+ reshapeWithEncoding
24
+ ], [
25
+ pivotReshapeWithEncoding
26
+ ]),
27
+ hierarchySankeyConfig,
28
+ theme,
29
+ annotation
30
+ ];
31
+ export { hierarchySankeyAdvancedPipeline };
32
+
33
+ //# sourceMappingURL=hierarchySankey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipeline/hierarchySankey.js","sources":["../../../../../../src/pipeline/advanced/chart/pipeline/hierarchySankey.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n annotation,\n encodingForHierarchy,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForHierarchy,\n pickDimensionsForReshape,\n page,\n hierarchySankeyConfig,\n pivotAdapter,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n} from '../pipes'\n\nexport const hierarchySankeyAdvancedPipeline: AdvancedPipeline = [\n page,\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures(['size', 'detail']), defaultEncodingForHierarchy],\n [buildMeasures(['size', 'detail']), encodingForHierarchy, pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n hierarchySankeyConfig,\n theme,\n annotation,\n]\n"],"names":["hierarchySankeyAdvancedPipeline","page","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForHierarchy","encodingForHierarchy","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","hierarchySankeyConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,kCAAoD;IAC/DC;IACAC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC,cAAc;YAAC;YAAQ;SAAS;QAAGC;KAA4B,EAChE;QAACD,cAAc;YAAC;YAAQ;SAAS;QAAGE;QAAsBC;KAAyB;IAErFC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
@@ -27,3 +27,5 @@ export { raceDonutAdvancedPipeline } from './raceDonut';
27
27
  export { treeMapAdvancedPipeline } from './treeMap';
28
28
  export { sunburstAdvancedPipeline } from './sunburst';
29
29
  export { circlePackingAdvancedPipeline } from './circlePacking';
30
+ export { hierarchySankeyAdvancedPipeline } from './hierarchySankey';
31
+ export { sankeyAdvancedPipeline } from './sankey';
@@ -27,3 +27,5 @@ export { raceDonutAdvancedPipeline } from "./raceDonut.js";
27
27
  export { treeMapAdvancedPipeline } from "./treeMap.js";
28
28
  export { sunburstAdvancedPipeline } from "./sunburst.js";
29
29
  export { circlePackingAdvancedPipeline } from "./circlePacking.js";
30
+ export { hierarchySankeyAdvancedPipeline } from "./hierarchySankey.js";
31
+ export { sankeyAdvancedPipeline } from "./sankey.js";
@@ -0,0 +1,2 @@
1
+ import type { AdvancedPipeline } from '../../../../types';
2
+ export declare const sankeyAdvancedPipeline: AdvancedPipeline;
@@ -0,0 +1,33 @@
1
+ import { annotation, buildMeasures, defaultDimensions, defaultEncodingForSankey, defaultMeasureId, defaultMeasures, encodingAdapter, encodingForSankey, initAdvancedVSeed, page, pickDimensionsForReshape, pivotAdapter, pivotReshapeWithEncoding, reshapeWithEncoding, sankeyConfig, theme } from "../pipes/index.js";
2
+ const sankeyAdvancedPipeline = [
3
+ page,
4
+ initAdvancedVSeed,
5
+ defaultMeasures,
6
+ defaultDimensions,
7
+ defaultMeasureId,
8
+ encodingAdapter([
9
+ buildMeasures([
10
+ 'size',
11
+ 'detail'
12
+ ]),
13
+ defaultEncodingForSankey
14
+ ], [
15
+ buildMeasures([
16
+ 'size',
17
+ 'detail'
18
+ ]),
19
+ encodingForSankey,
20
+ pickDimensionsForReshape
21
+ ]),
22
+ pivotAdapter([
23
+ reshapeWithEncoding
24
+ ], [
25
+ pivotReshapeWithEncoding
26
+ ]),
27
+ sankeyConfig,
28
+ theme,
29
+ annotation
30
+ ];
31
+ export { sankeyAdvancedPipeline };
32
+
33
+ //# sourceMappingURL=sankey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipeline/sankey.js","sources":["../../../../../../src/pipeline/advanced/chart/pipeline/sankey.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n buildMeasures,\n defaultDimensions,\n defaultMeasureId,\n defaultMeasures,\n encodingAdapter,\n encodingForSankey,\n defaultEncodingForSankey,\n sankeyConfig,\n initAdvancedVSeed,\n page,\n pivotAdapter,\n pivotReshapeWithEncoding,\n reshapeWithEncoding,\n theme,\n annotation,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const sankeyAdvancedPipeline: AdvancedPipeline = [\n page,\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures(['size', 'detail']), defaultEncodingForSankey],\n [buildMeasures(['size', 'detail']), encodingForSankey, pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n sankeyConfig,\n theme,\n annotation,\n]\n"],"names":["sankeyAdvancedPipeline","page","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForSankey","encodingForSankey","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","sankeyConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,yBAA2C;IACtDC;IACAC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC,cAAc;YAAC;YAAQ;SAAS;QAAGC;KAAyB,EAC7D;QAACD,cAAc;YAAC;YAAQ;SAAS;QAAGE;QAAmBC;KAAyB;IAElFC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
@@ -0,0 +1,2 @@
1
+ import type { AdvancedPipe } from '../../../../../types';
2
+ export declare const hierarchySankeyConfig: AdvancedPipe;
@@ -0,0 +1,27 @@
1
+ import { pick } from "remeda";
2
+ import { replaceNullToUndefined } from "../../../../utils/index.js";
3
+ const hierarchySankeyConfig = (advancedVSeed, context)=>{
4
+ const { vseed } = context;
5
+ const { chartType } = vseed;
6
+ const result = {
7
+ ...advancedVSeed
8
+ };
9
+ const pickedConfig = pick(vseed, [
10
+ 'backgroundColor',
11
+ 'color',
12
+ 'label',
13
+ 'legend',
14
+ 'tooltip'
15
+ ]);
16
+ const config = replaceNullToUndefined(pickedConfig);
17
+ result.config = {
18
+ ...result.config,
19
+ [chartType]: {
20
+ ...config
21
+ }
22
+ };
23
+ return result;
24
+ };
25
+ export { hierarchySankeyConfig };
26
+
27
+ //# sourceMappingURL=hierarchySankey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/hierarchySankey.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/config/hierarchySankey.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const hierarchySankeyConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n ]) as Config['hierarchySankey']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...result.config,\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["hierarchySankeyConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,wBAAsC,CAACC,eAAeC;IACjE,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAGA,OAAO,MAAM;QAChB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -10,6 +10,8 @@ export { lineConfig, columnConfig, pieConfig, dualAxisConfig, scatterConfig, his
10
10
  export { treeMapConfig } from './treeMap';
11
11
  export { sunburstConfig } from './sunburst';
12
12
  export { circlePackingConfig } from './circlePacking';
13
+ export { hierarchySankeyConfig } from './hierarchySankey';
14
+ export { sankeyConfig } from './sankey';
13
15
  export declare const areaConfig: import("../../../../..").AdvancedPipe;
14
16
  export declare const areaPercentConfig: import("../../../../..").AdvancedPipe;
15
17
  export declare const barConfig: import("../../../../..").AdvancedPipe;
@@ -21,6 +21,8 @@ export { heatmapConfig } from "./heatmap.js";
21
21
  export { treeMapConfig } from "./treeMap.js";
22
22
  export { sunburstConfig } from "./sunburst.js";
23
23
  export { circlePackingConfig } from "./circlePacking.js";
24
+ export { hierarchySankeyConfig } from "./hierarchySankey.js";
25
+ export { sankeyConfig } from "./sankey.js";
24
26
  export { areaConfig, areaPercentConfig, barConfig, barParallelConfig, barPercentConfig, columnConfig, columnParallelConfig, columnPercentConfig, donutConfig, funnelConfig, lineConfig, pieConfig, radarConfig, roseConfig, roseParallelConfig };
25
27
 
26
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/config/index.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/config/index.ts"],"sourcesContent":["import { lineConfig } from './line'\nimport { columnConfig } from './column'\nimport { pieConfig } from './pie'\nimport { dualAxisConfig } from './dualAxis'\nimport { scatterConfig } from './scatter'\nimport { histogramConfig } from './histogram'\nimport { boxplotConfig } from './boxplot'\nimport { heatmapConfig } from './heatmap'\n\nexport {\n lineConfig,\n columnConfig,\n pieConfig,\n dualAxisConfig,\n scatterConfig,\n histogramConfig,\n boxplotConfig,\n heatmapConfig,\n}\n\nexport { treeMapConfig } from './treeMap'\nexport { sunburstConfig } from './sunburst'\nexport { circlePackingConfig } from './circlePacking'\n\n// area\nexport const areaConfig = lineConfig\nexport const areaPercentConfig = lineConfig\n\n// bar\nexport const barConfig = columnConfig\nexport const barParallelConfig = columnConfig\nexport const barPercentConfig = columnConfig\n\n// column\nexport const columnParallelConfig = columnConfig\nexport const columnPercentConfig = columnConfig\n\n// donut, rose\nexport const donutConfig = pieConfig\nexport const roseConfig = pieConfig\nexport const roseParallelConfig = pieConfig\nexport const radarConfig = pieConfig\n\n// funnel, heatmap\nexport const funnelConfig = pieConfig\n// heatmapConfig 已独立导出\n"],"names":["areaConfig","lineConfig","areaPercentConfig","barConfig","columnConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","donutConfig","pieConfig","roseConfig","roseParallelConfig","radarConfig","funnelConfig"],"mappings":";;;AAyBO,MAAMA,aAAaC;AACnB,MAAMC,oBAAoBD;AAG1B,MAAME,YAAYC;AAClB,MAAMC,oBAAoBD;AAC1B,MAAME,mBAAmBF;AAGzB,MAAMG,uBAAuBH;AAC7B,MAAMI,sBAAsBJ;AAG5B,MAAMK,cAAcC;AACpB,MAAMC,aAAaD;AACnB,MAAME,qBAAqBF;AAC3B,MAAMG,cAAcH;AAGpB,MAAMI,eAAeJ"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/index.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/config/index.ts"],"sourcesContent":["import { lineConfig } from './line'\nimport { columnConfig } from './column'\nimport { pieConfig } from './pie'\nimport { dualAxisConfig } from './dualAxis'\nimport { scatterConfig } from './scatter'\nimport { histogramConfig } from './histogram'\nimport { boxplotConfig } from './boxplot'\nimport { heatmapConfig } from './heatmap'\n\nexport {\n lineConfig,\n columnConfig,\n pieConfig,\n dualAxisConfig,\n scatterConfig,\n histogramConfig,\n boxplotConfig,\n heatmapConfig,\n}\n\nexport { treeMapConfig } from './treeMap'\nexport { sunburstConfig } from './sunburst'\nexport { circlePackingConfig } from './circlePacking'\nexport { hierarchySankeyConfig } from './hierarchySankey'\nexport { sankeyConfig } from './sankey'\n\n// area\nexport const areaConfig = lineConfig\nexport const areaPercentConfig = lineConfig\n\n// bar\nexport const barConfig = columnConfig\nexport const barParallelConfig = columnConfig\nexport const barPercentConfig = columnConfig\n\n// column\nexport const columnParallelConfig = columnConfig\nexport const columnPercentConfig = columnConfig\n\n// donut, rose\nexport const donutConfig = pieConfig\nexport const roseConfig = pieConfig\nexport const roseParallelConfig = pieConfig\nexport const radarConfig = pieConfig\n\n// funnel, heatmap\nexport const funnelConfig = pieConfig\n// heatmapConfig 已独立导出\n"],"names":["areaConfig","lineConfig","areaPercentConfig","barConfig","columnConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","donutConfig","pieConfig","roseConfig","roseParallelConfig","radarConfig","funnelConfig"],"mappings":";;;AA2BO,MAAMA,aAAaC;AACnB,MAAMC,oBAAoBD;AAG1B,MAAME,YAAYC;AAClB,MAAMC,oBAAoBD;AAC1B,MAAME,mBAAmBF;AAGzB,MAAMG,uBAAuBH;AAC7B,MAAMI,sBAAsBJ;AAG5B,MAAMK,cAAcC;AACpB,MAAMC,aAAaD;AACnB,MAAME,qBAAqBF;AAC3B,MAAMG,cAAcH;AAGpB,MAAMI,eAAeJ"}
@@ -0,0 +1,2 @@
1
+ import type { AdvancedPipe } from '../../../../../types';
2
+ export declare const sankeyConfig: AdvancedPipe;
@@ -0,0 +1,27 @@
1
+ import { pick } from "remeda";
2
+ import { replaceNullToUndefined } from "../../../../utils/index.js";
3
+ const sankeyConfig = (advancedVSeed, context)=>{
4
+ const { vseed } = context;
5
+ const { chartType } = vseed;
6
+ const result = {
7
+ ...advancedVSeed
8
+ };
9
+ const pickedConfig = pick(vseed, [
10
+ 'backgroundColor',
11
+ 'color',
12
+ 'label',
13
+ 'legend',
14
+ 'tooltip'
15
+ ]);
16
+ const config = replaceNullToUndefined(pickedConfig);
17
+ result.config = {
18
+ ...result.config,
19
+ [chartType]: {
20
+ ...config
21
+ }
22
+ };
23
+ return result;
24
+ };
25
+ export { sankeyConfig };
26
+
27
+ //# sourceMappingURL=sankey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/sankey.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/config/sankey.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const sankeyConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, ['backgroundColor', 'color', 'label', 'legend', 'tooltip']) as Config['sankey']\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...result.config,\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["sankeyConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,eAA6B,CAACC,eAAeC;IACxD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAAC;QAAmB;QAAS;QAAS;QAAU;KAAU;IAC3F,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAGA,OAAO,MAAM;QAChB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -18,3 +18,4 @@ export { encodingForRaceLine, defaultEncodingForRaceLine } from './raceLine';
18
18
  export { encodingForRacePie, defaultEncodingForRacePie } from './racePie';
19
19
  export { encodingForRaceDonut, defaultEncodingForRaceDonut } from './raceDonut';
20
20
  export { encodingForHierarchy, defaultEncodingForHierarchy } from './hierarchy';
21
+ export { encodingForSankey, defaultEncodingForSankey } from './sankey';
@@ -18,3 +18,4 @@ export { defaultEncodingForRaceLine, encodingForRaceLine } from "./raceLine.js";
18
18
  export { defaultEncodingForRacePie, encodingForRacePie } from "./racePie.js";
19
19
  export { defaultEncodingForRaceDonut, encodingForRaceDonut } from "./raceDonut.js";
20
20
  export { defaultEncodingForHierarchy, encodingForHierarchy } from "./hierarchy.js";
21
+ export { defaultEncodingForSankey, encodingForSankey } from "./sankey.js";
@@ -0,0 +1,3 @@
1
+ import type { AdvancedPipe } from '../../../../../types';
2
+ export declare const defaultEncodingForSankey: AdvancedPipe;
3
+ export declare const encodingForSankey: AdvancedPipe;
@@ -0,0 +1,83 @@
1
+ import { unique } from "remeda";
2
+ import { MeasureId } from "../../../../../dataReshape/index.js";
3
+ import { hasMultipleMeasureInSingleView } from "../../../../utils/index.js";
4
+ const defaultEncodingForSankey = (advancedVSeed)=>{
5
+ const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
6
+ const encoding = {};
7
+ generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
8
+ generateDefaultMeasureEncoding(measures, encoding);
9
+ return {
10
+ ...advancedVSeed,
11
+ encoding
12
+ };
13
+ };
14
+ const encodingForSankey = (advancedVSeed)=>{
15
+ const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
16
+ const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
17
+ const hasMeasureEncoding = measures.some((item)=>item.encoding);
18
+ const encoding = {};
19
+ const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
20
+ if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding, hasMulti);
21
+ else generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
22
+ if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
23
+ else generateDefaultMeasureEncoding(measures, encoding);
24
+ return {
25
+ ...advancedVSeed,
26
+ encoding
27
+ };
28
+ };
29
+ const generateDefaultDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
30
+ const uniqueDimIds = unique(dimensions.map((d)=>d.id));
31
+ const sourceTargetDimIds = isMultiMeasure ? uniqueDimIds : uniqueDimIds.filter((d)=>d !== MeasureId);
32
+ encoding.source = sourceTargetDimIds.slice(0, 1);
33
+ encoding.target = sourceTargetDimIds.slice(1);
34
+ encoding.color = [];
35
+ encoding.detail = [];
36
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
37
+ encoding.label = [];
38
+ encoding.row = [];
39
+ encoding.column = [];
40
+ };
41
+ const generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
42
+ encoding.source = unique(dimensions.filter((item)=>'source' === item.encoding).map((item)=>item.id));
43
+ encoding.target = unique(dimensions.filter((item)=>'target' === item.encoding).map((item)=>item.id));
44
+ if (0 === encoding.source.length && dimensions[0]) encoding.source = [
45
+ dimensions[0].id
46
+ ];
47
+ if (isMultiMeasure && !encoding.source.includes(MeasureId) && !encoding.target.includes(MeasureId)) encoding.target.push(MeasureId);
48
+ encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
49
+ encoding.tooltip = unique(dimensions.map((item)=>item.id)).filter((d)=>d !== MeasureId);
50
+ encoding.label = unique(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
51
+ encoding.row = unique(dimensions.filter((item)=>'row' === item.encoding).map((item)=>item.id));
52
+ encoding.column = unique(dimensions.filter((item)=>'column' === item.encoding).map((item)=>item.id));
53
+ };
54
+ const generateDefaultMeasureEncoding = (measures, encoding)=>{
55
+ encoding.size = unique(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
56
+ encoding.tooltip = unique([
57
+ ...encoding.tooltip || [],
58
+ ...measures.map((m)=>m.id)
59
+ ]);
60
+ };
61
+ const generateMeasureEncoding = (measures, encoding)=>{
62
+ encoding.size = unique(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
63
+ const label = unique(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
64
+ encoding.label = unique([
65
+ ...encoding.label || [],
66
+ ...label
67
+ ]);
68
+ const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
69
+ encoding.tooltip = unique([
70
+ ...encoding.tooltip || [],
71
+ ...label,
72
+ ...tooltip,
73
+ ...encoding.size
74
+ ]);
75
+ const detail = unique(measures.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
76
+ encoding.detail = unique([
77
+ ...encoding.detail || [],
78
+ ...detail
79
+ ]);
80
+ };
81
+ export { defaultEncodingForSankey, encodingForSankey };
82
+
83
+ //# sourceMappingURL=sankey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/encoding/sankey.js","sources":["../../../../../../../src/pipeline/advanced/chart/pipes/encoding/sankey.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { hasMultipleMeasureInSingleView } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForSankey: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures))\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForSankey: AdvancedPipe = (advancedVSeed) => {\n const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures)\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding, hasMulti)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding, hasMulti)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n const uniqueDimIds = unique(dimensions.map((d) => d.id))\n const sourceTargetDimIds = isMultiMeasure ? uniqueDimIds : uniqueDimIds.filter((d) => d !== MeasureId)\n\n encoding.source = sourceTargetDimIds.slice(0, 1)\n encoding.target = sourceTargetDimIds.slice(1)\n encoding.color = []\n encoding.detail = []\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId)\n encoding.label = []\n encoding.row = []\n encoding.column = []\n}\n\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // source\n encoding.source = unique(dimensions.filter((item) => item.encoding === 'source').map((item) => item.id))\n\n // target\n encoding.target = unique(dimensions.filter((item) => item.encoding === 'target').map((item) => item.id))\n\n if (encoding.source.length === 0 && dimensions[0]) {\n encoding.source = [dimensions[0].id]\n }\n if (isMultiMeasure && !encoding.source.includes(MeasureId) && !encoding.target.includes(MeasureId)) {\n encoding.target.push(MeasureId)\n }\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id)).filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n\n encoding.row = unique(dimensions.filter((item) => item.encoding === 'row').map((item) => item.id))\n encoding.column = unique(dimensions.filter((item) => item.encoding === 'column').map((item) => item.id))\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.size = unique(measures.filter((item) => item.encoding === 'size' || !item.encoding).map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...measures.map((m) => m.id)])\n}\n\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // size\n encoding.size = unique(measures.filter((item) => item.encoding === 'size' || !item.encoding).map((item) => item.id))\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip, ...encoding.size])\n\n // detail\n const detail = unique(measures.filter((item) => item.encoding === 'detail').map((item) => item.id))\n encoding.detail = unique([...(encoding.detail || []), ...detail])\n}\n"],"names":["defaultEncodingForSankey","advancedVSeed","measures","reshapeMeasures","dimensions","encoding","generateDefaultDimensionEncoding","hasMultipleMeasureInSingleView","generateDefaultMeasureEncoding","encodingForSankey","hasDimensionEncoding","item","hasMeasureEncoding","hasMulti","generateDimensionEncoding","generateMeasureEncoding","isMultiMeasure","uniqueDimIds","unique","d","sourceTargetDimIds","MeasureId","m","label","tooltip","detail"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const hierarchySankeySpecPipeline: import("../../../../types").SpecPipe[];