@visactor/vseed 0.2.8 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) 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/builder.d.ts +164 -128
  4. package/dist/esm/pipeline/advanced/chart/pipeline/area.js +9 -8
  5. package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
  6. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js +9 -8
  7. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
  8. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js +9 -8
  9. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
  10. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js +9 -8
  11. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
  12. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js +9 -8
  13. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
  14. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js +19 -8
  15. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js.map +1 -1
  16. package/dist/esm/pipeline/advanced/chart/pipeline/column.js +9 -8
  17. package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
  18. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js +9 -8
  19. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
  20. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js +9 -8
  21. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
  22. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +9 -8
  23. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
  24. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js +1 -6
  25. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
  26. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js +9 -8
  27. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
  28. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js +9 -7
  29. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
  30. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +15 -8
  31. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
  32. package/dist/esm/pipeline/advanced/chart/pipeline/line.js +9 -8
  33. package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
  34. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +9 -8
  35. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
  36. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js +9 -8
  37. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
  38. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js +9 -8
  39. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
  40. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js +9 -8
  41. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
  42. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +1 -6
  43. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
  44. package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js +0 -1
  45. package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js.map +1 -1
  46. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js +1 -2
  47. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js.map +1 -1
  48. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js +2 -4
  49. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js.map +1 -1
  50. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js +4 -4
  51. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js.map +1 -1
  52. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js +5 -7
  53. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
  54. package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js +5 -7
  55. package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js.map +1 -1
  56. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js +5 -7
  57. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
  58. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js +5 -15
  59. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
  60. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js +5 -7
  61. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
  62. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js +4 -6
  63. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js.map +1 -1
  64. package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js +2 -5
  65. package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js.map +1 -1
  66. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js +7 -14
  67. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
  68. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +5 -7
  69. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
  70. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js +5 -7
  71. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
  72. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js +5 -7
  73. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
  74. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +2 -5
  75. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
  76. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.d.ts +1 -1
  77. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js +19 -50
  78. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js.map +1 -1
  79. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js +25 -118
  80. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js.map +1 -1
  81. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js +30 -115
  82. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js.map +1 -1
  83. package/dist/esm/pipeline/advanced/chart/pipes/measures/index.d.ts +0 -1
  84. package/dist/esm/pipeline/advanced/chart/pipes/measures/index.js +1 -2
  85. package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.d.ts +12 -1
  86. package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.js +12 -1
  87. package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.js.map +1 -1
  88. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js +6 -12
  89. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
  90. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +25 -28
  91. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
  92. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js +6 -11
  93. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
  94. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +4 -8
  95. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
  96. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js +23 -35
  97. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
  98. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js +3 -8
  99. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js.map +1 -1
  100. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +21 -17
  101. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
  102. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js +1 -2
  103. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
  104. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js +4 -9
  105. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
  106. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js +22 -27
  107. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js.map +1 -1
  108. package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js +3 -3
  109. package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js.map +1 -1
  110. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js +3 -2
  111. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js.map +1 -1
  112. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js +2 -2
  113. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js.map +1 -1
  114. package/dist/esm/pipeline/advanced/table/pipes/encoding/pivotTable.js +5 -5
  115. package/dist/esm/pipeline/advanced/table/pipes/encoding/pivotTable.js.map +1 -1
  116. package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js +3 -5
  117. package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js.map +1 -1
  118. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js +3 -3
  119. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
  120. package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js +17 -45
  121. package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
  122. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js +3 -3
  123. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js.map +1 -1
  124. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js +1 -1
  125. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js.map +1 -1
  126. package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.d.ts +2 -2
  127. package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.js +2 -6
  128. package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.js.map +1 -1
  129. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +1 -1
  130. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
  131. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +1 -1
  132. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  133. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +1 -1
  134. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
  135. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +1 -1
  136. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  137. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js +16 -13
  138. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
  139. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js +10 -13
  140. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
  141. package/dist/esm/pipeline/spec/chart/pipes/color/colorAdapter.js +1 -3
  142. package/dist/esm/pipeline/spec/chart/pipes/color/colorAdapter.js.map +1 -1
  143. package/dist/esm/pipeline/spec/chart/pipes/color/linearColorForDualAxis.js +4 -12
  144. package/dist/esm/pipeline/spec/chart/pipes/color/linearColorForDualAxis.js.map +1 -1
  145. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetDualAxis.d.ts +2 -3
  146. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetDualAxis.js +38 -78
  147. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetDualAxis.js.map +1 -1
  148. package/dist/esm/pipeline/spec/chart/pipes/dataset/index.d.ts +1 -1
  149. package/dist/esm/pipeline/spec/chart/pipes/dataset/index.js +2 -2
  150. package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.d.ts +2 -2
  151. package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js +16 -75
  152. package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js.map +1 -1
  153. package/dist/esm/pipeline/spec/chart/pipes/dual/index.d.ts +1 -1
  154. package/dist/esm/pipeline/spec/chart/pipes/dual/index.js +2 -2
  155. package/dist/esm/pipeline/spec/chart/pipes/init/dualAxis.d.ts +2 -3
  156. package/dist/esm/pipeline/spec/chart/pipes/init/dualAxis.js +16 -32
  157. package/dist/esm/pipeline/spec/chart/pipes/init/dualAxis.js.map +1 -1
  158. package/dist/esm/pipeline/spec/chart/pipes/init/index.d.ts +1 -1
  159. package/dist/esm/pipeline/spec/chart/pipes/init/index.js +2 -2
  160. package/dist/esm/pipeline/spec/chart/pipes/label/index.d.ts +2 -1
  161. package/dist/esm/pipeline/spec/chart/pipes/label/index.js +3 -2
  162. package/dist/esm/pipeline/spec/chart/pipes/label/label.d.ts +1 -1
  163. package/dist/esm/pipeline/spec/chart/pipes/label/label.js +4 -2
  164. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  165. package/dist/esm/pipeline/spec/chart/pipes/label/labelBoxPlot.d.ts +2 -0
  166. package/dist/esm/pipeline/spec/chart/pipes/label/labelBoxPlot.js +21 -0
  167. package/dist/esm/pipeline/spec/chart/pipes/label/labelBoxPlot.js.map +1 -0
  168. package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.d.ts +2 -3
  169. package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js +14 -30
  170. package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js.map +1 -1
  171. package/dist/esm/pipeline/spec/chart/pipes/label/labelPie.js.map +1 -1
  172. package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js.map +1 -1
  173. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js +7 -5
  174. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js.map +1 -1
  175. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js +3 -6
  176. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js.map +1 -1
  177. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js +5 -5
  178. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
  179. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +1 -1
  180. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
  181. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js +1 -1
  182. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js.map +1 -1
  183. package/dist/esm/pipeline/spec/chart/pipes/series/series.d.ts +3 -3
  184. package/dist/esm/pipeline/spec/chart/pipes/series/series.js +45 -17
  185. package/dist/esm/pipeline/spec/chart/pipes/series/series.js.map +1 -1
  186. package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.d.ts +1 -1
  187. package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.js +2 -2
  188. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +2 -2
  189. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +5 -5
  190. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  191. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +3 -3
  192. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
  193. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.d.ts +2 -3
  194. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +28 -62
  195. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  196. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.d.ts +1 -1
  197. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js +4 -4
  198. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
  199. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js +1 -1
  200. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js.map +1 -1
  201. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.d.ts +1 -1
  202. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +4 -4
  203. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
  204. package/dist/esm/pipeline/spec/table/pipes/columns/dimensionsToColumns.js +2 -2
  205. package/dist/esm/pipeline/spec/table/pipes/columns/dimensionsToColumns.js.map +1 -1
  206. package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js +2 -2
  207. package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js.map +1 -1
  208. package/dist/esm/pipeline/spec/table/pipes/columns/pivotColumns.js +1 -1
  209. package/dist/esm/pipeline/spec/table/pipes/columns/pivotColumns.js.map +1 -1
  210. package/dist/esm/pipeline/spec/table/pipes/indicators/pivotDataConfig.js +1 -1
  211. package/dist/esm/pipeline/spec/table/pipes/indicators/pivotDataConfig.js.map +1 -1
  212. package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js +4 -4
  213. package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js.map +1 -1
  214. package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js +3 -3
  215. package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js.map +1 -1
  216. package/dist/esm/pipeline/utils/chatType.d.ts +9 -0
  217. package/dist/esm/pipeline/utils/chatType.js +33 -21
  218. package/dist/esm/pipeline/utils/chatType.js.map +1 -1
  219. package/dist/esm/pipeline/utils/measures/find.d.ts +2 -1
  220. package/dist/esm/pipeline/utils/measures/find.js +3 -13
  221. package/dist/esm/pipeline/utils/measures/find.js.map +1 -1
  222. package/dist/esm/theme/common/boxPlot.js +10 -7
  223. package/dist/esm/theme/common/boxPlot.js.map +1 -1
  224. package/dist/esm/theme/dark/dark.js +0 -4
  225. package/dist/esm/theme/dark/dark.js.map +1 -1
  226. package/dist/esm/theme/light/light.js +0 -4
  227. package/dist/esm/theme/light/light.js.map +1 -1
  228. package/dist/esm/types/advancedVSeed.d.ts +141 -72
  229. package/dist/esm/types/advancedVSeed.js +8 -6
  230. package/dist/esm/types/advancedVSeed.js.map +1 -1
  231. package/dist/esm/types/chartType/area/area.d.ts +3 -5
  232. package/dist/esm/types/chartType/area/zArea.d.ts +11 -2
  233. package/dist/esm/types/chartType/area/zArea.js +2 -2
  234. package/dist/esm/types/chartType/area/zArea.js.map +1 -1
  235. package/dist/esm/types/chartType/areaPercent/areaPercent.d.ts +3 -5
  236. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +11 -2
  237. package/dist/esm/types/chartType/areaPercent/zAreaPercent.js +2 -2
  238. package/dist/esm/types/chartType/areaPercent/zAreaPercent.js.map +1 -1
  239. package/dist/esm/types/chartType/bar/bar.d.ts +4 -6
  240. package/dist/esm/types/chartType/bar/zBar.d.ts +11 -2
  241. package/dist/esm/types/chartType/bar/zBar.js +2 -2
  242. package/dist/esm/types/chartType/bar/zBar.js.map +1 -1
  243. package/dist/esm/types/chartType/barParallel/barParallel.d.ts +3 -5
  244. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +11 -2
  245. package/dist/esm/types/chartType/barParallel/zBarParallel.js +2 -2
  246. package/dist/esm/types/chartType/barParallel/zBarParallel.js.map +1 -1
  247. package/dist/esm/types/chartType/barPercent/barPercent.d.ts +3 -3
  248. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +11 -2
  249. package/dist/esm/types/chartType/barPercent/zBarPercent.js +2 -2
  250. package/dist/esm/types/chartType/barPercent/zBarPercent.js.map +1 -1
  251. package/dist/esm/types/chartType/boxPlot/boxPlot.d.ts +3 -5
  252. package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +13 -4
  253. package/dist/esm/types/chartType/boxPlot/zBoxPlot.js +2 -2
  254. package/dist/esm/types/chartType/boxPlot/zBoxPlot.js.map +1 -1
  255. package/dist/esm/types/chartType/column/column.d.ts +3 -5
  256. package/dist/esm/types/chartType/column/zColumn.d.ts +11 -2
  257. package/dist/esm/types/chartType/column/zColumn.js +2 -2
  258. package/dist/esm/types/chartType/column/zColumn.js.map +1 -1
  259. package/dist/esm/types/chartType/columnParallel/columnParallel.d.ts +4 -6
  260. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +11 -2
  261. package/dist/esm/types/chartType/columnParallel/zColumnParallel.js +2 -2
  262. package/dist/esm/types/chartType/columnParallel/zColumnParallel.js.map +1 -1
  263. package/dist/esm/types/chartType/columnPercent/columnPercent.d.ts +3 -5
  264. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +11 -2
  265. package/dist/esm/types/chartType/columnPercent/zColumnPercent.js +2 -2
  266. package/dist/esm/types/chartType/columnPercent/zColumnPercent.js.map +1 -1
  267. package/dist/esm/types/chartType/donut/donut.d.ts +3 -5
  268. package/dist/esm/types/chartType/donut/zDonut.d.ts +11 -2
  269. package/dist/esm/types/chartType/donut/zDonut.js +2 -2
  270. package/dist/esm/types/chartType/donut/zDonut.js.map +1 -1
  271. package/dist/esm/types/chartType/dualAxis/dualAxis.d.ts +7 -88
  272. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +9 -358
  273. package/dist/esm/types/chartType/dualAxis/zDualAxis.js +2 -4
  274. package/dist/esm/types/chartType/dualAxis/zDualAxis.js.map +1 -1
  275. package/dist/esm/types/chartType/funnel/funnel.d.ts +3 -5
  276. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +11 -2
  277. package/dist/esm/types/chartType/funnel/zFunnel.js +2 -2
  278. package/dist/esm/types/chartType/funnel/zFunnel.js.map +1 -1
  279. package/dist/esm/types/chartType/heatmap/heatmap.d.ts +4 -6
  280. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +11 -2
  281. package/dist/esm/types/chartType/heatmap/zHeatmap.js +2 -2
  282. package/dist/esm/types/chartType/heatmap/zHeatmap.js.map +1 -1
  283. package/dist/esm/types/chartType/histogram/histogram.d.ts +3 -5
  284. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +11 -2
  285. package/dist/esm/types/chartType/histogram/zHistogram.js +2 -2
  286. package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
  287. package/dist/esm/types/chartType/line/line.d.ts +3 -4
  288. package/dist/esm/types/chartType/line/zLine.d.ts +11 -2
  289. package/dist/esm/types/chartType/line/zLine.js +2 -2
  290. package/dist/esm/types/chartType/line/zLine.js.map +1 -1
  291. package/dist/esm/types/chartType/pie/pie.d.ts +3 -5
  292. package/dist/esm/types/chartType/pie/zPie.d.ts +11 -2
  293. package/dist/esm/types/chartType/pie/zPie.js +2 -2
  294. package/dist/esm/types/chartType/pie/zPie.js.map +1 -1
  295. package/dist/esm/types/chartType/pivotTable/pivotTable.d.ts +4 -4
  296. package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +9 -0
  297. package/dist/esm/types/chartType/radar/radar.d.ts +4 -6
  298. package/dist/esm/types/chartType/radar/zRadar.d.ts +11 -2
  299. package/dist/esm/types/chartType/radar/zRadar.js +2 -2
  300. package/dist/esm/types/chartType/radar/zRadar.js.map +1 -1
  301. package/dist/esm/types/chartType/rose/rose.d.ts +4 -6
  302. package/dist/esm/types/chartType/rose/zRose.d.ts +11 -2
  303. package/dist/esm/types/chartType/rose/zRose.js +2 -2
  304. package/dist/esm/types/chartType/rose/zRose.js.map +1 -1
  305. package/dist/esm/types/chartType/roseParallel/roseParallel.d.ts +4 -6
  306. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +11 -2
  307. package/dist/esm/types/chartType/roseParallel/zRoseParallel.js +2 -2
  308. package/dist/esm/types/chartType/roseParallel/zRoseParallel.js.map +1 -1
  309. package/dist/esm/types/chartType/scatter/scatter.d.ts +5 -75
  310. package/dist/esm/types/chartType/scatter/zScatter.d.ts +10 -310
  311. package/dist/esm/types/chartType/scatter/zScatter.js +2 -3
  312. package/dist/esm/types/chartType/scatter/zScatter.js.map +1 -1
  313. package/dist/esm/types/chartType/table/zTable.d.ts +9 -0
  314. package/dist/esm/types/properties/chartType/index.d.ts +0 -2
  315. package/dist/esm/types/properties/chartType/index.js +1 -2
  316. package/dist/esm/types/properties/config/boxplot.d.ts +1 -1
  317. package/dist/esm/types/properties/config/config.d.ts +1 -32
  318. package/dist/esm/types/properties/config/dualAxis.d.ts +7 -31
  319. package/dist/esm/types/properties/config/dualAxis.js +0 -2
  320. package/dist/esm/types/properties/config/dualAxis.js.map +1 -1
  321. package/dist/esm/types/properties/dimensions/areaDimension.d.ts +3 -0
  322. package/dist/esm/types/properties/dimensions/barDimension.d.ts +16 -0
  323. package/dist/esm/types/properties/dimensions/{dimensions.d.ts → baseDimension.d.ts} +13 -14
  324. package/dist/esm/types/properties/dimensions/boxPlotDimension.d.ts +13 -0
  325. package/dist/esm/types/properties/dimensions/columnDimension.d.ts +19 -0
  326. package/dist/esm/types/properties/dimensions/columnDimension.js +0 -0
  327. package/dist/esm/types/properties/dimensions/donutDimension.d.ts +2 -0
  328. package/dist/esm/types/properties/dimensions/donutDimension.js +0 -0
  329. package/dist/esm/types/properties/dimensions/dualAxisDimension.d.ts +2 -0
  330. package/dist/esm/types/properties/dimensions/dualAxisDimension.js +0 -0
  331. package/dist/esm/types/properties/dimensions/funnelDimension.d.ts +2 -0
  332. package/dist/esm/types/properties/dimensions/funnelDimension.js +0 -0
  333. package/dist/esm/types/properties/dimensions/heatmapDimension.d.ts +13 -0
  334. package/dist/esm/types/properties/dimensions/heatmapDimension.js +0 -0
  335. package/dist/esm/types/properties/dimensions/histogramDimension.d.ts +13 -0
  336. package/dist/esm/types/properties/dimensions/histogramDimension.js +0 -0
  337. package/dist/esm/types/properties/dimensions/index.d.ts +16 -1
  338. package/dist/esm/types/properties/dimensions/lineDimension.d.ts +2 -0
  339. package/dist/esm/types/properties/dimensions/lineDimension.js +0 -0
  340. package/dist/esm/types/properties/dimensions/pieDimension.d.ts +13 -0
  341. package/dist/esm/types/properties/dimensions/pieDimension.js +0 -0
  342. package/dist/esm/types/properties/dimensions/radarDimension.d.ts +14 -0
  343. package/dist/esm/types/properties/dimensions/radarDimension.js +0 -0
  344. package/dist/esm/types/properties/dimensions/roseDimension.d.ts +3 -0
  345. package/dist/esm/types/properties/dimensions/roseDimension.js +0 -0
  346. package/dist/esm/types/properties/dimensions/scatterDimension.d.ts +13 -0
  347. package/dist/esm/types/properties/dimensions/scatterDimension.js +0 -0
  348. package/dist/esm/types/properties/dimensions/tableDimension.d.ts +18 -0
  349. package/dist/esm/types/properties/dimensions/tableDimension.js +0 -0
  350. package/dist/esm/types/properties/dimensions/zDimensions.d.ts +1 -1
  351. package/dist/esm/types/properties/dimensions/zDimensions.js.map +1 -1
  352. package/dist/esm/types/properties/markStyle/boxPlotStyle.d.ts +5 -5
  353. package/dist/esm/types/properties/markStyle/boxPlotStyle.js +2 -2
  354. package/dist/esm/types/properties/markStyle/boxPlotStyle.js.map +1 -1
  355. package/dist/esm/types/properties/markStyle/markStyle.d.ts +2 -2
  356. package/dist/esm/types/properties/measures/areaMeasure.d.ts +2 -0
  357. package/dist/esm/types/properties/measures/areaMeasure.js +0 -0
  358. package/dist/esm/types/properties/measures/barMeasure.d.ts +14 -0
  359. package/dist/esm/types/properties/measures/barMeasure.js +0 -0
  360. package/dist/esm/types/properties/measures/{measures.d.ts → baseMeasure.d.ts} +29 -13
  361. package/dist/esm/types/properties/measures/baseMeasure.js +0 -0
  362. package/dist/esm/types/properties/measures/boxPlotMeasure.d.ts +18 -0
  363. package/dist/esm/types/properties/measures/boxPlotMeasure.js +0 -0
  364. package/dist/esm/types/properties/measures/columnMeasure.d.ts +14 -0
  365. package/dist/esm/types/properties/measures/columnMeasure.js +0 -0
  366. package/dist/esm/types/properties/measures/dualAxisMeasure.d.ts +23 -0
  367. package/dist/esm/types/properties/measures/dualAxisMeasure.js +0 -0
  368. package/dist/esm/types/properties/measures/funnelMeasure.d.ts +11 -0
  369. package/dist/esm/types/properties/measures/funnelMeasure.js +0 -0
  370. package/dist/esm/types/properties/measures/heatmapMeasure.d.ts +10 -0
  371. package/dist/esm/types/properties/measures/heatmapMeasure.js +0 -0
  372. package/dist/esm/types/properties/measures/histogramMeasure.d.ts +13 -0
  373. package/dist/esm/types/properties/measures/histogramMeasure.js +0 -0
  374. package/dist/esm/types/properties/measures/index.d.ts +15 -4
  375. package/dist/esm/types/properties/measures/index.js +0 -1
  376. package/dist/esm/types/properties/measures/lineMeasure.d.ts +2 -0
  377. package/dist/esm/types/properties/measures/lineMeasure.js +0 -0
  378. package/dist/esm/types/properties/measures/measureTree.d.ts +17 -0
  379. package/dist/esm/types/properties/measures/measureTree.js +0 -0
  380. package/dist/esm/types/properties/measures/pieMeasure.d.ts +12 -0
  381. package/dist/esm/types/properties/measures/pieMeasure.js +0 -0
  382. package/dist/esm/types/properties/measures/radarMeasure.d.ts +13 -0
  383. package/dist/esm/types/properties/measures/radarMeasure.js +0 -0
  384. package/dist/esm/types/properties/measures/scatterMeasure.d.ts +13 -0
  385. package/dist/esm/types/properties/measures/scatterMeasure.js +0 -0
  386. package/dist/esm/types/properties/measures/tableMeasure.d.ts +8 -0
  387. package/dist/esm/types/properties/measures/tableMeasure.js +0 -0
  388. package/dist/esm/types/properties/measures/zDualMeasures.d.ts +154 -612
  389. package/dist/esm/types/properties/measures/zDualMeasures.js +15 -10
  390. package/dist/esm/types/properties/measures/zDualMeasures.js.map +1 -1
  391. package/dist/esm/types/properties/measures/zMeasures.d.ts +28 -1
  392. package/dist/esm/types/properties/measures/zMeasures.js +10 -1
  393. package/dist/esm/types/properties/measures/zMeasures.js.map +1 -1
  394. package/dist/esm/types/properties/theme/customTheme.d.ts +2 -64
  395. package/dist/esm/types/zVseed.d.ts +237 -706
  396. package/dist/umd/index.js +899 -1368
  397. package/dist/umd/index.js.map +1 -1
  398. package/package.json +2 -2
  399. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.d.ts +0 -2
  400. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js +0 -14
  401. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js.map +0 -1
  402. package/dist/esm/types/properties/chartType/dualChartType.d.ts +0 -18
  403. package/dist/esm/types/properties/chartType/dualChartType.js +0 -20
  404. package/dist/esm/types/properties/chartType/dualChartType.js.map +0 -1
  405. package/dist/esm/types/properties/measures/dualMeasures.d.ts +0 -7
  406. package/dist/esm/types/properties/measures/scatterMeasures.d.ts +0 -7
  407. package/dist/esm/types/properties/measures/zScatterMeasures.d.ts +0 -619
  408. package/dist/esm/types/properties/measures/zScatterMeasures.js +0 -17
  409. package/dist/esm/types/properties/measures/zScatterMeasures.js.map +0 -1
  410. /package/dist/esm/types/properties/dimensions/{dimensions.js → areaDimension.js} +0 -0
  411. /package/dist/esm/types/properties/{measures/dualMeasures.js → dimensions/barDimension.js} +0 -0
  412. /package/dist/esm/types/properties/{measures/measures.js → dimensions/baseDimension.js} +0 -0
  413. /package/dist/esm/types/properties/{measures/scatterMeasures.js → dimensions/boxPlotDimension.js} +0 -0
@@ -1,55 +1,24 @@
1
- import { isMeasureTreeWithChildren, isMeasureTreeWithParentId, normalizeMeasureTree } from "./utils.js";
2
- import { isPivotChart } from "../../../../utils/index.js";
3
1
  import { DEFAULT_PARENT_ID } from "../../../../utils/constant.js";
4
- import { isValid } from "@visactor/vutils";
5
- const buildMeasures = (advancedVSeed)=>{
6
- if (isMeasureTreeWithChildren(advancedVSeed.measures)) {
7
- advancedVSeed.measures = normalizeMeasureTree(advancedVSeed.measures);
8
- return advancedVSeed;
9
- }
10
- if (isMeasureTreeWithParentId(advancedVSeed.measures)) {
11
- advancedVSeed.measures = generateMeasuresByParentId(advancedVSeed.measures);
12
- return advancedVSeed;
13
- }
14
- if (isPivotChart(advancedVSeed)) advancedVSeed.measures = basicMeasuresToMeasureTree(advancedVSeed.measures);
15
- return advancedVSeed;
16
- };
17
- const generateMeasuresByParentId = (measures)=>{
18
- const measureTree = [];
19
- measures.forEach((measure)=>{
20
- const parent = measureTree.find((item)=>item.id === measure.parentId);
21
- if (parent && 'children' in parent) {
22
- parent.children = parent.children || [];
23
- if (parent.children.length > 0) parent.alias += `-${measure.alias ?? measure.id}`;
24
- parent.children.push(measure);
25
- } else if (isValid(measure.parentId)) measureTree.push({
26
- id: measure.parentId,
27
- alias: measure.alias ?? measure.id,
28
- children: [
29
- measure
30
- ]
31
- });
32
- else measureTree.push({
33
- id: DEFAULT_PARENT_ID,
34
- alias: measure.alias ?? measure.id,
35
- children: [
36
- measure
37
- ]
38
- });
39
- });
40
- return measureTree;
41
- };
42
- const basicMeasuresToMeasureTree = (measures)=>{
43
- const id = measures.map((item)=>item.id).join('-');
44
- const alias = measures.map((item)=>item.alias || item.id).join('-');
45
- return [
46
- {
47
- id,
48
- alias,
49
- children: measures
2
+ import { ensureParentIdInitialized, isCommonMeasureEncoding } from "./utils.js";
3
+ const buildMeasures = (encodingKeys)=>(advancedVSeed)=>{
4
+ const { measures = [] } = advancedVSeed;
5
+ const measuresByView = {};
6
+ const parentIds = [];
7
+ for(let index = 0; index < measures.length; index++){
8
+ const item = measures[index];
9
+ const encoding = item.encoding;
10
+ const parentId = item.parentId || DEFAULT_PARENT_ID;
11
+ const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
12
+ ensureParentIdInitialized(parentId, measuresByView, parentIds);
13
+ if (encodingKeys.includes(encoding)) measuresByView[parentId].push(item);
14
+ else if (!isOtherEncoding) {
15
+ item.encoding = encodingKeys[0];
16
+ measuresByView[parentId].push(item);
17
+ }
50
18
  }
51
- ];
52
- };
19
+ advancedVSeed.reshapeMeasures = parentIds.map((pid)=>measuresByView[pid]).filter((m)=>m.length > 0);
20
+ return advancedVSeed;
21
+ };
53
22
  export { buildMeasures };
54
23
 
55
24
  //# sourceMappingURL=buildMeasures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/measures/buildMeasures.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/buildMeasures.ts"],"sourcesContent":["import type { AdvancedPipe, MeasureGroup, Measures, MeasureTree, VSeed } from 'src/types'\nimport { isMeasureTreeWithChildren, isMeasureTreeWithParentId, normalizeMeasureTree } from './utils'\nimport { isPivotChart } from 'src/pipeline/utils'\nimport { DEFAULT_PARENT_ID } from 'src/pipeline/utils/constant'\nimport { isValid } from '@visactor/vutils'\n\nexport const buildMeasures: AdvancedPipe = (advancedVSeed) => {\n // 带Children的指标树, 不进行任何处理\n if (isMeasureTreeWithChildren(advancedVSeed.measures)) {\n advancedVSeed.measures = normalizeMeasureTree(advancedVSeed.measures as MeasureTree)\n return advancedVSeed\n }\n // 带parentId的指标树, 转换为带children的指标树\n if (isMeasureTreeWithParentId(advancedVSeed.measures)) {\n advancedVSeed.measures = generateMeasuresByParentId(advancedVSeed.measures as Measures)\n return advancedVSeed\n }\n\n /**\n * 透视图表, 自动生成指标树\n */\n if (isPivotChart(advancedVSeed as VSeed)) {\n advancedVSeed.measures = basicMeasuresToMeasureTree(advancedVSeed.measures as Measures)\n }\n\n return advancedVSeed\n}\n\nconst generateMeasuresByParentId = (measures: Measures): MeasureTree => {\n const measureTree: MeasureGroup[] = []\n\n measures.forEach((measure) => {\n const parent = measureTree.find((item) => item.id === measure.parentId)\n if (parent && 'children' in parent) {\n parent.children = parent.children || []\n\n if (parent.children.length > 0) {\n parent.alias += `-${measure.alias ?? measure.id}`\n }\n\n parent.children.push(measure)\n } else if (isValid(measure.parentId)) {\n measureTree.push({\n id: measure.parentId,\n alias: measure.alias ?? measure.id,\n children: [measure],\n })\n } else {\n measureTree.push({\n id: DEFAULT_PARENT_ID,\n alias: measure.alias ?? measure.id, // 当分组只有单个指标的时候,分组alias 设置为该指标的别名或者id\n children: [measure],\n })\n }\n })\n\n return measureTree\n}\n\nconst basicMeasuresToMeasureTree = (measures: Measures): MeasureTree => {\n const id = measures.map((item) => item.id).join('-')\n const alias = measures.map((item) => item.alias || item.id).join('-')\n return [\n {\n id,\n alias,\n children: measures,\n },\n ]\n}\n"],"names":["buildMeasures","advancedVSeed","isMeasureTreeWithChildren","normalizeMeasureTree","isMeasureTreeWithParentId","generateMeasuresByParentId","isPivotChart","basicMeasuresToMeasureTree","measures","measureTree","measure","parent","item","isValid","DEFAULT_PARENT_ID","id","alias"],"mappings":";;;;AAMO,MAAMA,gBAA8B,CAACC;IAE1C,IAAIC,0BAA0BD,cAAc,QAAQ,GAAG;QACrDA,cAAc,QAAQ,GAAGE,qBAAqBF,cAAc,QAAQ;QACpE,OAAOA;IACT;IAEA,IAAIG,0BAA0BH,cAAc,QAAQ,GAAG;QACrDA,cAAc,QAAQ,GAAGI,2BAA2BJ,cAAc,QAAQ;QAC1E,OAAOA;IACT;IAKA,IAAIK,aAAaL,gBACfA,cAAc,QAAQ,GAAGM,2BAA2BN,cAAc,QAAQ;IAG5E,OAAOA;AACT;AAEA,MAAMI,6BAA6B,CAACG;IAClC,MAAMC,cAA8B,EAAE;IAEtCD,SAAS,OAAO,CAAC,CAACE;QAChB,MAAMC,SAASF,YAAY,IAAI,CAAC,CAACG,OAASA,KAAK,EAAE,KAAKF,QAAQ,QAAQ;QACtE,IAAIC,UAAU,cAAcA,QAAQ;YAClCA,OAAO,QAAQ,GAAGA,OAAO,QAAQ,IAAI,EAAE;YAEvC,IAAIA,OAAO,QAAQ,CAAC,MAAM,GAAG,GAC3BA,OAAO,KAAK,IAAI,CAAC,CAAC,EAAED,QAAQ,KAAK,IAAIA,QAAQ,EAAE,EAAE;YAGnDC,OAAO,QAAQ,CAAC,IAAI,CAACD;QACvB,OAAO,IAAIG,QAAQH,QAAQ,QAAQ,GACjCD,YAAY,IAAI,CAAC;YACf,IAAIC,QAAQ,QAAQ;YACpB,OAAOA,QAAQ,KAAK,IAAIA,QAAQ,EAAE;YAClC,UAAU;gBAACA;aAAQ;QACrB;aAEAD,YAAY,IAAI,CAAC;YACf,IAAIK;YACJ,OAAOJ,QAAQ,KAAK,IAAIA,QAAQ,EAAE;YAClC,UAAU;gBAACA;aAAQ;QACrB;IAEJ;IAEA,OAAOD;AACT;AAEA,MAAMF,6BAA6B,CAACC;IAClC,MAAMO,KAAKP,SAAS,GAAG,CAAC,CAACI,OAASA,KAAK,EAAE,EAAE,IAAI,CAAC;IAChD,MAAMI,QAAQR,SAAS,GAAG,CAAC,CAACI,OAASA,KAAK,KAAK,IAAIA,KAAK,EAAE,EAAE,IAAI,CAAC;IACjE,OAAO;QACL;YACEG;YACAC;YACA,UAAUR;QACZ;KACD;AACH"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/measures/buildMeasures.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/buildMeasures.ts"],"sourcesContent":["import type { AdvancedPipe, MeasureEncoding, Measures } from 'src/types'\n\nimport { DEFAULT_PARENT_ID } from 'src/pipeline/utils/constant'\nimport { ensureParentIdInitialized, isCommonMeasureEncoding } from './utils'\n\nexport const buildMeasures = (encodingKeys: string[]): AdvancedPipe => {\n return (advancedVSeed) => {\n const { measures = [] } = advancedVSeed\n const measuresByView = {} as { [key: string]: Measures }\n const parentIds: string[] = []\n\n for (let index = 0; index < measures.length; index++) {\n const item = measures[index]\n const encoding = item.encoding\n const parentId = item.parentId || DEFAULT_PARENT_ID\n\n const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding as MeasureEncoding)\n\n ensureParentIdInitialized(parentId, measuresByView, parentIds)\n\n if (encodingKeys.includes(encoding as string)) {\n measuresByView[parentId].push(item)\n } else if (!isOtherEncoding) {\n item.encoding = encodingKeys[0] as MeasureEncoding\n measuresByView[parentId].push(item)\n }\n }\n\n advancedVSeed.reshapeMeasures = parentIds.map((pid) => measuresByView[pid]).filter((m) => m.length > 0)\n\n return advancedVSeed\n }\n}\n"],"names":["buildMeasures","encodingKeys","advancedVSeed","measures","measuresByView","parentIds","index","item","encoding","parentId","DEFAULT_PARENT_ID","isOtherEncoding","isCommonMeasureEncoding","ensureParentIdInitialized","pid","m"],"mappings":";;AAKO,MAAMA,gBAAgB,CAACC,eACrB,CAACC;QACN,MAAM,EAAEC,WAAW,EAAE,EAAE,GAAGD;QAC1B,MAAME,iBAAiB,CAAC;QACxB,MAAMC,YAAsB,EAAE;QAE9B,IAAK,IAAIC,QAAQ,GAAGA,QAAQH,SAAS,MAAM,EAAEG,QAAS;YACpD,MAAMC,OAAOJ,QAAQ,CAACG,MAAM;YAC5B,MAAME,WAAWD,KAAK,QAAQ;YAC9B,MAAME,WAAWF,KAAK,QAAQ,IAAIG;YAElC,MAAMC,kBAAkBJ,KAAK,QAAQ,IAAIK,wBAAwBJ;YAEjEK,0BAA0BJ,UAAUL,gBAAgBC;YAEpD,IAAIJ,aAAa,QAAQ,CAACO,WACxBJ,cAAc,CAACK,SAAS,CAAC,IAAI,CAACF;iBACzB,IAAI,CAACI,iBAAiB;gBAC3BJ,KAAK,QAAQ,GAAGN,YAAY,CAAC,EAAE;gBAC/BG,cAAc,CAACK,SAAS,CAAC,IAAI,CAACF;YAChC;QACF;QAEAL,cAAc,eAAe,GAAGG,UAAU,GAAG,CAAC,CAACS,MAAQV,cAAc,CAACU,IAAI,EAAE,MAAM,CAAC,CAACC,IAAMA,EAAE,MAAM,GAAG;QAErG,OAAOb;IACT"}
@@ -1,126 +1,33 @@
1
- import { isMeasureTreeWithChildren, isMeasureTreeWithParentId } from "./utils.js";
2
- import { clone } from "remeda";
3
1
  import { DEFAULT_PARENT_ID } from "../../../../utils/constant.js";
4
- const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
5
- const { vseed } = context;
6
- if (isMeasureTreeWithChildren(advancedVSeed.measures)) return advancedVSeed;
7
- if (isMeasureTreeWithParentId(advancedVSeed.measures)) {
8
- advancedVSeed.measures = generateMeasuresByParentId(advancedVSeed.measures);
9
- return advancedVSeed;
10
- }
11
- if (vseed.dualMeasures) {
12
- advancedVSeed.measures = dualMeasuresToMeasureTree(clone(vseed.dualMeasures));
13
- return advancedVSeed;
14
- }
15
- const { dualMeasures, encodedMeasures } = basicMeasuresToDualMeasures(advancedVSeed.measures || []);
16
- advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures);
17
- if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
18
- advancedVSeed.measures.push(m);
19
- });
20
- return advancedVSeed;
21
- };
22
- const basicMeasuresToDualMeasures = (basicMeasures)=>{
23
- const primaryMeasures = [];
24
- const secondaryMeasures = [];
25
- const encodedMeasures = [];
26
- for(let index = 0; index < basicMeasures.length; index++){
27
- const item = basicMeasures[index];
2
+ import { ensureParentIdInitialized, isCommonMeasureEncoding } from "./utils.js";
3
+ import { DEFAULT_DUAL_CHART_TYPE, isDualAxisChartType } from "../../../../utils/chatType.js";
4
+ const buildMeasuresForDualAxis = (advancedVSeed)=>{
5
+ const { measures = [] } = advancedVSeed;
6
+ const measuresByView = {};
7
+ const parentIds = [];
8
+ for(let index = 0; index < measures.length; index++){
9
+ const item = measures[index];
28
10
  const encoding = item.encoding;
11
+ const parentId = item.parentId || DEFAULT_PARENT_ID;
29
12
  const isPrimaryYAxis = 'primaryYAxis' === encoding;
30
13
  const isSecondaryYAxis = 'secondaryYAxis' === encoding;
31
- const isOtherEncoding = item.encoding && [
32
- 'color',
33
- 'label',
34
- 'tooltip',
35
- 'detail'
36
- ].includes(item.encoding);
37
- if (isPrimaryYAxis) primaryMeasures.push(item);
38
- else if (isSecondaryYAxis) secondaryMeasures.push(item);
39
- else if (isOtherEncoding) encodedMeasures.push(item);
40
- else if (0 === index) primaryMeasures.push(item);
41
- else secondaryMeasures.push(item);
42
- }
43
- return {
44
- dualMeasures: [
45
- {
46
- id: 'dualMeasures',
47
- primaryMeasures,
48
- secondaryMeasures
49
- }
50
- ],
51
- encodedMeasures
52
- };
53
- };
54
- const dualMeasuresToMeasureTree = (dualMeasures)=>{
55
- const measureTree = dualMeasures.map((item, index)=>{
56
- const { id, primaryMeasures, secondaryMeasures } = item;
57
- const groupChildren = [];
58
- let groupId = `${id}-`;
59
- if (primaryMeasures) {
60
- const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
61
- primaryMeasures
62
- ];
63
- const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
64
- groupId += alias;
65
- groupChildren.push({
66
- id: `${index}-primary`,
67
- alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
68
- children: arrPrimaryMeasures
69
- });
70
- }
71
- if (secondaryMeasures) {
72
- const arrSecondaryMeasures = Array.isArray(secondaryMeasures) ? secondaryMeasures : [
73
- secondaryMeasures
74
- ];
75
- const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
76
- groupId += alias;
77
- groupChildren.push({
78
- id: `${index}-secondary`,
79
- alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
80
- children: arrSecondaryMeasures
81
- });
14
+ const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
15
+ ensureParentIdInitialized(parentId, measuresByView, parentIds);
16
+ if (isPrimaryYAxis) {
17
+ measuresByView[parentId].push(item);
18
+ if (!isDualAxisChartType(item.chartType)) item.chartType = DEFAULT_DUAL_CHART_TYPE.primary;
19
+ } else if (isSecondaryYAxis) {
20
+ measuresByView[parentId].push(item);
21
+ if (!isDualAxisChartType(item.chartType)) item.chartType = DEFAULT_DUAL_CHART_TYPE.secondary;
22
+ } else if (!isOtherEncoding) {
23
+ const primaryCount = measuresByView[parentId].filter((m)=>'primaryYAxis' === m.encoding).length;
24
+ item.encoding = 0 === primaryCount ? 'primaryYAxis' : 'secondaryYAxis';
25
+ if (!isDualAxisChartType(item.chartType)) item.chartType = 'primaryYAxis' === item.encoding ? DEFAULT_DUAL_CHART_TYPE.primary : DEFAULT_DUAL_CHART_TYPE.secondary;
26
+ measuresByView[parentId].push(item);
82
27
  }
83
- return {
84
- id: groupId,
85
- alias: groupId,
86
- children: groupChildren
87
- };
88
- });
89
- if (1 === dualMeasures.length) return measureTree[0].children || [];
90
- return measureTree;
91
- };
92
- const generateMeasuresByParentId = (measures)=>{
93
- const dualMeasures = [];
94
- const encodedMeasures = [];
95
- measures.forEach((item)=>{
96
- const id = item.parentId || DEFAULT_PARENT_ID;
97
- if (!dualMeasures.find((d)=>d.id === id)) dualMeasures.push({
98
- id,
99
- primaryMeasures: [],
100
- secondaryMeasures: []
101
- });
102
- const dualChart = dualMeasures.find((d)=>d.id === id);
103
- if (!dualChart || !Array.isArray(dualChart.primaryMeasures) || !Array.isArray(dualChart.secondaryMeasures)) return;
104
- const encoding = item.encoding;
105
- const isPrimaryYAxis = 'primaryYAxis' === encoding;
106
- const isSecondaryYAxis = 'secondaryYAxis' === encoding;
107
- const isOtherEncoding = item.encoding && [
108
- 'color',
109
- 'label',
110
- 'tooltip',
111
- 'detail'
112
- ].includes(item.encoding);
113
- if (isPrimaryYAxis) dualChart.primaryMeasures.push(item);
114
- else if (isSecondaryYAxis) dualChart.secondaryMeasures.push(item);
115
- else if (isOtherEncoding) encodedMeasures.push(item);
116
- else if (0 === dualChart.primaryMeasures.length) dualChart.primaryMeasures.push(item);
117
- else dualChart.secondaryMeasures.push(item);
118
- });
119
- const res = dualMeasuresToMeasureTree(dualMeasures);
120
- if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
121
- res.push(m);
122
- });
123
- return res;
28
+ }
29
+ advancedVSeed.reshapeMeasures = parentIds.map((pid)=>measuresByView[pid]).filter((m)=>m.length > 0);
30
+ return advancedVSeed;
124
31
  };
125
32
  export { buildMeasuresForDualAxis };
126
33
 
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.ts"],"sourcesContent":["import type { AdvancedPipe, DualAxis, DualMeasures, MeasureGroup, Measures, MeasureTree } from 'src/types'\nimport { isMeasureTreeWithParentId, isMeasureTreeWithChildren } from './utils'\nimport { clone } from 'remeda'\nimport { DEFAULT_PARENT_ID } from 'src/pipeline/utils/constant'\n\nexport const buildMeasuresForDualAxis: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context as {\n vseed: DualAxis\n }\n\n // 带Children的指标树, 不进行任何处理\n if (isMeasureTreeWithChildren(advancedVSeed.measures)) {\n return advancedVSeed\n }\n // 带parentId的指标树, 转换为带children的指标树\n if (isMeasureTreeWithParentId(advancedVSeed.measures)) {\n advancedVSeed.measures = generateMeasuresByParentId(advancedVSeed.measures as Measures)\n return advancedVSeed\n }\n\n if (vseed.dualMeasures) {\n advancedVSeed.measures = dualMeasuresToMeasureTree(clone(vseed.dualMeasures))\n\n return advancedVSeed\n }\n\n const { dualMeasures, encodedMeasures } = basicMeasuresToDualMeasures(advancedVSeed.measures || [])\n advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures)\n\n if (encodedMeasures.length) {\n encodedMeasures.forEach((m) => {\n advancedVSeed.measures!.push(m)\n })\n }\n\n return advancedVSeed\n}\n\nconst basicMeasuresToDualMeasures = (basicMeasures: Measures) => {\n const primaryMeasures: Measures = []\n const secondaryMeasures: Measures = []\n const encodedMeasures: Measures = []\n\n for (let index = 0; index < basicMeasures.length; index++) {\n const item = basicMeasures[index]\n const encoding = item.encoding\n const isPrimaryYAxis = encoding === 'primaryYAxis'\n const isSecondaryYAxis = encoding === 'secondaryYAxis'\n const isOtherEncoding = item.encoding && ['color', 'label', 'tooltip', 'detail'].includes(item.encoding)\n\n if (isPrimaryYAxis) {\n primaryMeasures.push(item)\n } else if (isSecondaryYAxis) {\n secondaryMeasures.push(item)\n } else if (!isOtherEncoding) {\n if (index === 0) {\n primaryMeasures.push(item)\n } else {\n secondaryMeasures.push(item)\n }\n } else {\n encodedMeasures.push(item)\n }\n }\n\n return {\n dualMeasures: [{ id: 'dualMeasures', primaryMeasures, secondaryMeasures }],\n encodedMeasures,\n }\n}\n\nconst dualMeasuresToMeasureTree = (dualMeasures: DualMeasures): MeasureTree => {\n const measureTree = dualMeasures.map((item, index): MeasureGroup => {\n const { id, primaryMeasures, secondaryMeasures } = item\n const groupChildren: MeasureGroup[] = []\n\n let groupId: string = `${id}-`\n if (primaryMeasures) {\n const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [primaryMeasures]\n const alias = arrPrimaryMeasures.map((item) => item.alias || item.id).toString()\n groupId += alias\n groupChildren.push({\n id: `${index}-primary`,\n alias: arrPrimaryMeasures.map((item) => item.alias || item.id).toString(),\n children: arrPrimaryMeasures,\n })\n }\n if (secondaryMeasures) {\n const arrSecondaryMeasures = Array.isArray(secondaryMeasures) ? secondaryMeasures : [secondaryMeasures]\n const alias = arrSecondaryMeasures.map((item) => item.alias || item.id).toString()\n groupId += alias\n groupChildren.push({\n id: `${index}-secondary`,\n alias: arrSecondaryMeasures.map((item) => item.alias || item.id).toString(),\n children: arrSecondaryMeasures,\n })\n }\n\n return {\n id: groupId,\n alias: groupId,\n children: groupChildren,\n }\n })\n\n // 只有1个双轴图, 仅返回2层, vchart 绘制双轴图\n if (dualMeasures.length === 1) {\n return measureTree[0].children || []\n }\n\n // 有多个双轴图, 返回3层, pivot chart 绘制组合双轴图\n return measureTree\n}\n\nconst generateMeasuresByParentId = (measures: Measures) => {\n const dualMeasures: DualMeasures = []\n const encodedMeasures: Measures = []\n\n measures.forEach((item) => {\n const id = item.parentId || DEFAULT_PARENT_ID\n if (!dualMeasures.find((d) => d.id === id)) {\n dualMeasures.push({\n id,\n primaryMeasures: [],\n secondaryMeasures: [],\n })\n }\n\n const dualChart = dualMeasures.find((d) => d.id === id)\n if (!dualChart || !Array.isArray(dualChart.primaryMeasures) || !Array.isArray(dualChart.secondaryMeasures)) {\n return\n }\n\n const encoding = item.encoding\n const isPrimaryYAxis = encoding === 'primaryYAxis'\n const isSecondaryYAxis = encoding === 'secondaryYAxis'\n const isOtherEncoding = item.encoding && ['color', 'label', 'tooltip', 'detail'].includes(item.encoding)\n\n if (isPrimaryYAxis) {\n dualChart.primaryMeasures.push(item)\n } else if (isSecondaryYAxis) {\n dualChart.secondaryMeasures.push(item)\n } else if (!isOtherEncoding) {\n if (dualChart.primaryMeasures.length === 0) {\n dualChart.primaryMeasures.push(item)\n } else {\n dualChart.secondaryMeasures.push(item)\n }\n } else {\n encodedMeasures.push(item)\n }\n })\n\n const res = dualMeasuresToMeasureTree(dualMeasures)\n\n if (encodedMeasures.length) {\n encodedMeasures.forEach((m) => {\n res.push(m)\n })\n }\n\n return res\n}\n"],"names":["buildMeasuresForDualAxis","advancedVSeed","context","vseed","isMeasureTreeWithChildren","isMeasureTreeWithParentId","generateMeasuresByParentId","dualMeasuresToMeasureTree","clone","dualMeasures","encodedMeasures","basicMeasuresToDualMeasures","m","basicMeasures","primaryMeasures","secondaryMeasures","index","item","encoding","isPrimaryYAxis","isSecondaryYAxis","isOtherEncoding","measureTree","id","groupChildren","groupId","arrPrimaryMeasures","Array","alias","arrSecondaryMeasures","measures","DEFAULT_PARENT_ID","d","dualChart","res"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.ts"],"sourcesContent":["import type { AdvancedPipe, DualAxisMeasure, MeasureEncoding, Measures } from 'src/types'\nimport { DEFAULT_PARENT_ID } from 'src/pipeline/utils/constant'\nimport { ensureParentIdInitialized, isCommonMeasureEncoding } from './utils'\nimport { DEFAULT_DUAL_CHART_TYPE, isDualAxisChartType } from 'src/pipeline/utils/chatType'\n\nexport const buildMeasuresForDualAxis: AdvancedPipe = (advancedVSeed) => {\n const { measures = [] } = advancedVSeed\n const measuresByView = {} as { [key: string]: Measures }\n const parentIds: string[] = []\n\n for (let index = 0; index < measures.length; index++) {\n const item = measures[index]\n const encoding = item.encoding\n const parentId = item.parentId || DEFAULT_PARENT_ID\n const isPrimaryYAxis = encoding === 'primaryYAxis'\n const isSecondaryYAxis = encoding === 'secondaryYAxis'\n const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding as MeasureEncoding)\n\n ensureParentIdInitialized(parentId, measuresByView, parentIds)\n\n if (isPrimaryYAxis) {\n measuresByView[parentId].push(item)\n\n if (!isDualAxisChartType((item as DualAxisMeasure).chartType)) {\n ;(item as any).chartType = DEFAULT_DUAL_CHART_TYPE.primary\n }\n } else if (isSecondaryYAxis) {\n measuresByView[parentId].push(item)\n\n if (!isDualAxisChartType((item as DualAxisMeasure).chartType)) {\n ;(item as any).chartType = DEFAULT_DUAL_CHART_TYPE.secondary\n }\n } else if (!isOtherEncoding) {\n const primaryCount = measuresByView[parentId].filter((m) => m.encoding === 'primaryYAxis').length\n item.encoding = primaryCount === 0 ? 'primaryYAxis' : 'secondaryYAxis'\n\n if (!isDualAxisChartType((item as DualAxisMeasure).chartType)) {\n ;(item as any).chartType =\n item.encoding === 'primaryYAxis' ? DEFAULT_DUAL_CHART_TYPE.primary : DEFAULT_DUAL_CHART_TYPE.secondary\n }\n\n measuresByView[parentId].push(item)\n }\n }\n\n advancedVSeed.reshapeMeasures = parentIds.map((pid) => measuresByView[pid]).filter((m) => m.length > 0)\n\n return advancedVSeed\n}\n"],"names":["buildMeasuresForDualAxis","advancedVSeed","measures","measuresByView","parentIds","index","item","encoding","parentId","DEFAULT_PARENT_ID","isPrimaryYAxis","isSecondaryYAxis","isOtherEncoding","isCommonMeasureEncoding","ensureParentIdInitialized","isDualAxisChartType","DEFAULT_DUAL_CHART_TYPE","primaryCount","m","pid"],"mappings":";;;AAKO,MAAMA,2BAAyC,CAACC;IACrD,MAAM,EAAEC,WAAW,EAAE,EAAE,GAAGD;IAC1B,MAAME,iBAAiB,CAAC;IACxB,MAAMC,YAAsB,EAAE;IAE9B,IAAK,IAAIC,QAAQ,GAAGA,QAAQH,SAAS,MAAM,EAAEG,QAAS;QACpD,MAAMC,OAAOJ,QAAQ,CAACG,MAAM;QAC5B,MAAME,WAAWD,KAAK,QAAQ;QAC9B,MAAME,WAAWF,KAAK,QAAQ,IAAIG;QAClC,MAAMC,iBAAiBH,AAAa,mBAAbA;QACvB,MAAMI,mBAAmBJ,AAAa,qBAAbA;QACzB,MAAMK,kBAAkBN,KAAK,QAAQ,IAAIO,wBAAwBN;QAEjEO,0BAA0BN,UAAUL,gBAAgBC;QAEpD,IAAIM,gBAAgB;YAClBP,cAAc,CAACK,SAAS,CAAC,IAAI,CAACF;YAE9B,IAAI,CAACS,oBAAqBT,KAAyB,SAAS,GACxDA,KAAa,SAAS,GAAGU,wBAAwB,OAAO;QAE9D,OAAO,IAAIL,kBAAkB;YAC3BR,cAAc,CAACK,SAAS,CAAC,IAAI,CAACF;YAE9B,IAAI,CAACS,oBAAqBT,KAAyB,SAAS,GACxDA,KAAa,SAAS,GAAGU,wBAAwB,SAAS;QAEhE,OAAO,IAAI,CAACJ,iBAAiB;YAC3B,MAAMK,eAAed,cAAc,CAACK,SAAS,CAAC,MAAM,CAAC,CAACU,IAAMA,AAAe,mBAAfA,EAAE,QAAQ,EAAqB,MAAM;YACjGZ,KAAK,QAAQ,GAAGW,AAAiB,MAAjBA,eAAqB,iBAAiB;YAEtD,IAAI,CAACF,oBAAqBT,KAAyB,SAAS,GACxDA,KAAa,SAAS,GACtBA,AAAkB,mBAAlBA,KAAK,QAAQ,GAAsBU,wBAAwB,OAAO,GAAGA,wBAAwB,SAAS;YAG1Gb,cAAc,CAACK,SAAS,CAAC,IAAI,CAACF;QAChC;IACF;IAEAL,cAAc,eAAe,GAAGG,UAAU,GAAG,CAAC,CAACe,MAAQhB,cAAc,CAACgB,IAAI,EAAE,MAAM,CAAC,CAACD,IAAMA,EAAE,MAAM,GAAG;IAErG,OAAOjB;AACT"}
@@ -1,126 +1,41 @@
1
- import { isMeasureTreeWithChildren, isMeasureTreeWithParentId } from "./utils.js";
2
1
  import { clone } from "remeda";
3
2
  import { DEFAULT_PARENT_ID } from "../../../../utils/constant.js";
4
- const buildMeasuresForScatter = (advancedVSeed, context)=>{
5
- const { vseed } = context;
6
- if (isMeasureTreeWithChildren(advancedVSeed.measures)) return advancedVSeed;
7
- if (isMeasureTreeWithParentId(advancedVSeed.measures)) {
8
- advancedVSeed.measures = generateMeasuresByParentId(advancedVSeed.measures);
9
- return advancedVSeed;
10
- }
11
- if (vseed.scatterMeasures) {
12
- advancedVSeed.measures = scatterMeasuresToMeasureTree(clone(vseed.scatterMeasures));
13
- return advancedVSeed;
14
- }
15
- const { scatterMeasures, encodedMeasures } = basicMeasuresToScatterMeasures(advancedVSeed.measures || []);
16
- advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures);
17
- if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
18
- advancedVSeed.measures.push(m);
19
- });
20
- return advancedVSeed;
21
- };
22
- const basicMeasuresToScatterMeasures = (basicMeasures)=>{
23
- const yMeasures = [];
24
- const xMeasures = [];
25
- const encodedMeasures = [];
26
- for(let index = 0; index < basicMeasures.length; index++){
27
- const item = basicMeasures[index];
3
+ import { ensureParentIdInitialized, isCommonMeasureEncoding } from "./utils.js";
4
+ const buildMeasuresForScatter = (advancedVSeed)=>{
5
+ const { measures = [] } = advancedVSeed;
6
+ const measuresByView = {};
7
+ const parentIds = [];
8
+ for(let index = 0; index < measures.length; index++){
9
+ const item = measures[index];
28
10
  const encoding = item.encoding;
11
+ const parentId = item.parentId || DEFAULT_PARENT_ID;
29
12
  const isYAxis = 'yAxis' === encoding;
30
13
  const isXAxis = 'xAxis' === encoding;
31
- const isOther = encoding && [
32
- 'color',
33
- 'label',
34
- 'tooltip',
35
- 'detail'
36
- ].includes(encoding);
37
- if (isYAxis) yMeasures.push(item);
38
- else if (isXAxis) xMeasures.push(item);
39
- else if (isOther) encodedMeasures.push(item);
40
- else if (0 !== index) yMeasures.push(item);
41
- else xMeasures.push(item);
42
- }
43
- if (0 === yMeasures.length && xMeasures.length > 0) yMeasures.push(xMeasures[0]);
44
- return {
45
- scatterMeasures: [
46
- {
47
- id: 'scatterMeasures',
48
- xMeasures,
49
- yMeasures
50
- }
51
- ],
52
- encodedMeasures
53
- };
54
- };
55
- const scatterMeasuresToMeasureTree = (scatterMeasures)=>{
56
- const measureTree = scatterMeasures.map((item, index)=>{
57
- const { id, xMeasures, yMeasures } = item;
58
- const groupChildren = [];
59
- let groupId = `${id}-`;
60
- if (xMeasures) {
61
- const arrPrimaryMeasures = Array.isArray(xMeasures) ? xMeasures : [
62
- xMeasures
63
- ];
64
- const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
65
- groupId += alias;
66
- groupChildren.push({
67
- id: `${index}-x`,
68
- alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
69
- children: arrPrimaryMeasures
70
- });
14
+ const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
15
+ ensureParentIdInitialized(parentId, measuresByView, parentIds);
16
+ if (isYAxis) measuresByView[parentId].push(item);
17
+ else if (isXAxis) measuresByView[parentId].push(item);
18
+ else if (!isOtherEncoding && 'size' !== encoding) {
19
+ const xCount = measuresByView[parentId].filter((m)=>'xAxis' === m.encoding).length;
20
+ item.encoding = 0 === xCount ? 'xAxis' : 'yAxis';
21
+ measuresByView[parentId].push(item);
71
22
  }
72
- if (yMeasures) {
73
- const arrSecondaryMeasures = Array.isArray(yMeasures) ? yMeasures : [
74
- yMeasures
23
+ }
24
+ advancedVSeed.reshapeMeasures = parentIds.map((pid)=>{
25
+ const basicMeasures = measuresByView[pid];
26
+ const xCount = basicMeasures.filter((m)=>'xAxis' === m.encoding).length;
27
+ const yCount = basicMeasures.filter((m)=>'yAxis' === m.encoding).length;
28
+ if (0 === yCount && xCount > 0) {
29
+ const cloneMeasure = clone(basicMeasures[0]);
30
+ cloneMeasure.encoding = 'yAxis';
31
+ return [
32
+ ...basicMeasures,
33
+ cloneMeasure
75
34
  ];
76
- const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
77
- groupId += alias;
78
- groupChildren.push({
79
- id: `${index}-y`,
80
- alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
81
- children: arrSecondaryMeasures
82
- });
83
35
  }
84
- return {
85
- id: groupId,
86
- alias: groupId,
87
- children: groupChildren
88
- };
89
- });
90
- if (1 === scatterMeasures.length) return measureTree[0].children || [];
91
- return measureTree;
92
- };
93
- const generateMeasuresByParentId = (measures)=>{
94
- const scatterMeasures = [];
95
- const encodedMeasures = [];
96
- measures.forEach((item)=>{
97
- const id = item.parentId || DEFAULT_PARENT_ID;
98
- if (!scatterMeasures.find((d)=>d.id === id)) scatterMeasures.push({
99
- id,
100
- yMeasures: [],
101
- xMeasures: []
102
- });
103
- const scatterChart = scatterMeasures.find((d)=>d.id === id);
104
- if (!scatterChart || !Array.isArray(scatterChart.yMeasures) || !Array.isArray(scatterChart.xMeasures)) return;
105
- const isYAxis = 'yAxis' === item.encoding;
106
- const isXAxis = 'xAxis' === item.encoding;
107
- const isOther = item.encoding && [
108
- 'color',
109
- 'label',
110
- 'tooltip',
111
- 'detail'
112
- ].includes(item.encoding);
113
- if (isYAxis) scatterChart.yMeasures.push(item);
114
- else if (isXAxis) scatterChart.xMeasures.push(item);
115
- else if (isOther) encodedMeasures.push(item);
116
- else if (0 !== scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
117
- else scatterChart.xMeasures.push(item);
118
- });
119
- const res = scatterMeasuresToMeasureTree(scatterMeasures);
120
- if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
121
- res.push(m);
122
- });
123
- return res;
36
+ return basicMeasures;
37
+ }).filter((m)=>m.length > 0);
38
+ return advancedVSeed;
124
39
  };
125
40
  export { buildMeasuresForScatter };
126
41
 
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.ts"],"sourcesContent":["import type { AdvancedPipe, MeasureGroup, Measures, MeasureTree, Scatter, ScatterMeasures } from 'src/types'\nimport { isMeasureTreeWithParentId, isMeasureTreeWithChildren } from './utils'\nimport { clone } from 'remeda'\nimport { DEFAULT_PARENT_ID } from 'src/pipeline/utils/constant'\n\nexport const buildMeasuresForScatter: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context as {\n vseed: Scatter\n }\n\n // 带Children的指标树, 不进行任何处理\n if (isMeasureTreeWithChildren(advancedVSeed.measures)) {\n return advancedVSeed\n }\n // 带parentId的指标树, 转换为带children的指标树\n if (isMeasureTreeWithParentId(advancedVSeed.measures)) {\n advancedVSeed.measures = generateMeasuresByParentId(advancedVSeed.measures as Measures)\n return advancedVSeed\n }\n\n /**\n * 既不是带Children的指标树, 也不是带parentId的指标树, 则自动生成指标\n */\n\n if (vseed.scatterMeasures) {\n advancedVSeed.measures = scatterMeasuresToMeasureTree(clone(vseed.scatterMeasures))\n\n return advancedVSeed\n }\n\n const { scatterMeasures, encodedMeasures } = basicMeasuresToScatterMeasures(advancedVSeed.measures || [])\n advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures)\n\n if (encodedMeasures.length) {\n encodedMeasures.forEach((m) => {\n advancedVSeed.measures!.push(m)\n })\n }\n\n return advancedVSeed\n}\n\nconst basicMeasuresToScatterMeasures = (basicMeasures: Measures) => {\n const yMeasures: Measures = []\n const xMeasures: Measures = []\n const encodedMeasures: Measures = []\n\n for (let index = 0; index < basicMeasures.length; index++) {\n const item = basicMeasures[index]\n const encoding = item.encoding\n const isYAxis = encoding === 'yAxis'\n const isXAxis = encoding === 'xAxis'\n const isOther = encoding && ['color', 'label', 'tooltip', 'detail'].includes(encoding)\n\n if (isYAxis) {\n yMeasures.push(item)\n } else if (isXAxis) {\n xMeasures.push(item)\n } else if (!isOther) {\n if (index !== 0) {\n yMeasures.push(item)\n } else {\n xMeasures.push(item)\n }\n } else {\n encodedMeasures.push(item)\n }\n }\n\n if (yMeasures.length === 0 && xMeasures.length > 0) {\n yMeasures.push(xMeasures[0])\n }\n\n return {\n scatterMeasures: [{ id: 'scatterMeasures', xMeasures, yMeasures }],\n encodedMeasures,\n }\n}\n\nconst scatterMeasuresToMeasureTree = (scatterMeasures: ScatterMeasures): MeasureTree => {\n const measureTree = scatterMeasures.map((item, index): MeasureGroup => {\n const { id, xMeasures, yMeasures } = item\n const groupChildren: MeasureGroup[] = []\n\n let groupId: string = `${id}-`\n if (xMeasures) {\n const arrPrimaryMeasures = Array.isArray(xMeasures) ? xMeasures : [xMeasures]\n const alias = arrPrimaryMeasures.map((item) => item.alias || item.id).toString()\n groupId += alias\n groupChildren.push({\n id: `${index}-x`,\n alias: arrPrimaryMeasures.map((item) => item.alias || item.id).toString(),\n children: arrPrimaryMeasures,\n })\n }\n if (yMeasures) {\n const arrSecondaryMeasures = Array.isArray(yMeasures) ? yMeasures : [yMeasures]\n const alias = arrSecondaryMeasures.map((item) => item.alias || item.id).toString()\n groupId += alias\n groupChildren.push({\n id: `${index}-y`,\n alias: arrSecondaryMeasures.map((item) => item.alias || item.id).toString(),\n children: arrSecondaryMeasures,\n })\n }\n\n return {\n id: groupId,\n alias: groupId,\n children: groupChildren,\n }\n })\n\n // 只有1个散点图, 仅返回2层, vchart 绘制散点图\n if (scatterMeasures.length === 1) {\n return measureTree[0].children || []\n }\n\n // 有多个散点图, 返回3层, pivot chart 绘制组合散点图\n return measureTree\n}\n\nconst generateMeasuresByParentId = (measures: Measures) => {\n const scatterMeasures: ScatterMeasures = []\n const encodedMeasures: Measures = []\n\n measures.forEach((item) => {\n const id = item.parentId || DEFAULT_PARENT_ID\n\n if (!scatterMeasures.find((d) => d.id === id)) {\n scatterMeasures.push({\n id,\n yMeasures: [],\n xMeasures: [],\n })\n }\n const scatterChart = scatterMeasures.find((d) => d.id === id)\n if (!scatterChart || !Array.isArray(scatterChart.yMeasures) || !Array.isArray(scatterChart.xMeasures)) {\n return\n }\n\n const isYAxis = item.encoding === 'yAxis'\n const isXAxis = item.encoding === 'xAxis'\n const isOther = item.encoding && ['color', 'label', 'tooltip', 'detail'].includes(item.encoding)\n\n if (isYAxis) {\n scatterChart.yMeasures.push(item)\n } else if (isXAxis) {\n scatterChart.xMeasures.push(item)\n } else if (!isOther) {\n if (scatterChart.yMeasures.length !== 0) {\n scatterChart.yMeasures.push(item)\n } else {\n scatterChart.xMeasures.push(item)\n }\n } else {\n encodedMeasures.push(item)\n }\n })\n\n const res = scatterMeasuresToMeasureTree(scatterMeasures)\n\n if (encodedMeasures.length) {\n encodedMeasures.forEach((m) => {\n res.push(m)\n })\n }\n\n return res\n}\n"],"names":["buildMeasuresForScatter","advancedVSeed","context","vseed","isMeasureTreeWithChildren","isMeasureTreeWithParentId","generateMeasuresByParentId","scatterMeasuresToMeasureTree","clone","scatterMeasures","encodedMeasures","basicMeasuresToScatterMeasures","m","basicMeasures","yMeasures","xMeasures","index","item","encoding","isYAxis","isXAxis","isOther","measureTree","id","groupChildren","groupId","arrPrimaryMeasures","Array","alias","arrSecondaryMeasures","measures","DEFAULT_PARENT_ID","d","scatterChart","res"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.ts"],"sourcesContent":["import type { AdvancedPipe, MeasureEncoding, Measures } from 'src/types'\nimport { clone } from 'remeda'\nimport { DEFAULT_PARENT_ID } from 'src/pipeline/utils/constant'\nimport { ensureParentIdInitialized, isCommonMeasureEncoding } from './utils'\n\nexport const buildMeasuresForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures = [] } = advancedVSeed\n const measuresByView = {} as { [key: string]: Measures }\n const parentIds: string[] = []\n\n for (let index = 0; index < measures.length; index++) {\n const item = measures[index]\n const encoding = item.encoding\n const parentId = item.parentId || DEFAULT_PARENT_ID\n const isYAxis = encoding === 'yAxis'\n const isXAxis = encoding === 'xAxis'\n const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding as MeasureEncoding)\n\n ensureParentIdInitialized(parentId, measuresByView, parentIds)\n\n if (isYAxis) {\n measuresByView[parentId].push(item)\n } else if (isXAxis) {\n measuresByView[parentId].push(item)\n } else if (!isOtherEncoding && encoding !== 'size') {\n const xCount = measuresByView[parentId].filter((m) => m.encoding === 'xAxis').length\n item.encoding = xCount === 0 ? 'xAxis' : 'yAxis'\n measuresByView[parentId].push(item)\n }\n }\n\n advancedVSeed.reshapeMeasures = parentIds\n .map((pid) => {\n const basicMeasures = measuresByView[pid]\n const xCount = basicMeasures.filter((m) => m.encoding === 'xAxis').length\n const yCount = basicMeasures.filter((m) => m.encoding === 'yAxis').length\n\n if (yCount === 0 && xCount > 0) {\n const cloneMeasure = clone(basicMeasures[0])\n cloneMeasure.encoding = 'yAxis'\n\n return [...basicMeasures, cloneMeasure]\n }\n\n return basicMeasures\n })\n .filter((m) => m.length > 0)\n\n return advancedVSeed\n}\n"],"names":["buildMeasuresForScatter","advancedVSeed","measures","measuresByView","parentIds","index","item","encoding","parentId","DEFAULT_PARENT_ID","isYAxis","isXAxis","isOtherEncoding","isCommonMeasureEncoding","ensureParentIdInitialized","xCount","m","pid","basicMeasures","yCount","cloneMeasure","clone"],"mappings":";;;AAKO,MAAMA,0BAAwC,CAACC;IACpD,MAAM,EAAEC,WAAW,EAAE,EAAE,GAAGD;IAC1B,MAAME,iBAAiB,CAAC;IACxB,MAAMC,YAAsB,EAAE;IAE9B,IAAK,IAAIC,QAAQ,GAAGA,QAAQH,SAAS,MAAM,EAAEG,QAAS;QACpD,MAAMC,OAAOJ,QAAQ,CAACG,MAAM;QAC5B,MAAME,WAAWD,KAAK,QAAQ;QAC9B,MAAME,WAAWF,KAAK,QAAQ,IAAIG;QAClC,MAAMC,UAAUH,AAAa,YAAbA;QAChB,MAAMI,UAAUJ,AAAa,YAAbA;QAChB,MAAMK,kBAAkBN,KAAK,QAAQ,IAAIO,wBAAwBN;QAEjEO,0BAA0BN,UAAUL,gBAAgBC;QAEpD,IAAIM,SACFP,cAAc,CAACK,SAAS,CAAC,IAAI,CAACF;aACzB,IAAIK,SACTR,cAAc,CAACK,SAAS,CAAC,IAAI,CAACF;aACzB,IAAI,CAACM,mBAAmBL,AAAa,WAAbA,UAAqB;YAClD,MAAMQ,SAASZ,cAAc,CAACK,SAAS,CAAC,MAAM,CAAC,CAACQ,IAAMA,AAAe,YAAfA,EAAE,QAAQ,EAAc,MAAM;YACpFV,KAAK,QAAQ,GAAGS,AAAW,MAAXA,SAAe,UAAU;YACzCZ,cAAc,CAACK,SAAS,CAAC,IAAI,CAACF;QAChC;IACF;IAEAL,cAAc,eAAe,GAAGG,UAC7B,GAAG,CAAC,CAACa;QACJ,MAAMC,gBAAgBf,cAAc,CAACc,IAAI;QACzC,MAAMF,SAASG,cAAc,MAAM,CAAC,CAACF,IAAMA,AAAe,YAAfA,EAAE,QAAQ,EAAc,MAAM;QACzE,MAAMG,SAASD,cAAc,MAAM,CAAC,CAACF,IAAMA,AAAe,YAAfA,EAAE,QAAQ,EAAc,MAAM;QAEzE,IAAIG,AAAW,MAAXA,UAAgBJ,SAAS,GAAG;YAC9B,MAAMK,eAAeC,MAAMH,aAAa,CAAC,EAAE;YAC3CE,aAAa,QAAQ,GAAG;YAExB,OAAO;mBAAIF;gBAAeE;aAAa;QACzC;QAEA,OAAOF;IACT,GACC,MAAM,CAAC,CAACF,IAAMA,EAAE,MAAM,GAAG;IAE5B,OAAOf;AACT"}
@@ -2,4 +2,3 @@ export * from './utils';
2
2
  export { buildMeasuresForDualAxis } from './buildMeasuresForDualAxis';
3
3
  export { buildMeasures } from './buildMeasures';
4
4
  export { buildMeasuresForScatter } from './buildMeasuresForScatter';
5
- export { pickMeasuresForReshape } from './pickMeasuresForReshape';
@@ -1,6 +1,5 @@
1
1
  import { buildMeasuresForDualAxis } from "./buildMeasuresForDualAxis.js";
2
2
  import { buildMeasures } from "./buildMeasures.js";
3
3
  import { buildMeasuresForScatter } from "./buildMeasuresForScatter.js";
4
- import { pickMeasuresForReshape } from "./pickMeasuresForReshape.js";
5
4
  export * from "./utils.js";
6
- export { buildMeasures, buildMeasuresForDualAxis, buildMeasuresForScatter, pickMeasuresForReshape };
5
+ export { buildMeasures, buildMeasuresForDualAxis, buildMeasuresForScatter };
@@ -1,4 +1,4 @@
1
- import type { MeasureGroup, MeasureTree } from '../../../../../types';
1
+ import type { MeasureEncoding, MeasureGroup, MeasureTree } from '../../../../../types';
2
2
  /**
3
3
  * @description 检查是否为指标树, 指标树深度大于1. 如果存在一个指标为组, 即有children配置, 则认为是指标树.
4
4
  * @param vseed vseed
@@ -17,3 +17,14 @@ export declare const isMeasureTreeWithParentId: <T extends MeasureTree>(measures
17
17
  * @returns
18
18
  */
19
19
  export declare const normalizeMeasureTree: (measures: MeasureTree) => MeasureGroup[];
20
+ export declare const isCommonMeasureEncoding: (encoding: MeasureEncoding) => boolean;
21
+ /**
22
+ * @description Ensures that the measuresByView object has an initialized array for the given parentId.
23
+ * If the parentId doesn't exist in measuresByView, it initializes an empty array and tracks the parentId.
24
+ * @param parentId The parent ID to ensure initialization for
25
+ * @param measuresByView The object mapping parent IDs to measures arrays
26
+ * @param parentIds The array tracking all parent IDs that have been initialized
27
+ */
28
+ export declare const ensureParentIdInitialized: <T>(parentId: string, measuresByView: {
29
+ [key: string]: T[];
30
+ }, parentIds: string[]) => void;
@@ -37,6 +37,17 @@ const normalizeMeasureTree = (measures)=>{
37
37
  }
38
38
  return measureGroups;
39
39
  };
40
- export { isMeasureTreeWithChildren, isMeasureTreeWithParentId, normalizeMeasureTree };
40
+ const isCommonMeasureEncoding = (encoding)=>[
41
+ 'color',
42
+ 'label',
43
+ 'tooltip'
44
+ ].includes(encoding);
45
+ const ensureParentIdInitialized = (parentId, measuresByView, parentIds)=>{
46
+ if (!measuresByView[parentId]) {
47
+ measuresByView[parentId] = [];
48
+ parentIds.push(parentId);
49
+ }
50
+ };
51
+ export { ensureParentIdInitialized, isCommonMeasureEncoding, isMeasureTreeWithChildren, isMeasureTreeWithParentId, normalizeMeasureTree };
41
52
 
42
53
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/measures/utils.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/utils.ts"],"sourcesContent":["import type { MeasureGroup, MeasureTree } from 'src/types'\n\n/**\n * @description 检查是否为指标树, 指标树深度大于1. 如果存在一个指标为组, 即有children配置, 则认为是指标树.\n * @param vseed vseed\n * @returns\n */\nexport const isMeasureTreeWithChildren = <T extends MeasureTree>(measures?: T) => {\n if (!measures) {\n return false\n }\n\n return measures.some((measure) => 'children' in measure)\n}\n\n/**\n * @description 检查是否为指标树, 指标树存在parentId. 如果存在一个指标有parentId, 则认为是指标树.\n * @param vseed vseed\n * @returns\n */\nexport const isMeasureTreeWithParentId = <T extends MeasureTree>(measures?: T) => {\n if (!measures) {\n return false\n }\n\n return measures.some((measure) => 'parentId' in measure)\n}\n\n/**\n * @description 保证指标树中的每一组都有children, 没有children的指标, 会被放到一个默认的指标组中.\n * @param measures 指标树\n * @returns\n */\nexport const normalizeMeasureTree = (measures: MeasureTree) => {\n const createEmptyMeasureGroup = (): MeasureGroup => {\n return {\n id: 'group',\n alias: '',\n children: [],\n }\n }\n\n let currentGroup: MeasureGroup = createEmptyMeasureGroup()\n const measureGroups: MeasureGroup[] = []\n for (const measure of measures) {\n if ('children' in measure) {\n // 当前指标组之前的所有独立指标成组\n if (currentGroup.children?.length) {\n currentGroup.id = [currentGroup.id, ...currentGroup.children.map((item) => item.id)].join('-')\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n // 当前是指标组\n measureGroups.push(measure)\n } else {\n currentGroup.children?.push(measure)\n }\n }\n\n // 最后一组\n if (currentGroup.children?.length) {\n currentGroup.id = [currentGroup.id, ...currentGroup.children.map((item) => item.id)].join('-')\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n\n return measureGroups\n}\n"],"names":["isMeasureTreeWithChildren","measures","measure","isMeasureTreeWithParentId","normalizeMeasureTree","createEmptyMeasureGroup","currentGroup","measureGroups","item"],"mappings":"AAOO,MAAMA,4BAA4B,CAAwBC;IAC/D,IAAI,CAACA,UACH,OAAO;IAGT,OAAOA,SAAS,IAAI,CAAC,CAACC,UAAY,cAAcA;AAClD;AAOO,MAAMC,4BAA4B,CAAwBF;IAC/D,IAAI,CAACA,UACH,OAAO;IAGT,OAAOA,SAAS,IAAI,CAAC,CAACC,UAAY,cAAcA;AAClD;AAOO,MAAME,uBAAuB,CAACH;IACnC,MAAMI,0BAA0B,IACvB;YACL,IAAI;YACJ,OAAO;YACP,UAAU,EAAE;QACd;IAGF,IAAIC,eAA6BD;IACjC,MAAME,gBAAgC,EAAE;IACxC,KAAK,MAAML,WAAWD,SACpB,IAAI,cAAcC,SAAS;QAEzB,IAAII,aAAa,QAAQ,EAAE,QAAQ;YACjCA,aAAa,EAAE,GAAG;gBAACA,aAAa,EAAE;mBAAKA,aAAa,QAAQ,CAAC,GAAG,CAAC,CAACE,OAASA,KAAK,EAAE;aAAE,CAAC,IAAI,CAAC;YAC1FF,aAAa,KAAK,GAAGA,aAAa,QAAQ,CAAC,GAAG,CAAC,CAACE,OAASA,KAAK,KAAK,EAAE,IAAI,CAAC;YAC1ED,cAAc,IAAI,CAACD;YACnBA,eAAeD;QACjB;QAEAE,cAAc,IAAI,CAACL;IACrB,OACEI,aAAa,QAAQ,EAAE,KAAKJ;IAKhC,IAAII,aAAa,QAAQ,EAAE,QAAQ;QACjCA,aAAa,EAAE,GAAG;YAACA,aAAa,EAAE;eAAKA,aAAa,QAAQ,CAAC,GAAG,CAAC,CAACE,OAASA,KAAK,EAAE;SAAE,CAAC,IAAI,CAAC;QAC1FF,aAAa,KAAK,GAAGA,aAAa,QAAQ,CAAC,GAAG,CAAC,CAACE,OAASA,KAAK,KAAK,EAAE,IAAI,CAAC;QAC1ED,cAAc,IAAI,CAACD;QACnBA,eAAeD;IACjB;IAEA,OAAOE;AACT"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/measures/utils.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/utils.ts"],"sourcesContent":["import type { MeasureEncoding, MeasureGroup, MeasureTree } from 'src/types'\n\n/**\n * @description 检查是否为指标树, 指标树深度大于1. 如果存在一个指标为组, 即有children配置, 则认为是指标树.\n * @param vseed vseed\n * @returns\n */\nexport const isMeasureTreeWithChildren = <T extends MeasureTree>(measures?: T) => {\n if (!measures) {\n return false\n }\n\n return measures.some((measure) => 'children' in measure)\n}\n\n/**\n * @description 检查是否为指标树, 指标树存在parentId. 如果存在一个指标有parentId, 则认为是指标树.\n * @param vseed vseed\n * @returns\n */\nexport const isMeasureTreeWithParentId = <T extends MeasureTree>(measures?: T) => {\n if (!measures) {\n return false\n }\n\n return measures.some((measure) => 'parentId' in measure)\n}\n\n/**\n * @description 保证指标树中的每一组都有children, 没有children的指标, 会被放到一个默认的指标组中.\n * @param measures 指标树\n * @returns\n */\nexport const normalizeMeasureTree = (measures: MeasureTree) => {\n const createEmptyMeasureGroup = (): MeasureGroup => {\n return {\n id: 'group',\n alias: '',\n children: [],\n }\n }\n\n let currentGroup: MeasureGroup = createEmptyMeasureGroup()\n const measureGroups: MeasureGroup[] = []\n for (const measure of measures) {\n if ('children' in measure) {\n // 当前指标组之前的所有独立指标成组\n if (currentGroup.children?.length) {\n currentGroup.id = [currentGroup.id, ...currentGroup.children.map((item) => item.id)].join('-')\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n // 当前是指标组\n measureGroups.push(measure)\n } else {\n currentGroup.children?.push(measure)\n }\n }\n\n // 最后一组\n if (currentGroup.children?.length) {\n currentGroup.id = [currentGroup.id, ...currentGroup.children.map((item) => item.id)].join('-')\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n\n return measureGroups\n}\n\nexport const isCommonMeasureEncoding = (encoding: MeasureEncoding) => {\n return ['color', 'label', 'tooltip'].includes(encoding)\n}\n\n/**\n * @description Ensures that the measuresByView object has an initialized array for the given parentId.\n * If the parentId doesn't exist in measuresByView, it initializes an empty array and tracks the parentId.\n * @param parentId The parent ID to ensure initialization for\n * @param measuresByView The object mapping parent IDs to measures arrays\n * @param parentIds The array tracking all parent IDs that have been initialized\n */\nexport const ensureParentIdInitialized = <T>(\n parentId: string,\n measuresByView: { [key: string]: T[] },\n parentIds: string[],\n) => {\n if (!measuresByView[parentId]) {\n measuresByView[parentId] = []\n parentIds.push(parentId)\n }\n}\n"],"names":["isMeasureTreeWithChildren","measures","measure","isMeasureTreeWithParentId","normalizeMeasureTree","createEmptyMeasureGroup","currentGroup","measureGroups","item","isCommonMeasureEncoding","encoding","ensureParentIdInitialized","parentId","measuresByView","parentIds"],"mappings":"AAOO,MAAMA,4BAA4B,CAAwBC;IAC/D,IAAI,CAACA,UACH,OAAO;IAGT,OAAOA,SAAS,IAAI,CAAC,CAACC,UAAY,cAAcA;AAClD;AAOO,MAAMC,4BAA4B,CAAwBF;IAC/D,IAAI,CAACA,UACH,OAAO;IAGT,OAAOA,SAAS,IAAI,CAAC,CAACC,UAAY,cAAcA;AAClD;AAOO,MAAME,uBAAuB,CAACH;IACnC,MAAMI,0BAA0B,IACvB;YACL,IAAI;YACJ,OAAO;YACP,UAAU,EAAE;QACd;IAGF,IAAIC,eAA6BD;IACjC,MAAME,gBAAgC,EAAE;IACxC,KAAK,MAAML,WAAWD,SACpB,IAAI,cAAcC,SAAS;QAEzB,IAAII,aAAa,QAAQ,EAAE,QAAQ;YACjCA,aAAa,EAAE,GAAG;gBAACA,aAAa,EAAE;mBAAKA,aAAa,QAAQ,CAAC,GAAG,CAAC,CAACE,OAASA,KAAK,EAAE;aAAE,CAAC,IAAI,CAAC;YAC1FF,aAAa,KAAK,GAAGA,aAAa,QAAQ,CAAC,GAAG,CAAC,CAACE,OAASA,KAAK,KAAK,EAAE,IAAI,CAAC;YAC1ED,cAAc,IAAI,CAACD;YACnBA,eAAeD;QACjB;QAEAE,cAAc,IAAI,CAACL;IACrB,OACEI,aAAa,QAAQ,EAAE,KAAKJ;IAKhC,IAAII,aAAa,QAAQ,EAAE,QAAQ;QACjCA,aAAa,EAAE,GAAG;YAACA,aAAa,EAAE;eAAKA,aAAa,QAAQ,CAAC,GAAG,CAAC,CAACE,OAASA,KAAK,EAAE;SAAE,CAAC,IAAI,CAAC;QAC1FF,aAAa,KAAK,GAAGA,aAAa,QAAQ,CAAC,GAAG,CAAC,CAACE,OAASA,KAAK,KAAK,EAAE,IAAI,CAAC;QAC1ED,cAAc,IAAI,CAACD;QACnBA,eAAeD;IACjB;IAEA,OAAOE;AACT;AAEO,MAAME,0BAA0B,CAACC,WAC/B;QAAC;QAAS;QAAS;KAAU,CAAC,QAAQ,CAACA;AAUzC,MAAMC,4BAA4B,CACvCC,UACAC,gBACAC;IAEA,IAAI,CAACD,cAAc,CAACD,SAAS,EAAE;QAC7BC,cAAc,CAACD,SAAS,GAAG,EAAE;QAC7BE,UAAU,IAAI,CAACF;IACjB;AACF"}