@visactor/vseed 0.1.50 → 0.2.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 (280) hide show
  1. package/dist/cjs/index.cjs +3 -3
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/buildAdvanced.js +1 -1
  4. package/dist/esm/builder/builder/buildAdvanced.js.map +1 -1
  5. package/dist/esm/builder/builder/buildSpec.js +1 -1
  6. package/dist/esm/builder/builder/buildSpec.js.map +1 -1
  7. package/dist/esm/builder/builder/builder.d.ts +817 -1
  8. package/dist/esm/builder/builder/builder.js +5 -1
  9. package/dist/esm/builder/builder/builder.js.map +1 -1
  10. package/dist/esm/dataSelector/selector.d.ts +5 -0
  11. package/dist/esm/dataSelector/selector.js +92 -50
  12. package/dist/esm/dataSelector/selector.js.map +1 -1
  13. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +3 -3
  14. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
  15. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +1 -2
  16. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
  17. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +3 -3
  18. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
  19. package/dist/esm/pipeline/advanced/chart/pipes/config/boxplot.js +2 -1
  20. package/dist/esm/pipeline/advanced/chart/pipes/config/boxplot.js.map +1 -1
  21. package/dist/esm/pipeline/advanced/chart/pipes/config/column.js +2 -1
  22. package/dist/esm/pipeline/advanced/chart/pipes/config/column.js.map +1 -1
  23. package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js +2 -1
  24. package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js.map +1 -1
  25. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js +2 -1
  26. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js.map +1 -1
  27. package/dist/esm/pipeline/advanced/chart/pipes/config/line.js +2 -1
  28. package/dist/esm/pipeline/advanced/chart/pipes/config/line.js.map +1 -1
  29. package/dist/esm/pipeline/advanced/chart/pipes/config/scatter.js +2 -1
  30. package/dist/esm/pipeline/advanced/chart/pipes/config/scatter.js.map +1 -1
  31. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +8 -6
  32. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
  33. package/dist/esm/pipeline/advanced/chart/pipes/markStyle/markStyle.js +3 -1
  34. package/dist/esm/pipeline/advanced/chart/pipes/markStyle/markStyle.js.map +1 -1
  35. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js +2 -1
  36. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js.map +1 -1
  37. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js +1 -1
  38. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
  39. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js +1 -1
  40. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
  41. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +1 -1
  42. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
  43. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js +1 -1
  44. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
  45. package/dist/esm/pipeline/spec/chart/pipeline/area.js +3 -2
  46. package/dist/esm/pipeline/spec/chart/pipeline/area.js.map +1 -1
  47. package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js +3 -2
  48. package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js.map +1 -1
  49. package/dist/esm/pipeline/spec/chart/pipeline/bar.js +3 -2
  50. package/dist/esm/pipeline/spec/chart/pipeline/bar.js.map +1 -1
  51. package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js +3 -2
  52. package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js.map +1 -1
  53. package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js +3 -2
  54. package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js.map +1 -1
  55. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js +8 -6
  56. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
  57. package/dist/esm/pipeline/spec/chart/pipeline/column.js +3 -2
  58. package/dist/esm/pipeline/spec/chart/pipeline/column.js.map +1 -1
  59. package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js +3 -2
  60. package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js.map +1 -1
  61. package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js +3 -2
  62. package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js.map +1 -1
  63. package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js +19 -16
  64. package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
  65. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js +3 -2
  66. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  67. package/dist/esm/pipeline/spec/chart/pipeline/line.js +3 -2
  68. package/dist/esm/pipeline/spec/chart/pipeline/line.js.map +1 -1
  69. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js +6 -3
  70. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
  71. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.d.ts +2 -0
  72. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js +94 -0
  73. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js.map +1 -0
  74. package/dist/esm/pipeline/spec/chart/pipes/annotation/index.d.ts +1 -0
  75. package/dist/esm/pipeline/spec/chart/pipes/annotation/index.js +2 -1
  76. package/dist/esm/pipeline/spec/chart/pipes/annotation/utils.d.ts +1 -1
  77. package/dist/esm/pipeline/spec/chart/pipes/annotation/utils.js +2 -1
  78. package/dist/esm/pipeline/spec/chart/pipes/annotation/utils.js.map +1 -1
  79. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +12 -1
  80. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
  81. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +12 -1
  82. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
  83. package/dist/esm/pipeline/spec/chart/pipes/color/colorBoxPlotStyleFill.d.ts +2 -0
  84. package/dist/esm/pipeline/spec/chart/pipes/color/colorBoxPlotStyleFill.js +17 -0
  85. package/dist/esm/pipeline/spec/chart/pipes/color/colorBoxPlotStyleFill.js.map +1 -0
  86. package/dist/esm/pipeline/spec/chart/pipes/color/index.d.ts +1 -0
  87. package/dist/esm/pipeline/spec/chart/pipes/color/index.js +2 -1
  88. package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairLine.js +3 -0
  89. package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairLine.js.map +1 -1
  90. package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairRect.js +4 -1
  91. package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairRect.js.map +1 -1
  92. package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairLine.js +3 -0
  93. package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairLine.js.map +1 -1
  94. package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairRect.js +4 -1
  95. package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairRect.js.map +1 -1
  96. package/dist/esm/pipeline/spec/chart/pipes/index.d.ts +1 -0
  97. package/dist/esm/pipeline/spec/chart/pipes/index.js +1 -0
  98. package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js +2 -2
  99. package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js.map +1 -1
  100. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.d.ts +2 -0
  101. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js +52 -0
  102. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js.map +1 -0
  103. package/dist/esm/pipeline/spec/chart/pipes/markStyle/index.d.ts +2 -0
  104. package/dist/esm/pipeline/spec/chart/pipes/markStyle/index.js +3 -1
  105. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.d.ts +2 -0
  106. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js +67 -0
  107. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js.map +1 -0
  108. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/areaStyleFilter.d.ts +2 -0
  109. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/areaStyleFilter.js +7 -0
  110. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/areaStyleFilter.js.map +1 -0
  111. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/barStyleFilter.d.ts +2 -0
  112. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/barStyleFilter.js +7 -0
  113. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/barStyleFilter.js.map +1 -0
  114. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/index.d.ts +4 -0
  115. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/index.js +4 -0
  116. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/lineStyleFilter.d.ts +2 -0
  117. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/lineStyleFilter.js +7 -0
  118. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/lineStyleFilter.js.map +1 -0
  119. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/pointStyleFilter.d.ts +2 -0
  120. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/pointStyleFilter.js +7 -0
  121. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/pointStyleFilter.js.map +1 -0
  122. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.d.ts +2 -0
  123. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js +47 -0
  124. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js.map +1 -0
  125. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/index.d.ts +1 -0
  126. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/index.js +2 -1
  127. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js +2 -0
  128. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js.map +1 -1
  129. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js +16 -1
  130. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js.map +1 -1
  131. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js +3 -2
  132. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
  133. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js +18 -12
  134. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js.map +1 -1
  135. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.d.ts +1 -0
  136. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.js +2 -1
  137. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.js.map +1 -1
  138. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +9 -5
  139. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
  140. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js +14 -6
  141. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js.map +1 -1
  142. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js +69 -32
  143. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js.map +1 -1
  144. package/dist/esm/pipeline/spec/chart/pipes/stack/stackCornerRadius.js +2 -3
  145. package/dist/esm/pipeline/spec/chart/pipes/stack/stackCornerRadius.js.map +1 -1
  146. package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.d.ts +1 -1
  147. package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.js +2 -2
  148. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +8 -8
  149. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
  150. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.d.ts +1 -0
  151. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +16 -2
  152. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  153. package/dist/esm/pipeline/utils/measures/find.d.ts +1 -0
  154. package/dist/esm/pipeline/utils/measures/find.js +13 -1
  155. package/dist/esm/pipeline/utils/measures/find.js.map +1 -1
  156. package/dist/esm/theme/common/axes.js +4 -4
  157. package/dist/esm/theme/common/axes.js.map +1 -1
  158. package/dist/esm/theme/common/boxPlot.d.ts +5 -0
  159. package/dist/esm/theme/common/boxPlot.js +15 -0
  160. package/dist/esm/theme/common/boxPlot.js.map +1 -0
  161. package/dist/esm/theme/common/crosshair.js +4 -4
  162. package/dist/esm/theme/common/crosshair.js.map +1 -1
  163. package/dist/esm/theme/common/table.js +2 -0
  164. package/dist/esm/theme/common/table.js.map +1 -1
  165. package/dist/esm/theme/dark/dark.js +4 -1
  166. package/dist/esm/theme/dark/dark.js.map +1 -1
  167. package/dist/esm/theme/light/light.js +4 -1
  168. package/dist/esm/theme/light/light.js.map +1 -1
  169. package/dist/esm/types/advancedVSeed.d.ts +533 -0
  170. package/dist/esm/types/advancedVSeed.js +1 -0
  171. package/dist/esm/types/advancedVSeed.js.map +1 -1
  172. package/dist/esm/types/chartType/area/area.d.ts +6 -1
  173. package/dist/esm/types/chartType/area/zArea.d.ts +5 -0
  174. package/dist/esm/types/chartType/area/zArea.js +2 -1
  175. package/dist/esm/types/chartType/area/zArea.js.map +1 -1
  176. package/dist/esm/types/chartType/areaPercent/areaPercent.d.ts +6 -1
  177. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +5 -0
  178. package/dist/esm/types/chartType/areaPercent/zAreaPercent.js +2 -1
  179. package/dist/esm/types/chartType/areaPercent/zAreaPercent.js.map +1 -1
  180. package/dist/esm/types/chartType/bar/bar.d.ts +6 -1
  181. package/dist/esm/types/chartType/bar/zBar.d.ts +5 -0
  182. package/dist/esm/types/chartType/bar/zBar.js +2 -1
  183. package/dist/esm/types/chartType/bar/zBar.js.map +1 -1
  184. package/dist/esm/types/chartType/barParallel/barParallel.d.ts +6 -1
  185. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +5 -0
  186. package/dist/esm/types/chartType/barParallel/zBarParallel.js +2 -1
  187. package/dist/esm/types/chartType/barParallel/zBarParallel.js.map +1 -1
  188. package/dist/esm/types/chartType/barPercent/barPercent.d.ts +6 -1
  189. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +5 -0
  190. package/dist/esm/types/chartType/barPercent/zBarPercent.js +2 -1
  191. package/dist/esm/types/chartType/barPercent/zBarPercent.js.map +1 -1
  192. package/dist/esm/types/chartType/boxplot/boxplot.d.ts +14 -1
  193. package/dist/esm/types/chartType/boxplot/zBoxplot.d.ts +321 -0
  194. package/dist/esm/types/chartType/boxplot/zBoxplot.js +4 -1
  195. package/dist/esm/types/chartType/boxplot/zBoxplot.js.map +1 -1
  196. package/dist/esm/types/chartType/column/column.d.ts +6 -1
  197. package/dist/esm/types/chartType/column/zColumn.d.ts +5 -0
  198. package/dist/esm/types/chartType/column/zColumn.js +2 -1
  199. package/dist/esm/types/chartType/column/zColumn.js.map +1 -1
  200. package/dist/esm/types/chartType/columnParallel/columnParallel.d.ts +6 -1
  201. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +5 -0
  202. package/dist/esm/types/chartType/columnParallel/zColumnParallel.js +2 -1
  203. package/dist/esm/types/chartType/columnParallel/zColumnParallel.js.map +1 -1
  204. package/dist/esm/types/chartType/columnPercent/columnPercent.d.ts +6 -1
  205. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +5 -0
  206. package/dist/esm/types/chartType/columnPercent/zColumnPercent.js +2 -1
  207. package/dist/esm/types/chartType/columnPercent/zColumnPercent.js.map +1 -1
  208. package/dist/esm/types/chartType/dualAxis/dualAxis.d.ts +6 -1
  209. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +5 -0
  210. package/dist/esm/types/chartType/dualAxis/zDualAxis.js +2 -1
  211. package/dist/esm/types/chartType/dualAxis/zDualAxis.js.map +1 -1
  212. package/dist/esm/types/chartType/histogram/histogram.d.ts +6 -1
  213. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +5 -0
  214. package/dist/esm/types/chartType/histogram/zHistogram.js +2 -1
  215. package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
  216. package/dist/esm/types/chartType/line/line.d.ts +6 -1
  217. package/dist/esm/types/chartType/line/zLine.d.ts +5 -0
  218. package/dist/esm/types/chartType/line/zLine.js +2 -1
  219. package/dist/esm/types/chartType/line/zLine.js.map +1 -1
  220. package/dist/esm/types/chartType/scatter/scatter.d.ts +6 -1
  221. package/dist/esm/types/chartType/scatter/zScatter.d.ts +5 -0
  222. package/dist/esm/types/chartType/scatter/zScatter.js +2 -1
  223. package/dist/esm/types/chartType/scatter/zScatter.js.map +1 -1
  224. package/dist/esm/types/index.d.ts +1 -0
  225. package/dist/esm/types/index.js +1 -0
  226. package/dist/esm/types/properties/config/area.d.ts +10 -0
  227. package/dist/esm/types/properties/config/area.js +3 -1
  228. package/dist/esm/types/properties/config/area.js.map +1 -1
  229. package/dist/esm/types/properties/config/bar.d.ts +15 -0
  230. package/dist/esm/types/properties/config/bar.js +3 -1
  231. package/dist/esm/types/properties/config/bar.js.map +1 -1
  232. package/dist/esm/types/properties/config/boxplot.d.ts +26 -0
  233. package/dist/esm/types/properties/config/boxplot.js +10 -1
  234. package/dist/esm/types/properties/config/boxplot.js.map +1 -1
  235. package/dist/esm/types/properties/config/column.d.ts +15 -0
  236. package/dist/esm/types/properties/config/column.js +3 -1
  237. package/dist/esm/types/properties/config/column.js.map +1 -1
  238. package/dist/esm/types/properties/config/config.d.ts +86 -0
  239. package/dist/esm/types/properties/config/dimensionLinkage/dimensionLinkage.d.ts +23 -0
  240. package/dist/esm/types/properties/config/dimensionLinkage/dimensionLinkage.js +9 -0
  241. package/dist/esm/types/properties/config/dimensionLinkage/dimensionLinkage.js.map +1 -0
  242. package/dist/esm/types/properties/config/dimensionLinkage/index.d.ts +1 -0
  243. package/dist/esm/types/properties/config/dimensionLinkage/index.js +1 -0
  244. package/dist/esm/types/properties/config/dualAxis.d.ts +5 -0
  245. package/dist/esm/types/properties/config/dualAxis.js +3 -1
  246. package/dist/esm/types/properties/config/dualAxis.js.map +1 -1
  247. package/dist/esm/types/properties/config/histogram.d.ts +5 -0
  248. package/dist/esm/types/properties/config/histogram.js +3 -1
  249. package/dist/esm/types/properties/config/histogram.js.map +1 -1
  250. package/dist/esm/types/properties/config/index.d.ts +1 -0
  251. package/dist/esm/types/properties/config/index.js +1 -0
  252. package/dist/esm/types/properties/config/label/pieLabel.d.ts +2 -2
  253. package/dist/esm/types/properties/config/line.d.ts +5 -0
  254. package/dist/esm/types/properties/config/line.js +3 -1
  255. package/dist/esm/types/properties/config/line.js.map +1 -1
  256. package/dist/esm/types/properties/config/scatter.d.ts +5 -0
  257. package/dist/esm/types/properties/config/scatter.js +3 -1
  258. package/dist/esm/types/properties/config/scatter.js.map +1 -1
  259. package/dist/esm/types/properties/markStyle/boxPlotStyle.d.ts +148 -0
  260. package/dist/esm/types/properties/markStyle/boxPlotStyle.js +14 -0
  261. package/dist/esm/types/properties/markStyle/boxPlotStyle.js.map +1 -0
  262. package/dist/esm/types/properties/markStyle/index.d.ts +2 -0
  263. package/dist/esm/types/properties/markStyle/index.js +2 -0
  264. package/dist/esm/types/properties/markStyle/markStyle.d.ts +316 -0
  265. package/dist/esm/types/properties/markStyle/markStyle.js +5 -1
  266. package/dist/esm/types/properties/markStyle/markStyle.js.map +1 -1
  267. package/dist/esm/types/properties/markStyle/outlierStyle.d.ts +161 -0
  268. package/dist/esm/types/properties/markStyle/outlierStyle.js +22 -0
  269. package/dist/esm/types/properties/markStyle/outlierStyle.js.map +1 -0
  270. package/dist/esm/types/properties/regressionLine/ecdfRegressionLine.d.ts +2 -2
  271. package/dist/esm/types/properties/regressionLine/kdeRegressionLine.d.ts +2 -2
  272. package/dist/esm/types/properties/regressionLine/linearRegressionLine.d.ts +2 -2
  273. package/dist/esm/types/properties/regressionLine/logisticRegressionLine.d.ts +2 -2
  274. package/dist/esm/types/properties/regressionLine/lowessRegressionLine.d.ts +2 -2
  275. package/dist/esm/types/properties/regressionLine/polynomialRegressionLine.d.ts +2 -2
  276. package/dist/esm/types/properties/theme/customTheme.d.ts +172 -0
  277. package/dist/esm/types/zVseed.d.ts +381 -0
  278. package/dist/umd/index.js +845 -279
  279. package/dist/umd/index.js.map +1 -1
  280. package/package.json +5 -5
@@ -8,9 +8,13 @@ class Builder {
8
8
  _advancedVSeed = null;
9
9
  _spec = null;
10
10
  _performance = {};
11
+ _locale;
11
12
  constructor(vseed){
12
13
  this._vseed = vseed;
13
- this._vseed.locale = vseed.locale || intl.getLocale();
14
+ this._locale = vseed.locale || intl.getLocale();
15
+ }
16
+ get locale() {
17
+ return this._locale;
14
18
  }
15
19
  build = ()=>build(this);
16
20
  buildSpec = (advanced)=>buildSpec(this, advanced);
@@ -1 +1 @@
1
- {"version":3,"file":"builder/builder/builder.js","sources":["webpack://@visactor/vseed/./src/builder/builder/builder.ts"],"sourcesContent":["import type {\n AdvancedPipe,\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Spec,\n SpecPipe,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { intl } from 'src/i18n'\nimport { getColorIdMap, getColorItems } from './advanced'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n private _performance: Record<string, string | number> = {}\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._vseed.locale = vseed.locale || intl.getLocale()\n }\n\n /**\n * @description 构建spec\n * @returns spec\n */\n build = <T extends Spec>(): T => build(this) as T\n\n /**\n * @description 构建spec\n * @param advanced 高级配置\n * @returns spec\n */\n buildSpec = (advanced: AdvancedVSeed): Spec => buildSpec(this, advanced)\n\n /**\n * @description 构建spec\n * @returns AdvancedVSeed | null\n */\n buildAdvanced = (): AdvancedVSeed | null => buildAdvanced(this)\n\n /**\n * @description 获取颜色项, 颜色项可以重复,\n * @returns 颜色项\n */\n getColorItems = () => getColorItems(this)\n\n /**\n * @description 获取颜色id映射\n * @returns 颜色id映射\n */\n getColorIdMap = () => getColorIdMap(this)\n\n /**\n * @description 获取vseed\n * @returns vseed\n */\n get vseed() {\n return this._vseed\n }\n\n /**\n * @description 设置vseed\n * @param value vseed\n */\n set vseed(value) {\n this._vseed = value\n }\n\n /**\n * @description 获取advancedVSeed\n * @returns advancedVSeed\n */\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n /**\n *\n * @description 设置advancedVSeed\n * @param value advancedVSeed\n */\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n /**\n * @description 获取spec\n * @returns spec\n */\n get spec() {\n return this._spec\n }\n\n /**\n * @description 设置spec\n * @param value spec\n */\n set spec(value) {\n this._spec = value\n }\n\n /**\n * @description 获取performance, 统计了构建spec和advancedVSeed的时间\n * @returns performance\n */\n get performance() {\n return this._performance\n }\n\n /**\n * @description 设置performance\n * @param value performance\n */\n set performance(value) {\n this._performance = value\n }\n\n /**\n * @description 获取advancedPipeline\n * @param chartType 图表类型\n * @returns advancedPipeline\n */\n static getAdvancedPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customAdvancedPipe[chartType] as AdvancedPipe\n const pipeline = Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 获取specPipeline\n * @param chartType 图表类型\n * @returns specPipeline\n */\n\n static getSpecPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customSpecPipe[chartType] as SpecPipe\n const pipeline = Builder._specPipelineMap[chartType] as SpecPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 根据主题key获取主题配置\n * @param themeKey 主题key\n * @example Builder.getTheme('light'), 获取浅色主题\n * @returns 主题配置\n */\n static getTheme = (themeKey?: string) => Builder._themeMap[themeKey || 'light']\n\n /**\n * @description 获取主题配置映射表\n * @example Builder.getThemeMap()\n * @returns 主题配置映射表\n */\n static getThemeMap = () => Builder._themeMap\n\n /**\n * @description 从vseed创建builder\n * @param vseed 完整的vseed DSL\n * @returns builder\n */\n static from = (vseed: VSeed) => new Builder(vseed)\n\n static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n static _customAdvancedPipe: Partial<Record<ChartType, AdvancedPipe>> = {}\n static _customSpecPipe: Partial<Record<ChartType, SpecPipe>> = {}\n static _themeMap: Record<string, CustomThemeConfig> = {}\n}\n"],"names":["Builder","vseed","intl","build","advanced","buildSpec","buildAdvanced","getColorItems","getColorIdMap","value","chartType","customPipe","pipeline","themeKey"],"mappings":";;;;;AAkBO,MAAMA;IACH,OAAa;IACb,iBAAuC,KAAI;IAC3C,QAAqB,KAAI;IACzB,eAAgD,CAAC,EAAC;IAE1D,YAAYC,KAAY,CAAE;QACxB,IAAI,CAAC,MAAM,GAAGA;QACd,IAAI,CAAC,MAAM,CAAC,MAAM,GAAGA,MAAM,MAAM,IAAIC,KAAK,SAAS;IACrD;IAMA,QAAQ,IAAyBC,MAAM,IAAI,EAAM;IAOjD,YAAY,CAACC,WAAkCC,UAAU,IAAI,EAAED,UAAS;IAMxE,gBAAgB,IAA4BE,cAAc,IAAI,EAAC;IAM/D,gBAAgB,IAAMC,cAAc,IAAI,EAAC;IAMzC,gBAAgB,IAAMC,cAAc,IAAI,EAAC;IAMzC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM;IACpB;IAMA,IAAI,MAAMC,KAAK,EAAE;QACf,IAAI,CAAC,MAAM,GAAGA;IAChB;IAMA,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,cAAc;IAC5B;IAOA,IAAI,cAAcA,KAAK,EAAE;QACvB,IAAI,CAAC,cAAc,GAAGA;IACxB;IAMA,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK;IACnB;IAMA,IAAI,KAAKA,KAAK,EAAE;QACd,IAAI,CAAC,KAAK,GAAGA;IACf;IAMA,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY;IAC1B;IAMA,IAAI,YAAYA,KAAK,EAAE;QACrB,IAAI,CAAC,YAAY,GAAGA;IACtB;IAOA,OAAO,sBAAsB,CAACC;QAC5B,MAAMC,aAAaX,QAAQ,mBAAmB,CAACU,UAAU;QACzD,MAAME,WAAWZ,QAAQ,oBAAoB,CAACU,UAAU;QACxD,IAAIC,YACFC,SAAS,IAAI,CAACD;QAEhB,OAAOC;IACT,EAAC;IAQD,OAAO,kBAAkB,CAACF;QACxB,MAAMC,aAAaX,QAAQ,eAAe,CAACU,UAAU;QACrD,MAAME,WAAWZ,QAAQ,gBAAgB,CAACU,UAAU;QACpD,IAAIC,YACFC,SAAS,IAAI,CAACD;QAEhB,OAAOC;IACT,EAAC;IAQD,OAAO,WAAW,CAACC,WAAsBb,QAAQ,SAAS,CAACa,YAAY,QAAQ;IAO/E,OAAO,cAAc,IAAMb,QAAQ,SAAS;IAO5C,OAAO,OAAO,CAACC,QAAiB,IAAID,QAAQC,OAAM;IAElD,OAAO,uBAAqE,CAAC,EAAC;IAC9E,OAAO,mBAA6D,CAAC,EAAC;IACtE,OAAO,sBAAgE,CAAC,EAAC;IACzE,OAAO,kBAAwD,CAAC,EAAC;IACjE,OAAO,YAA+C,CAAC,EAAC;AAC1D"}
1
+ {"version":3,"file":"builder/builder/builder.js","sources":["webpack://@visactor/vseed/./src/builder/builder/builder.ts"],"sourcesContent":["import type {\n AdvancedPipe,\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Locale,\n Spec,\n SpecPipe,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { intl } from 'src/i18n'\nimport { getColorIdMap, getColorItems } from './advanced'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n private _performance: Record<string, string | number> = {}\n\n private _locale: Locale\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._locale = vseed.locale || intl.getLocale()\n }\n\n get locale() {\n return this._locale\n }\n\n /**\n * @description 构建spec\n * @returns spec\n */\n build = <T extends Spec>(): T => build(this) as T\n\n /**\n * @description 构建spec\n * @param advanced 高级配置\n * @returns spec\n */\n buildSpec = (advanced: AdvancedVSeed): Spec => buildSpec(this, advanced)\n\n /**\n * @description 构建spec\n * @returns AdvancedVSeed | null\n */\n buildAdvanced = (): AdvancedVSeed | null => buildAdvanced(this)\n\n /**\n * @description 获取颜色项, 颜色项可以重复,\n * @returns 颜色项\n */\n getColorItems = () => getColorItems(this)\n\n /**\n * @description 获取颜色id映射\n * @returns 颜色id映射\n */\n getColorIdMap = () => getColorIdMap(this)\n\n /**\n * @description 获取vseed\n * @returns vseed\n */\n get vseed() {\n return this._vseed\n }\n\n /**\n * @description 设置vseed\n * @param value vseed\n */\n set vseed(value) {\n this._vseed = value\n }\n\n /**\n * @description 获取advancedVSeed\n * @returns advancedVSeed\n */\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n /**\n *\n * @description 设置advancedVSeed\n * @param value advancedVSeed\n */\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n /**\n * @description 获取spec\n * @returns spec\n */\n get spec() {\n return this._spec\n }\n\n /**\n * @description 设置spec\n * @param value spec\n */\n set spec(value) {\n this._spec = value\n }\n\n /**\n * @description 获取performance, 统计了构建spec和advancedVSeed的时间\n * @returns performance\n */\n get performance() {\n return this._performance\n }\n\n /**\n * @description 设置performance\n * @param value performance\n */\n set performance(value) {\n this._performance = value\n }\n\n /**\n * @description 获取advancedPipeline\n * @param chartType 图表类型\n * @returns advancedPipeline\n */\n static getAdvancedPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customAdvancedPipe[chartType] as AdvancedPipe\n const pipeline = Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 获取specPipeline\n * @param chartType 图表类型\n * @returns specPipeline\n */\n\n static getSpecPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customSpecPipe[chartType] as SpecPipe\n const pipeline = Builder._specPipelineMap[chartType] as SpecPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 根据主题key获取主题配置\n * @param themeKey 主题key\n * @example Builder.getTheme('light'), 获取浅色主题\n * @returns 主题配置\n */\n static getTheme = (themeKey?: string) => Builder._themeMap[themeKey || 'light']\n\n /**\n * @description 获取主题配置映射表\n * @example Builder.getThemeMap()\n * @returns 主题配置映射表\n */\n static getThemeMap = () => Builder._themeMap\n\n /**\n * @description 从vseed创建builder\n * @param vseed 完整的vseed DSL\n * @returns builder\n */\n static from = (vseed: VSeed) => new Builder(vseed)\n\n static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n static _customAdvancedPipe: Partial<Record<ChartType, AdvancedPipe>> = {}\n static _customSpecPipe: Partial<Record<ChartType, SpecPipe>> = {}\n static _themeMap: Record<string, CustomThemeConfig> = {}\n}\n"],"names":["Builder","vseed","intl","build","advanced","buildSpec","buildAdvanced","getColorItems","getColorIdMap","value","chartType","customPipe","pipeline","themeKey"],"mappings":";;;;;AAmBO,MAAMA;IACH,OAAa;IACb,iBAAuC,KAAI;IAC3C,QAAqB,KAAI;IACzB,eAAgD,CAAC,EAAC;IAElD,QAAe;IAEvB,YAAYC,KAAY,CAAE;QACxB,IAAI,CAAC,MAAM,GAAGA;QACd,IAAI,CAAC,OAAO,GAAGA,MAAM,MAAM,IAAIC,KAAK,SAAS;IAC/C;IAEA,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO;IACrB;IAMA,QAAQ,IAAyBC,MAAM,IAAI,EAAM;IAOjD,YAAY,CAACC,WAAkCC,UAAU,IAAI,EAAED,UAAS;IAMxE,gBAAgB,IAA4BE,cAAc,IAAI,EAAC;IAM/D,gBAAgB,IAAMC,cAAc,IAAI,EAAC;IAMzC,gBAAgB,IAAMC,cAAc,IAAI,EAAC;IAMzC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM;IACpB;IAMA,IAAI,MAAMC,KAAK,EAAE;QACf,IAAI,CAAC,MAAM,GAAGA;IAChB;IAMA,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,cAAc;IAC5B;IAOA,IAAI,cAAcA,KAAK,EAAE;QACvB,IAAI,CAAC,cAAc,GAAGA;IACxB;IAMA,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK;IACnB;IAMA,IAAI,KAAKA,KAAK,EAAE;QACd,IAAI,CAAC,KAAK,GAAGA;IACf;IAMA,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY;IAC1B;IAMA,IAAI,YAAYA,KAAK,EAAE;QACrB,IAAI,CAAC,YAAY,GAAGA;IACtB;IAOA,OAAO,sBAAsB,CAACC;QAC5B,MAAMC,aAAaX,QAAQ,mBAAmB,CAACU,UAAU;QACzD,MAAME,WAAWZ,QAAQ,oBAAoB,CAACU,UAAU;QACxD,IAAIC,YACFC,SAAS,IAAI,CAACD;QAEhB,OAAOC;IACT,EAAC;IAQD,OAAO,kBAAkB,CAACF;QACxB,MAAMC,aAAaX,QAAQ,eAAe,CAACU,UAAU;QACrD,MAAME,WAAWZ,QAAQ,gBAAgB,CAACU,UAAU;QACpD,IAAIC,YACFC,SAAS,IAAI,CAACD;QAEhB,OAAOC;IACT,EAAC;IAQD,OAAO,WAAW,CAACC,WAAsBb,QAAQ,SAAS,CAACa,YAAY,QAAQ;IAO/E,OAAO,cAAc,IAAMb,QAAQ,SAAS;IAO5C,OAAO,OAAO,CAACC,QAAiB,IAAID,QAAQC,OAAM;IAElD,OAAO,uBAAqE,CAAC,EAAC;IAC9E,OAAO,mBAA6D,CAAC,EAAC;IACtE,OAAO,sBAAgE,CAAC,EAAC;IACzE,OAAO,kBAAwD,CAAC,EAAC;IACjE,OAAO,YAA+C,CAAC,EAAC;AAC1D"}
@@ -1,7 +1,12 @@
1
1
  import type { Datum } from '../types';
2
2
  import type { DimensionSelector, MeasureSelector, PartialDatumSelector, Selector, Selectors, ValueSelector } from '../types/dataSelector';
3
3
  export declare const selector: (vchartDatum: Datum, selector: Selector | Selectors | undefined | null, selectorMode?: "And" | "Or") => boolean;
4
+ export declare const selectorDatum: (datum: Datum, selector: Selector | Selectors | undefined | null) => Datum[];
4
5
  export declare const isValueSelector: (selector: Selector) => selector is ValueSelector;
5
6
  export declare const isPartialDatumSelector: (selector: Selector) => selector is PartialDatumSelector;
6
7
  export declare const isMeasureSelector: (selector: Selector) => selector is MeasureSelector;
7
8
  export declare const isDimensionSelector: (selector: Selector) => selector is DimensionSelector;
9
+ export declare const selectByMeasure: (selector: MeasureSelector, datum: Datum) => boolean;
10
+ export declare const selectByDmension: (selector: DimensionSelector, datum: Datum) => boolean;
11
+ export declare const selectByPartial: (selector: PartialDatumSelector, datum: Datum) => boolean;
12
+ export declare const selectByValue: (selector: ValueSelector, datum: Datum) => boolean;
@@ -1,4 +1,10 @@
1
1
  import { omit } from "remeda";
2
+ function nearlyEqual(a, b, epsilon = 1e-8) {
3
+ if (Number.isNaN(a) || Number.isNaN(b)) return false;
4
+ if (a === b) return true;
5
+ const diff = Math.abs(a - b);
6
+ return diff <= epsilon;
7
+ }
2
8
  const selector_selector = (vchartDatum, selector, selectorMode = 'And')=>{
3
9
  if (!selector) return true;
4
10
  const vchartKeys = Object.keys(vchartDatum).filter((k)=>k.toLocaleLowerCase().startsWith('__vchart'));
@@ -7,58 +13,44 @@ const selector_selector = (vchartDatum, selector, selectorMode = 'And')=>{
7
13
  selector
8
14
  ];
9
15
  return selectors['And' === selectorMode ? 'every' : 'some']((selector)=>{
10
- if (isValueSelector(selector)) {
11
- if (Object.values(datum).find((v)=>v === selector)) return true;
12
- } else if (isMeasureSelector(selector)) {
13
- const op = selector.operator || selector.op;
14
- const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
15
- selector.value
16
- ];
17
- switch(op){
18
- case '=':
19
- if (String(datum[selector.field]) === String(selectorValueArr[0])) return true;
20
- break;
21
- case '==':
22
- if (datum[selector.field] === selectorValueArr[0]) return true;
23
- break;
24
- case '!=':
25
- if (datum[selector.field] !== selectorValueArr[0]) return true;
26
- break;
27
- case '>':
28
- if (datum[selector.field] > selectorValueArr[0]) return true;
29
- break;
30
- case '<':
31
- if (datum[selector.field] < selectorValueArr[0]) return true;
32
- break;
33
- case '>=':
34
- if (datum[selector.field] >= selectorValueArr[0]) return true;
35
- break;
36
- case '<=':
37
- if (datum[selector.field] <= selectorValueArr[0]) return true;
38
- break;
39
- case 'between':
40
- if (Array.isArray(selector.value) && datum[selector.field] >= selectorValueArr[0] && datum[selector.field] <= selectorValueArr[1]) return true;
41
- break;
42
- }
43
- } else if (isDimensionSelector(selector)) {
44
- const op = selector.operator || selector.op;
45
- const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
46
- selector.value
47
- ];
48
- switch(op){
49
- case 'in':
50
- if (selectorValueArr.includes(datum[selector.field])) return true;
51
- break;
52
- case 'not in':
53
- if (!selectorValueArr.includes(datum[selector.field])) return true;
54
- break;
55
- }
56
- } else if (isPartialDatumSelector(selector)) {
57
- if (Object.keys(selector).every((key)=>datum[key] === selector[key])) return true;
58
- }
16
+ if (isValueSelector(selector)) return selectByValue(selector, datum);
17
+ if (isMeasureSelector(selector)) return selectByMeasure(selector, datum);
18
+ if (isDimensionSelector(selector)) return selectByDmension(selector, datum);
19
+ if (isPartialDatumSelector(selector)) return selectByPartial(selector, datum);
59
20
  return false;
60
21
  });
61
22
  };
23
+ const selectorDatum = (datum, selector)=>{
24
+ if (!selector) return [];
25
+ const selectors = Array.isArray(selector) ? selector : [
26
+ selector
27
+ ];
28
+ let finalResult = [];
29
+ for (const selector of selectors){
30
+ const results = [];
31
+ if (isValueSelector(selector)) Object.entries(datum).forEach(([key, value])=>{
32
+ if (value === selector) results.push({
33
+ [key]: value
34
+ });
35
+ });
36
+ else if (isMeasureSelector(selector) && selectByMeasure(selector, datum)) results.push({
37
+ [selector.field]: datum[selector.field]
38
+ });
39
+ else if (isDimensionSelector(selector) && selectByDmension(selector, datum)) results.push({
40
+ [selector.field]: datum[selector.field]
41
+ });
42
+ else if (isPartialDatumSelector(selector) && selectByPartial(selector, datum)) results.push(selector);
43
+ if (results.length) finalResult = finalResult.length ? finalResult.flatMap((prev)=>results.map((r)=>({
44
+ ...prev,
45
+ ...r
46
+ }))) : results;
47
+ else {
48
+ finalResult = [];
49
+ break;
50
+ }
51
+ }
52
+ return finalResult;
53
+ };
62
54
  const isValueSelector = (selector)=>'string' == typeof selector || 'number' == typeof selector;
63
55
  const isPartialDatumSelector = (selector)=>'object' == typeof selector && null !== selector;
64
56
  const isMeasureSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && ('operator' in selector || 'op' in selector) && 'value' in selector && ([
@@ -87,6 +79,56 @@ const isDimensionSelector = (selector)=>'object' == typeof selector && null !==
87
79
  'in',
88
80
  'not in'
89
81
  ].includes(selector.op));
90
- export { isDimensionSelector, isMeasureSelector, isPartialDatumSelector, isValueSelector, selector_selector as selector };
82
+ const selectByMeasure = (selector, datum)=>{
83
+ const op = selector.operator || selector.op;
84
+ const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
85
+ selector.value
86
+ ];
87
+ switch(op){
88
+ case '=':
89
+ if (String(datum[selector.field]) === String(selectorValueArr[0]) || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
90
+ break;
91
+ case '==':
92
+ if (datum[selector.field] === selectorValueArr[0]) return true;
93
+ break;
94
+ case '!=':
95
+ if (datum[selector.field] !== selectorValueArr[0]) return true;
96
+ break;
97
+ case '>':
98
+ if (datum[selector.field] > selectorValueArr[0] && !nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
99
+ break;
100
+ case '<':
101
+ if (datum[selector.field] < selectorValueArr[0] && !nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
102
+ break;
103
+ case '>=':
104
+ if (datum[selector.field] >= selectorValueArr[0] || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
105
+ break;
106
+ case '<=':
107
+ if (datum[selector.field] <= selectorValueArr[0] || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
108
+ break;
109
+ case 'between':
110
+ if (Array.isArray(selector.value) && (datum[selector.field] >= selectorValueArr[0] || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) && (datum[selector.field] <= selectorValueArr[1] || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[1])))) return true;
111
+ break;
112
+ }
113
+ return false;
114
+ };
115
+ const selectByDmension = (selector, datum)=>{
116
+ const op = selector.operator || selector.op;
117
+ const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
118
+ selector.value
119
+ ];
120
+ switch(op){
121
+ case 'in':
122
+ if (selectorValueArr.includes(datum[selector.field])) return true;
123
+ break;
124
+ case 'not in':
125
+ if (!selectorValueArr.includes(datum[selector.field])) return true;
126
+ break;
127
+ }
128
+ return false;
129
+ };
130
+ const selectByPartial = (selector, datum)=>Object.keys(selector).every((key)=>datum[key] === selector[key]);
131
+ const selectByValue = (selector, datum)=>Object.values(datum).some((v)=>v === selector);
132
+ export { isDimensionSelector, isMeasureSelector, isPartialDatumSelector, isValueSelector, selectByDmension, selectByMeasure, selectByPartial, selectByValue, selector_selector as selector, selectorDatum };
91
133
 
92
134
  //# sourceMappingURL=selector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataSelector/selector.js","sources":["webpack://@visactor/vseed/./src/dataSelector/selector.ts"],"sourcesContent":["import type { Datum } from 'src/types'\nimport type {\n DimensionSelector,\n MeasureSelector,\n PartialDatumSelector,\n Selector,\n Selectors,\n ValueSelector,\n} from '../types/dataSelector'\nimport { omit } from 'remeda'\n\nexport const selector = (\n vchartDatum: Datum,\n selector: Selector | Selectors | undefined | null,\n selectorMode: 'And' | 'Or' = 'And',\n) => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return true\n }\n\n // 过滤掉 vchart 相关字段\n const vchartKeys = Object.keys(vchartDatum).filter((k) => k.toLocaleLowerCase().startsWith('__vchart'))\n const datum = omit(vchartDatum, vchartKeys) as Datum\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n\n return selectors[selectorMode === 'And' ? 'every' : 'some']((selector) => {\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n if (Object.values(datum).find((v) => v === selector)) {\n return true\n }\n }\n\n // 2. 指标选择器\n else if (isMeasureSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n\n switch (op) {\n case '=':\n if (String(datum[selector.field]) === String(selectorValueArr[0])) {\n return true\n }\n break\n case '==':\n if (datum[selector.field] === selectorValueArr[0]) {\n return true\n }\n break\n case '!=':\n if (datum[selector.field] !== selectorValueArr[0]) {\n return true\n }\n break\n case '>':\n if (datum[selector.field] > selectorValueArr[0]) {\n return true\n }\n break\n case '<':\n if (datum[selector.field] < selectorValueArr[0]) {\n return true\n }\n break\n case '>=':\n if (datum[selector.field] >= selectorValueArr[0]) {\n return true\n }\n break\n case '<=':\n if (datum[selector.field] <= selectorValueArr[0]) {\n return true\n }\n break\n case 'between':\n if (\n Array.isArray(selector.value) &&\n datum[selector.field] >= selectorValueArr[0] &&\n datum[selector.field] <= selectorValueArr[1]\n ) {\n return true\n }\n break\n }\n }\n // 3. 维度选择器\n else if (isDimensionSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n switch (op) {\n case 'in':\n if (selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n case 'not in':\n if (!selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n }\n }\n // 4. 部分数据对象选择器\n else if (isPartialDatumSelector(selector)) {\n if (Object.keys(selector).every((key) => datum[key] === selector[key])) {\n return true\n }\n }\n\n return false\n })\n}\n\nexport const isValueSelector = (selector: Selector): selector is ValueSelector => {\n return typeof selector === 'string' || typeof selector === 'number'\n}\n\nexport const isPartialDatumSelector = (selector: Selector): selector is PartialDatumSelector => {\n return typeof selector === 'object' && selector !== null\n}\n\nexport const isMeasureSelector = (selector: Selector): selector is MeasureSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.operator as string) ||\n ['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.op as string))\n )\n}\n\nexport const isDimensionSelector = (selector: Selector): selector is DimensionSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['in', 'not in'].includes(selector.operator as string) || ['in', 'not in'].includes(selector.op as string))\n )\n}\n"],"names":["selector","vchartDatum","selectorMode","vchartKeys","Object","k","datum","omit","selectors","Array","isValueSelector","v","isMeasureSelector","op","selectorValueArr","String","isDimensionSelector","isPartialDatumSelector","key"],"mappings":"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"}
1
+ {"version":3,"file":"dataSelector/selector.js","sources":["webpack://@visactor/vseed/./src/dataSelector/selector.ts"],"sourcesContent":["import type { Datum } from 'src/types'\nimport type {\n DimensionSelector,\n MeasureSelector,\n PartialDatumSelector,\n Selector,\n Selectors,\n ValueSelector,\n} from '../types/dataSelector'\nimport { omit } from 'remeda'\n\n/**\n * 判断两个数字是否“近似相等”\n */\nfunction nearlyEqual(a: number, b: number, epsilon = 1e-8) {\n // NaN 直接不相等\n if (Number.isNaN(a) || Number.isNaN(b)) return false\n // 引用同一个数 或 完全相等\n if (a === b) return true\n const diff = Math.abs(a - b)\n return diff <= epsilon\n}\n\nexport const selector = (\n vchartDatum: Datum,\n selector: Selector | Selectors | undefined | null,\n selectorMode: 'And' | 'Or' = 'And',\n) => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return true\n }\n\n // 过滤掉 vchart 相关字段\n const vchartKeys = Object.keys(vchartDatum).filter((k) => k.toLocaleLowerCase().startsWith('__vchart'))\n const datum = omit(vchartDatum, vchartKeys) as Datum\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n\n return selectors[selectorMode === 'And' ? 'every' : 'some']((selector) => {\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n return selectByValue(selector, datum)\n }\n\n // 2. 指标选择器\n else if (isMeasureSelector(selector)) {\n return selectByMeasure(selector, datum)\n }\n // 3. 维度选择器\n else if (isDimensionSelector(selector)) {\n return selectByDmension(selector, datum)\n }\n // 4. 部分数据对象选择器\n else if (isPartialDatumSelector(selector)) {\n return selectByPartial(selector, datum)\n }\n\n return false\n })\n}\n\nexport const selectorDatum = (datum: Datum, selector: Selector | Selectors | undefined | null): Datum[] => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return []\n }\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n let finalResult: Datum[] = []\n\n for (const selector of selectors) {\n const results: Datum[] = []\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n Object.entries(datum).forEach(([key, value]) => {\n if (value === selector) {\n results.push({ [key]: value } as Datum)\n }\n })\n } else if (isMeasureSelector(selector) && selectByMeasure(selector, datum)) {\n results.push({ [selector.field]: datum[selector.field] } as Datum)\n } else if (isDimensionSelector(selector) && selectByDmension(selector, datum)) {\n results.push({ [selector.field]: datum[selector.field] } as Datum)\n } else if (isPartialDatumSelector(selector) && selectByPartial(selector, datum)) {\n results.push(selector)\n }\n\n if (results.length) {\n if (finalResult.length) {\n finalResult = finalResult.flatMap((prev) => {\n return results.map((r) => {\n return {\n ...prev,\n ...r,\n }\n })\n })\n } else {\n finalResult = results\n }\n } else {\n finalResult = []\n break\n }\n }\n\n return finalResult\n}\n\nexport const isValueSelector = (selector: Selector): selector is ValueSelector => {\n return typeof selector === 'string' || typeof selector === 'number'\n}\n\nexport const isPartialDatumSelector = (selector: Selector): selector is PartialDatumSelector => {\n return typeof selector === 'object' && selector !== null\n}\n\nexport const isMeasureSelector = (selector: Selector): selector is MeasureSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.operator as string) ||\n ['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.op as string))\n )\n}\n\nexport const isDimensionSelector = (selector: Selector): selector is DimensionSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['in', 'not in'].includes(selector.operator as string) || ['in', 'not in'].includes(selector.op as string))\n )\n}\n\nexport const selectByMeasure = (selector: MeasureSelector, datum: Datum) => {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n\n switch (op) {\n case '=':\n if (\n String(datum[selector.field]) === String(selectorValueArr[0]) ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case '==':\n if (datum[selector.field] === selectorValueArr[0]) {\n return true\n }\n break\n case '!=':\n if (datum[selector.field] !== selectorValueArr[0]) {\n return true\n }\n break\n case '>':\n if (\n datum[selector.field] > selectorValueArr[0] &&\n !nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case '<':\n if (\n datum[selector.field] < selectorValueArr[0] &&\n !nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case '>=':\n if (\n datum[selector.field] >= selectorValueArr[0] ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case '<=':\n if (\n datum[selector.field] <= selectorValueArr[0] ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case 'between':\n if (\n Array.isArray(selector.value) &&\n (datum[selector.field] >= selectorValueArr[0] ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) &&\n (datum[selector.field] <= selectorValueArr[1] ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[1])))\n ) {\n return true\n }\n break\n }\n return false\n}\n\nexport const selectByDmension = (selector: DimensionSelector, datum: Datum) => {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n switch (op) {\n case 'in':\n if (selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n case 'not in':\n if (!selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n }\n\n return false\n}\n\nexport const selectByPartial = (selector: PartialDatumSelector, datum: Datum) => {\n return Object.keys(selector).every((key) => datum[key] === selector[key])\n}\n\nexport const selectByValue = (selector: ValueSelector, datum: Datum) => {\n return Object.values(datum).some((v) => v === selector)\n}\n"],"names":["nearlyEqual","a","b","epsilon","Number","diff","Math","selector","vchartDatum","selectorMode","vchartKeys","Object","k","datum","omit","selectors","Array","isValueSelector","selectByValue","isMeasureSelector","selectByMeasure","isDimensionSelector","selectByDmension","isPartialDatumSelector","selectByPartial","selectorDatum","finalResult","results","key","value","prev","r","op","selectorValueArr","String","v"],"mappings":";AAcA,SAASA,YAAYC,CAAS,EAAEC,CAAS,EAAEC,UAAU,IAAI;IAEvD,IAAIC,OAAO,KAAK,CAACH,MAAMG,OAAO,KAAK,CAACF,IAAI,OAAO;IAE/C,IAAID,MAAMC,GAAG,OAAO;IACpB,MAAMG,OAAOC,KAAK,GAAG,CAACL,IAAIC;IAC1B,OAAOG,QAAQF;AACjB;AAEO,MAAMI,oBAAW,CACtBC,aACAD,UACAE,eAA6B,KAAK;IAGlC,IAAI,CAACF,UACH,OAAO;IAIT,MAAMG,aAAaC,OAAO,IAAI,CAACH,aAAa,MAAM,CAAC,CAACI,IAAMA,EAAE,iBAAiB,GAAG,UAAU,CAAC;IAC3F,MAAMC,QAAQC,KAAKN,aAAaE;IAGhC,MAAMK,YAAaC,MAAM,OAAO,CAACT,YAAYA,WAAW;QAACA;KAAS;IAElE,OAAOQ,SAAS,CAACN,AAAiB,UAAjBA,eAAyB,UAAU,OAAO,CAAC,CAACF;QAE3D,IAAIU,gBAAgBV,WAClB,OAAOW,cAAcX,UAAUM;QAI5B,IAAIM,kBAAkBZ,WACzB,OAAOa,gBAAgBb,UAAUM;QAG9B,IAAIQ,oBAAoBd,WAC3B,OAAOe,iBAAiBf,UAAUM;QAG/B,IAAIU,uBAAuBhB,WAC9B,OAAOiB,gBAAgBjB,UAAUM;QAGnC,OAAO;IACT;AACF;AAEO,MAAMY,gBAAgB,CAACZ,OAAcN;IAE1C,IAAI,CAACA,UACH,OAAO,EAAE;IAIX,MAAMQ,YAAaC,MAAM,OAAO,CAACT,YAAYA,WAAW;QAACA;KAAS;IAClE,IAAImB,cAAuB,EAAE;IAE7B,KAAK,MAAMnB,YAAYQ,UAAW;QAChC,MAAMY,UAAmB,EAAE;QAE3B,IAAIV,gBAAgBV,WAClBI,OAAO,OAAO,CAACE,OAAO,OAAO,CAAC,CAAC,CAACe,KAAKC,MAAM;YACzC,IAAIA,UAAUtB,UACZoB,QAAQ,IAAI,CAAC;gBAAE,CAACC,IAAI,EAAEC;YAAM;QAEhC;aACK,IAAIV,kBAAkBZ,aAAaa,gBAAgBb,UAAUM,QAClEc,QAAQ,IAAI,CAAC;YAAE,CAACpB,SAAS,KAAK,CAAC,EAAEM,KAAK,CAACN,SAAS,KAAK,CAAC;QAAC;aAClD,IAAIc,oBAAoBd,aAAae,iBAAiBf,UAAUM,QACrEc,QAAQ,IAAI,CAAC;YAAE,CAACpB,SAAS,KAAK,CAAC,EAAEM,KAAK,CAACN,SAAS,KAAK,CAAC;QAAC;aAClD,IAAIgB,uBAAuBhB,aAAaiB,gBAAgBjB,UAAUM,QACvEc,QAAQ,IAAI,CAACpB;QAGf,IAAIoB,QAAQ,MAAM,EAEdD,cADEA,YAAY,MAAM,GACNA,YAAY,OAAO,CAAC,CAACI,OAC1BH,QAAQ,GAAG,CAAC,CAACI,IACX;oBACL,GAAGD,IAAI;oBACP,GAAGC,CAAC;gBACN,OAIUJ;aAEX;YACLD,cAAc,EAAE;YAChB;QACF;IACF;IAEA,OAAOA;AACT;AAEO,MAAMT,kBAAkB,CAACV,WACvB,AAAoB,YAApB,OAAOA,YAAyB,AAAoB,YAApB,OAAOA;AAGzC,MAAMgB,yBAAyB,CAAChB,WAC9B,AAAoB,YAApB,OAAOA,YAAyBA,AAAa,SAAbA;AAGlC,MAAMY,oBAAoB,CAACZ,WAE9B,AAAoB,YAApB,OAAOA,YACPA,AAAa,SAAbA,YACA,WAAWA,YACV,eAAcA,YAAY,QAAQA,QAAO,KAC1C,WAAWA,YACV;QAAC;QAAK;QAAM;QAAM;QAAK;QAAK;QAAM;QAAM;KAAU,CAAC,QAAQ,CAACA,SAAS,QAAQ,KAC5E;QAAC;QAAK;QAAM;QAAM;QAAK;QAAK;QAAM;QAAM;KAAU,CAAC,QAAQ,CAACA,SAAS,EAAE;AAItE,MAAMc,sBAAsB,CAACd,WAEhC,AAAoB,YAApB,OAAOA,YACPA,AAAa,SAAbA,YACA,WAAWA,YACV,eAAcA,YAAY,QAAQA,QAAO,KAC1C,WAAWA,YACV;QAAC;QAAM;KAAS,CAAC,QAAQ,CAACA,SAAS,QAAQ,KAAe;QAAC;QAAM;KAAS,CAAC,QAAQ,CAACA,SAAS,EAAE;AAI7F,MAAMa,kBAAkB,CAACb,UAA2BM;IACzD,MAAMmB,KAAKzB,SAAS,QAAQ,IAAIA,SAAS,EAAE;IAC3C,MAAM0B,mBAAmBjB,MAAM,OAAO,CAACT,SAAS,KAAK,IAAIA,SAAS,KAAK,GAAG;QAACA,SAAS,KAAK;KAAC;IAE1F,OAAQyB;QACN,KAAK;YACH,IACEE,OAAOrB,KAAK,CAACN,SAAS,KAAK,CAAC,MAAM2B,OAAOD,gBAAgB,CAAC,EAAE,KAC5DjC,YAAYI,OAAOS,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGH,OAAO6B,gBAAgB,CAAC,EAAE,IAErE,OAAO;YAET;QACF,KAAK;YACH,IAAIpB,KAAK,CAACN,SAAS,KAAK,CAAC,KAAK0B,gBAAgB,CAAC,EAAE,EAC/C,OAAO;YAET;QACF,KAAK;YACH,IAAIpB,KAAK,CAACN,SAAS,KAAK,CAAC,KAAK0B,gBAAgB,CAAC,EAAE,EAC/C,OAAO;YAET;QACF,KAAK;YACH,IACEpB,KAAK,CAACN,SAAS,KAAK,CAAC,GAAG0B,gBAAgB,CAAC,EAAE,IAC3C,CAACjC,YAAYI,OAAOS,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGH,OAAO6B,gBAAgB,CAAC,EAAE,IAEtE,OAAO;YAET;QACF,KAAK;YACH,IACEpB,KAAK,CAACN,SAAS,KAAK,CAAC,GAAG0B,gBAAgB,CAAC,EAAE,IAC3C,CAACjC,YAAYI,OAAOS,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGH,OAAO6B,gBAAgB,CAAC,EAAE,IAEtE,OAAO;YAET;QACF,KAAK;YACH,IACEpB,KAAK,CAACN,SAAS,KAAK,CAAC,IAAI0B,gBAAgB,CAAC,EAAE,IAC5CjC,YAAYI,OAAOS,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGH,OAAO6B,gBAAgB,CAAC,EAAE,IAErE,OAAO;YAET;QACF,KAAK;YACH,IACEpB,KAAK,CAACN,SAAS,KAAK,CAAC,IAAI0B,gBAAgB,CAAC,EAAE,IAC5CjC,YAAYI,OAAOS,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGH,OAAO6B,gBAAgB,CAAC,EAAE,IAErE,OAAO;YAET;QACF,KAAK;YACH,IACEjB,MAAM,OAAO,CAACT,SAAS,KAAK,KAC3BM,CAAAA,KAAK,CAACN,SAAS,KAAK,CAAC,IAAI0B,gBAAgB,CAAC,EAAE,IAC3CjC,YAAYI,OAAOS,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGH,OAAO6B,gBAAgB,CAAC,EAAE,EAAC,KACvEpB,CAAAA,KAAK,CAACN,SAAS,KAAK,CAAC,IAAI0B,gBAAgB,CAAC,EAAE,IAC3CjC,YAAYI,OAAOS,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGH,OAAO6B,gBAAgB,CAAC,EAAE,EAAC,GAExE,OAAO;YAET;IACJ;IACA,OAAO;AACT;AAEO,MAAMX,mBAAmB,CAACf,UAA6BM;IAC5D,MAAMmB,KAAKzB,SAAS,QAAQ,IAAIA,SAAS,EAAE;IAC3C,MAAM0B,mBAAmBjB,MAAM,OAAO,CAACT,SAAS,KAAK,IAAIA,SAAS,KAAK,GAAG;QAACA,SAAS,KAAK;KAAC;IAC1F,OAAQyB;QACN,KAAK;YACH,IAAIC,iBAAiB,QAAQ,CAACpB,KAAK,CAACN,SAAS,KAAK,CAAC,GACjD,OAAO;YAET;QACF,KAAK;YACH,IAAI,CAAC0B,iBAAiB,QAAQ,CAACpB,KAAK,CAACN,SAAS,KAAK,CAAC,GAClD,OAAO;YAET;IACJ;IAEA,OAAO;AACT;AAEO,MAAMiB,kBAAkB,CAACjB,UAAgCM,QACvDF,OAAO,IAAI,CAACJ,UAAU,KAAK,CAAC,CAACqB,MAAQf,KAAK,CAACe,IAAI,KAAKrB,QAAQ,CAACqB,IAAI;AAGnE,MAAMV,gBAAgB,CAACX,UAAyBM,QAC9CF,OAAO,MAAM,CAACE,OAAO,IAAI,CAAC,CAACsB,IAAMA,MAAM5B"}
@@ -5,11 +5,11 @@ const donutAdvancedPipeline = [
5
5
  defaultDimensions,
6
6
  defaultMeasureId,
7
7
  encodingAdapter([
8
- defaultEncodingForPie,
9
- buildMeasures
8
+ buildMeasures,
9
+ defaultEncodingForPie
10
10
  ], [
11
- encodingForPie,
12
11
  buildMeasures,
12
+ encodingForPie,
13
13
  pickMeasuresForReshape([
14
14
  'tooltip',
15
15
  'label',
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipeline/donut.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/donut.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n donutConfig,\n encodingForPie,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForPie,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const donutAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [defaultEncodingForPie, buildMeasures],\n [encodingForPie, buildMeasures, pickMeasuresForReshape(['tooltip', 'label', 'color']), pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n donutConfig,\n theme,\n annotation,\n]\n"],"names":["donutAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","defaultEncodingForPie","buildMeasures","encodingForPie","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","donutConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,wBAA0C;IACrDC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAAuBC;KAAc,EACtC;QAACC;QAAgBD;QAAeE,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QAAGC;KAAyB;IAElHC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipeline/donut.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/donut.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n donutConfig,\n encodingForPie,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForPie,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const donutAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures, defaultEncodingForPie],\n [buildMeasures, encodingForPie, pickMeasuresForReshape(['tooltip', 'label', 'color']), pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n donutConfig,\n theme,\n annotation,\n]\n"],"names":["donutAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForPie","encodingForPie","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","donutConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,wBAA0C;IACrDC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAAeC;KAAsB,EACtC;QAACD;QAAeE;QAAgBC,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QAAGC;KAAyB;IAElHC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
@@ -1,10 +1,9 @@
1
- import { annotation, buildMeasures, defaultDimensions, defaultEncodingForHistogram, defaultMeasureId, defaultMeasures, encodingAdapter, encodingForHistogram, histogramConfig, initAdvancedVSeed, markStyle, pickDimensionsForReshape, pickMeasuresForReshape, pivotAdapter, pivotReshapeWithHistogramEncoding, regressionLine, reshapeWithHistogramEncoding, sortLegend, theme } from "../pipes/index.js";
1
+ import { annotation, buildMeasures, defaultDimensions, defaultEncodingForHistogram, defaultMeasures, encodingAdapter, encodingForHistogram, histogramConfig, initAdvancedVSeed, markStyle, pickDimensionsForReshape, pickMeasuresForReshape, pivotAdapter, pivotReshapeWithHistogramEncoding, regressionLine, reshapeWithHistogramEncoding, sortLegend, theme } from "../pipes/index.js";
2
2
  import { histogramXAxisConfig } from "../pipes/config/histogram.js";
3
3
  const histogramAdvancedPipeline = [
4
4
  initAdvancedVSeed,
5
5
  defaultMeasures,
6
6
  defaultDimensions,
7
- defaultMeasureId,
8
7
  histogramConfig,
9
8
  encodingAdapter([
10
9
  defaultEncodingForHistogram,
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipeline/histogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/histogram.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n histogramConfig,\n markStyle,\n annotation,\n sortLegend,\n pivotReshapeWithHistogramEncoding,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n defaultEncodingForHistogram,\n encodingForHistogram,\n reshapeWithHistogramEncoding,\n regressionLine,\n} from '../pipes'\nimport { histogramXAxisConfig } from '../pipes/config/histogram'\n\nexport const histogramAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n histogramConfig,\n\n encodingAdapter(\n [defaultEncodingForHistogram, buildMeasures],\n [\n encodingForHistogram,\n buildMeasures,\n pickMeasuresForReshape(['tooltip', 'label', 'color']),\n pickDimensionsForReshape,\n ],\n ),\n pivotAdapter([reshapeWithHistogramEncoding], [pivotReshapeWithHistogramEncoding]),\n\n histogramXAxisConfig,\n sortLegend,\n theme,\n markStyle,\n annotation,\n regressionLine,\n]\n"],"names":["histogramAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","histogramConfig","encodingAdapter","defaultEncodingForHistogram","buildMeasures","encodingForHistogram","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithHistogramEncoding","pivotReshapeWithHistogramEncoding","histogramXAxisConfig","sortLegend","theme","markStyle","annotation","regressionLine"],"mappings":";;AAwBO,MAAMA,4BAA8C;IACzDC;IACAC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAA6BC;KAAc,EAC5C;QACEC;QACAD;QACAE,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QACpDC;KACD;IAEHC,aAAa;QAACC;KAA6B,EAAE;QAACC;KAAkC;IAEhFC;IACAC;IACAC;IACAC;IACAC;IACAC;CACD"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipeline/histogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/histogram.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n histogramConfig,\n markStyle,\n annotation,\n sortLegend,\n pivotReshapeWithHistogramEncoding,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n encodingAdapter,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n defaultEncodingForHistogram,\n encodingForHistogram,\n reshapeWithHistogramEncoding,\n regressionLine,\n} from '../pipes'\nimport { histogramXAxisConfig } from '../pipes/config/histogram'\n\nexport const histogramAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n histogramConfig,\n\n encodingAdapter(\n [defaultEncodingForHistogram, buildMeasures],\n [\n encodingForHistogram,\n buildMeasures,\n pickMeasuresForReshape(['tooltip', 'label', 'color']),\n pickDimensionsForReshape,\n ],\n ),\n pivotAdapter([reshapeWithHistogramEncoding], [pivotReshapeWithHistogramEncoding]),\n\n histogramXAxisConfig,\n sortLegend,\n theme,\n markStyle,\n annotation,\n regressionLine,\n]\n"],"names":["histogramAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","histogramConfig","encodingAdapter","defaultEncodingForHistogram","buildMeasures","encodingForHistogram","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithHistogramEncoding","pivotReshapeWithHistogramEncoding","histogramXAxisConfig","sortLegend","theme","markStyle","annotation","regressionLine"],"mappings":";;AAuBO,MAAMA,4BAA8C;IACzDC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAA6BC;KAAc,EAC5C;QACEC;QACAD;QACAE,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QACpDC;KACD;IAEHC,aAAa;QAACC;KAA6B,EAAE;QAACC;KAAkC;IAEhFC;IACAC;IACAC;IACAC;IACAC;IACAC;CACD"}
@@ -5,11 +5,11 @@ const pieAdvancedPipeline = [
5
5
  defaultDimensions,
6
6
  defaultMeasureId,
7
7
  encodingAdapter([
8
- defaultEncodingForPie,
9
- buildMeasures
8
+ buildMeasures,
9
+ defaultEncodingForPie
10
10
  ], [
11
- encodingForPie,
12
11
  buildMeasures,
12
+ encodingForPie,
13
13
  pickMeasuresForReshape([
14
14
  'tooltip',
15
15
  'label',
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipeline/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/pie.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n pieConfig,\n annotation,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n encodingForPie,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForPie,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [defaultEncodingForPie, buildMeasures],\n [encodingForPie, buildMeasures, pickMeasuresForReshape(['tooltip', 'label', 'color']), pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n pieConfig,\n theme,\n annotation,\n]\n"],"names":["pieAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","defaultEncodingForPie","buildMeasures","encodingForPie","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","pieConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,sBAAwC;IACnDC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAAuBC;KAAc,EACtC;QAACC;QAAgBD;QAAeE,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QAAGC;KAAyB;IAElHC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipeline/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/pie.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n pieConfig,\n annotation,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n encodingForPie,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForPie,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures, defaultEncodingForPie],\n [buildMeasures, encodingForPie, pickMeasuresForReshape(['tooltip', 'label', 'color']), pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n pieConfig,\n theme,\n annotation,\n]\n"],"names":["pieAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForPie","encodingForPie","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","pieConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,sBAAwC;IACnDC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAAeC;KAAsB,EACtC;QAACD;QAAeE;QAAgBC,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QAAGC;KAAyB;IAElHC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
@@ -15,7 +15,8 @@ const boxplotConfig = (advancedVSeed, context)=>{
15
15
  'xAxis',
16
16
  'yAxis',
17
17
  'crosshairRect',
18
- 'whiskers'
18
+ 'whiskers',
19
+ 'dimensionLinkage'
19
20
  ]);
20
21
  const config = replaceNullToUndefined(pickedConfig);
21
22
  result.config = {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/config/boxplot.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/boxplot.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const boxplotConfig: 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 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'whiskers',\n ]) as Config['boxPlot']\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":["boxplotConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,gBAA8B,CAACC,eAAeC;IACzD,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;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/boxplot.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/boxplot.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const boxplotConfig: 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 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'whiskers',\n\n 'dimensionLinkage',\n ]) as Config['boxPlot']\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":["boxplotConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,gBAA8B,CAACC,eAAeC;IACzD,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;QACA;QACA;QACA;QACA;QAEA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -17,7 +17,8 @@ const columnConfig = (advancedVSeed, context)=>{
17
17
  'crosshairRect',
18
18
  'stackCornerRadius',
19
19
  'barMaxWidth',
20
- 'barGapInGroup'
20
+ 'barGapInGroup',
21
+ 'dimensionLinkage'
21
22
  ]);
22
23
  const config = replaceNullToUndefined(pickedConfig);
23
24
  result.config = {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/config/column.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/column.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const columnConfig: 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 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'stackCornerRadius',\n 'barMaxWidth',\n 'barGapInGroup',\n ]) as Config['column']\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":["columnConfig","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;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/column.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/column.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const columnConfig: 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 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'stackCornerRadius',\n 'barMaxWidth',\n 'barGapInGroup',\n\n 'dimensionLinkage',\n ]) as Config['column']\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":["columnConfig","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;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -21,7 +21,8 @@ const dualAxisConfig = (advancedVSeed, context)=>{
21
21
  'crosshairRect',
22
22
  'barGapInGroup',
23
23
  'barMaxWidth',
24
- 'stackCornerRadius'
24
+ 'stackCornerRadius',
25
+ 'dimensionLinkage'
25
26
  ]);
26
27
  const config = replaceNullToUndefined(pickedConfig);
27
28
  result.config = {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/config/dualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/dualAxis.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const dualAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n // common\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n\n // only for dualAxis\n 'dualChartType',\n 'alignTicks',\n 'primaryYAxis',\n 'secondaryYAxis',\n 'crosshairLine',\n 'crosshairRect',\n\n 'barGapInGroup',\n 'barMaxWidth',\n 'stackCornerRadius',\n ]) as Config['dualAxis']\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":["dualAxisConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,iBAA+B,CAACC,eAAeC;IAC1D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAE/B;QACA;QACA;QACA;QACA;QACA;QAGA;QACA;QACA;QACA;QACA;QACA;QAEA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/dualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/dualAxis.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const dualAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n // common\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n\n // only for dualAxis\n 'dualChartType',\n 'alignTicks',\n 'primaryYAxis',\n 'secondaryYAxis',\n 'crosshairLine',\n 'crosshairRect',\n\n 'barGapInGroup',\n 'barMaxWidth',\n 'stackCornerRadius',\n\n 'dimensionLinkage',\n ]) as Config['dualAxis']\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":["dualAxisConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,iBAA+B,CAACC,eAAeC;IAC1D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAE/B;QACA;QACA;QACA;QACA;QACA;QAGA;QACA;QACA;QACA;QACA;QACA;QAEA;QACA;QACA;QAEA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -19,7 +19,8 @@ const histogramConfig = (advancedVSeed, context)=>{
19
19
  'crosshairRect',
20
20
  'binCount',
21
21
  'binStep',
22
- 'binValueType'
22
+ 'binValueType',
23
+ 'dimensionLinkage'
23
24
  ]);
24
25
  let config = replaceNullToUndefined(pickedConfig);
25
26
  if (!hasColorEncoding && !config?.legend?.enable) config = {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/config/histogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/histogram.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { pick } from 'remeda'\nimport { BinEndMeasureId, BinStartMeasureId } from 'src/dataReshape'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config, Dimension } from 'src/types'\n\nexport const histogramConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n const hasColorEncoding = (advancedVSeed?.dimensions || []).find((field: Dimension) => field?.encoding === 'color')\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'binCount',\n 'binStep',\n 'binValueType',\n ]) as Config['histogram']\n\n let config = replaceNullToUndefined(pickedConfig)\n\n if (!hasColorEncoding && !config?.legend?.enable) {\n config = {\n ...config,\n legend: {\n ...config?.legend,\n enable: false,\n },\n }\n }\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const histogramXAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n const { dataset = [] } = advancedVSeed\n const flattenDatasert = dataset.flat()\n const minValue = Math.min(...flattenDatasert.map((v) => +v[BinStartMeasureId]))\n const maxValue = Math.max(...flattenDatasert.map((v) => +v[BinEndMeasureId]))\n\n const chartConfig = result.config?.[chartType] as any\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...chartConfig,\n xAxis: {\n min: Number.isNaN(minValue) ? undefined : minValue,\n max: Number.isNaN(maxValue) ? undefined : maxValue,\n ...(chartConfig?.xAxis || {}),\n },\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["histogramConfig","advancedVSeed","context","vseed","chartType","result","hasColorEncoding","field","pickedConfig","pick","config","replaceNullToUndefined","histogramXAxisConfig","dataset","flattenDatasert","minValue","Math","v","BinStartMeasureId","maxValue","BinEndMeasureId","chartConfig","Number","undefined"],"mappings":";;;AAMO,MAAMA,kBAAgC,CAACC,eAAeC;IAC3D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IACA,MAAMK,mBAAoBL,AAAAA,CAAAA,eAAe,cAAc,EAAC,EAAG,IAAI,CAAC,CAACM,QAAqBA,OAAO,aAAa;IAE1G,MAAMC,eAAeC,KAAKN,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,IAAIO,SAASC,uBAAuBH;IAEpC,IAAI,CAACF,oBAAoB,CAACI,QAAQ,QAAQ,QACxCA,SAAS;QACP,GAAGA,MAAM;QACT,QAAQ;YACN,GAAGA,QAAQ,MAAM;YACjB,QAAQ;QACV;IACF;IAEFL,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGM,MAAM;QACX;IACF;IAEA,OAAOL;AACT;AAEO,MAAMO,uBAAqC,CAACX,eAAeC;IAChE,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IACA,MAAM,EAAEY,UAAU,EAAE,EAAE,GAAGZ;IACzB,MAAMa,kBAAkBD,QAAQ,IAAI;IACpC,MAAME,WAAWC,KAAK,GAAG,IAAIF,gBAAgB,GAAG,CAAC,CAACG,IAAM,CAACA,CAAC,CAACC,kBAAkB;IAC7E,MAAMC,WAAWH,KAAK,GAAG,IAAIF,gBAAgB,GAAG,CAAC,CAACG,IAAM,CAACA,CAAC,CAACG,gBAAgB;IAE3E,MAAMC,cAAchB,OAAO,MAAM,EAAE,CAACD,UAAU;IAC9CC,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGiB,WAAW;YACd,OAAO;gBACL,KAAKC,OAAO,KAAK,CAACP,YAAYQ,SAAYR;gBAC1C,KAAKO,OAAO,KAAK,CAACH,YAAYI,SAAYJ;gBAC1C,GAAIE,aAAa,SAAS,CAAC,CAAC;YAC9B;QACF;IACF;IAEA,OAAOhB;AACT"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/histogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/histogram.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { pick } from 'remeda'\nimport { BinEndMeasureId, BinStartMeasureId } from 'src/dataReshape'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config, Dimension } from 'src/types'\n\nexport const histogramConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n const hasColorEncoding = (advancedVSeed?.dimensions || []).find((field: Dimension) => field?.encoding === 'color')\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'binCount',\n 'binStep',\n 'binValueType',\n\n 'dimensionLinkage',\n ]) as Config['histogram']\n\n let config = replaceNullToUndefined(pickedConfig)\n\n if (!hasColorEncoding && !config?.legend?.enable) {\n config = {\n ...config,\n legend: {\n ...config?.legend,\n enable: false,\n },\n }\n }\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const histogramXAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n const { dataset = [] } = advancedVSeed\n const flattenDatasert = dataset.flat()\n const minValue = Math.min(...flattenDatasert.map((v) => +v[BinStartMeasureId]))\n const maxValue = Math.max(...flattenDatasert.map((v) => +v[BinEndMeasureId]))\n\n const chartConfig = result.config?.[chartType] as any\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...chartConfig,\n xAxis: {\n min: Number.isNaN(minValue) ? undefined : minValue,\n max: Number.isNaN(maxValue) ? undefined : maxValue,\n ...(chartConfig?.xAxis || {}),\n },\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["histogramConfig","advancedVSeed","context","vseed","chartType","result","hasColorEncoding","field","pickedConfig","pick","config","replaceNullToUndefined","histogramXAxisConfig","dataset","flattenDatasert","minValue","Math","v","BinStartMeasureId","maxValue","BinEndMeasureId","chartConfig","Number","undefined"],"mappings":";;;AAMO,MAAMA,kBAAgC,CAACC,eAAeC;IAC3D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IACA,MAAMK,mBAAoBL,AAAAA,CAAAA,eAAe,cAAc,EAAC,EAAG,IAAI,CAAC,CAACM,QAAqBA,OAAO,aAAa;IAE1G,MAAMC,eAAeC,KAAKN,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA;KACD;IAED,IAAIO,SAASC,uBAAuBH;IAEpC,IAAI,CAACF,oBAAoB,CAACI,QAAQ,QAAQ,QACxCA,SAAS;QACP,GAAGA,MAAM;QACT,QAAQ;YACN,GAAGA,QAAQ,MAAM;YACjB,QAAQ;QACV;IACF;IAEFL,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGM,MAAM;QACX;IACF;IAEA,OAAOL;AACT;AAEO,MAAMO,uBAAqC,CAACX,eAAeC;IAChE,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IACA,MAAM,EAAEY,UAAU,EAAE,EAAE,GAAGZ;IACzB,MAAMa,kBAAkBD,QAAQ,IAAI;IACpC,MAAME,WAAWC,KAAK,GAAG,IAAIF,gBAAgB,GAAG,CAAC,CAACG,IAAM,CAACA,CAAC,CAACC,kBAAkB;IAC7E,MAAMC,WAAWH,KAAK,GAAG,IAAIF,gBAAgB,GAAG,CAAC,CAACG,IAAM,CAACA,CAAC,CAACG,gBAAgB;IAE3E,MAAMC,cAAchB,OAAO,MAAM,EAAE,CAACD,UAAU;IAC9CC,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGiB,WAAW;YACd,OAAO;gBACL,KAAKC,OAAO,KAAK,CAACP,YAAYQ,SAAYR;gBAC1C,KAAKO,OAAO,KAAK,CAACH,YAAYI,SAAYJ;gBAC1C,GAAIE,aAAa,SAAS,CAAC,CAAC;YAC9B;QACF;IACF;IAEA,OAAOhB;AACT"}
@@ -14,7 +14,8 @@ const lineConfig = (advancedVSeed, context)=>{
14
14
  'tooltip',
15
15
  'xAxis',
16
16
  'yAxis',
17
- 'crosshairLine'
17
+ 'crosshairLine',
18
+ 'dimensionLinkage'
18
19
  ]);
19
20
  const config = replaceNullToUndefined(pickedConfig);
20
21
  result.config = {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/config/line.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/line.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const lineConfig: 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 'xAxis',\n 'yAxis',\n 'crosshairLine',\n ]) as Config['line']\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":["lineConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,aAA2B,CAACC,eAAeC;IACtD,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;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/line.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/line.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const lineConfig: 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 'xAxis',\n 'yAxis',\n 'crosshairLine',\n 'dimensionLinkage',\n ]) as Config['line']\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":["lineConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,aAA2B,CAACC,eAAeC;IACtD,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;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -16,7 +16,8 @@ const scatterConfig = (advancedVSeed, context)=>{
16
16
  'yAxis',
17
17
  'sizeRange',
18
18
  'size',
19
- 'crosshairLine'
19
+ 'crosshairLine',
20
+ 'dimensionLinkage'
20
21
  ]);
21
22
  const config = replaceNullToUndefined(pickedConfig);
22
23
  result.config = {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/config/scatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/scatter.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const scatterConfig: 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 'xAxis',\n 'yAxis',\n 'sizeRange',\n 'size',\n 'crosshairLine',\n ]) as Config['line']\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":["scatterConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,gBAA8B,CAACC,eAAeC;IACzD,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;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/scatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/scatter.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const scatterConfig: 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 'xAxis',\n 'yAxis',\n 'sizeRange',\n 'size',\n 'crosshairLine',\n\n 'dimensionLinkage',\n ]) as Config['line']\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":["scatterConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,gBAA8B,CAACC,eAAeC;IACzD,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;QACA;QACA;QACA;QACA;QACA;QAEA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -1,12 +1,12 @@
1
1
  import { unique } from "remeda";
2
2
  import { MeasureId } from "../../../../../dataReshape/index.js";
3
- import { findAllMeasures } from "../../../../utils/index.js";
3
+ import { findAllMeasures, hasMultipleMeasureInSingleView } from "../../../../utils/index.js";
4
4
  import { addColorToEncoding } from "./color/index.js";
5
5
  const defaultEncodingForPie = (advancedVSeed)=>{
6
6
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7
7
  const measures = findAllMeasures(vseedMeasures);
8
8
  const encoding = {};
9
- generateDefaultDimensionEncoding(dimensions, encoding);
9
+ generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(vseedMeasures));
10
10
  generateDefaultMeasureEncoding(measures, encoding);
11
11
  return {
12
12
  ...advancedVSeed,
@@ -19,8 +19,9 @@ const encodingForPie = (advancedVSeed)=>{
19
19
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
20
20
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
21
21
  const encoding = {};
22
- if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding, measures.length > 1);
23
- else generateDefaultDimensionEncoding(dimensions, encoding);
22
+ const hasMulti = hasMultipleMeasureInSingleView(vseedMeasures);
23
+ if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding, hasMulti);
24
+ else generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
24
25
  if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
25
26
  else generateDefaultMeasureEncoding(measures, encoding);
26
27
  return {
@@ -28,9 +29,10 @@ const encodingForPie = (advancedVSeed)=>{
28
29
  encoding
29
30
  };
30
31
  };
31
- const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
32
+ const generateDefaultDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
32
33
  const uniqueDimIds = unique(dimensions.map((d)=>d.id));
33
- encoding.color = uniqueDimIds.slice(0);
34
+ if (isMultiMeasure) encoding.color = uniqueDimIds.slice(0);
35
+ else encoding.color = uniqueDimIds.filter((d)=>d !== MeasureId);
34
36
  encoding.detail = encoding.color;
35
37
  encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
36
38
  encoding.label = [];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/encoding/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/pie.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\n\nexport const defaultEncodingForPie: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForPie: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding, measures.length > 1)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\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) => {\n const uniqueDimIds = unique(dimensions.map((d) => d.id))\n encoding.color = uniqueDimIds.slice(0) // 第1个之后的维度用于颜色\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // color\n addColorToEncoding(dimensions, encoding, isMultiMeasure)\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureId]\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureId)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.angle = unique(measures.filter((item) => item.encoding === 'angle' || !item.encoding).map((item) => item.id))\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // angle\n encoding.angle = unique(measures.filter((item) => item.encoding === 'angle' || !item.encoding).map((item) => item.id))\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\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])\n}\n"],"names":["defaultEncodingForPie","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForPie","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","uniqueDimIds","unique","d","MeasureId","isMultiMeasure","addColorToEncoding","color","label","tooltip"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/encoding/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/pie.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { findAllMeasures, hasMultipleMeasureInSingleView } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\n\nexport const defaultEncodingForPie: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(vseedMeasures))\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForPie: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\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(vseedMeasures)\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\n if (isMultiMeasure) {\n encoding.color = uniqueDimIds.slice(0) // 所有维度都用于color映射,包括MeasureId\n } else {\n encoding.color = uniqueDimIds.filter((d: string) => d !== MeasureId) // 除了MeasureId之外的所有维度用于color映射\n }\n\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // color\n addColorToEncoding(dimensions, encoding, isMultiMeasure)\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureId]\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureId)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.angle = unique(measures.filter((item) => item.encoding === 'angle' || !item.encoding).map((item) => item.id))\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // angle\n encoding.angle = unique(measures.filter((item) => item.encoding === 'angle' || !item.encoding).map((item) => item.id))\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\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])\n}\n"],"names":["defaultEncodingForPie","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","hasMultipleMeasureInSingleView","generateDefaultMeasureEncoding","encodingForPie","hasDimensionEncoding","item","hasMeasureEncoding","hasMulti","generateDimensionEncoding","generateMeasureEncoding","isMultiMeasure","uniqueDimIds","unique","d","MeasureId","addColorToEncoding","color","label","tooltip"],"mappings":";;;;AAMO,MAAMA,wBAAsC,CAACC;IAClD,MAAM,EAAE,UAAUC,gBAAgB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGF;IAC1D,MAAMG,WAAWC,gBAAgBH;IACjC,MAAMI,WAAqB,CAAC;IAC5BC,iCAAiCJ,YAAYG,UAAUE,+BAA+BN;IACtFO,+BAA+BL,UAAUE;IACzC,OAAO;QAAE,GAAGL,aAAa;QAAEK;IAAS;AACtC;AAEO,MAAMI,iBAA+B,CAACT;IAC3C,MAAM,EAAE,UAAUC,gBAAgB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGF;IAC1D,MAAMG,WAAWC,gBAAgBH;IAEjC,MAAMS,uBAAuBR,WAAW,IAAI,CAAC,CAACS,OAAoBA,KAAK,QAAQ;IAC/E,MAAMC,qBAAqBT,SAAS,IAAI,CAAC,CAACQ,OAAkBA,KAAK,QAAQ;IACzE,MAAMN,WAAqB,CAAC;IAC5B,MAAMQ,WAAWN,+BAA+BN;IAEhD,IAAIS,sBACFI,0BAA0BZ,YAAYG,UAAUQ;SAEhDP,iCAAiCJ,YAAYG,UAAUQ;IAGzD,IAAID,oBACFG,wBAAwBZ,UAAUE;SAElCG,+BAA+BL,UAAUE;IAG3C,OAAO;QAAE,GAAGL,aAAa;QAAEK;IAAS;AACtC;AAKA,MAAMC,mCAAmC,CAACJ,YAAwBG,UAAoBW;IACpF,MAAMC,eAAeC,OAAOhB,WAAW,GAAG,CAAC,CAACiB,IAAMA,EAAE,EAAE;IAEtD,IAAIH,gBACFX,SAAS,KAAK,GAAGY,aAAa,KAAK,CAAC;SAEpCZ,SAAS,KAAK,GAAGY,aAAa,MAAM,CAAC,CAACE,IAAcA,MAAMC;IAG5Df,SAAS,MAAM,GAAGA,SAAS,KAAK;IAChCA,SAAS,OAAO,GAAGY,aAAa,MAAM,CAAC,CAACE,IAAMA,MAAMC;IACpDf,SAAS,KAAK,GAAG,EAAE;IACnBA,SAAS,GAAG,GAAG,EAAE;IACjBA,SAAS,MAAM,GAAG,EAAE;AACtB;AACA,MAAMS,4BAA4B,CAACZ,YAAwBG,UAAoBW;IAE7EK,mBAAmBnB,YAAYG,UAAUW;IAGzCX,SAAS,MAAM,GAAGa,OAAOhB,WAAW,MAAM,CAAC,CAACS,OAASA,AAAkB,aAAlBA,KAAK,QAAQ,EAAe,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACtG,IAAIN,AAA2B,MAA3BA,SAAS,MAAM,CAAC,MAAM,EACxBA,SAAS,MAAM,GAAG;QAACe;KAAU;IAI/Bf,SAAS,OAAO,GAAGa,OAAOhB,WAAW,GAAG,CAAC,CAACS,OAASA,KAAK,EAAE;IAC1DN,SAAS,OAAO,GAAGA,SAAS,OAAO,CAAC,MAAM,CAAC,CAACc,IAAMA,MAAMC;IAGxDf,SAAS,KAAK,GAAGa,OAAOhB,WAAW,MAAM,CAAC,CAACS,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACpGN,SAAS,KAAK,GAAGA,SAAS,KAAK,CAAC,MAAM,CAAC,CAACc,IAAMA,MAAMC;AACtD;AAKA,MAAMZ,iCAAiC,CAACL,UAAoBE;IAC1DA,SAAS,KAAK,GAAGa,OAAOf,SAAS,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,IAAgB,CAACA,KAAK,QAAQ,EAAE,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;AACtH;AACA,MAAMI,0BAA0B,CAACZ,UAAoBE;IAEnDA,SAAS,KAAK,GAAGa,OAAOf,SAAS,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,IAAgB,CAACA,KAAK,QAAQ,EAAE,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IAGpH,MAAMW,QAAQJ,OAAOf,SAAS,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IAC/F,IAAIW,MAAM,MAAM,GAAG,GACjBjB,SAAS,KAAK,GAAGiB;IAInB,MAAMC,QAAQL,OAAOf,SAAS,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IAC/FN,SAAS,KAAK,GAAGa,OAAO;WAAKb,SAAS,KAAK,IAAI,EAAE;WAAMkB;KAAM;IAG7D,MAAMC,UAAUN,OAAOf,SAAS,MAAM,CAAC,CAACQ,OAASA,AAAkB,cAAlBA,KAAK,QAAQ,EAAgB,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACnGN,SAAS,OAAO,GAAGa,OAAO;WAAKb,SAAS,OAAO,IAAI,EAAE;WAAMkB;WAAUC;KAAQ;AAC/E"}