@visactor/vseed 0.2.7 → 0.2.8

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 (452) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/advanced/colorItems.js.map +1 -1
  4. package/dist/esm/builder/builder/build.js.map +1 -1
  5. package/dist/esm/builder/builder/buildAdvanced.js.map +1 -1
  6. package/dist/esm/builder/builder/buildSpec.js.map +1 -1
  7. package/dist/esm/builder/builder/builder.d.ts +670 -0
  8. package/dist/esm/builder/builder/builder.js.map +1 -1
  9. package/dist/esm/builder/register/all.js.map +1 -1
  10. package/dist/esm/builder/register/chartType/area.js.map +1 -1
  11. package/dist/esm/builder/register/chartType/areaPercent.js.map +1 -1
  12. package/dist/esm/builder/register/chartType/bar.js.map +1 -1
  13. package/dist/esm/builder/register/chartType/barParallel.js.map +1 -1
  14. package/dist/esm/builder/register/chartType/barPercent.js.map +1 -1
  15. package/dist/esm/builder/register/chartType/boxplot.js.map +1 -1
  16. package/dist/esm/builder/register/chartType/column.js.map +1 -1
  17. package/dist/esm/builder/register/chartType/columnParallel.js.map +1 -1
  18. package/dist/esm/builder/register/chartType/columnPercent.js.map +1 -1
  19. package/dist/esm/builder/register/chartType/donut.js.map +1 -1
  20. package/dist/esm/builder/register/chartType/dualAxis.js.map +1 -1
  21. package/dist/esm/builder/register/chartType/funnel.js.map +1 -1
  22. package/dist/esm/builder/register/chartType/heatmap.js.map +1 -1
  23. package/dist/esm/builder/register/chartType/histogram.js.map +1 -1
  24. package/dist/esm/builder/register/chartType/line.js.map +1 -1
  25. package/dist/esm/builder/register/chartType/pie.js.map +1 -1
  26. package/dist/esm/builder/register/chartType/pivotTable.js.map +1 -1
  27. package/dist/esm/builder/register/chartType/radar.js.map +1 -1
  28. package/dist/esm/builder/register/chartType/rose.js.map +1 -1
  29. package/dist/esm/builder/register/chartType/roseParallel.js.map +1 -1
  30. package/dist/esm/builder/register/chartType/scatter.js.map +1 -1
  31. package/dist/esm/builder/register/chartType/table.js.map +1 -1
  32. package/dist/esm/builder/register/custom.js.map +1 -1
  33. package/dist/esm/builder/register/theme/custom.js.map +1 -1
  34. package/dist/esm/builder/register/theme/dark.js.map +1 -1
  35. package/dist/esm/builder/register/theme/light.js.map +1 -1
  36. package/dist/esm/dataReshape/constant.js.map +1 -1
  37. package/dist/esm/dataReshape/dataReshapeByEncoding.js.map +1 -1
  38. package/dist/esm/dataReshape/foldMeasures.js.map +1 -1
  39. package/dist/esm/dataReshape/unfoldDimensions.js.map +1 -1
  40. package/dist/esm/dataSelector/selector.js.map +1 -1
  41. package/dist/esm/i18n/i18n.js.map +1 -1
  42. package/dist/esm/i18n/i18nData.js.map +1 -1
  43. package/dist/esm/i18n/index.d.ts +1 -0
  44. package/dist/esm/i18n/index.js +4 -0
  45. package/dist/esm/i18n/index.js.map +1 -0
  46. package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
  47. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
  48. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
  49. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
  50. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
  51. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js.map +1 -1
  52. package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
  53. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
  54. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
  55. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
  56. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
  57. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
  58. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
  59. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
  60. package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
  61. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
  62. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
  63. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
  64. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
  65. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
  66. package/dist/esm/pipeline/advanced/chart/pipes/analysis/common.js.map +1 -1
  67. package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortLegend.js.map +1 -1
  68. package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortXBand.js.map +1 -1
  69. package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortYBand.js.map +1 -1
  70. package/dist/esm/pipeline/advanced/chart/pipes/annotation/annotation.js.map +1 -1
  71. package/dist/esm/pipeline/advanced/chart/pipes/config/boxplot.js.map +1 -1
  72. package/dist/esm/pipeline/advanced/chart/pipes/config/column.js.map +1 -1
  73. package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js.map +1 -1
  74. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js.map +1 -1
  75. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js.map +1 -1
  76. package/dist/esm/pipeline/advanced/chart/pipes/config/line.js.map +1 -1
  77. package/dist/esm/pipeline/advanced/chart/pipes/config/pie.js.map +1 -1
  78. package/dist/esm/pipeline/advanced/chart/pipes/config/scatter.js.map +1 -1
  79. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js.map +1 -1
  80. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasureId.js.map +1 -1
  81. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js.map +1 -1
  82. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js.map +1 -1
  83. package/dist/esm/pipeline/advanced/chart/pipes/encoding/adapter/encodingAdapter.js.map +1 -1
  84. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
  85. package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js.map +1 -1
  86. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.js.map +1 -1
  87. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
  88. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
  89. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
  90. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js.map +1 -1
  91. package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js.map +1 -1
  92. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
  93. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
  94. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
  95. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
  96. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
  97. package/dist/esm/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.js.map +1 -1
  98. package/dist/esm/pipeline/advanced/chart/pipes/markStyle/markStyle.js.map +1 -1
  99. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js.map +1 -1
  100. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js.map +1 -1
  101. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js.map +1 -1
  102. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js.map +1 -1
  103. package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.js.map +1 -1
  104. package/dist/esm/pipeline/advanced/chart/pipes/pivot/pivotAdapter.js.map +1 -1
  105. package/dist/esm/pipeline/advanced/chart/pipes/regressionLine/regressionLine.js.map +1 -1
  106. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
  107. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
  108. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
  109. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
  110. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
  111. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js.map +1 -1
  112. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
  113. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
  114. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
  115. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js.map +1 -1
  116. package/dist/esm/pipeline/advanced/chart/pipes/theme/theme.js.map +1 -1
  117. package/dist/esm/pipeline/advanced/table/pipeline/pivotTable.js.map +1 -1
  118. package/dist/esm/pipeline/advanced/table/pipeline/table.js.map +1 -1
  119. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/cellStyle.js.map +1 -1
  120. package/dist/esm/pipeline/advanced/table/pipes/config/pivotTableConfig.js.map +1 -1
  121. package/dist/esm/pipeline/advanced/table/pipes/config/tableConfig.js.map +1 -1
  122. package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js.map +1 -1
  123. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js.map +1 -1
  124. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js.map +1 -1
  125. package/dist/esm/pipeline/advanced/table/pipes/encoding/pivotTable.js.map +1 -1
  126. package/dist/esm/pipeline/advanced/table/pipes/init/initAdvancedVSeed.js.map +1 -1
  127. package/dist/esm/pipeline/advanced/table/pipes/records/records.js.map +1 -1
  128. package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js.map +1 -1
  129. package/dist/esm/pipeline/spec/chart/pipeline/area.js.map +1 -1
  130. package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js.map +1 -1
  131. package/dist/esm/pipeline/spec/chart/pipeline/bar.js.map +1 -1
  132. package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js.map +1 -1
  133. package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js.map +1 -1
  134. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
  135. package/dist/esm/pipeline/spec/chart/pipeline/column.js.map +1 -1
  136. package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js.map +1 -1
  137. package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js.map +1 -1
  138. package/dist/esm/pipeline/spec/chart/pipeline/donut.js.map +1 -1
  139. package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
  140. package/dist/esm/pipeline/spec/chart/pipeline/funnel.js.map +1 -1
  141. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js.map +1 -1
  142. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  143. package/dist/esm/pipeline/spec/chart/pipeline/line.js.map +1 -1
  144. package/dist/esm/pipeline/spec/chart/pipeline/pie.js.map +1 -1
  145. package/dist/esm/pipeline/spec/chart/pipeline/radar.js.map +1 -1
  146. package/dist/esm/pipeline/spec/chart/pipeline/rose.js.map +1 -1
  147. package/dist/esm/pipeline/spec/chart/pipeline/roseParallel.js.map +1 -1
  148. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
  149. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationArea.js.map +1 -1
  150. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationAreaBand.js.map +1 -1
  151. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationHorizontalLine.js.map +1 -1
  152. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPoint.js.map +1 -1
  153. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointCommon.js.map +1 -1
  154. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js.map +1 -1
  155. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfHistogram.js.map +1 -1
  156. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationVerticalLine.js.map +1 -1
  157. package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js.map +1 -1
  158. package/dist/esm/pipeline/spec/chart/pipes/annotation/utils.js.map +1 -1
  159. package/dist/esm/pipeline/spec/chart/pipes/axes/bandAxisStyle.js.map +1 -1
  160. package/dist/esm/pipeline/spec/chart/pipes/axes/format/linearFormat.js.map +1 -1
  161. package/dist/esm/pipeline/spec/chart/pipes/axes/heatmapBandAxis.js.map +1 -1
  162. package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js.map +1 -1
  163. package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js.map +1 -1
  164. package/dist/esm/pipeline/spec/chart/pipes/axes/radarAngle.js.map +1 -1
  165. package/dist/esm/pipeline/spec/chart/pipes/axes/radarRadius.js.map +1 -1
  166. package/dist/esm/pipeline/spec/chart/pipes/axes/radius.js.map +1 -1
  167. package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.js.map +1 -1
  168. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
  169. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  170. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
  171. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  172. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
  173. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
  174. package/dist/esm/pipeline/spec/chart/pipes/backgroundColor/background.js.map +1 -1
  175. package/dist/esm/pipeline/spec/chart/pipes/barWidth/barGapInGroup.js.map +1 -1
  176. package/dist/esm/pipeline/spec/chart/pipes/barWidth/barMaxWidth.js.map +1 -1
  177. package/dist/esm/pipeline/spec/chart/pipes/boxWidth/boxGapInGroup.js.map +1 -1
  178. package/dist/esm/pipeline/spec/chart/pipes/boxWidth/boxMaxWidth.js.map +1 -1
  179. package/dist/esm/pipeline/spec/chart/pipes/color/color.js.map +1 -1
  180. package/dist/esm/pipeline/spec/chart/pipes/color/colorAdapter.js.map +1 -1
  181. package/dist/esm/pipeline/spec/chart/pipes/color/colorAreaStyleFill.js.map +1 -1
  182. package/dist/esm/pipeline/spec/chart/pipes/color/colorBarStyleFill.js.map +1 -1
  183. package/dist/esm/pipeline/spec/chart/pipes/color/colorBoxPlotStyleFill.js.map +1 -1
  184. package/dist/esm/pipeline/spec/chart/pipes/color/colorCellStyleFill.js.map +1 -1
  185. package/dist/esm/pipeline/spec/chart/pipes/color/colorFunnelStyleFill.js.map +1 -1
  186. package/dist/esm/pipeline/spec/chart/pipes/color/colorLineStyleFill.js.map +1 -1
  187. package/dist/esm/pipeline/spec/chart/pipes/color/colorPieStyleFill.js.map +1 -1
  188. package/dist/esm/pipeline/spec/chart/pipes/color/colorPointStyleFill.js.map +1 -1
  189. package/dist/esm/pipeline/spec/chart/pipes/color/colorRoseStyleFill.js.map +1 -1
  190. package/dist/esm/pipeline/spec/chart/pipes/color/linearColor.js.map +1 -1
  191. package/dist/esm/pipeline/spec/chart/pipes/color/linearColorForDualAxis.js.map +1 -1
  192. package/dist/esm/pipeline/spec/chart/pipes/crosshair/histogramCrosshair.js.map +1 -1
  193. package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairLine.js.map +1 -1
  194. package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairRect.js.map +1 -1
  195. package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairLine.js.map +1 -1
  196. package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairRect.js.map +1 -1
  197. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetBoxplot.js.map +1 -1
  198. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetDualAxis.js.map +1 -1
  199. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHistogram.js.map +1 -1
  200. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivot.js.map +1 -1
  201. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetScatter.js.map +1 -1
  202. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetXY.js.map +1 -1
  203. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetYX.js.map +1 -1
  204. package/dist/esm/pipeline/spec/chart/pipes/dataset/progressive.js.map +1 -1
  205. package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js.map +1 -1
  206. package/dist/esm/pipeline/spec/chart/pipes/init/area.js.map +1 -1
  207. package/dist/esm/pipeline/spec/chart/pipes/init/bar.js.map +1 -1
  208. package/dist/esm/pipeline/spec/chart/pipes/init/barParallel.js.map +1 -1
  209. package/dist/esm/pipeline/spec/chart/pipes/init/boxplot.js.map +1 -1
  210. package/dist/esm/pipeline/spec/chart/pipes/init/column.js.map +1 -1
  211. package/dist/esm/pipeline/spec/chart/pipes/init/columnParallel.js.map +1 -1
  212. package/dist/esm/pipeline/spec/chart/pipes/init/donut.js.map +1 -1
  213. package/dist/esm/pipeline/spec/chart/pipes/init/dualAxis.js.map +1 -1
  214. package/dist/esm/pipeline/spec/chart/pipes/init/funnel.js.map +1 -1
  215. package/dist/esm/pipeline/spec/chart/pipes/init/heatmap.js.map +1 -1
  216. package/dist/esm/pipeline/spec/chart/pipes/init/histogram.js.map +1 -1
  217. package/dist/esm/pipeline/spec/chart/pipes/init/line.js.map +1 -1
  218. package/dist/esm/pipeline/spec/chart/pipes/init/pie.js.map +1 -1
  219. package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js.map +1 -1
  220. package/dist/esm/pipeline/spec/chart/pipes/init/radar.js.map +1 -1
  221. package/dist/esm/pipeline/spec/chart/pipes/init/rose.js.map +1 -1
  222. package/dist/esm/pipeline/spec/chart/pipes/init/roseParallel.js.map +1 -1
  223. package/dist/esm/pipeline/spec/chart/pipes/init/scatter.js.map +1 -1
  224. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  225. package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js.map +1 -1
  226. package/dist/esm/pipeline/spec/chart/pipes/label/labelPie.js.map +1 -1
  227. package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js.map +1 -1
  228. package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.js.map +1 -1
  229. package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js.map +1 -1
  230. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js.map +1 -1
  231. package/dist/esm/pipeline/spec/chart/pipes/legend/heatmapColorLegend.js.map +1 -1
  232. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js.map +1 -1
  233. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js.map +1 -1
  234. package/dist/esm/pipeline/spec/chart/pipes/markStyle/areaStyle.js.map +1 -1
  235. package/dist/esm/pipeline/spec/chart/pipes/markStyle/barStyle.js.map +1 -1
  236. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js +5 -1
  237. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js.map +1 -1
  238. package/dist/esm/pipeline/spec/chart/pipes/markStyle/cellStyle.js.map +1 -1
  239. package/dist/esm/pipeline/spec/chart/pipes/markStyle/curve/curve.js.map +1 -1
  240. package/dist/esm/pipeline/spec/chart/pipes/markStyle/funnelStyle.js.map +1 -1
  241. package/dist/esm/pipeline/spec/chart/pipes/markStyle/funnelTransformStyle.js.map +1 -1
  242. package/dist/esm/pipeline/spec/chart/pipes/markStyle/lineStyle.js.map +1 -1
  243. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js +3 -1
  244. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js.map +1 -1
  245. package/dist/esm/pipeline/spec/chart/pipes/markStyle/pieStyle.js.map +1 -1
  246. package/dist/esm/pipeline/spec/chart/pipes/markStyle/pointState.js.map +1 -1
  247. package/dist/esm/pipeline/spec/chart/pipes/markStyle/pointStyle.js.map +1 -1
  248. package/dist/esm/pipeline/spec/chart/pipes/markStyle/roseStyle.js.map +1 -1
  249. package/dist/esm/pipeline/spec/chart/pipes/percent/percent.js.map +1 -1
  250. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/areaStyleFilter.js.map +1 -1
  251. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/barStyleFilter.js.map +1 -1
  252. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/lineStyleFilter.js.map +1 -1
  253. package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/pointStyleFilter.js.map +1 -1
  254. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js.map +1 -1
  255. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAdapter.js.map +1 -1
  256. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js +3 -1
  257. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js.map +1 -1
  258. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js.map +1 -1
  259. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js.map +1 -1
  260. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotHideIndicatorName.js.map +1 -1
  261. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
  262. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.js.map +1 -1
  263. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotTitle.js.map +1 -1
  264. package/dist/esm/pipeline/spec/chart/pipes/region/addRegionPadding.js.map +1 -1
  265. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js +6 -1
  266. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js.map +1 -1
  267. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.js.map +1 -1
  268. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
  269. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js.map +1 -1
  270. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js +5 -1
  271. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js.map +1 -1
  272. package/dist/esm/pipeline/spec/chart/pipes/series/series.js.map +1 -1
  273. package/dist/esm/pipeline/spec/chart/pipes/size/scatterSize.js.map +1 -1
  274. package/dist/esm/pipeline/spec/chart/pipes/stack/stack.js.map +1 -1
  275. package/dist/esm/pipeline/spec/chart/pipes/stack/stackCornerRadius.js.map +1 -1
  276. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  277. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +35 -4
  278. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
  279. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  280. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipElement.js.map +1 -1
  281. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
  282. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js.map +1 -1
  283. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
  284. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipStyle.js.map +1 -1
  285. package/dist/esm/pipeline/spec/chart/utils/histogram.js.map +1 -1
  286. package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js.map +1 -1
  287. package/dist/esm/pipeline/spec/table/pipeline/table.js.map +1 -1
  288. package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.js.map +1 -1
  289. package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js.map +1 -1
  290. package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js.map +1 -1
  291. package/dist/esm/pipeline/spec/table/pipes/columns/dimensionsToColumns.js.map +1 -1
  292. package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js.map +1 -1
  293. package/dist/esm/pipeline/spec/table/pipes/columns/pivotColumns.js.map +1 -1
  294. package/dist/esm/pipeline/spec/table/pipes/corner/titleOnDimension.js.map +1 -1
  295. package/dist/esm/pipeline/spec/table/pipes/indicators/pivotDataConfig.js.map +1 -1
  296. package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js.map +1 -1
  297. package/dist/esm/pipeline/spec/table/pipes/init/pivotTable.js.map +1 -1
  298. package/dist/esm/pipeline/spec/table/pipes/init/table.js.map +1 -1
  299. package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js.map +1 -1
  300. package/dist/esm/pipeline/spec/table/pipes/theme/bodyStyle.js.map +1 -1
  301. package/dist/esm/pipeline/spec/table/pipes/theme/cornerHeaderStyle.js.map +1 -1
  302. package/dist/esm/pipeline/spec/table/pipes/theme/frameStyle.js.map +1 -1
  303. package/dist/esm/pipeline/spec/table/pipes/theme/headerStyle.js.map +1 -1
  304. package/dist/esm/pipeline/spec/table/pipes/theme/rowHeaderStyle.js.map +1 -1
  305. package/dist/esm/pipeline/spec/table/pipes/theme/scrollStyle.js.map +1 -1
  306. package/dist/esm/pipeline/spec/table/pipes/theme/selectionStyle.js.map +1 -1
  307. package/dist/esm/pipeline/utils/boxplot.js.map +1 -1
  308. package/dist/esm/pipeline/utils/chatType.js +2 -2
  309. package/dist/esm/pipeline/utils/chatType.js.map +1 -1
  310. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  311. package/dist/esm/pipeline/utils/dimensions/delete.js.map +1 -1
  312. package/dist/esm/pipeline/utils/dimensions/typeGuard.js.map +1 -1
  313. package/dist/esm/pipeline/utils/format/createFormatter.js.map +1 -1
  314. package/dist/esm/pipeline/utils/format/createFormatterByMeasure.js.map +1 -1
  315. package/dist/esm/pipeline/utils/format/createNumFormatter.js.map +1 -1
  316. package/dist/esm/pipeline/utils/measures/delete.js.map +1 -1
  317. package/dist/esm/pipeline/utils/measures/depth.js.map +1 -1
  318. package/dist/esm/pipeline/utils/measures/find.js.map +1 -1
  319. package/dist/esm/pipeline/utils/measures/typeGuard.d.ts +1 -0
  320. package/dist/esm/pipeline/utils/measures/typeGuard.js +8 -1
  321. package/dist/esm/pipeline/utils/measures/typeGuard.js.map +1 -1
  322. package/dist/esm/pipeline/utils/pipeline.js.map +1 -1
  323. package/dist/esm/pipeline/utils/replaceNullToUndefined.js.map +1 -1
  324. package/dist/esm/pipeline/utils/tree/traverse.js.map +1 -1
  325. package/dist/esm/pipeline/utils/valid/checkVSeed.js.map +1 -1
  326. package/dist/esm/theme/common/annotaion.js.map +1 -1
  327. package/dist/esm/theme/common/axes.js.map +1 -1
  328. package/dist/esm/theme/common/boxPlot.js +15 -4
  329. package/dist/esm/theme/common/boxPlot.js.map +1 -1
  330. package/dist/esm/theme/common/color.js.map +1 -1
  331. package/dist/esm/theme/common/crosshair.js.map +1 -1
  332. package/dist/esm/theme/common/funnelTransform.js.map +1 -1
  333. package/dist/esm/theme/common/heatmapCell.js.map +1 -1
  334. package/dist/esm/theme/common/label.js.map +1 -1
  335. package/dist/esm/theme/common/legend.js.map +1 -1
  336. package/dist/esm/theme/common/regressionLine.js.map +1 -1
  337. package/dist/esm/theme/common/table.js.map +1 -1
  338. package/dist/esm/theme/common/tooltip.js.map +1 -1
  339. package/dist/esm/theme/dark/dark.js.map +1 -1
  340. package/dist/esm/theme/light/light.js.map +1 -1
  341. package/dist/esm/types/advancedVSeed.d.ts +236 -0
  342. package/dist/esm/types/advancedVSeed.js.map +1 -1
  343. package/dist/esm/types/builder/builder.js.map +1 -1
  344. package/dist/esm/types/chartType/area/zArea.js.map +1 -1
  345. package/dist/esm/types/chartType/areaPercent/zAreaPercent.js.map +1 -1
  346. package/dist/esm/types/chartType/bar/zBar.js.map +1 -1
  347. package/dist/esm/types/chartType/barParallel/zBarParallel.js.map +1 -1
  348. package/dist/esm/types/chartType/barPercent/zBarPercent.js.map +1 -1
  349. package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +6 -0
  350. package/dist/esm/types/chartType/boxPlot/zBoxPlot.js.map +1 -1
  351. package/dist/esm/types/chartType/column/zColumn.d.ts +8 -0
  352. package/dist/esm/types/chartType/column/zColumn.js.map +1 -1
  353. package/dist/esm/types/chartType/columnParallel/zColumnParallel.js.map +1 -1
  354. package/dist/esm/types/chartType/columnPercent/zColumnPercent.js.map +1 -1
  355. package/dist/esm/types/chartType/donut/zDonut.js.map +1 -1
  356. package/dist/esm/types/chartType/dualAxis/zDualAxis.js.map +1 -1
  357. package/dist/esm/types/chartType/funnel/zFunnel.js.map +1 -1
  358. package/dist/esm/types/chartType/heatmap/zHeatmap.js.map +1 -1
  359. package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
  360. package/dist/esm/types/chartType/line/zLine.js.map +1 -1
  361. package/dist/esm/types/chartType/pie/zPie.js.map +1 -1
  362. package/dist/esm/types/chartType/pivotTable/zPivotTable.js.map +1 -1
  363. package/dist/esm/types/chartType/radar/zRadar.js.map +1 -1
  364. package/dist/esm/types/chartType/rose/zRose.js.map +1 -1
  365. package/dist/esm/types/chartType/roseParallel/zRoseParallel.js.map +1 -1
  366. package/dist/esm/types/chartType/scatter/zScatter.d.ts +32 -0
  367. package/dist/esm/types/chartType/scatter/zScatter.js.map +1 -1
  368. package/dist/esm/types/chartType/table/zTable.js.map +1 -1
  369. package/dist/esm/types/dataSelector/selector.js.map +1 -1
  370. package/dist/esm/types/i18n/i18n.js.map +1 -1
  371. package/dist/esm/types/properties/analysis/analysis.js.map +1 -1
  372. package/dist/esm/types/properties/analysis/sort.js.map +1 -1
  373. package/dist/esm/types/properties/analysis/sortLegend.js.map +1 -1
  374. package/dist/esm/types/properties/annotation/annotation.js.map +1 -1
  375. package/dist/esm/types/properties/annotation/zAnnotationArea.js.map +1 -1
  376. package/dist/esm/types/properties/annotation/zAnnotationHorizontalLine.js.map +1 -1
  377. package/dist/esm/types/properties/annotation/zAnnotationPoint.js.map +1 -1
  378. package/dist/esm/types/properties/annotation/zAnnotationVerticalLine.js.map +1 -1
  379. package/dist/esm/types/properties/cellStyle/bodyCellStyle.js.map +1 -1
  380. package/dist/esm/types/properties/cellStyle/cellStyle.js.map +1 -1
  381. package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
  382. package/dist/esm/types/properties/chartType/dualChartType.js.map +1 -1
  383. package/dist/esm/types/properties/config/annotation/zAnnotaion.js.map +1 -1
  384. package/dist/esm/types/properties/config/area.js.map +1 -1
  385. package/dist/esm/types/properties/config/axes/zBandAxis.js.map +1 -1
  386. package/dist/esm/types/properties/config/axes/zLinearAxis.js.map +1 -1
  387. package/dist/esm/types/properties/config/backgroundColor/backgroundColor.js.map +1 -1
  388. package/dist/esm/types/properties/config/bar.js.map +1 -1
  389. package/dist/esm/types/properties/config/barWidth/index.js.map +1 -1
  390. package/dist/esm/types/properties/config/boxWidth/zBoxWidth.js.map +1 -1
  391. package/dist/esm/types/properties/config/boxplot.d.ts +3 -0
  392. package/dist/esm/types/properties/config/boxplot.js.map +1 -1
  393. package/dist/esm/types/properties/config/color/color.js.map +1 -1
  394. package/dist/esm/types/properties/config/column.d.ts +32 -0
  395. package/dist/esm/types/properties/config/column.js.map +1 -1
  396. package/dist/esm/types/properties/config/config.d.ts +99 -0
  397. package/dist/esm/types/properties/config/config.js.map +1 -1
  398. package/dist/esm/types/properties/config/crosshair/zCrosshair.js.map +1 -1
  399. package/dist/esm/types/properties/config/dimensionLinkage/dimensionLinkage.js.map +1 -1
  400. package/dist/esm/types/properties/config/dualAxis.js.map +1 -1
  401. package/dist/esm/types/properties/config/funnel.js.map +1 -1
  402. package/dist/esm/types/properties/config/funnelTransform/zFunnelTransform.js.map +1 -1
  403. package/dist/esm/types/properties/config/heatmap/zHeatmap.js.map +1 -1
  404. package/dist/esm/types/properties/config/heatmap.js.map +1 -1
  405. package/dist/esm/types/properties/config/histogram.d.ts +32 -0
  406. package/dist/esm/types/properties/config/histogram.js.map +1 -1
  407. package/dist/esm/types/properties/config/label/zLabel.js.map +1 -1
  408. package/dist/esm/types/properties/config/label/zPieLabel.js.map +1 -1
  409. package/dist/esm/types/properties/config/legend/legend.js.map +1 -1
  410. package/dist/esm/types/properties/config/line.js.map +1 -1
  411. package/dist/esm/types/properties/config/pie.js.map +1 -1
  412. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js.map +1 -1
  413. package/dist/esm/types/properties/config/pivotTable.js.map +1 -1
  414. package/dist/esm/types/properties/config/rose.js.map +1 -1
  415. package/dist/esm/types/properties/config/scatter.d.ts +32 -0
  416. package/dist/esm/types/properties/config/scatter.js.map +1 -1
  417. package/dist/esm/types/properties/config/stackCornerRadius/stackCornerRadius.js.map +1 -1
  418. package/dist/esm/types/properties/config/table.js.map +1 -1
  419. package/dist/esm/types/properties/config/tooltip/tooltip.js.map +1 -1
  420. package/dist/esm/types/properties/config/whiskers/index.js.map +1 -1
  421. package/dist/esm/types/properties/dataset/dataset.js.map +1 -1
  422. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js.map +1 -1
  423. package/dist/esm/types/properties/dimensions/zDimensions.js.map +1 -1
  424. package/dist/esm/types/properties/encoding/zDimensionEncoding.js.map +1 -1
  425. package/dist/esm/types/properties/encoding/zEncoding.js.map +1 -1
  426. package/dist/esm/types/properties/encoding/zMeasureEncoding.js.map +1 -1
  427. package/dist/esm/types/properties/format/numFormat.js.map +1 -1
  428. package/dist/esm/types/properties/markStyle/barStyle.js.map +1 -1
  429. package/dist/esm/types/properties/markStyle/boxPlotStyle.d.ts +15 -0
  430. package/dist/esm/types/properties/markStyle/boxPlotStyle.js +4 -1
  431. package/dist/esm/types/properties/markStyle/boxPlotStyle.js.map +1 -1
  432. package/dist/esm/types/properties/markStyle/lineStyle.js.map +1 -1
  433. package/dist/esm/types/properties/markStyle/markStyle.d.ts +6 -0
  434. package/dist/esm/types/properties/markStyle/markStyle.js.map +1 -1
  435. package/dist/esm/types/properties/markStyle/outlierStyle.js.map +1 -1
  436. package/dist/esm/types/properties/markStyle/pointStyle.js.map +1 -1
  437. package/dist/esm/types/properties/markStyle/zAreaStyle.js.map +1 -1
  438. package/dist/esm/types/properties/measures/zDualMeasures.js.map +1 -1
  439. package/dist/esm/types/properties/measures/zMeasures.js.map +1 -1
  440. package/dist/esm/types/properties/measures/zScatterMeasures.js.map +1 -1
  441. package/dist/esm/types/properties/regressionLine/linearRegressionLine.d.ts +20 -0
  442. package/dist/esm/types/properties/regressionLine/zRegressionLine.d.ts +48 -0
  443. package/dist/esm/types/properties/regressionLine/zRegressionLine.js +5 -1
  444. package/dist/esm/types/properties/regressionLine/zRegressionLine.js.map +1 -1
  445. package/dist/esm/types/properties/theme/customTheme.d.ts +198 -0
  446. package/dist/esm/types/properties/theme/customTheme.js.map +1 -1
  447. package/dist/esm/types/properties/theme/theme.js.map +1 -1
  448. package/dist/esm/types/zVseed.d.ts +46 -0
  449. package/dist/esm/types/zVseed.js.map +1 -1
  450. package/dist/umd/index.js +373 -298
  451. package/dist/umd/index.js.map +1 -1
  452. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/cellStyle/table.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/cellStyle/table.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport type { ListTableConstructorOptions, ColumnDefine } from '@visactor/vtable'\nimport { array } from '@visactor/vutils'\nimport { isNullish, isNumber, isPlainObject, isString } from 'remeda'\nimport { selector } from 'src/dataSelector/selector'\nimport type { BodyCellStyle, ListTableSpecPipe } from 'src/types'\nimport type { MeasureSelector, Selectors } from 'src/types/dataSelector'\nimport { pickBodyCellStyle } from './common'\nimport { preorderTraverse } from 'src/pipeline/utils/tree/traverse'\n\nexport const tableBodyCell: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { cellStyle } = advancedVSeed\n const bodyCellStyle = cellStyle?.bodyCellStyle\n\n if (!bodyCellStyle) {\n return spec as ListTableConstructorOptions\n }\n const bodyCellStyleList = array(bodyCellStyle) as BodyCellStyle[]\n const columns = (spec as ListTableConstructorOptions).columns || []\n const selectedPos: { col: number; row: number }[] = []\n const setStyleOfColumn = (col: ColumnDefine) => {\n const field = col.field as string\n const matchedStyles = bodyCellStyleList.filter((style) => {\n if (isNullish(style.selector)) {\n return true\n }\n const selectors = array(style.selector) as Selectors\n\n return selectors.some((selector) => {\n return isPlainObject(selector)\n ? isNullish(selector.field) || (selector as MeasureSelector).field === field\n : isNumber(selector) || isString(selector)\n })\n })\n\n if (!matchedStyles.length) {\n return false\n }\n\n col.style = (datum: any) => {\n const originalDatum = {\n [field]: datum.dataValue,\n }\n\n const mergedStyle = matchedStyles.reduce<Record<string, any>>((result, style) => {\n if (selector(originalDatum, style.selector)) {\n if (selectedPos.length && selectedPos[0].col === datum?.col && selectedPos[0].row === datum?.row) {\n // 说明重复进入了,清空历史\n selectedPos.length = 0\n }\n selectedPos.push({\n col: datum?.col,\n row: datum?.row,\n })\n return {\n ...result,\n ...pickBodyCellStyle(style),\n }\n }\n\n return result\n }, {})\n\n return mergedStyle\n }\n return false\n }\n\n preorderTraverse<ColumnDefine, 'columns'>(columns, setStyleOfColumn, 'columns')\n ;(spec as any).runningConfig = {\n ...((spec as any).runningConfig || {}),\n selectedPos,\n }\n\n return spec as ListTableConstructorOptions\n}\n"],"names":["tableBodyCell","spec","context","advancedVSeed","cellStyle","bodyCellStyle","bodyCellStyleList","array","columns","selectedPos","setStyleOfColumn","col","field","matchedStyles","style","isNullish","selectors","selector","isPlainObject","isNumber","isString","datum","originalDatum","mergedStyle","result","pickBodyCellStyle","preorderTraverse"],"mappings":";;;;;AAUO,MAAMA,gBAAmC,CAACC,MAAMC;IACrD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,gBAAgBD,WAAW;IAEjC,IAAI,CAACC,eACH,OAAOJ;IAET,MAAMK,oBAAoBC,MAAMF;IAChC,MAAMG,UAAWP,KAAqC,OAAO,IAAI,EAAE;IACnE,MAAMQ,cAA8C,EAAE;IACtD,MAAMC,mBAAmB,CAACC;QACxB,MAAMC,QAAQD,IAAI,KAAK;QACvB,MAAME,gBAAgBP,kBAAkB,MAAM,CAAC,CAACQ;YAC9C,IAAIC,UAAUD,MAAM,QAAQ,GAC1B,OAAO;YAET,MAAME,YAAYT,MAAMO,MAAM,QAAQ;YAEtC,OAAOE,UAAU,IAAI,CAAC,CAACC,WACdC,cAAcD,YACjBF,UAAUE,SAAS,KAAK,KAAMA,SAA6B,KAAK,KAAKL,QACrEO,SAASF,aAAaG,SAASH;QAEvC;QAEA,IAAI,CAACJ,cAAc,MAAM,EACvB,OAAO;QAGTF,IAAI,KAAK,GAAG,CAACU;YACX,MAAMC,gBAAgB;gBACpB,CAACV,MAAM,EAAES,MAAM,SAAS;YAC1B;YAEA,MAAME,cAAcV,cAAc,MAAM,CAAsB,CAACW,QAAQV;gBACrE,IAAIG,qBAASK,eAAeR,MAAM,QAAQ,GAAG;oBAC3C,IAAIL,YAAY,MAAM,IAAIA,WAAW,CAAC,EAAE,CAAC,GAAG,KAAKY,OAAO,OAAOZ,WAAW,CAAC,EAAE,CAAC,GAAG,KAAKY,OAAO,KAE3FZ,YAAY,MAAM,GAAG;oBAEvBA,YAAY,IAAI,CAAC;wBACf,KAAKY,OAAO;wBACZ,KAAKA,OAAO;oBACd;oBACA,OAAO;wBACL,GAAGG,MAAM;wBACT,GAAGC,kBAAkBX,MAAM;oBAC7B;gBACF;gBAEA,OAAOU;YACT,GAAG,CAAC;YAEJ,OAAOD;QACT;QACA,OAAO;IACT;IAEAG,iBAA0ClB,SAASE,kBAAkB;IACnET,KAAa,aAAa,GAAG;QAC7B,GAAKA,KAAa,aAAa,IAAI,CAAC,CAAC;QACrCQ;IACF;IAEA,OAAOR;AACT"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/cellStyle/table.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/cellStyle/table.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport type { ListTableConstructorOptions, ColumnDefine } from '@visactor/vtable'\nimport { array } from '@visactor/vutils'\nimport { isNullish, isNumber, isPlainObject, isString } from 'remeda'\nimport { selector } from 'src/dataSelector/selector'\nimport type { BodyCellStyle, ListTableSpecPipe } from 'src/types'\nimport type { MeasureSelector, Selectors } from 'src/types/dataSelector'\nimport { pickBodyCellStyle } from './common'\nimport { preorderTraverse } from 'src/pipeline/utils/tree/traverse'\n\nexport const tableBodyCell: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { cellStyle } = advancedVSeed\n const bodyCellStyle = cellStyle?.bodyCellStyle\n\n if (!bodyCellStyle) {\n return spec as ListTableConstructorOptions\n }\n const bodyCellStyleList = array(bodyCellStyle) as BodyCellStyle[]\n const columns = (spec as ListTableConstructorOptions).columns || []\n const selectedPos: { col: number; row: number }[] = []\n const setStyleOfColumn = (col: ColumnDefine) => {\n const field = col.field as string\n const matchedStyles = bodyCellStyleList.filter((style) => {\n if (isNullish(style.selector)) {\n return true\n }\n const selectors = array(style.selector) as Selectors\n\n return selectors.some((selector) => {\n return isPlainObject(selector)\n ? isNullish(selector.field) || (selector as MeasureSelector).field === field\n : isNumber(selector) || isString(selector)\n })\n })\n\n if (!matchedStyles.length) {\n return false\n }\n\n col.style = (datum: any) => {\n const originalDatum = {\n [field]: datum.dataValue,\n }\n\n const mergedStyle = matchedStyles.reduce<Record<string, any>>((result, style) => {\n if (selector(originalDatum, style.selector)) {\n if (selectedPos.length && selectedPos[0].col === datum?.col && selectedPos[0].row === datum?.row) {\n // 说明重复进入了,清空历史\n selectedPos.length = 0\n }\n selectedPos.push({\n col: datum?.col,\n row: datum?.row,\n })\n return {\n ...result,\n ...pickBodyCellStyle(style),\n }\n }\n\n return result\n }, {})\n\n return mergedStyle\n }\n return false\n }\n\n preorderTraverse<ColumnDefine, 'columns'>(columns, setStyleOfColumn, 'columns')\n ;(spec as any).runningConfig = {\n ...((spec as any).runningConfig || {}),\n selectedPos,\n }\n\n return spec as ListTableConstructorOptions\n}\n"],"names":["tableBodyCell","spec","context","advancedVSeed","cellStyle","bodyCellStyle","bodyCellStyleList","array","columns","selectedPos","setStyleOfColumn","col","field","matchedStyles","style","isNullish","selectors","selector","isPlainObject","isNumber","isString","datum","originalDatum","mergedStyle","result","pickBodyCellStyle","preorderTraverse"],"mappings":";;;;;AAUO,MAAMA,gBAAmC,CAACC,MAAMC;IACrD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,gBAAgBD,WAAW;IAEjC,IAAI,CAACC,eACH,OAAOJ;IAET,MAAMK,oBAAoBC,MAAMF;IAChC,MAAMG,UAAWP,KAAqC,OAAO,IAAI,EAAE;IACnE,MAAMQ,cAA8C,EAAE;IACtD,MAAMC,mBAAmB,CAACC;QACxB,MAAMC,QAAQD,IAAI,KAAK;QACvB,MAAME,gBAAgBP,kBAAkB,MAAM,CAAC,CAACQ;YAC9C,IAAIC,UAAUD,MAAM,QAAQ,GAC1B,OAAO;YAET,MAAME,YAAYT,MAAMO,MAAM,QAAQ;YAEtC,OAAOE,UAAU,IAAI,CAAC,CAACC,WACdC,cAAcD,YACjBF,UAAUE,SAAS,KAAK,KAAMA,SAA6B,KAAK,KAAKL,QACrEO,SAASF,aAAaG,SAASH;QAEvC;QAEA,IAAI,CAACJ,cAAc,MAAM,EACvB,OAAO;QAGTF,IAAI,KAAK,GAAG,CAACU;YACX,MAAMC,gBAAgB;gBACpB,CAACV,MAAM,EAAES,MAAM,SAAS;YAC1B;YAEA,MAAME,cAAcV,cAAc,MAAM,CAAsB,CAACW,QAAQV;gBACrE,IAAIG,qBAASK,eAAeR,MAAM,QAAQ,GAAG;oBAC3C,IAAIL,YAAY,MAAM,IAAIA,WAAW,CAAC,EAAE,CAAC,GAAG,KAAKY,OAAO,OAAOZ,WAAW,CAAC,EAAE,CAAC,GAAG,KAAKY,OAAO,KAE3FZ,YAAY,MAAM,GAAG;oBAEvBA,YAAY,IAAI,CAAC;wBACf,KAAKY,OAAO;wBACZ,KAAKA,OAAO;oBACd;oBACA,OAAO;wBACL,GAAGG,MAAM;wBACT,GAAGC,kBAAkBX,MAAM;oBAC7B;gBACF;gBAEA,OAAOU;YACT,GAAG,CAAC;YAEJ,OAAOD;QACT;QACA,OAAO;IACT;IAEAG,iBAA0ClB,SAASE,kBAAkB;IACnET,KAAa,aAAa,GAAG;QAC7B,GAAKA,KAAa,aAAa,IAAI,CAAC,CAAC;QACrCQ;IACF;IAEA,OAAOR;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/columns/dimensionsToColumns.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/columns/dimensionsToColumns.ts"],"sourcesContent":["import type { ColumnsDefine, ListTableConstructorOptions } from '@visactor/vtable'\nimport { isMeasure } from 'src/pipeline/utils'\nimport type { Dimension, DimensionGroup, DimensionTree, ListTableSpecPipe } from 'src/types'\n\nexport const dimensionTreeToColumns: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = (advancedVSeed as unknown as { dimensions: DimensionTree }).dimensions\n const result = { ...spec } as ListTableConstructorOptions\n const eachNode = (node: Dimension | DimensionGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Dimension, DimensionGroup>(dimensions, eachNode)\n\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst treeTreeToColumns = <\n T extends { id: string; alias?: string },\n U extends { id: string; alias?: string; children?: (T | U)[] },\n>(\n tree: (T | U)[],\n callback?: (node: T | U) => object,\n): ColumnsDefine[] => {\n const result = tree.map((item) => {\n if ('children' in item && Array.isArray(item.children)) {\n const groupNode = item as unknown as U\n const field = groupNode.id\n const title = groupNode.alias ?? groupNode.id\n const props = callback?.(groupNode) || {}\n // group\n return {\n field,\n title,\n columns: treeTreeToColumns(item.children, callback),\n ...props,\n }\n } else {\n const field = item.id\n const title = item.alias ?? item.id\n const props = callback?.(item) || {}\n // leaf\n return {\n field,\n title,\n ...props,\n }\n }\n }) as unknown as ColumnsDefine[]\n\n return result || []\n}\n"],"names":["dimensionTreeToColumns","spec","context","advancedVSeed","dimensions","result","eachNode","node","isMeasure","columns","treeTreeToColumns","tree","callback","item","Array","groupNode","field","title","props"],"mappings":";AAIO,MAAMA,yBAA4C,CAACC,MAAMC;IAC9D,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,aAAcD,cAA2D,UAAU;IACzF,MAAME,SAAS;QAAE,GAAGJ,IAAI;IAAC;IACzB,MAAMK,WAAW,CAACC;QAChB,IAAIC,UAAUD,OACZ,OAAO;YACL,OAAO;QACT;QAGF,OAAO,CAAC;IACV;IACA,MAAME,UAAUC,kBAA6CN,YAAYE;IAEzE,OAAO;QACL,GAAGD,MAAM;QACT,SAAS;eAAKA,OAAO,OAAO,IAAI,EAAE;eAAMI;SAAQ;IAClD;AACF;AAEA,MAAMC,oBAAoB,CAIxBC,MACAC;IAEA,MAAMP,SAASM,KAAK,GAAG,CAAC,CAACE;QACvB,IAAI,cAAcA,QAAQC,MAAM,OAAO,CAACD,KAAK,QAAQ,GAAG;YACtD,MAAME,YAAYF;YAClB,MAAMG,QAAQD,UAAU,EAAE;YAC1B,MAAME,QAAQF,UAAU,KAAK,IAAIA,UAAU,EAAE;YAC7C,MAAMG,QAAQN,WAAWG,cAAc,CAAC;YAExC,OAAO;gBACLC;gBACAC;gBACA,SAASP,kBAAkBG,KAAK,QAAQ,EAAED;gBAC1C,GAAGM,KAAK;YACV;QACF;QAAO;YACL,MAAMF,QAAQH,KAAK,EAAE;YACrB,MAAMI,QAAQJ,KAAK,KAAK,IAAIA,KAAK,EAAE;YACnC,MAAMK,QAAQN,WAAWC,SAAS,CAAC;YAEnC,OAAO;gBACLG;gBACAC;gBACA,GAAGC,KAAK;YACV;QACF;IACF;IAEA,OAAOb,UAAU,EAAE;AACrB"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/columns/dimensionsToColumns.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/dimensionsToColumns.ts"],"sourcesContent":["import type { ColumnsDefine, ListTableConstructorOptions } from '@visactor/vtable'\nimport { isMeasure } from 'src/pipeline/utils'\nimport type { Dimension, DimensionGroup, DimensionTree, ListTableSpecPipe } from 'src/types'\n\nexport const dimensionTreeToColumns: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = (advancedVSeed as unknown as { dimensions: DimensionTree }).dimensions\n const result = { ...spec } as ListTableConstructorOptions\n const eachNode = (node: Dimension | DimensionGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Dimension, DimensionGroup>(dimensions, eachNode)\n\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst treeTreeToColumns = <\n T extends { id: string; alias?: string },\n U extends { id: string; alias?: string; children?: (T | U)[] },\n>(\n tree: (T | U)[],\n callback?: (node: T | U) => object,\n): ColumnsDefine[] => {\n const result = tree.map((item) => {\n if ('children' in item && Array.isArray(item.children)) {\n const groupNode = item as unknown as U\n const field = groupNode.id\n const title = groupNode.alias ?? groupNode.id\n const props = callback?.(groupNode) || {}\n // group\n return {\n field,\n title,\n columns: treeTreeToColumns(item.children, callback),\n ...props,\n }\n } else {\n const field = item.id\n const title = item.alias ?? item.id\n const props = callback?.(item) || {}\n // leaf\n return {\n field,\n title,\n ...props,\n }\n }\n }) as unknown as ColumnsDefine[]\n\n return result || []\n}\n"],"names":["dimensionTreeToColumns","spec","context","advancedVSeed","dimensions","result","eachNode","node","isMeasure","columns","treeTreeToColumns","tree","callback","item","Array","groupNode","field","title","props"],"mappings":";AAIO,MAAMA,yBAA4C,CAACC,MAAMC;IAC9D,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,aAAcD,cAA2D,UAAU;IACzF,MAAME,SAAS;QAAE,GAAGJ,IAAI;IAAC;IACzB,MAAMK,WAAW,CAACC;QAChB,IAAIC,UAAUD,OACZ,OAAO;YACL,OAAO;QACT;QAGF,OAAO,CAAC;IACV;IACA,MAAME,UAAUC,kBAA6CN,YAAYE;IAEzE,OAAO;QACL,GAAGD,MAAM;QACT,SAAS;eAAKA,OAAO,OAAO,IAAI,EAAE;eAAMI;SAAQ;IAClD;AACF;AAEA,MAAMC,oBAAoB,CAIxBC,MACAC;IAEA,MAAMP,SAASM,KAAK,GAAG,CAAC,CAACE;QACvB,IAAI,cAAcA,QAAQC,MAAM,OAAO,CAACD,KAAK,QAAQ,GAAG;YACtD,MAAME,YAAYF;YAClB,MAAMG,QAAQD,UAAU,EAAE;YAC1B,MAAME,QAAQF,UAAU,KAAK,IAAIA,UAAU,EAAE;YAC7C,MAAMG,QAAQN,WAAWG,cAAc,CAAC;YAExC,OAAO;gBACLC;gBACAC;gBACA,SAASP,kBAAkBG,KAAK,QAAQ,EAAED;gBAC1C,GAAGM,KAAK;YACV;QACF;QAAO;YACL,MAAMF,QAAQH,KAAK,EAAE;YACrB,MAAMI,QAAQJ,KAAK,KAAK,IAAIA,KAAK,EAAE;YACnC,MAAMK,QAAQN,WAAWC,SAAS,CAAC;YAEnC,OAAO;gBACLG;gBACAC;gBACA,GAAGC,KAAK;YACV;QACF;IACF;IAEA,OAAOb,UAAU,EAAE;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/columns/measuresToColumns.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/columns/measuresToColumns.ts"],"sourcesContent":["import type { ColumnsDefine, ListTableConstructorOptions } from '@visactor/vtable'\nimport { createFormatterByMeasure, isMeasure } from 'src/pipeline/utils'\nimport type { MeasureGroup, Measure, MeasureTree, ListTableSpecPipe, Datum } from 'src/types'\n\nexport const measureTreeToColumns: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const measures = (advancedVSeed as unknown as { measures: MeasureTree }).measures\n const result = { ...spec } as ListTableConstructorOptions\n\n const eachNode = (node: Measure | MeasureGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n fieldFormat: fieldFormat(node),\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Measure, MeasureGroup>(measures, eachNode)\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst fieldFormat = (node: Measure) => {\n const formatter = createFormatterByMeasure(node)\n\n return (datum: Datum) => {\n const { id } = node\n const value = datum[id] as number | string | undefined\n return formatter(value)\n }\n}\nconst treeTreeToColumns = <\n T extends { id: string; alias?: string },\n U extends { id: string; alias?: string; children?: (T | U)[] },\n>(\n tree: (T | U)[],\n callback?: (node: T | U) => object,\n): ColumnsDefine[] => {\n const result = tree.map((item) => {\n if ('children' in item && Array.isArray(item.children)) {\n const groupNode = item as unknown as U\n const field = groupNode.id\n const title = groupNode.alias ?? groupNode.id\n const props = callback?.(groupNode) || {}\n // group\n return {\n field,\n title,\n columns: treeTreeToColumns(item.children, callback),\n ...props,\n }\n } else {\n const field = item.id\n const title = item.alias ?? item.id\n const props = callback?.(item) || {}\n // leaf\n return {\n field,\n title,\n ...props,\n }\n }\n }) as unknown as ColumnsDefine[]\n\n return result || []\n}\n"],"names":["measureTreeToColumns","spec","context","advancedVSeed","measures","result","eachNode","node","isMeasure","fieldFormat","columns","treeTreeToColumns","formatter","createFormatterByMeasure","datum","id","value","tree","callback","item","Array","groupNode","field","title","props"],"mappings":";AAIO,MAAMA,uBAA0C,CAACC,MAAMC;IAC5D,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,WAAYD,cAAuD,QAAQ;IACjF,MAAME,SAAS;QAAE,GAAGJ,IAAI;IAAC;IAEzB,MAAMK,WAAW,CAACC;QAChB,IAAIC,UAAUD,OACZ,OAAO;YACL,OAAO;YACP,aAAaE,YAAYF;QAC3B;QAGF,OAAO,CAAC;IACV;IACA,MAAMG,UAAUC,kBAAyCP,UAAUE;IACnE,OAAO;QACL,GAAGD,MAAM;QACT,SAAS;eAAKA,OAAO,OAAO,IAAI,EAAE;eAAMK;SAAQ;IAClD;AACF;AAEA,MAAMD,cAAc,CAACF;IACnB,MAAMK,YAAYC,yBAAyBN;IAE3C,OAAO,CAACO;QACN,MAAM,EAAEC,EAAE,EAAE,GAAGR;QACf,MAAMS,QAAQF,KAAK,CAACC,GAAG;QACvB,OAAOH,UAAUI;IACnB;AACF;AACA,MAAML,oBAAoB,CAIxBM,MACAC;IAEA,MAAMb,SAASY,KAAK,GAAG,CAAC,CAACE;QACvB,IAAI,cAAcA,QAAQC,MAAM,OAAO,CAACD,KAAK,QAAQ,GAAG;YACtD,MAAME,YAAYF;YAClB,MAAMG,QAAQD,UAAU,EAAE;YAC1B,MAAME,QAAQF,UAAU,KAAK,IAAIA,UAAU,EAAE;YAC7C,MAAMG,QAAQN,WAAWG,cAAc,CAAC;YAExC,OAAO;gBACLC;gBACAC;gBACA,SAASZ,kBAAkBQ,KAAK,QAAQ,EAAED;gBAC1C,GAAGM,KAAK;YACV;QACF;QAAO;YACL,MAAMF,QAAQH,KAAK,EAAE;YACrB,MAAMI,QAAQJ,KAAK,KAAK,IAAIA,KAAK,EAAE;YACnC,MAAMK,QAAQN,WAAWC,SAAS,CAAC;YAEnC,OAAO;gBACLG;gBACAC;gBACA,GAAGC,KAAK;YACV;QACF;IACF;IAEA,OAAOnB,UAAU,EAAE;AACrB"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/columns/measuresToColumns.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/measuresToColumns.ts"],"sourcesContent":["import type { ColumnsDefine, ListTableConstructorOptions } from '@visactor/vtable'\nimport { createFormatterByMeasure, isMeasure } from 'src/pipeline/utils'\nimport type { MeasureGroup, Measure, MeasureTree, ListTableSpecPipe, Datum } from 'src/types'\n\nexport const measureTreeToColumns: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const measures = (advancedVSeed as unknown as { measures: MeasureTree }).measures\n const result = { ...spec } as ListTableConstructorOptions\n\n const eachNode = (node: Measure | MeasureGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n fieldFormat: fieldFormat(node),\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Measure, MeasureGroup>(measures, eachNode)\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst fieldFormat = (node: Measure) => {\n const formatter = createFormatterByMeasure(node)\n\n return (datum: Datum) => {\n const { id } = node\n const value = datum[id] as number | string | undefined\n return formatter(value)\n }\n}\nconst treeTreeToColumns = <\n T extends { id: string; alias?: string },\n U extends { id: string; alias?: string; children?: (T | U)[] },\n>(\n tree: (T | U)[],\n callback?: (node: T | U) => object,\n): ColumnsDefine[] => {\n const result = tree.map((item) => {\n if ('children' in item && Array.isArray(item.children)) {\n const groupNode = item as unknown as U\n const field = groupNode.id\n const title = groupNode.alias ?? groupNode.id\n const props = callback?.(groupNode) || {}\n // group\n return {\n field,\n title,\n columns: treeTreeToColumns(item.children, callback),\n ...props,\n }\n } else {\n const field = item.id\n const title = item.alias ?? item.id\n const props = callback?.(item) || {}\n // leaf\n return {\n field,\n title,\n ...props,\n }\n }\n }) as unknown as ColumnsDefine[]\n\n return result || []\n}\n"],"names":["measureTreeToColumns","spec","context","advancedVSeed","measures","result","eachNode","node","isMeasure","fieldFormat","columns","treeTreeToColumns","formatter","createFormatterByMeasure","datum","id","value","tree","callback","item","Array","groupNode","field","title","props"],"mappings":";AAIO,MAAMA,uBAA0C,CAACC,MAAMC;IAC5D,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,WAAYD,cAAuD,QAAQ;IACjF,MAAME,SAAS;QAAE,GAAGJ,IAAI;IAAC;IAEzB,MAAMK,WAAW,CAACC;QAChB,IAAIC,UAAUD,OACZ,OAAO;YACL,OAAO;YACP,aAAaE,YAAYF;QAC3B;QAGF,OAAO,CAAC;IACV;IACA,MAAMG,UAAUC,kBAAyCP,UAAUE;IACnE,OAAO;QACL,GAAGD,MAAM;QACT,SAAS;eAAKA,OAAO,OAAO,IAAI,EAAE;eAAMK;SAAQ;IAClD;AACF;AAEA,MAAMD,cAAc,CAACF;IACnB,MAAMK,YAAYC,yBAAyBN;IAE3C,OAAO,CAACO;QACN,MAAM,EAAEC,EAAE,EAAE,GAAGR;QACf,MAAMS,QAAQF,KAAK,CAACC,GAAG;QACvB,OAAOH,UAAUI;IACnB;AACF;AACA,MAAML,oBAAoB,CAIxBM,MACAC;IAEA,MAAMb,SAASY,KAAK,GAAG,CAAC,CAACE;QACvB,IAAI,cAAcA,QAAQC,MAAM,OAAO,CAACD,KAAK,QAAQ,GAAG;YACtD,MAAME,YAAYF;YAClB,MAAMG,QAAQD,UAAU,EAAE;YAC1B,MAAME,QAAQF,UAAU,KAAK,IAAIA,UAAU,EAAE;YAC7C,MAAMG,QAAQN,WAAWG,cAAc,CAAC;YAExC,OAAO;gBACLC;gBACAC;gBACA,SAASZ,kBAAkBQ,KAAK,QAAQ,EAAED;gBAC1C,GAAGM,KAAK;YACV;QACF;QAAO;YACL,MAAMF,QAAQH,KAAK,EAAE;YACrB,MAAMI,QAAQJ,KAAK,KAAK,IAAIA,KAAK,EAAE;YACnC,MAAMK,QAAQN,WAAWC,SAAS,CAAC;YAEnC,OAAO;gBACLG;gBACAC;gBACA,GAAGC,KAAK;YACV;QACF;IACF;IAEA,OAAOnB,UAAU,EAAE;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/columns/pivotColumns.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/columns/pivotColumns.ts"],"sourcesContent":["import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { Dimensions, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotColumns: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n const columns = dimensions.filter((item) => encoding.column?.includes(item.id))\n\n return {\n ...spec,\n columns: columns.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n } as PivotTableConstructorOptions\n}\n"],"names":["pivotColumns","spec","context","advancedVSeed","encoding","dimensions","columns","item"],"mappings":"AAGO,MAAMA,eAAmC,CAACC,MAAMC;IACrD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,QAAQ,EAAE,GAAGD;IACrB,MAAME,aAAaF,cAAc,UAAU;IAC3C,MAAMG,UAAUD,WAAW,MAAM,CAAC,CAACE,OAASH,SAAS,MAAM,EAAE,SAASG,KAAK,EAAE;IAE7E,OAAO;QACL,GAAGN,IAAI;QACP,SAASK,QAAQ,GAAG,CAAC,CAACC,OACb;gBACL,cAAcA,KAAK,EAAE;gBACrB,OAAOA,KAAK,KAAK,IAAIA,KAAK,EAAE;gBAC5B,OAAO;YACT;IAEJ;AACF"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/columns/pivotColumns.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/pivotColumns.ts"],"sourcesContent":["import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { Dimensions, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotColumns: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n const columns = dimensions.filter((item) => encoding.column?.includes(item.id))\n\n return {\n ...spec,\n columns: columns.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n } as PivotTableConstructorOptions\n}\n"],"names":["pivotColumns","spec","context","advancedVSeed","encoding","dimensions","columns","item"],"mappings":"AAGO,MAAMA,eAAmC,CAACC,MAAMC;IACrD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,QAAQ,EAAE,GAAGD;IACrB,MAAME,aAAaF,cAAc,UAAU;IAC3C,MAAMG,UAAUD,WAAW,MAAM,CAAC,CAACE,OAASH,SAAS,MAAM,EAAE,SAASG,KAAK,EAAE;IAE7E,OAAO;QACL,GAAGN,IAAI;QACP,SAASK,QAAQ,GAAG,CAAC,CAACC,OACb;gBACL,cAAcA,KAAK,EAAE;gBACrB,OAAOA,KAAK,KAAK,IAAIA,KAAK,EAAE;gBAC5B,OAAO;YACT;IAEJ;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/corner/titleOnDimension.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/corner/titleOnDimension.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { PivotTableSpecPipe } from 'src/types'\n\nexport const titleOnDimension: PivotTableSpecPipe = (spec) => {\n const { rows = [], columns = [] } = spec\n\n return {\n ...spec,\n corner: {\n titleOnDimension: (rows as any[]).length <= 1 && (columns as any[]).length >= 1 ? 'column' : 'row',\n },\n }\n}\n"],"names":["titleOnDimension","spec","rows","columns"],"mappings":"AAIO,MAAMA,mBAAuC,CAACC;IACnD,MAAM,EAAEC,OAAO,EAAE,EAAEC,UAAU,EAAE,EAAE,GAAGF;IAEpC,OAAO;QACL,GAAGA,IAAI;QACP,QAAQ;YACN,kBAAmBC,KAAe,MAAM,IAAI,KAAMC,QAAkB,MAAM,IAAI,IAAI,WAAW;QAC/F;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/corner/titleOnDimension.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/corner/titleOnDimension.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { PivotTableSpecPipe } from 'src/types'\n\nexport const titleOnDimension: PivotTableSpecPipe = (spec) => {\n const { rows = [], columns = [] } = spec\n\n return {\n ...spec,\n corner: {\n titleOnDimension: (rows as any[]).length <= 1 && (columns as any[]).length >= 1 ? 'column' : 'row',\n },\n }\n}\n"],"names":["titleOnDimension","spec","rows","columns"],"mappings":"AAIO,MAAMA,mBAAuC,CAACC;IACnD,MAAM,EAAEC,OAAO,EAAE,EAAEC,UAAU,EAAE,EAAE,GAAGF;IAEpC,OAAO;QACL,GAAGA,IAAI;QACP,QAAQ;YACN,kBAAmBC,KAAe,MAAM,IAAI,KAAMC,QAAkB,MAAM,IAAI,IAAI,WAAW;QAC/F;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/indicators/pivotDataConfig.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/indicators/pivotDataConfig.ts"],"sourcesContent":["import { findAllMeasures } from 'src/pipeline/utils'\nimport type { PivotTableSpecPipe } from 'src/types'\n\nexport const dataConfig: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const measures = findAllMeasures(advancedVSeed.measures)\n\n const aggregationRules = measures.map((measure) => ({\n field: measure.id,\n aggregationType: 'NONE',\n indicatorKey: measure.id,\n }))\n\n return {\n ...spec,\n dataConfig: {\n aggregationRules,\n },\n }\n}\n"],"names":["dataConfig","spec","context","advancedVSeed","measures","findAllMeasures","aggregationRules","measure"],"mappings":";AAGO,MAAMA,aAAiC,CAACC,MAAMC;IACnD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,WAAWC,gBAAgBF,cAAc,QAAQ;IAEvD,MAAMG,mBAAmBF,SAAS,GAAG,CAAC,CAACG,UAAa;YAClD,OAAOA,QAAQ,EAAE;YACjB,iBAAiB;YACjB,cAAcA,QAAQ,EAAE;QAC1B;IAEA,OAAO;QACL,GAAGN,IAAI;QACP,YAAY;YACVK;QACF;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/indicators/pivotDataConfig.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotDataConfig.ts"],"sourcesContent":["import { findAllMeasures } from 'src/pipeline/utils'\nimport type { PivotTableSpecPipe } from 'src/types'\n\nexport const dataConfig: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const measures = findAllMeasures(advancedVSeed.measures)\n\n const aggregationRules = measures.map((measure) => ({\n field: measure.id,\n aggregationType: 'NONE',\n indicatorKey: measure.id,\n }))\n\n return {\n ...spec,\n dataConfig: {\n aggregationRules,\n },\n }\n}\n"],"names":["dataConfig","spec","context","advancedVSeed","measures","findAllMeasures","aggregationRules","measure"],"mappings":";AAGO,MAAMA,aAAiC,CAACC,MAAMC;IACnD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,WAAWC,gBAAgBF,cAAc,QAAQ;IAEvD,MAAMG,mBAAmBF,SAAS,GAAG,CAAC,CAACG,UAAa;YAClD,OAAOA,QAAQ,EAAE;YACjB,iBAAiB;YACjB,cAAcA,QAAQ,EAAE;QAC1B;IAEA,OAAO;QACL,GAAGN,IAAI;QACP,YAAY;YACVK;QACF;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/indicators/pivotIndicators.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/indicators/pivotIndicators.ts"],"sourcesContent":["import type { PivotChartConstructorOptions, BaseTableAPI } from '@visactor/vtable'\nimport { isNumber } from 'remeda'\nimport { intl } from 'src/i18n'\nimport { createFormatterByMeasure, findMeasureById } from 'src/pipeline/utils'\nimport type { Datum, FoldInfo, MeasureTree, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotIndicators: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n const hasRow = ((spec as any)?.rows as any[])?.length > 0\n const foldMapValues = Object.values(foldInfo.foldMap)\n\n return {\n ...spec,\n indicatorTitle: intl.i18n`指标名称`,\n indicatorsAsCol: hasRow,\n hideIndicatorName: hasRow,\n indicators: [\n {\n cellType: 'text',\n indicatorKey: foldInfo.measureValue,\n title: foldMapValues.length > 1 ? '' : foldMapValues[0],\n width: 'auto',\n format: fieldFormat(measures, foldInfo as FoldInfo),\n },\n ] as unknown as PivotChartConstructorOptions['indicators'],\n }\n}\n\nconst fieldFormat = (measures: MeasureTree, foldInfo: FoldInfo) => {\n return (value: number | string, col?: number, row?: number, table?: BaseTableAPI) => {\n if (!isNumber(col) || !isNumber(row) || !table) {\n return value\n }\n\n const datum = table.getCellOriginRecord(col, row) as Datum[]\n if (!datum[0]) {\n return value\n }\n const { measureId: foldMeasureId } = foldInfo\n const measureId = datum[0][foldMeasureId] as string\n const measure = findMeasureById(measures, measureId)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n }\n}\n"],"names":["pivotIndicators","spec","context","advancedVSeed","measures","datasetReshapeInfo","foldInfo","hasRow","foldMapValues","Object","intl","fieldFormat","value","col","row","table","isNumber","datum","foldMeasureId","measureId","measure","findMeasureById","formatter","createFormatterByMeasure"],"mappings":";;;AAMO,MAAMA,kBAAsC,CAACC,MAAMC;IACxD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,QAAQ,EAAEC,kBAAkB,EAAE,GAAGF;IACzC,MAAM,EAAEG,QAAQ,EAAE,GAAGD,kBAAkB,CAAC,EAAE;IAC1C,MAAME,SAAWN,MAAc,MAAgB,SAAS;IACxD,MAAMO,gBAAgBC,OAAO,MAAM,CAACH,SAAS,OAAO;IAEpD,OAAO;QACL,GAAGL,IAAI;QACP,gBAAgBS,KAAK,IAAI,CAAC,IAAI,CAAC;QAC/B,iBAAiBH;QACjB,mBAAmBA;QACnB,YAAY;YACV;gBACE,UAAU;gBACV,cAAcD,SAAS,YAAY;gBACnC,OAAOE,cAAc,MAAM,GAAG,IAAI,KAAKA,aAAa,CAAC,EAAE;gBACvD,OAAO;gBACP,QAAQG,YAAYP,UAAUE;YAChC;SACD;IACH;AACF;AAEA,MAAMK,cAAc,CAACP,UAAuBE,WACnC,CAACM,OAAwBC,KAAcC,KAAcC;QAC1D,IAAI,CAACC,SAASH,QAAQ,CAACG,SAASF,QAAQ,CAACC,OACvC,OAAOH;QAGT,MAAMK,QAAQF,MAAM,mBAAmB,CAACF,KAAKC;QAC7C,IAAI,CAACG,KAAK,CAAC,EAAE,EACX,OAAOL;QAET,MAAM,EAAE,WAAWM,aAAa,EAAE,GAAGZ;QACrC,MAAMa,YAAYF,KAAK,CAAC,EAAE,CAACC,cAAc;QACzC,MAAME,UAAUC,gBAAgBjB,UAAUe;QAC1C,MAAMG,YAAYC,yBAAyBH;QAC3C,OAAOE,UAAUV;IACnB"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/indicators/pivotIndicators.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotIndicators.ts"],"sourcesContent":["import type { PivotChartConstructorOptions, BaseTableAPI } from '@visactor/vtable'\nimport { isNumber } from 'remeda'\nimport { intl } from 'src/i18n'\nimport { createFormatterByMeasure, findMeasureById } from 'src/pipeline/utils'\nimport type { Datum, FoldInfo, MeasureTree, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotIndicators: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n const hasRow = ((spec as any)?.rows as any[])?.length > 0\n const foldMapValues = Object.values(foldInfo.foldMap)\n\n return {\n ...spec,\n indicatorTitle: intl.i18n`指标名称`,\n indicatorsAsCol: hasRow,\n hideIndicatorName: hasRow,\n indicators: [\n {\n cellType: 'text',\n indicatorKey: foldInfo.measureValue,\n title: foldMapValues.length > 1 ? '' : foldMapValues[0],\n width: 'auto',\n format: fieldFormat(measures, foldInfo as FoldInfo),\n },\n ] as unknown as PivotChartConstructorOptions['indicators'],\n }\n}\n\nconst fieldFormat = (measures: MeasureTree, foldInfo: FoldInfo) => {\n return (value: number | string, col?: number, row?: number, table?: BaseTableAPI) => {\n if (!isNumber(col) || !isNumber(row) || !table) {\n return value\n }\n\n const datum = table.getCellOriginRecord(col, row) as Datum[]\n if (!datum[0]) {\n return value\n }\n const { measureId: foldMeasureId } = foldInfo\n const measureId = datum[0][foldMeasureId] as string\n const measure = findMeasureById(measures, measureId)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n }\n}\n"],"names":["pivotIndicators","spec","context","advancedVSeed","measures","datasetReshapeInfo","foldInfo","hasRow","foldMapValues","Object","intl","fieldFormat","value","col","row","table","isNumber","datum","foldMeasureId","measureId","measure","findMeasureById","formatter","createFormatterByMeasure"],"mappings":";;;AAMO,MAAMA,kBAAsC,CAACC,MAAMC;IACxD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,QAAQ,EAAEC,kBAAkB,EAAE,GAAGF;IACzC,MAAM,EAAEG,QAAQ,EAAE,GAAGD,kBAAkB,CAAC,EAAE;IAC1C,MAAME,SAAWN,MAAc,MAAgB,SAAS;IACxD,MAAMO,gBAAgBC,OAAO,MAAM,CAACH,SAAS,OAAO;IAEpD,OAAO;QACL,GAAGL,IAAI;QACP,gBAAgBS,KAAK,IAAI,CAAC,IAAI,CAAC;QAC/B,iBAAiBH;QACjB,mBAAmBA;QACnB,YAAY;YACV;gBACE,UAAU;gBACV,cAAcD,SAAS,YAAY;gBACnC,OAAOE,cAAc,MAAM,GAAG,IAAI,KAAKA,aAAa,CAAC,EAAE;gBACvD,OAAO;gBACP,QAAQG,YAAYP,UAAUE;YAChC;SACD;IACH;AACF;AAEA,MAAMK,cAAc,CAACP,UAAuBE,WACnC,CAACM,OAAwBC,KAAcC,KAAcC;QAC1D,IAAI,CAACC,SAASH,QAAQ,CAACG,SAASF,QAAQ,CAACC,OACvC,OAAOH;QAGT,MAAMK,QAAQF,MAAM,mBAAmB,CAACF,KAAKC;QAC7C,IAAI,CAACG,KAAK,CAAC,EAAE,EACX,OAAOL;QAET,MAAM,EAAE,WAAWM,aAAa,EAAE,GAAGZ;QACrC,MAAMa,YAAYF,KAAK,CAAC,EAAE,CAACC,cAAc;QACzC,MAAME,UAAUC,gBAAgBjB,UAAUe;QAC1C,MAAMG,YAAYC,yBAAyBH;QAC3C,OAAOE,UAAUV;IACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/init/pivotTable.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/init/pivotTable.ts"],"sourcesContent":["import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { PivotTableSpecPipe } from 'src/types'\n\nexport const initPivotTable: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dataset } = advancedVSeed\n const { config } = advancedVSeed\n const { backgroundColor = 'transparent' } = config.pivotTable || {}\n return {\n ...spec,\n records: dataset,\n widthMode: 'standard',\n defaultHeaderColWidth: 'auto',\n heightMode: 'autoHeight',\n autoWrapText: true,\n columnResizeMode: 'all',\n columnResizeType: 'column',\n showColumnHeader: true,\n showRowHeader: true,\n select: {\n highlightMode: 'cell',\n headerSelectMode: 'inline',\n },\n hover: {\n highlightMode: 'cross',\n },\n tooltip: {\n isShowOverflowTextTooltip: true,\n },\n corner: {\n titleOnDimension: 'all',\n },\n widthAdaptiveMode: 'all',\n animationAppear: {\n duration: 300,\n delay: 250,\n type: 'one-by-one',\n direction: 'row',\n },\n theme: {\n cellInnerBorder: false,\n underlayBackgroundColor: backgroundColor,\n },\n } as PivotTableConstructorOptions\n}\n"],"names":["initPivotTable","spec","context","advancedVSeed","dataset","config","backgroundColor"],"mappings":"AAGO,MAAMA,iBAAqC,CAACC,MAAMC;IACvD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,MAAM,EAAE,GAAGF;IACnB,MAAM,EAAEG,kBAAkB,aAAa,EAAE,GAAGD,OAAO,UAAU,IAAI,CAAC;IAClE,OAAO;QACL,GAAGJ,IAAI;QACP,SAASG;QACT,WAAW;QACX,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,QAAQ;YACN,eAAe;YACf,kBAAkB;QACpB;QACA,OAAO;YACL,eAAe;QACjB;QACA,SAAS;YACP,2BAA2B;QAC7B;QACA,QAAQ;YACN,kBAAkB;QACpB;QACA,mBAAmB;QACnB,iBAAiB;YACf,UAAU;YACV,OAAO;YACP,MAAM;YACN,WAAW;QACb;QACA,OAAO;YACL,iBAAiB;YACjB,yBAAyBE;QAC3B;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/init/pivotTable.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/init/pivotTable.ts"],"sourcesContent":["import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { PivotTableSpecPipe } from 'src/types'\n\nexport const initPivotTable: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dataset } = advancedVSeed\n const { config } = advancedVSeed\n const { backgroundColor = 'transparent' } = config.pivotTable || {}\n return {\n ...spec,\n records: dataset,\n widthMode: 'standard',\n defaultHeaderColWidth: 'auto',\n heightMode: 'autoHeight',\n autoWrapText: true,\n columnResizeMode: 'all',\n columnResizeType: 'column',\n showColumnHeader: true,\n showRowHeader: true,\n select: {\n highlightMode: 'cell',\n headerSelectMode: 'inline',\n },\n hover: {\n highlightMode: 'cross',\n },\n tooltip: {\n isShowOverflowTextTooltip: true,\n },\n corner: {\n titleOnDimension: 'all',\n },\n widthAdaptiveMode: 'all',\n animationAppear: {\n duration: 300,\n delay: 250,\n type: 'one-by-one',\n direction: 'row',\n },\n theme: {\n cellInnerBorder: false,\n underlayBackgroundColor: backgroundColor,\n },\n } as PivotTableConstructorOptions\n}\n"],"names":["initPivotTable","spec","context","advancedVSeed","dataset","config","backgroundColor"],"mappings":"AAGO,MAAMA,iBAAqC,CAACC,MAAMC;IACvD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,MAAM,EAAE,GAAGF;IACnB,MAAM,EAAEG,kBAAkB,aAAa,EAAE,GAAGD,OAAO,UAAU,IAAI,CAAC;IAClE,OAAO;QACL,GAAGJ,IAAI;QACP,SAASG;QACT,WAAW;QACX,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,QAAQ;YACN,eAAe;YACf,kBAAkB;QACpB;QACA,OAAO;YACL,eAAe;QACjB;QACA,SAAS;YACP,2BAA2B;QAC7B;QACA,QAAQ;YACN,kBAAkB;QACpB;QACA,mBAAmB;QACnB,iBAAiB;YACf,UAAU;YACV,OAAO;YACP,MAAM;YACN,WAAW;QACb;QACA,OAAO;YACL,iBAAiB;YACjB,yBAAyBE;QAC3B;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/init/table.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/init/table.ts"],"sourcesContent":["import type { ListTableConstructorOptions } from '@visactor/vtable'\nimport type { ListTableSpecPipe } from 'src/types'\n\nexport const initTable: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dataset } = advancedVSeed\n const { config } = advancedVSeed\n const { backgroundColor = 'transparent' } = config.table || {}\n\n return {\n ...spec,\n records: dataset,\n widthMode: 'standard',\n defaultHeaderColWidth: 'auto',\n heightMode: 'autoHeight',\n autoWrapText: true,\n columnResizeMode: 'all',\n showHeader: true,\n tooltip: {\n isShowOverflowTextTooltip: true,\n },\n animationAppear: {\n duration: 300,\n delay: 250,\n type: 'one-by-one',\n direction: 'row',\n },\n hover: {\n highlightMode: 'row',\n },\n theme: {\n cellInnerBorder: false,\n underlayBackgroundColor: backgroundColor,\n },\n } as ListTableConstructorOptions\n}\n"],"names":["initTable","spec","context","advancedVSeed","dataset","config","backgroundColor"],"mappings":"AAGO,MAAMA,YAA+B,CAACC,MAAMC;IACjD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,MAAM,EAAE,GAAGF;IACnB,MAAM,EAAEG,kBAAkB,aAAa,EAAE,GAAGD,OAAO,KAAK,IAAI,CAAC;IAE7D,OAAO;QACL,GAAGJ,IAAI;QACP,SAASG;QACT,WAAW;QACX,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,YAAY;QACZ,SAAS;YACP,2BAA2B;QAC7B;QACA,iBAAiB;YACf,UAAU;YACV,OAAO;YACP,MAAM;YACN,WAAW;QACb;QACA,OAAO;YACL,eAAe;QACjB;QACA,OAAO;YACL,iBAAiB;YACjB,yBAAyBE;QAC3B;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/init/table.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/init/table.ts"],"sourcesContent":["import type { ListTableConstructorOptions } from '@visactor/vtable'\nimport type { ListTableSpecPipe } from 'src/types'\n\nexport const initTable: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dataset } = advancedVSeed\n const { config } = advancedVSeed\n const { backgroundColor = 'transparent' } = config.table || {}\n\n return {\n ...spec,\n records: dataset,\n widthMode: 'standard',\n defaultHeaderColWidth: 'auto',\n heightMode: 'autoHeight',\n autoWrapText: true,\n columnResizeMode: 'all',\n showHeader: true,\n tooltip: {\n isShowOverflowTextTooltip: true,\n },\n animationAppear: {\n duration: 300,\n delay: 250,\n type: 'one-by-one',\n direction: 'row',\n },\n hover: {\n highlightMode: 'row',\n },\n theme: {\n cellInnerBorder: false,\n underlayBackgroundColor: backgroundColor,\n },\n } as ListTableConstructorOptions\n}\n"],"names":["initTable","spec","context","advancedVSeed","dataset","config","backgroundColor"],"mappings":"AAGO,MAAMA,YAA+B,CAACC,MAAMC;IACjD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,MAAM,EAAE,GAAGF;IACnB,MAAM,EAAEG,kBAAkB,aAAa,EAAE,GAAGD,OAAO,KAAK,IAAI,CAAC;IAE7D,OAAO;QACL,GAAGJ,IAAI;QACP,SAASG;QACT,WAAW;QACX,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,YAAY;QACZ,SAAS;YACP,2BAA2B;QAC7B;QACA,iBAAiB;YACf,UAAU;YACV,OAAO;YACP,MAAM;YACN,WAAW;QACb;QACA,OAAO;YACL,eAAe;QACjB;QACA,OAAO;YACL,iBAAiB;YACjB,yBAAyBE;QAC3B;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/rows/pivotRows.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/rows/pivotRows.ts"],"sourcesContent":["import { MeasureId } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils/measures/find'\nimport type { Dimensions, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotRows: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n const { encoding, measures } = advancedVSeed\n const rows = dimensions.filter((item) => encoding.row?.includes(item.id))\n const allMeasures = findAllMeasures(measures)\n\n return {\n ...spec,\n rows: rows.map((item) => {\n const res = {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n\n if (item.id === MeasureId) {\n ;(res as any).headerFormat = (measureId: string) => {\n const measure = allMeasures.find((m) => m.id === measureId)\n\n return measure?.alias ?? measureId\n }\n }\n\n return res\n }),\n }\n}\n"],"names":["pivotRows","spec","context","advancedVSeed","dimensions","encoding","measures","rows","item","allMeasures","findAllMeasures","res","MeasureId","measureId","measure","m"],"mappings":";;AAIO,MAAMA,YAAgC,CAACC,MAAMC;IAClD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,aAAaD,cAAc,UAAU;IAC3C,MAAM,EAAEE,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IAC/B,MAAMI,OAAOH,WAAW,MAAM,CAAC,CAACI,OAASH,SAAS,GAAG,EAAE,SAASG,KAAK,EAAE;IACvE,MAAMC,cAAcC,gBAAgBJ;IAEpC,OAAO;QACL,GAAGL,IAAI;QACP,MAAMM,KAAK,GAAG,CAAC,CAACC;YACd,MAAMG,MAAM;gBACV,cAAcH,KAAK,EAAE;gBACrB,OAAOA,KAAK,KAAK,IAAIA,KAAK,EAAE;gBAC5B,OAAO;YACT;YAEA,IAAIA,KAAK,EAAE,KAAKI,WACZD,IAAY,YAAY,GAAG,CAACE;gBAC5B,MAAMC,UAAUL,YAAY,IAAI,CAAC,CAACM,IAAMA,EAAE,EAAE,KAAKF;gBAEjD,OAAOC,SAAS,SAASD;YAC3B;YAGF,OAAOF;QACT;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/rows/pivotRows.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/rows/pivotRows.ts"],"sourcesContent":["import { MeasureId } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils/measures/find'\nimport type { Dimensions, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotRows: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n const { encoding, measures } = advancedVSeed\n const rows = dimensions.filter((item) => encoding.row?.includes(item.id))\n const allMeasures = findAllMeasures(measures)\n\n return {\n ...spec,\n rows: rows.map((item) => {\n const res = {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n\n if (item.id === MeasureId) {\n ;(res as any).headerFormat = (measureId: string) => {\n const measure = allMeasures.find((m) => m.id === measureId)\n\n return measure?.alias ?? measureId\n }\n }\n\n return res\n }),\n }\n}\n"],"names":["pivotRows","spec","context","advancedVSeed","dimensions","encoding","measures","rows","item","allMeasures","findAllMeasures","res","MeasureId","measureId","measure","m"],"mappings":";;AAIO,MAAMA,YAAgC,CAACC,MAAMC;IAClD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,aAAaD,cAAc,UAAU;IAC3C,MAAM,EAAEE,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IAC/B,MAAMI,OAAOH,WAAW,MAAM,CAAC,CAACI,OAASH,SAAS,GAAG,EAAE,SAASG,KAAK,EAAE;IACvE,MAAMC,cAAcC,gBAAgBJ;IAEpC,OAAO;QACL,GAAGL,IAAI;QACP,MAAMM,KAAK,GAAG,CAAC,CAACC;YACd,MAAMG,MAAM;gBACV,cAAcH,KAAK,EAAE;gBACrB,OAAOA,KAAK,KAAK,IAAIA,KAAK,EAAE;gBAC5B,OAAO;YACT;YAEA,IAAIA,KAAK,EAAE,KAAKI,WACZD,IAAY,YAAY,GAAG,CAACE;gBAC5B,MAAMC,UAAUL,YAAY,IAAI,CAAC,CAACM,IAAMA,EAAE,EAAE,KAAKF;gBAEjD,OAAOC,SAAS,SAASD;YAC3B;YAGF,OAAOF;QACT;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/theme/bodyStyle.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/theme/bodyStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const bodyStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { chartType, config } = advancedVSeed\n const themeConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themeConfig) return result\n\n // basic\n const borderColor = themeConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themeConfig.bodyBackgroundColor || '#fff'\n const fontColor = themeConfig.bodyFontColor || '#1B1F23'\n const fontSize = themeConfig.bodyFontSize || 12\n // Interaction\n const hoverCellBgColor = themeConfig.hoverBodyBackgroundColor || '#bedaff'\n const hoverInlineColor = themeConfig.hoverBodyInlineBackgroundColor || '#bedaff'\n\n if (!result.theme) result.theme = {}\n ;(result.theme as ThemeLike).bodyStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'right',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n color: fontColor,\n fontSize: fontSize,\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["bodyStyle","spec","context","result","advancedVSeed","chartType","config","themeConfig","borderColor","backgroundColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor"],"mappings":"AAGO,MAAMA,YAAgC,CAACC,MAAMC;IAClD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,SAAS,EAAEC,MAAM,EAAE,GAAGF;IAC9B,MAAMG,cAAcD,QAAQ,CAACD,UAAU;IAEvC,IAAI,CAACF,OAAO,KAAK,IAAI,CAACI,aAAa,OAAOJ;IAG1C,MAAMK,cAAcD,YAAY,WAAW,IAAI;IAC/C,MAAME,kBAAkBF,YAAY,mBAAmB,IAAI;IAC3D,MAAMG,YAAYH,YAAY,aAAa,IAAI;IAC/C,MAAMI,WAAWJ,YAAY,YAAY,IAAI;IAE7C,MAAMK,mBAAmBL,YAAY,wBAAwB,IAAI;IACjE,MAAMM,mBAAmBN,YAAY,8BAA8B,IAAI;IAEvE,IAAI,CAACJ,OAAO,KAAK,EAAEA,OAAO,KAAK,GAAG,CAAC;IACjCA,OAAO,KAAK,CAAe,SAAS,GAAG;QACvC,aAAaK;QACb,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaI;YACb,kBAAkBC;YAClB,qBAAqBA;QACvB;QACA,OAAOH;QACP,UAAUC;QACV,WAAW;QACX,YAAY;QACZ,aAAa;QACb,SAASF;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/theme/bodyStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/bodyStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const bodyStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { chartType, config } = advancedVSeed\n const themeConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themeConfig) return result\n\n // basic\n const borderColor = themeConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themeConfig.bodyBackgroundColor || '#fff'\n const fontColor = themeConfig.bodyFontColor || '#1B1F23'\n const fontSize = themeConfig.bodyFontSize || 12\n // Interaction\n const hoverCellBgColor = themeConfig.hoverBodyBackgroundColor || '#bedaff'\n const hoverInlineColor = themeConfig.hoverBodyInlineBackgroundColor || '#bedaff'\n\n if (!result.theme) result.theme = {}\n ;(result.theme as ThemeLike).bodyStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'right',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n color: fontColor,\n fontSize: fontSize,\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["bodyStyle","spec","context","result","advancedVSeed","chartType","config","themeConfig","borderColor","backgroundColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor"],"mappings":"AAGO,MAAMA,YAAgC,CAACC,MAAMC;IAClD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,SAAS,EAAEC,MAAM,EAAE,GAAGF;IAC9B,MAAMG,cAAcD,QAAQ,CAACD,UAAU;IAEvC,IAAI,CAACF,OAAO,KAAK,IAAI,CAACI,aAAa,OAAOJ;IAG1C,MAAMK,cAAcD,YAAY,WAAW,IAAI;IAC/C,MAAME,kBAAkBF,YAAY,mBAAmB,IAAI;IAC3D,MAAMG,YAAYH,YAAY,aAAa,IAAI;IAC/C,MAAMI,WAAWJ,YAAY,YAAY,IAAI;IAE7C,MAAMK,mBAAmBL,YAAY,wBAAwB,IAAI;IACjE,MAAMM,mBAAmBN,YAAY,8BAA8B,IAAI;IAEvE,IAAI,CAACJ,OAAO,KAAK,EAAEA,OAAO,KAAK,GAAG,CAAC;IACjCA,OAAO,KAAK,CAAe,SAAS,GAAG;QACvC,aAAaK;QACb,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaI;YACb,kBAAkBC;YAClB,qBAAqBA;QACvB;QACA,OAAOH;QACP,UAAUC;QACV,WAAW;QACX,YAAY;QACZ,aAAa;QACb,SAASF;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/theme/cornerHeaderStyle.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/theme/cornerHeaderStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const cornerHeaderStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor\n const hoverCellColor = themConfig.hoverHeaderBackgroundColor\n\n ;(result.theme as ThemeLike).cornerHeaderStyle = {\n borderColor: [borderColor, borderColor],\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'left',\n hover: {\n cellBgColor: hoverCellColor || undefined,\n inlineRowBgColor: hoverInlineColor || undefined,\n inlineColumnBgColor: hoverInlineColor || undefined,\n },\n frameStyle: {\n borderColor: borderColor,\n borderLineWidth: [0, 1, 1, 0],\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["cornerHeaderStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor","fontColor","fontSize","hoverInlineColor","hoverCellColor","undefined"],"mappings":"AAGO,MAAMA,oBAAwC,CAACC,MAAMC;IAC1D,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAGzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAC9C,MAAME,kBAAkBF,WAAW,qBAAqB,IAAI;IAC5D,MAAMG,YAAYH,WAAW,eAAe,IAAI;IAChD,MAAMI,WAAWJ,WAAW,cAAc,IAAI;IAE9C,MAAMK,mBAAmBL,WAAW,gCAAgC;IACpE,MAAMM,iBAAiBN,WAAW,0BAA0B;IAE1DJ,OAAO,KAAK,CAAe,iBAAiB,GAAG;QAC/C,aAAa;YAACK;YAAaA;SAAY;QACvC,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaK,kBAAkBC;YAC/B,kBAAkBF,oBAAoBE;YACtC,qBAAqBF,oBAAoBE;QAC3C;QACA,YAAY;YACV,aAAaN;YACb,iBAAiB;gBAAC;gBAAG;gBAAG;gBAAG;aAAE;QAC/B;QACA,UAAUG;QACV,aAAa;QACb,WAAW;QACX,YAAY;QACZ,OAAOD;QACP,SAASD;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/theme/cornerHeaderStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/cornerHeaderStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const cornerHeaderStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor\n const hoverCellColor = themConfig.hoverHeaderBackgroundColor\n\n ;(result.theme as ThemeLike).cornerHeaderStyle = {\n borderColor: [borderColor, borderColor],\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'left',\n hover: {\n cellBgColor: hoverCellColor || undefined,\n inlineRowBgColor: hoverInlineColor || undefined,\n inlineColumnBgColor: hoverInlineColor || undefined,\n },\n frameStyle: {\n borderColor: borderColor,\n borderLineWidth: [0, 1, 1, 0],\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["cornerHeaderStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor","fontColor","fontSize","hoverInlineColor","hoverCellColor","undefined"],"mappings":"AAGO,MAAMA,oBAAwC,CAACC,MAAMC;IAC1D,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAGzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAC9C,MAAME,kBAAkBF,WAAW,qBAAqB,IAAI;IAC5D,MAAMG,YAAYH,WAAW,eAAe,IAAI;IAChD,MAAMI,WAAWJ,WAAW,cAAc,IAAI;IAE9C,MAAMK,mBAAmBL,WAAW,gCAAgC;IACpE,MAAMM,iBAAiBN,WAAW,0BAA0B;IAE1DJ,OAAO,KAAK,CAAe,iBAAiB,GAAG;QAC/C,aAAa;YAACK;YAAaA;SAAY;QACvC,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaK,kBAAkBC;YAC/B,kBAAkBF,oBAAoBE;YACtC,qBAAqBF,oBAAoBE;QAC3C;QACA,YAAY;YACV,aAAaN;YACb,iBAAiB;gBAAC;gBAAG;gBAAG;gBAAG;aAAE;QAC/B;QACA,UAAUG;QACV,aAAa;QACb,WAAW;QACX,YAAY;QACZ,OAAOD;QACP,SAASD;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/theme/frameStyle.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/theme/frameStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const tableThemeStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n\n ;(result.theme as ThemeLike).frameStyle = {\n borderColor,\n borderLineWidth: 1,\n cornerRadius: 4,\n }\n result.theme.scrollStyle = {\n visible: 'scrolling',\n hoverOn: true,\n }\n\n return result\n}\n"],"names":["tableThemeStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor"],"mappings":"AAGO,MAAMA,kBAAsC,CAACC,MAAMC;IACxD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAEzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAE5CJ,OAAO,KAAK,CAAe,UAAU,GAAG;QACxCK;QACA,iBAAiB;QACjB,cAAc;IAChB;IACAL,OAAO,KAAK,CAAC,WAAW,GAAG;QACzB,SAAS;QACT,SAAS;IACX;IAEA,OAAOA;AACT"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/theme/frameStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/frameStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const tableThemeStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n\n ;(result.theme as ThemeLike).frameStyle = {\n borderColor,\n borderLineWidth: 1,\n cornerRadius: 4,\n }\n result.theme.scrollStyle = {\n visible: 'scrolling',\n hoverOn: true,\n }\n\n return result\n}\n"],"names":["tableThemeStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor"],"mappings":"AAGO,MAAMA,kBAAsC,CAACC,MAAMC;IACxD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAEzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAE5CJ,OAAO,KAAK,CAAe,UAAU,GAAG;QACxCK;QACA,iBAAiB;QACjB,cAAc;IAChB;IACAL,OAAO,KAAK,CAAC,WAAW,GAAG;QACzB,SAAS;QACT,SAAS;IACX;IAEA,OAAOA;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/theme/headerStyle.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/theme/headerStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const headerStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n ;(result.theme as ThemeLike).headerStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'center',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor: borderColor,\n borderLineWidth: [0, 0, 1, 0],\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["headerStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor"],"mappings":"AAGO,MAAMA,cAAkC,CAACC,MAAMC;IACpD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAGzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAC9C,MAAME,kBAAkBF,WAAW,qBAAqB,IAAI;IAC5D,MAAMG,YAAYH,WAAW,eAAe,IAAI;IAChD,MAAMI,WAAWJ,WAAW,cAAc,IAAI;IAE9C,MAAMK,mBAAmBL,WAAW,0BAA0B,IAAI;IAClE,MAAMM,mBAAmBN,WAAW,gCAAgC,IAAI;IAEtEJ,OAAO,KAAK,CAAe,WAAW,GAAG;QACzC,aAAaK;QACb,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaI;YACb,kBAAkBC;YAClB,qBAAqBA;QACvB;QACA,YAAY;YACV,aAAaL;YACb,iBAAiB;gBAAC;gBAAG;gBAAG;gBAAG;aAAE;QAC/B;QACA,UAAUG;QACV,aAAa;QACb,WAAW;QACX,YAAY;QACZ,OAAOD;QACP,SAASD;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/theme/headerStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/headerStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const headerStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n ;(result.theme as ThemeLike).headerStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'center',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor: borderColor,\n borderLineWidth: [0, 0, 1, 0],\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["headerStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor"],"mappings":"AAGO,MAAMA,cAAkC,CAACC,MAAMC;IACpD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAGzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAC9C,MAAME,kBAAkBF,WAAW,qBAAqB,IAAI;IAC5D,MAAMG,YAAYH,WAAW,eAAe,IAAI;IAChD,MAAMI,WAAWJ,WAAW,cAAc,IAAI;IAE9C,MAAMK,mBAAmBL,WAAW,0BAA0B,IAAI;IAClE,MAAMM,mBAAmBN,WAAW,gCAAgC,IAAI;IAEtEJ,OAAO,KAAK,CAAe,WAAW,GAAG;QACzC,aAAaK;QACb,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaI;YACb,kBAAkBC;YAClB,qBAAqBA;QACvB;QACA,YAAY;YACV,aAAaL;YACb,iBAAiB;gBAAC;gBAAG;gBAAG;gBAAG;aAAE;QAC/B;QACA,UAAUG;QACV,aAAa;QACb,WAAW;QACX,YAAY;QACZ,OAAOD;QACP,SAASD;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/theme/rowHeaderStyle.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/theme/rowHeaderStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const rowHeaderStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n ;(result.theme as ThemeLike).rowHeaderStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'left',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor: borderColor,\n borderLineWidth: [0, 1, 0, 0],\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["rowHeaderStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor"],"mappings":"AAGO,MAAMA,iBAAqC,CAACC,MAAMC;IACvD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAGzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAC9C,MAAME,kBAAkBF,WAAW,qBAAqB,IAAI;IAC5D,MAAMG,YAAYH,WAAW,eAAe,IAAI;IAChD,MAAMI,WAAWJ,WAAW,cAAc,IAAI;IAE9C,MAAMK,mBAAmBL,WAAW,0BAA0B,IAAI;IAClE,MAAMM,mBAAmBN,WAAW,gCAAgC,IAAI;IAEtEJ,OAAO,KAAK,CAAe,cAAc,GAAG;QAC5C,aAAaK;QACb,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaI;YACb,kBAAkBC;YAClB,qBAAqBA;QACvB;QACA,YAAY;YACV,aAAaL;YACb,iBAAiB;gBAAC;gBAAG;gBAAG;gBAAG;aAAE;QAC/B;QACA,UAAUG;QACV,aAAa;QACb,WAAW;QACX,YAAY;QACZ,OAAOD;QACP,SAASD;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/theme/rowHeaderStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/rowHeaderStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const rowHeaderStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n ;(result.theme as ThemeLike).rowHeaderStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'left',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor: borderColor,\n borderLineWidth: [0, 1, 0, 0],\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["rowHeaderStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor"],"mappings":"AAGO,MAAMA,iBAAqC,CAACC,MAAMC;IACvD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAGzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAC9C,MAAME,kBAAkBF,WAAW,qBAAqB,IAAI;IAC5D,MAAMG,YAAYH,WAAW,eAAe,IAAI;IAChD,MAAMI,WAAWJ,WAAW,cAAc,IAAI;IAE9C,MAAMK,mBAAmBL,WAAW,0BAA0B,IAAI;IAClE,MAAMM,mBAAmBN,WAAW,gCAAgC,IAAI;IAEtEJ,OAAO,KAAK,CAAe,cAAc,GAAG;QAC5C,aAAaK;QACb,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaI;YACb,kBAAkBC;YAClB,qBAAqBA;QACvB;QACA,YAAY;YACV,aAAaL;YACb,iBAAiB;gBAAC;gBAAG;gBAAG;gBAAG;aAAE;QAC/B;QACA,UAAUG;QACV,aAAa;QACb,WAAW;QACX,YAAY;QACZ,OAAOD;QACP,SAASD;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/theme/scrollStyle.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/theme/scrollStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const frameStyle: PivotTableSpecPipe = (spec) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n if (!result.theme) return result\n ;(result.theme as ThemeLike).scrollStyle = {\n hoverOn: true,\n visible: 'focus',\n width: 7,\n }\n\n return result\n}\n"],"names":["frameStyle","spec","result"],"mappings":"AAGO,MAAMA,aAAiC,CAACC;IAC7C,MAAMC,SAAS;QAAE,GAAGD,IAAI;IAAC;IACzB,IAAI,CAACC,OAAO,KAAK,EAAE,OAAOA;IACxBA,OAAO,KAAK,CAAe,WAAW,GAAG;QACzC,SAAS;QACT,SAAS;QACT,OAAO;IACT;IAEA,OAAOA;AACT"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/theme/scrollStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/scrollStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const frameStyle: PivotTableSpecPipe = (spec) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n if (!result.theme) return result\n ;(result.theme as ThemeLike).scrollStyle = {\n hoverOn: true,\n visible: 'focus',\n width: 7,\n }\n\n return result\n}\n"],"names":["frameStyle","spec","result"],"mappings":"AAGO,MAAMA,aAAiC,CAACC;IAC7C,MAAMC,SAAS;QAAE,GAAGD,IAAI;IAAC;IACzB,IAAI,CAACC,OAAO,KAAK,EAAE,OAAOA;IACxBA,OAAO,KAAK,CAAe,WAAW,GAAG;QACzC,SAAS;QACT,SAAS;QACT,OAAO;IACT;IAEA,OAAOA;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/theme/selectionStyle.js","sources":["../../../../../../../src/pipeline/spec/table/pipes/theme/selectionStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const selectionStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.selectedBorderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.selectedBackgroundColor || 'rgb(224, 224, 224, 0.5)'\n\n ;(result.theme as ThemeLike).selectionStyle = {\n cellBorderColor: borderColor,\n cellBorderLineWidth: 2,\n cellBgColor: backgroundColor,\n }\n\n return result\n}\n"],"names":["selectionStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor"],"mappings":"AAGO,MAAMA,iBAAqC,CAACC,MAAMC;IACvD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAEzC,MAAMK,cAAcD,WAAW,mBAAmB,IAAI;IACtD,MAAME,kBAAkBF,WAAW,uBAAuB,IAAI;IAE5DJ,OAAO,KAAK,CAAe,cAAc,GAAG;QAC5C,iBAAiBK;QACjB,qBAAqB;QACrB,aAAaC;IACf;IAEA,OAAON;AACT"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/theme/selectionStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/selectionStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const selectionStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.selectedBorderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.selectedBackgroundColor || 'rgb(224, 224, 224, 0.5)'\n\n ;(result.theme as ThemeLike).selectionStyle = {\n cellBorderColor: borderColor,\n cellBorderLineWidth: 2,\n cellBgColor: backgroundColor,\n }\n\n return result\n}\n"],"names":["selectionStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor"],"mappings":"AAGO,MAAMA,iBAAqC,CAACC,MAAMC;IACvD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAEzC,MAAMK,cAAcD,WAAW,mBAAmB,IAAI;IACtD,MAAME,kBAAkBF,WAAW,uBAAuB,IAAI;IAE5DJ,OAAO,KAAK,CAAe,cAAc,GAAG;QAC5C,iBAAiBK;QACjB,qBAAqB;QACrB,aAAaC;IACf;IAEA,OAAON;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/boxplot.js","sources":["../../../../src/pipeline/utils/boxplot.ts"],"sourcesContent":["import { BoxPlotPivotIndicator } from 'src/dataReshape'\n\nexport const revisedBoxPlotFieldKey = (fieldKey: string, groupId: string, isPivotChart = true) => {\n if (!isPivotChart) {\n return fieldKey\n }\n return `${BoxPlotPivotIndicator}_${groupId}_${fieldKey}`\n}\n"],"names":["revisedBoxPlotFieldKey","fieldKey","groupId","isPivotChart","BoxPlotPivotIndicator"],"mappings":";AAEO,MAAMA,yBAAyB,CAACC,UAAkBC,SAAiBC,eAAe,IAAI;IAC3F,IAAI,CAACA,cACH,OAAOF;IAET,OAAO,GAAGG,sBAAsB,CAAC,EAAEF,QAAQ,CAAC,EAAED,UAAU;AAC1D"}
1
+ {"version":3,"file":"pipeline/utils/boxplot.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/boxplot.ts"],"sourcesContent":["import { BoxPlotPivotIndicator } from 'src/dataReshape'\n\nexport const revisedBoxPlotFieldKey = (fieldKey: string, groupId: string, isPivotChart = true) => {\n if (!isPivotChart) {\n return fieldKey\n }\n return `${BoxPlotPivotIndicator}_${groupId}_${fieldKey}`\n}\n"],"names":["revisedBoxPlotFieldKey","fieldKey","groupId","isPivotChart","BoxPlotPivotIndicator"],"mappings":";AAEO,MAAMA,yBAAyB,CAACC,UAAkBC,SAAiBC,eAAe,IAAI;IAC3F,IAAI,CAACA,cACH,OAAOF;IAET,OAAO,GAAGG,sBAAsB,CAAC,EAAEF,QAAQ,CAAC,EAAED,UAAU;AAC1D"}
@@ -1,4 +1,4 @@
1
- import { measureDepth } from "./measures/index.js";
1
+ import { isPositionMeasure, measureDepth } from "./measures/index.js";
2
2
  import { isMeasureTreeWithChildren, isMeasureTreeWithParentId } from "../advanced/chart/pipes/measures/utils.js";
3
3
  import { unique } from "remeda";
4
4
  import { ChartTypeEnum, DEFAULT_PARENT_ID } from "./constant.js";
@@ -25,7 +25,7 @@ const isPivot = (vseed)=>{
25
25
  };
26
26
  const isCombination = (vseed)=>{
27
27
  if (isMeasureTreeWithParentId(vseed.measures)) {
28
- const parentIds = vseed.measures?.map((measure)=>measure.parentId || DEFAULT_PARENT_ID);
28
+ const parentIds = vseed.measures?.filter(isPositionMeasure).map((measure)=>measure.parentId || DEFAULT_PARENT_ID);
29
29
  return parentIds && unique(parentIds).length > 1;
30
30
  }
31
31
  if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/chatType.js","sources":["../../../../src/pipeline/utils/chatType.ts"],"sourcesContent":["import { type Dimensions, type DimensionGroup, type DimensionTree, type VSeed, type Measure } from 'src/types'\nimport { measureDepth } from './measures'\nimport { isMeasureTreeWithChildren, isMeasureTreeWithParentId } from '../advanced/chart/pipes/measures/utils'\nimport { unique } from 'remeda'\nimport { ChartTypeEnum, DEFAULT_PARENT_ID } from './constant'\n\nexport const isTable = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.Table\n}\nexport const isPivotTable = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.PivotTable\n}\nexport const isRadar = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.Radar\n}\nexport const isAreaPercent = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.AreaPercent\n}\nexport const isColumnPercent = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.ColumnPercent\n}\nexport const isBarPercent = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.BarPercent\n}\n\nexport const isBarLikeChart = (vseed: VSeed) => {\n return (\n vseed.chartType === ChartTypeEnum.Bar ||\n vseed.chartType === ChartTypeEnum.BarPercent ||\n vseed.chartType === ChartTypeEnum.BarParallel\n )\n}\n\nexport const isVTable = (vseed: VSeed) => {\n return ['table', 'pivotTable'].includes(vseed.chartType)\n}\nexport const isVChart = (vseed: VSeed): boolean => {\n return !isVTable(vseed)\n}\n\n/**\n * @description 透视图表或组合图\n * - 透视图表定义: 存在 column 或 row的 encoding\n * - 组合图表定义: 存在多组指标的情况\n * - 透视组合图表: 存在 column 或 row的 encoding 且 存在多组指标的情况\n * 上述三者都只能使用 VTable.PivotChart 绘制\n */\nexport const isPivotChart = (vseed: VSeed) => {\n if (isVTable(vseed)) {\n return false\n }\n\n if (isPivot(vseed)) {\n return true\n }\n\n return isCombination(vseed)\n}\n\n/**\n * @description 存在column 或 row的encoding\n */\nexport const isPivot = (vseed: VSeed) => {\n const { dimensions = [] } = vseed as {\n dimensions: Dimensions\n }\n\n return dimensions && dimensions.some((dimension) => dimension.encoding === 'row' || dimension.encoding === 'column')\n}\n/**\n * @description 不存在column 或 row的encoding, 但是有多组指标的情况\n */\nexport const isCombination = (vseed: VSeed) => {\n if (isMeasureTreeWithParentId(vseed.measures)) {\n const parentIds = vseed.measures?.map((measure: Measure) => measure.parentId || DEFAULT_PARENT_ID)\n return parentIds && unique(parentIds).length > 1\n }\n\n if (vseed.chartType === 'dualAxis' || vseed.chartType === 'scatter') {\n if (vseed.chartType === 'scatter') {\n if (isMeasureTreeWithChildren(vseed.measures)) {\n const depth = measureDepth(vseed.measures)\n return depth === 3\n }\n\n if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) {\n return true\n }\n return false\n }\n if (vseed.chartType === 'dualAxis') {\n if (isMeasureTreeWithChildren(vseed.measures)) {\n const depth = measureDepth(vseed.measures)\n return depth === 3\n }\n\n if (vseed.dualMeasures && vseed.dualMeasures.length > 1) {\n return true\n }\n }\n\n return false\n }\n\n const { measures = [] } = vseed as {\n measures: DimensionTree\n dimensions: Dimensions\n }\n\n const hasMeasureGroup = measures && measures.some((measure: DimensionGroup) => measure && measure.children)\n\n return hasMeasureGroup\n}\n"],"names":["isTable","vseed","ChartTypeEnum","isPivotTable","isRadar","isAreaPercent","isColumnPercent","isBarPercent","isBarLikeChart","isVTable","isVChart","isPivotChart","isPivot","isCombination","dimensions","dimension","isMeasureTreeWithParentId","parentIds","measure","DEFAULT_PARENT_ID","unique","isMeasureTreeWithChildren","depth","measureDepth","measures","hasMeasureGroup"],"mappings":";;;;AAMO,MAAMA,UAAU,CAACC,QACfA,MAAM,SAAS,KAAKC,cAAc,KAAK;AAEzC,MAAMC,eAAe,CAACF,QACpBA,MAAM,SAAS,KAAKC,cAAc,UAAU;AAE9C,MAAME,UAAU,CAACH,QACfA,MAAM,SAAS,KAAKC,cAAc,KAAK;AAEzC,MAAMG,gBAAgB,CAACJ,QACrBA,MAAM,SAAS,KAAKC,cAAc,WAAW;AAE/C,MAAMI,kBAAkB,CAACL,QACvBA,MAAM,SAAS,KAAKC,cAAc,aAAa;AAEjD,MAAMK,eAAe,CAACN,QACpBA,MAAM,SAAS,KAAKC,cAAc,UAAU;AAG9C,MAAMM,iBAAiB,CAACP,QAE3BA,MAAM,SAAS,KAAKC,cAAc,GAAG,IACrCD,MAAM,SAAS,KAAKC,cAAc,UAAU,IAC5CD,MAAM,SAAS,KAAKC,cAAc,WAAW;AAI1C,MAAMO,WAAW,CAACR,QAChB;QAAC;QAAS;KAAa,CAAC,QAAQ,CAACA,MAAM,SAAS;AAElD,MAAMS,WAAW,CAACT,QAChB,CAACQ,SAASR;AAUZ,MAAMU,eAAe,CAACV;IAC3B,IAAIQ,SAASR,QACX,OAAO;IAGT,IAAIW,QAAQX,QACV,OAAO;IAGT,OAAOY,cAAcZ;AACvB;AAKO,MAAMW,UAAU,CAACX;IACtB,MAAM,EAAEa,aAAa,EAAE,EAAE,GAAGb;IAI5B,OAAOa,cAAcA,WAAW,IAAI,CAAC,CAACC,YAAcA,AAAuB,UAAvBA,UAAU,QAAQ,IAAcA,AAAuB,aAAvBA,UAAU,QAAQ;AACxG;AAIO,MAAMF,gBAAgB,CAACZ;IAC5B,IAAIe,0BAA0Bf,MAAM,QAAQ,GAAG;QAC7C,MAAMgB,YAAYhB,MAAM,QAAQ,EAAE,IAAI,CAACiB,UAAqBA,QAAQ,QAAQ,IAAIC;QAChF,OAAOF,aAAaG,OAAOH,WAAW,MAAM,GAAG;IACjD;IAEA,IAAIhB,AAAoB,eAApBA,MAAM,SAAS,IAAmBA,AAAoB,cAApBA,MAAM,SAAS,EAAgB;QACnE,IAAIA,AAAoB,cAApBA,MAAM,SAAS,EAAgB;YACjC,IAAIoB,0BAA0BpB,MAAM,QAAQ,GAAG;gBAC7C,MAAMqB,QAAQC,aAAatB,MAAM,QAAQ;gBACzC,OAAOqB,AAAU,MAAVA;YACT;YAEA,IAAIrB,MAAM,eAAe,IAAIA,MAAM,eAAe,CAAC,MAAM,GAAG,GAC1D,OAAO;YAET,OAAO;QACT;QACA,IAAIA,AAAoB,eAApBA,MAAM,SAAS,EAAiB;YAClC,IAAIoB,0BAA0BpB,MAAM,QAAQ,GAAG;gBAC7C,MAAMqB,QAAQC,aAAatB,MAAM,QAAQ;gBACzC,OAAOqB,AAAU,MAAVA;YACT;YAEA,IAAIrB,MAAM,YAAY,IAAIA,MAAM,YAAY,CAAC,MAAM,GAAG,GACpD,OAAO;QAEX;QAEA,OAAO;IACT;IAEA,MAAM,EAAEuB,WAAW,EAAE,EAAE,GAAGvB;IAK1B,MAAMwB,kBAAkBD,YAAYA,SAAS,IAAI,CAAC,CAACN,UAA4BA,WAAWA,QAAQ,QAAQ;IAE1G,OAAOO;AACT"}
1
+ {"version":3,"file":"pipeline/utils/chatType.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/chatType.ts"],"sourcesContent":["import { type Dimensions, type DimensionGroup, type DimensionTree, type VSeed, type Measure } from 'src/types'\nimport { isPositionMeasure, measureDepth } from './measures'\nimport { isMeasureTreeWithChildren, isMeasureTreeWithParentId } from '../advanced/chart/pipes/measures/utils'\nimport { unique } from 'remeda'\nimport { ChartTypeEnum, DEFAULT_PARENT_ID } from './constant'\n\nexport const isTable = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.Table\n}\nexport const isPivotTable = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.PivotTable\n}\nexport const isRadar = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.Radar\n}\nexport const isAreaPercent = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.AreaPercent\n}\nexport const isColumnPercent = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.ColumnPercent\n}\nexport const isBarPercent = (vseed: VSeed) => {\n return vseed.chartType === ChartTypeEnum.BarPercent\n}\n\nexport const isBarLikeChart = (vseed: VSeed) => {\n return (\n vseed.chartType === ChartTypeEnum.Bar ||\n vseed.chartType === ChartTypeEnum.BarPercent ||\n vseed.chartType === ChartTypeEnum.BarParallel\n )\n}\n\nexport const isVTable = (vseed: VSeed) => {\n return ['table', 'pivotTable'].includes(vseed.chartType)\n}\nexport const isVChart = (vseed: VSeed): boolean => {\n return !isVTable(vseed)\n}\n\n/**\n * @description 透视图表或组合图\n * - 透视图表定义: 存在 column 或 row的 encoding\n * - 组合图表定义: 存在多组指标的情况\n * - 透视组合图表: 存在 column 或 row的 encoding 且 存在多组指标的情况\n * 上述三者都只能使用 VTable.PivotChart 绘制\n */\nexport const isPivotChart = (vseed: VSeed) => {\n if (isVTable(vseed)) {\n return false\n }\n\n if (isPivot(vseed)) {\n return true\n }\n\n return isCombination(vseed)\n}\n\n/**\n * @description 存在column 或 row的encoding\n */\nexport const isPivot = (vseed: VSeed) => {\n const { dimensions = [] } = vseed as {\n dimensions: Dimensions\n }\n\n return dimensions && dimensions.some((dimension) => dimension.encoding === 'row' || dimension.encoding === 'column')\n}\n\n/**\n * @description 不存在column 或 row的encoding, 但是有多组指标的情况\n */\nexport const isCombination = (vseed: VSeed) => {\n if (isMeasureTreeWithParentId(vseed.measures)) {\n const parentIds = vseed.measures\n ?.filter(isPositionMeasure)\n .map((measure: Measure) => measure.parentId || DEFAULT_PARENT_ID)\n return parentIds && unique(parentIds).length > 1\n }\n\n if (vseed.chartType === 'dualAxis' || vseed.chartType === 'scatter') {\n if (vseed.chartType === 'scatter') {\n if (isMeasureTreeWithChildren(vseed.measures)) {\n const depth = measureDepth(vseed.measures)\n return depth === 3\n }\n\n if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) {\n return true\n }\n return false\n }\n if (vseed.chartType === 'dualAxis') {\n if (isMeasureTreeWithChildren(vseed.measures)) {\n const depth = measureDepth(vseed.measures)\n return depth === 3\n }\n\n if (vseed.dualMeasures && vseed.dualMeasures.length > 1) {\n return true\n }\n }\n\n return false\n }\n\n const { measures = [] } = vseed as {\n measures: DimensionTree\n dimensions: Dimensions\n }\n\n const hasMeasureGroup = measures && measures.some((measure: DimensionGroup) => measure && measure.children)\n\n return hasMeasureGroup\n}\n"],"names":["isTable","vseed","ChartTypeEnum","isPivotTable","isRadar","isAreaPercent","isColumnPercent","isBarPercent","isBarLikeChart","isVTable","isVChart","isPivotChart","isPivot","isCombination","dimensions","dimension","isMeasureTreeWithParentId","parentIds","isPositionMeasure","measure","DEFAULT_PARENT_ID","unique","isMeasureTreeWithChildren","depth","measureDepth","measures","hasMeasureGroup"],"mappings":";;;;AAMO,MAAMA,UAAU,CAACC,QACfA,MAAM,SAAS,KAAKC,cAAc,KAAK;AAEzC,MAAMC,eAAe,CAACF,QACpBA,MAAM,SAAS,KAAKC,cAAc,UAAU;AAE9C,MAAME,UAAU,CAACH,QACfA,MAAM,SAAS,KAAKC,cAAc,KAAK;AAEzC,MAAMG,gBAAgB,CAACJ,QACrBA,MAAM,SAAS,KAAKC,cAAc,WAAW;AAE/C,MAAMI,kBAAkB,CAACL,QACvBA,MAAM,SAAS,KAAKC,cAAc,aAAa;AAEjD,MAAMK,eAAe,CAACN,QACpBA,MAAM,SAAS,KAAKC,cAAc,UAAU;AAG9C,MAAMM,iBAAiB,CAACP,QAE3BA,MAAM,SAAS,KAAKC,cAAc,GAAG,IACrCD,MAAM,SAAS,KAAKC,cAAc,UAAU,IAC5CD,MAAM,SAAS,KAAKC,cAAc,WAAW;AAI1C,MAAMO,WAAW,CAACR,QAChB;QAAC;QAAS;KAAa,CAAC,QAAQ,CAACA,MAAM,SAAS;AAElD,MAAMS,WAAW,CAACT,QAChB,CAACQ,SAASR;AAUZ,MAAMU,eAAe,CAACV;IAC3B,IAAIQ,SAASR,QACX,OAAO;IAGT,IAAIW,QAAQX,QACV,OAAO;IAGT,OAAOY,cAAcZ;AACvB;AAKO,MAAMW,UAAU,CAACX;IACtB,MAAM,EAAEa,aAAa,EAAE,EAAE,GAAGb;IAI5B,OAAOa,cAAcA,WAAW,IAAI,CAAC,CAACC,YAAcA,AAAuB,UAAvBA,UAAU,QAAQ,IAAcA,AAAuB,aAAvBA,UAAU,QAAQ;AACxG;AAKO,MAAMF,gBAAgB,CAACZ;IAC5B,IAAIe,0BAA0Bf,MAAM,QAAQ,GAAG;QAC7C,MAAMgB,YAAYhB,MAAM,QAAQ,EAC5B,OAAOiB,mBACR,IAAI,CAACC,UAAqBA,QAAQ,QAAQ,IAAIC;QACjD,OAAOH,aAAaI,OAAOJ,WAAW,MAAM,GAAG;IACjD;IAEA,IAAIhB,AAAoB,eAApBA,MAAM,SAAS,IAAmBA,AAAoB,cAApBA,MAAM,SAAS,EAAgB;QACnE,IAAIA,AAAoB,cAApBA,MAAM,SAAS,EAAgB;YACjC,IAAIqB,0BAA0BrB,MAAM,QAAQ,GAAG;gBAC7C,MAAMsB,QAAQC,aAAavB,MAAM,QAAQ;gBACzC,OAAOsB,AAAU,MAAVA;YACT;YAEA,IAAItB,MAAM,eAAe,IAAIA,MAAM,eAAe,CAAC,MAAM,GAAG,GAC1D,OAAO;YAET,OAAO;QACT;QACA,IAAIA,AAAoB,eAApBA,MAAM,SAAS,EAAiB;YAClC,IAAIqB,0BAA0BrB,MAAM,QAAQ,GAAG;gBAC7C,MAAMsB,QAAQC,aAAavB,MAAM,QAAQ;gBACzC,OAAOsB,AAAU,MAAVA;YACT;YAEA,IAAItB,MAAM,YAAY,IAAIA,MAAM,YAAY,CAAC,MAAM,GAAG,GACpD,OAAO;QAEX;QAEA,OAAO;IACT;IAEA,MAAM,EAAEwB,WAAW,EAAE,EAAE,GAAGxB;IAK1B,MAAMyB,kBAAkBD,YAAYA,SAAS,IAAI,CAAC,CAACN,UAA4BA,WAAWA,QAAQ,QAAQ;IAE1G,OAAOO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/constant.js","sources":["../../../../src/pipeline/utils/constant.ts"],"sourcesContent":["// 标注层 z-index\nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 12\n// 双轴图 柱图 ZIndex\nexport const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000\n// 双轴图 非柱图 ZIndex\nexport const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001\n// 双轴图 标注层 ZIndex\nexport const DUAL_AXIS_LABEL_Z_INDEX = 1002\n// 默认父级id\nexport const DEFAULT_PARENT_ID = '__DefaultParentId__'\n// 轴标签间距\nexport const AXIS_LABEL_SPACE = 8\n// 透视轴 band 类型内边距\nexport const BAND_AXIS_INNER_OFFSET_IN_PIVOT = 2\n\n// 图表类型枚举\nexport const ChartTypeEnum = {\n Table: 'table',\n PivotTable: 'pivotTable',\n // cartesian\n Line: 'line',\n Column: 'column',\n ColumnPercent: 'columnPercent',\n ColumnParallel: 'columnParallel',\n Bar: 'bar',\n BarPercent: 'barPercent',\n BarParallel: 'barParallel',\n Area: 'area',\n AreaPercent: 'areaPercent',\n DualAxis: 'dualAxis',\n Scatter: 'scatter',\n // polar\n Rose: 'rose',\n RoseParallel: 'roseParallel',\n Pie: 'pie',\n Donut: 'donut',\n Radar: 'radar',\n // other\n Funnel: 'funnel',\n Heatmap: 'heatmap',\n Boxplot: 'boxPlot',\n Histogram: 'histogram',\n} as const\n\n// Heatmap hide cell\nexport const DATUM_HIDE_KEY = '__VSEED_HideItem__'\n"],"names":["ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","DUAL_AXIS_CHART_COLUMN_Z_INDEX","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","DUAL_AXIS_LABEL_Z_INDEX","DEFAULT_PARENT_ID","AXIS_LABEL_SPACE","BAND_AXIS_INNER_OFFSET_IN_PIVOT","ChartTypeEnum","DATUM_HIDE_KEY"],"mappings":"AACO,MAAMA,qBAAqB;AAE3B,MAAMC,+BAA+B;AAErC,MAAMC,iCAAiC;AAEvC,MAAMC,qCAAqC;AAE3C,MAAMC,0BAA0B;AAEhC,MAAMC,oBAAoB;AAE1B,MAAMC,mBAAmB;AAEzB,MAAMC,kCAAkC;AAGxC,MAAMC,gBAAgB;IAC3B,OAAO;IACP,YAAY;IAEZ,MAAM;IACN,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,KAAK;IACL,YAAY;IACZ,aAAa;IACb,MAAM;IACN,aAAa;IACb,UAAU;IACV,SAAS;IAET,MAAM;IACN,cAAc;IACd,KAAK;IACL,OAAO;IACP,OAAO;IAEP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;AACb;AAGO,MAAMC,iBAAiB"}
1
+ {"version":3,"file":"pipeline/utils/constant.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/constant.ts"],"sourcesContent":["// 标注层 z-index\nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 12\n// 双轴图 柱图 ZIndex\nexport const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000\n// 双轴图 非柱图 ZIndex\nexport const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001\n// 双轴图 标注层 ZIndex\nexport const DUAL_AXIS_LABEL_Z_INDEX = 1002\n// 默认父级id\nexport const DEFAULT_PARENT_ID = '__DefaultParentId__'\n// 轴标签间距\nexport const AXIS_LABEL_SPACE = 8\n// 透视轴 band 类型内边距\nexport const BAND_AXIS_INNER_OFFSET_IN_PIVOT = 2\n\n// 图表类型枚举\nexport const ChartTypeEnum = {\n Table: 'table',\n PivotTable: 'pivotTable',\n // cartesian\n Line: 'line',\n Column: 'column',\n ColumnPercent: 'columnPercent',\n ColumnParallel: 'columnParallel',\n Bar: 'bar',\n BarPercent: 'barPercent',\n BarParallel: 'barParallel',\n Area: 'area',\n AreaPercent: 'areaPercent',\n DualAxis: 'dualAxis',\n Scatter: 'scatter',\n // polar\n Rose: 'rose',\n RoseParallel: 'roseParallel',\n Pie: 'pie',\n Donut: 'donut',\n Radar: 'radar',\n // other\n Funnel: 'funnel',\n Heatmap: 'heatmap',\n Boxplot: 'boxPlot',\n Histogram: 'histogram',\n} as const\n\n// Heatmap hide cell\nexport const DATUM_HIDE_KEY = '__VSEED_HideItem__'\n"],"names":["ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","DUAL_AXIS_CHART_COLUMN_Z_INDEX","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","DUAL_AXIS_LABEL_Z_INDEX","DEFAULT_PARENT_ID","AXIS_LABEL_SPACE","BAND_AXIS_INNER_OFFSET_IN_PIVOT","ChartTypeEnum","DATUM_HIDE_KEY"],"mappings":"AACO,MAAMA,qBAAqB;AAE3B,MAAMC,+BAA+B;AAErC,MAAMC,iCAAiC;AAEvC,MAAMC,qCAAqC;AAE3C,MAAMC,0BAA0B;AAEhC,MAAMC,oBAAoB;AAE1B,MAAMC,mBAAmB;AAEzB,MAAMC,kCAAkC;AAGxC,MAAMC,gBAAgB;IAC3B,OAAO;IACP,YAAY;IAEZ,MAAM;IACN,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,KAAK;IACL,YAAY;IACZ,aAAa;IACb,MAAM;IACN,aAAa;IACb,UAAU;IACV,SAAS;IAET,MAAM;IACN,cAAc;IACd,KAAK;IACL,OAAO;IACP,OAAO;IAEP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;AACb;AAGO,MAAMC,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/dimensions/delete.js","sources":["../../../../../src/pipeline/utils/dimensions/delete.ts"],"sourcesContent":["import type { Dimension, DimensionGroup, DimensionTree } from 'src/types'\nimport { isDimension, isDimensionGroup } from './typeGuard'\n\n/**\n * @description 删除 dimensionTree 中符合 callback 条件的节点\n * @param dimensionTree 待删除的 dimensionTree\n * @param callback 回调函数,用于判断是否删除当前节点\n * @returns 删除后的 dimensionTree\n */\nexport const deleteDimensionTreeByCallback = <T extends DimensionTree>(\n dimensionTree?: T,\n callback?: (dimension: Dimension, index: number, dimensions: (Dimension | DimensionGroup)[]) => boolean,\n) => {\n if (!dimensionTree) {\n return dimensionTree\n }\n const stack: (Dimension | DimensionGroup)[] = [...dimensionTree].reverse()\n const parents = new Map<Dimension | DimensionGroup, (Dimension | DimensionGroup)[]>()\n\n dimensionTree.forEach((node) => {\n parents.set(node, dimensionTree)\n })\n\n const nodesToProcess: (Dimension | DimensionGroup)[] = []\n const visited = new Set<Dimension | DimensionGroup>()\n\n while (stack.length > 0) {\n const node = stack[stack.length - 1]\n\n if (isDimensionGroup(node) && node.children && !visited.has(node)) {\n visited.add(node)\n const children = node.children.slice().reverse()\n for (const child of children) {\n parents.set(child, node.children)\n stack.push(child)\n }\n } else {\n stack.pop()\n nodesToProcess.push(node)\n }\n }\n\n for (const node of nodesToProcess) {\n const parentList = parents.get(node)\n\n if (parentList) {\n const index = parentList.indexOf(node)\n if (isDimension(node)) {\n if (callback?.(node, index, parentList)) {\n parentList.splice(index, 1)\n }\n }\n }\n }\n\n return dimensionTree\n}\n"],"names":["deleteDimensionTreeByCallback","dimensionTree","callback","stack","parents","Map","node","nodesToProcess","visited","Set","isDimensionGroup","children","child","parentList","index","isDimension"],"mappings":";AASO,MAAMA,gCAAgC,CAC3CC,eACAC;IAEA,IAAI,CAACD,eACH,OAAOA;IAET,MAAME,QAAwC;WAAIF;KAAc,CAAC,OAAO;IACxE,MAAMG,UAAU,IAAIC;IAEpBJ,cAAc,OAAO,CAAC,CAACK;QACrBF,QAAQ,GAAG,CAACE,MAAML;IACpB;IAEA,MAAMM,iBAAiD,EAAE;IACzD,MAAMC,UAAU,IAAIC;IAEpB,MAAON,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMG,OAAOH,KAAK,CAACA,MAAM,MAAM,GAAG,EAAE;QAEpC,IAAIO,iBAAiBJ,SAASA,KAAK,QAAQ,IAAI,CAACE,QAAQ,GAAG,CAACF,OAAO;YACjEE,QAAQ,GAAG,CAACF;YACZ,MAAMK,WAAWL,KAAK,QAAQ,CAAC,KAAK,GAAG,OAAO;YAC9C,KAAK,MAAMM,SAASD,SAAU;gBAC5BP,QAAQ,GAAG,CAACQ,OAAON,KAAK,QAAQ;gBAChCH,MAAM,IAAI,CAACS;YACb;QACF,OAAO;YACLT,MAAM,GAAG;YACTI,eAAe,IAAI,CAACD;QACtB;IACF;IAEA,KAAK,MAAMA,QAAQC,eAAgB;QACjC,MAAMM,aAAaT,QAAQ,GAAG,CAACE;QAE/B,IAAIO,YAAY;YACd,MAAMC,QAAQD,WAAW,OAAO,CAACP;YACjC,IAAIS,YAAYT,OACd;gBAAA,IAAIJ,WAAWI,MAAMQ,OAAOD,aAC1BA,WAAW,MAAM,CAACC,OAAO;YAC3B;QAEJ;IACF;IAEA,OAAOb;AACT"}
1
+ {"version":3,"file":"pipeline/utils/dimensions/delete.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/dimensions/delete.ts"],"sourcesContent":["import type { Dimension, DimensionGroup, DimensionTree } from 'src/types'\nimport { isDimension, isDimensionGroup } from './typeGuard'\n\n/**\n * @description 删除 dimensionTree 中符合 callback 条件的节点\n * @param dimensionTree 待删除的 dimensionTree\n * @param callback 回调函数,用于判断是否删除当前节点\n * @returns 删除后的 dimensionTree\n */\nexport const deleteDimensionTreeByCallback = <T extends DimensionTree>(\n dimensionTree?: T,\n callback?: (dimension: Dimension, index: number, dimensions: (Dimension | DimensionGroup)[]) => boolean,\n) => {\n if (!dimensionTree) {\n return dimensionTree\n }\n const stack: (Dimension | DimensionGroup)[] = [...dimensionTree].reverse()\n const parents = new Map<Dimension | DimensionGroup, (Dimension | DimensionGroup)[]>()\n\n dimensionTree.forEach((node) => {\n parents.set(node, dimensionTree)\n })\n\n const nodesToProcess: (Dimension | DimensionGroup)[] = []\n const visited = new Set<Dimension | DimensionGroup>()\n\n while (stack.length > 0) {\n const node = stack[stack.length - 1]\n\n if (isDimensionGroup(node) && node.children && !visited.has(node)) {\n visited.add(node)\n const children = node.children.slice().reverse()\n for (const child of children) {\n parents.set(child, node.children)\n stack.push(child)\n }\n } else {\n stack.pop()\n nodesToProcess.push(node)\n }\n }\n\n for (const node of nodesToProcess) {\n const parentList = parents.get(node)\n\n if (parentList) {\n const index = parentList.indexOf(node)\n if (isDimension(node)) {\n if (callback?.(node, index, parentList)) {\n parentList.splice(index, 1)\n }\n }\n }\n }\n\n return dimensionTree\n}\n"],"names":["deleteDimensionTreeByCallback","dimensionTree","callback","stack","parents","Map","node","nodesToProcess","visited","Set","isDimensionGroup","children","child","parentList","index","isDimension"],"mappings":";AASO,MAAMA,gCAAgC,CAC3CC,eACAC;IAEA,IAAI,CAACD,eACH,OAAOA;IAET,MAAME,QAAwC;WAAIF;KAAc,CAAC,OAAO;IACxE,MAAMG,UAAU,IAAIC;IAEpBJ,cAAc,OAAO,CAAC,CAACK;QACrBF,QAAQ,GAAG,CAACE,MAAML;IACpB;IAEA,MAAMM,iBAAiD,EAAE;IACzD,MAAMC,UAAU,IAAIC;IAEpB,MAAON,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMG,OAAOH,KAAK,CAACA,MAAM,MAAM,GAAG,EAAE;QAEpC,IAAIO,iBAAiBJ,SAASA,KAAK,QAAQ,IAAI,CAACE,QAAQ,GAAG,CAACF,OAAO;YACjEE,QAAQ,GAAG,CAACF;YACZ,MAAMK,WAAWL,KAAK,QAAQ,CAAC,KAAK,GAAG,OAAO;YAC9C,KAAK,MAAMM,SAASD,SAAU;gBAC5BP,QAAQ,GAAG,CAACQ,OAAON,KAAK,QAAQ;gBAChCH,MAAM,IAAI,CAACS;YACb;QACF,OAAO;YACLT,MAAM,GAAG;YACTI,eAAe,IAAI,CAACD;QACtB;IACF;IAEA,KAAK,MAAMA,QAAQC,eAAgB;QACjC,MAAMM,aAAaT,QAAQ,GAAG,CAACE;QAE/B,IAAIO,YAAY;YACd,MAAMC,QAAQD,WAAW,OAAO,CAACP;YACjC,IAAIS,YAAYT,OACd;gBAAA,IAAIJ,WAAWI,MAAMQ,OAAOD,aAC1BA,WAAW,MAAM,CAACC,OAAO;YAC3B;QAEJ;IACF;IAEA,OAAOb;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/dimensions/typeGuard.js","sources":["../../../../../src/pipeline/utils/dimensions/typeGuard.ts"],"sourcesContent":["import type { Dimension, DimensionGroup } from 'src/types'\n\nexport const isDimension = (dimension: Dimension | DimensionGroup): dimension is Dimension => {\n return !('children' in dimension)\n}\n\nexport const isDimensionGroup = (dimension: Dimension | DimensionGroup): dimension is DimensionGroup => {\n return 'children' in dimension\n}\n\n// export const isDimensions = (dimensions: Dimension[] | DimensionGroup[]): dimensions is Dimension[] => {\n// return dimensions.every(isDimension)\n// }\n"],"names":["isDimension","dimension","isDimensionGroup"],"mappings":"AAEO,MAAMA,cAAc,CAACC,YACnB,CAAE,eAAcA,SAAQ;AAG1B,MAAMC,mBAAmB,CAACD,YACxB,cAAcA"}
1
+ {"version":3,"file":"pipeline/utils/dimensions/typeGuard.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/dimensions/typeGuard.ts"],"sourcesContent":["import type { Dimension, DimensionGroup } from 'src/types'\n\nexport const isDimension = (dimension: Dimension | DimensionGroup): dimension is Dimension => {\n return !('children' in dimension)\n}\n\nexport const isDimensionGroup = (dimension: Dimension | DimensionGroup): dimension is DimensionGroup => {\n return 'children' in dimension\n}\n\n// export const isDimensions = (dimensions: Dimension[] | DimensionGroup[]): dimensions is Dimension[] => {\n// return dimensions.every(isDimension)\n// }\n"],"names":["isDimension","dimension","isDimensionGroup"],"mappings":"AAEO,MAAMA,cAAc,CAACC,YACnB,CAAE,eAAcA,SAAQ;AAG1B,MAAMC,mBAAmB,CAACD,YACxB,cAAcA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/format/createFormatter.js","sources":["../../../../../src/pipeline/utils/format/createFormatter.ts"],"sourcesContent":["import type { Formatter, Locale, NumFormat } from 'src/types'\nimport { autoNumFormatter, createNumFormatter } from './createNumFormatter'\nimport { intl } from 'src/i18n'\n\nexport const createFormatter = (format: Partial<NumFormat>, locale?: Locale): Formatter => {\n return createNumFormatter(format, locale)\n}\n\nexport const autoFormatter = (value?: number | string, locale: Locale = intl.getLocale()): string => {\n return autoNumFormatter(value, locale)\n}\n"],"names":["createFormatter","format","locale","createNumFormatter","autoFormatter","value","intl","autoNumFormatter"],"mappings":";;AAIO,MAAMA,kBAAkB,CAACC,QAA4BC,SACnDC,mBAAmBF,QAAQC;AAG7B,MAAME,gBAAgB,CAACC,OAAyBH,SAAiBI,KAAK,SAAS,EAAE,GAC/EC,iBAAiBF,OAAOH"}
1
+ {"version":3,"file":"pipeline/utils/format/createFormatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/format/createFormatter.ts"],"sourcesContent":["import type { Formatter, Locale, NumFormat } from 'src/types'\nimport { autoNumFormatter, createNumFormatter } from './createNumFormatter'\nimport { intl } from 'src/i18n'\n\nexport const createFormatter = (format: Partial<NumFormat>, locale?: Locale): Formatter => {\n return createNumFormatter(format, locale)\n}\n\nexport const autoFormatter = (value?: number | string, locale: Locale = intl.getLocale()): string => {\n return autoNumFormatter(value, locale)\n}\n"],"names":["createFormatter","format","locale","createNumFormatter","autoFormatter","value","intl","autoNumFormatter"],"mappings":";;AAIO,MAAMA,kBAAkB,CAACC,QAA4BC,SACnDC,mBAAmBF,QAAQC;AAG7B,MAAME,gBAAgB,CAACC,OAAyBH,SAAiBI,KAAK,SAAS,EAAE,GAC/EC,iBAAiBF,OAAOH"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/format/createFormatterByMeasure.js","sources":["../../../../../src/pipeline/utils/format/createFormatterByMeasure.ts"],"sourcesContent":["import type { Formatter, Measure } from 'src/types'\nimport { autoFormatter, createFormatter } from './createFormatter'\nimport { isEmpty, isNullish } from 'remeda'\n\nexport const createFormatterByMeasure = (measure?: Measure): Formatter => {\n if (!measure) {\n return (v) => String(v)\n }\n const { numFormat, format, autoFormat } = measure\n\n const formatterFormat = numFormat || format || {}\n\n if (autoFormat === true) {\n return autoFormatter\n }\n\n if (isNullish(autoFormat) && isEmpty(formatterFormat)) {\n return autoFormatter\n }\n\n if (!isEmpty(formatterFormat)) {\n return createFormatter(formatterFormat)\n }\n\n return (v) => String(v)\n}\n"],"names":["createFormatterByMeasure","measure","v","String","numFormat","format","autoFormat","formatterFormat","autoFormatter","isNullish","isEmpty","createFormatter"],"mappings":";;AAIO,MAAMA,2BAA2B,CAACC;IACvC,IAAI,CAACA,SACH,OAAO,CAACC,IAAMC,OAAOD;IAEvB,MAAM,EAAEE,SAAS,EAAEC,MAAM,EAAEC,UAAU,EAAE,GAAGL;IAE1C,MAAMM,kBAAkBH,aAAaC,UAAU,CAAC;IAEhD,IAAIC,AAAe,SAAfA,YACF,OAAOE;IAGT,IAAIC,UAAUH,eAAeI,QAAQH,kBACnC,OAAOC;IAGT,IAAI,CAACE,QAAQH,kBACX,OAAOI,gBAAgBJ;IAGzB,OAAO,CAACL,IAAMC,OAAOD;AACvB"}
1
+ {"version":3,"file":"pipeline/utils/format/createFormatterByMeasure.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/format/createFormatterByMeasure.ts"],"sourcesContent":["import type { Formatter, Measure } from 'src/types'\nimport { autoFormatter, createFormatter } from './createFormatter'\nimport { isEmpty, isNullish } from 'remeda'\n\nexport const createFormatterByMeasure = (measure?: Measure): Formatter => {\n if (!measure) {\n return (v) => String(v)\n }\n const { numFormat, format, autoFormat } = measure\n\n const formatterFormat = numFormat || format || {}\n\n if (autoFormat === true) {\n return autoFormatter\n }\n\n if (isNullish(autoFormat) && isEmpty(formatterFormat)) {\n return autoFormatter\n }\n\n if (!isEmpty(formatterFormat)) {\n return createFormatter(formatterFormat)\n }\n\n return (v) => String(v)\n}\n"],"names":["createFormatterByMeasure","measure","v","String","numFormat","format","autoFormat","formatterFormat","autoFormatter","isNullish","isEmpty","createFormatter"],"mappings":";;AAIO,MAAMA,2BAA2B,CAACC;IACvC,IAAI,CAACA,SACH,OAAO,CAACC,IAAMC,OAAOD;IAEvB,MAAM,EAAEE,SAAS,EAAEC,MAAM,EAAEC,UAAU,EAAE,GAAGL;IAE1C,MAAMM,kBAAkBH,aAAaC,UAAU,CAAC;IAEhD,IAAIC,AAAe,SAAfA,YACF,OAAOE;IAGT,IAAIC,UAAUH,eAAeI,QAAQH,kBACnC,OAAOC;IAGT,IAAI,CAACE,QAAQH,kBACX,OAAOI,gBAAgBJ;IAGzB,OAAO,CAACL,IAAMC,OAAOD;AACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/format/createNumFormatter.js","sources":["../../../../../src/pipeline/utils/format/createNumFormatter.ts"],"sourcesContent":["import { isNumber } from 'remeda'\nimport { intl } from '../../../i18n'\nimport type { Formatter, Locale, NumFormat } from 'src/types'\n\nexport const createNumFormatter = (format?: Partial<NumFormat>, locale: Locale = intl.getLocale()): Formatter => {\n const {\n type = 'number',\n ratio = 1,\n thousandSeparator = true,\n prefix = '',\n suffix = '',\n symbol = '',\n fractionDigits = 2,\n significantDigits,\n roundingMode = 'halfExpand',\n roundingPriority = 'auto',\n } = format || {}\n\n const numFormatterOptions: Intl.NumberFormatOptions = {\n style: 'decimal',\n notation: type === 'scientific' ? 'scientific' : 'standard',\n // @ts-expect-error roundingMode is not in NumberFormatOptions\n roundingMode,\n roundingPriority,\n }\n\n if (isNumber(fractionDigits)) {\n if (fractionDigits >= 0) {\n numFormatterOptions.minimumFractionDigits = fractionDigits\n numFormatterOptions.maximumFractionDigits = fractionDigits\n }\n }\n if (isNumber(significantDigits) && significantDigits > 0) {\n if (significantDigits > 0) {\n numFormatterOptions.minimumSignificantDigits = significantDigits\n numFormatterOptions.maximumSignificantDigits = significantDigits\n }\n }\n\n const numFormatter = new Intl.NumberFormat(locale, { ...numFormatterOptions, useGrouping: thousandSeparator })\n\n return (value?: number | string) => {\n let num = Number(value)\n let typeSymbol = ''\n if (Number.isNaN(num)) {\n return String(value)\n }\n\n // apply ratio for percent/permille\n if (type === 'percent') {\n num *= 100\n typeSymbol = '%'\n } else if (type === 'permille') {\n num *= 1000\n typeSymbol = '‰'\n } else if (type === 'number') {\n num = num / (ratio || 1)\n }\n\n // format value\n let numStr = numFormatter.format(num)\n\n // add thousand separator\n if (thousandSeparator) {\n const parts = numStr.split('.')\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n numStr = parts.join('.')\n }\n\n const validSymbol = symbol ?? ''\n\n // add symbol, typeSymbol, prefix and suffix\n return `${prefix}${numStr}${typeSymbol}${validSymbol}${suffix}`\n }\n}\n\nexport const autoNumFormatter = (value?: number | string, locale: Locale = intl.getLocale()): string => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const numFormatterOptions: Intl.NumberFormatOptions = {\n style: 'decimal',\n notation: 'compact',\n useGrouping: true,\n }\n numFormatterOptions.minimumFractionDigits = 0\n numFormatterOptions.maximumFractionDigits = 2\n\n const numFormatter = new Intl.NumberFormat(locale, { ...numFormatterOptions })\n\n return numFormatter.format(Number(value))\n}\n"],"names":["createNumFormatter","format","locale","intl","type","ratio","thousandSeparator","prefix","suffix","symbol","fractionDigits","significantDigits","roundingMode","roundingPriority","numFormatterOptions","isNumber","numFormatter","Intl","value","num","Number","typeSymbol","String","numStr","parts","validSymbol","autoNumFormatter"],"mappings":";;AAIO,MAAMA,qBAAqB,CAACC,QAA6BC,SAAiBC,KAAK,SAAS,EAAE;IAC/F,MAAM,EACJC,OAAO,QAAQ,EACfC,QAAQ,CAAC,EACTC,oBAAoB,IAAI,EACxBC,SAAS,EAAE,EACXC,SAAS,EAAE,EACXC,SAAS,EAAE,EACXC,iBAAiB,CAAC,EAClBC,iBAAiB,EACjBC,eAAe,YAAY,EAC3BC,mBAAmB,MAAM,EAC1B,GAAGZ,UAAU,CAAC;IAEf,MAAMa,sBAAgD;QACpD,OAAO;QACP,UAAUV,AAAS,iBAATA,OAAwB,eAAe;QAEjDQ;QACAC;IACF;IAEA,IAAIE,SAASL,iBACX;QAAA,IAAIA,kBAAkB,GAAG;YACvBI,oBAAoB,qBAAqB,GAAGJ;YAC5CI,oBAAoB,qBAAqB,GAAGJ;QAC9C;IAAA;IAEF,IAAIK,SAASJ,sBAAsBA,oBAAoB,GACrD;QAAA,IAAIA,oBAAoB,GAAG;YACzBG,oBAAoB,wBAAwB,GAAGH;YAC/CG,oBAAoB,wBAAwB,GAAGH;QACjD;IAAA;IAGF,MAAMK,eAAe,IAAIC,KAAK,YAAY,CAACf,QAAQ;QAAE,GAAGY,mBAAmB;QAAE,aAAaR;IAAkB;IAE5G,OAAO,CAACY;QACN,IAAIC,MAAMC,OAAOF;QACjB,IAAIG,aAAa;QACjB,IAAID,OAAO,KAAK,CAACD,MACf,OAAOG,OAAOJ;QAIhB,IAAId,AAAS,cAATA,MAAoB;YACtBe,OAAO;YACPE,aAAa;QACf,OAAO,IAAIjB,AAAS,eAATA,MAAqB;YAC9Be,OAAO;YACPE,aAAa;QACf,OAAO,IAAIjB,AAAS,aAATA,MACTe,OAAad,SAAS;QAIxB,IAAIkB,SAASP,aAAa,MAAM,CAACG;QAGjC,IAAIb,mBAAmB;YACrB,MAAMkB,QAAQD,OAAO,KAAK,CAAC;YAC3BC,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,yBAAyB;YACrDD,SAASC,MAAM,IAAI,CAAC;QACtB;QAEA,MAAMC,cAAchB,UAAU;QAG9B,OAAO,GAAGF,SAASgB,SAASF,aAAaI,cAAcjB,QAAQ;IACjE;AACF;AAEO,MAAMkB,mBAAmB,CAACR,OAAyBhB,SAAiBC,KAAK,SAAS,EAAE;IACzF,IAAIe,QAAAA,OAAuC,OAAOI,OAAOJ;IACzD,MAAMC,MAAMC,OAAOF;IACnB,IAAIE,OAAO,KAAK,CAACD,MAAM,OAAOG,OAAOJ;IAErC,MAAMJ,sBAAgD;QACpD,OAAO;QACP,UAAU;QACV,aAAa;IACf;IACAA,oBAAoB,qBAAqB,GAAG;IAC5CA,oBAAoB,qBAAqB,GAAG;IAE5C,MAAME,eAAe,IAAIC,KAAK,YAAY,CAACf,QAAQ;QAAE,GAAGY,mBAAmB;IAAC;IAE5E,OAAOE,aAAa,MAAM,CAACI,OAAOF;AACpC"}
1
+ {"version":3,"file":"pipeline/utils/format/createNumFormatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/format/createNumFormatter.ts"],"sourcesContent":["import { isNumber } from 'remeda'\nimport { intl } from '../../../i18n'\nimport type { Formatter, Locale, NumFormat } from 'src/types'\n\nexport const createNumFormatter = (format?: Partial<NumFormat>, locale: Locale = intl.getLocale()): Formatter => {\n const {\n type = 'number',\n ratio = 1,\n thousandSeparator = true,\n prefix = '',\n suffix = '',\n symbol = '',\n fractionDigits = 2,\n significantDigits,\n roundingMode = 'halfExpand',\n roundingPriority = 'auto',\n } = format || {}\n\n const numFormatterOptions: Intl.NumberFormatOptions = {\n style: 'decimal',\n notation: type === 'scientific' ? 'scientific' : 'standard',\n // @ts-expect-error roundingMode is not in NumberFormatOptions\n roundingMode,\n roundingPriority,\n }\n\n if (isNumber(fractionDigits)) {\n if (fractionDigits >= 0) {\n numFormatterOptions.minimumFractionDigits = fractionDigits\n numFormatterOptions.maximumFractionDigits = fractionDigits\n }\n }\n if (isNumber(significantDigits) && significantDigits > 0) {\n if (significantDigits > 0) {\n numFormatterOptions.minimumSignificantDigits = significantDigits\n numFormatterOptions.maximumSignificantDigits = significantDigits\n }\n }\n\n const numFormatter = new Intl.NumberFormat(locale, { ...numFormatterOptions, useGrouping: thousandSeparator })\n\n return (value?: number | string) => {\n let num = Number(value)\n let typeSymbol = ''\n if (Number.isNaN(num)) {\n return String(value)\n }\n\n // apply ratio for percent/permille\n if (type === 'percent') {\n num *= 100\n typeSymbol = '%'\n } else if (type === 'permille') {\n num *= 1000\n typeSymbol = '‰'\n } else if (type === 'number') {\n num = num / (ratio || 1)\n }\n\n // format value\n let numStr = numFormatter.format(num)\n\n // add thousand separator\n if (thousandSeparator) {\n const parts = numStr.split('.')\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n numStr = parts.join('.')\n }\n\n const validSymbol = symbol ?? ''\n\n // add symbol, typeSymbol, prefix and suffix\n return `${prefix}${numStr}${typeSymbol}${validSymbol}${suffix}`\n }\n}\n\nexport const autoNumFormatter = (value?: number | string, locale: Locale = intl.getLocale()): string => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const numFormatterOptions: Intl.NumberFormatOptions = {\n style: 'decimal',\n notation: 'compact',\n useGrouping: true,\n }\n numFormatterOptions.minimumFractionDigits = 0\n numFormatterOptions.maximumFractionDigits = 2\n\n const numFormatter = new Intl.NumberFormat(locale, { ...numFormatterOptions })\n\n return numFormatter.format(Number(value))\n}\n"],"names":["createNumFormatter","format","locale","intl","type","ratio","thousandSeparator","prefix","suffix","symbol","fractionDigits","significantDigits","roundingMode","roundingPriority","numFormatterOptions","isNumber","numFormatter","Intl","value","num","Number","typeSymbol","String","numStr","parts","validSymbol","autoNumFormatter"],"mappings":";;AAIO,MAAMA,qBAAqB,CAACC,QAA6BC,SAAiBC,KAAK,SAAS,EAAE;IAC/F,MAAM,EACJC,OAAO,QAAQ,EACfC,QAAQ,CAAC,EACTC,oBAAoB,IAAI,EACxBC,SAAS,EAAE,EACXC,SAAS,EAAE,EACXC,SAAS,EAAE,EACXC,iBAAiB,CAAC,EAClBC,iBAAiB,EACjBC,eAAe,YAAY,EAC3BC,mBAAmB,MAAM,EAC1B,GAAGZ,UAAU,CAAC;IAEf,MAAMa,sBAAgD;QACpD,OAAO;QACP,UAAUV,AAAS,iBAATA,OAAwB,eAAe;QAEjDQ;QACAC;IACF;IAEA,IAAIE,SAASL,iBACX;QAAA,IAAIA,kBAAkB,GAAG;YACvBI,oBAAoB,qBAAqB,GAAGJ;YAC5CI,oBAAoB,qBAAqB,GAAGJ;QAC9C;IAAA;IAEF,IAAIK,SAASJ,sBAAsBA,oBAAoB,GACrD;QAAA,IAAIA,oBAAoB,GAAG;YACzBG,oBAAoB,wBAAwB,GAAGH;YAC/CG,oBAAoB,wBAAwB,GAAGH;QACjD;IAAA;IAGF,MAAMK,eAAe,IAAIC,KAAK,YAAY,CAACf,QAAQ;QAAE,GAAGY,mBAAmB;QAAE,aAAaR;IAAkB;IAE5G,OAAO,CAACY;QACN,IAAIC,MAAMC,OAAOF;QACjB,IAAIG,aAAa;QACjB,IAAID,OAAO,KAAK,CAACD,MACf,OAAOG,OAAOJ;QAIhB,IAAId,AAAS,cAATA,MAAoB;YACtBe,OAAO;YACPE,aAAa;QACf,OAAO,IAAIjB,AAAS,eAATA,MAAqB;YAC9Be,OAAO;YACPE,aAAa;QACf,OAAO,IAAIjB,AAAS,aAATA,MACTe,OAAad,SAAS;QAIxB,IAAIkB,SAASP,aAAa,MAAM,CAACG;QAGjC,IAAIb,mBAAmB;YACrB,MAAMkB,QAAQD,OAAO,KAAK,CAAC;YAC3BC,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,yBAAyB;YACrDD,SAASC,MAAM,IAAI,CAAC;QACtB;QAEA,MAAMC,cAAchB,UAAU;QAG9B,OAAO,GAAGF,SAASgB,SAASF,aAAaI,cAAcjB,QAAQ;IACjE;AACF;AAEO,MAAMkB,mBAAmB,CAACR,OAAyBhB,SAAiBC,KAAK,SAAS,EAAE;IACzF,IAAIe,QAAAA,OAAuC,OAAOI,OAAOJ;IACzD,MAAMC,MAAMC,OAAOF;IACnB,IAAIE,OAAO,KAAK,CAACD,MAAM,OAAOG,OAAOJ;IAErC,MAAMJ,sBAAgD;QACpD,OAAO;QACP,UAAU;QACV,aAAa;IACf;IACAA,oBAAoB,qBAAqB,GAAG;IAC5CA,oBAAoB,qBAAqB,GAAG;IAE5C,MAAME,eAAe,IAAIC,KAAK,YAAY,CAACf,QAAQ;QAAE,GAAGY,mBAAmB;IAAC;IAE5E,OAAOE,aAAa,MAAM,CAACI,OAAOF;AACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/measures/delete.js","sources":["../../../../../src/pipeline/utils/measures/delete.ts"],"sourcesContent":["import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { isMeasure, isMeasureGroup } from './typeGuard'\n\n/**\n * @description 删除 measureTree 中符合 callback 条件的节点\n * @param measureTree 待删除的 measureTree\n * @param callback 回调函数,用于判断是否删除当前节点\n * @returns 删除的度量\n */\nexport const deleteMeasureTreeByCallback = <T extends MeasureTree>(\n measureTree?: T,\n callback?: (measure: Measure, index: number, measures: (Measure | MeasureGroup)[]) => boolean,\n): Measure[] => {\n if (!measureTree) {\n return undefined as unknown as Measure[]\n }\n const stack: (Measure | MeasureGroup)[] = [...measureTree].reverse()\n const parents = new Map<Measure | MeasureGroup, (Measure | MeasureGroup)[]>()\n\n measureTree.forEach((node) => {\n parents.set(node, measureTree)\n })\n\n const nodesToProcess: Measure[] = []\n const visited = new Set<Measure | MeasureGroup>()\n\n while (stack.length > 0) {\n const node = stack[stack.length - 1]\n\n if (isMeasureGroup(node) && node.children && !visited.has(node)) {\n visited.add(node)\n const children = node.children.slice().reverse()\n for (const child of children) {\n parents.set(child, node.children)\n stack.push(child)\n }\n } else {\n stack.pop()\n nodesToProcess.push(node as Measure)\n }\n }\n const deleted: Measure[] = []\n\n for (const node of nodesToProcess) {\n const parentList = parents.get(node)\n\n if (parentList) {\n const index = parentList.indexOf(node)\n if (isMeasure(node)) {\n if (callback?.(node, index, parentList)) {\n parentList.splice(index, 1)\n deleted.push(node)\n }\n }\n }\n }\n\n return deleted\n}\n"],"names":["deleteMeasureTreeByCallback","measureTree","callback","stack","parents","Map","node","nodesToProcess","visited","Set","isMeasureGroup","children","child","deleted","parentList","index","isMeasure"],"mappings":";AASO,MAAMA,8BAA8B,CACzCC,aACAC;IAEA,IAAI,CAACD,aACH;IAEF,MAAME,QAAoC;WAAIF;KAAY,CAAC,OAAO;IAClE,MAAMG,UAAU,IAAIC;IAEpBJ,YAAY,OAAO,CAAC,CAACK;QACnBF,QAAQ,GAAG,CAACE,MAAML;IACpB;IAEA,MAAMM,iBAA4B,EAAE;IACpC,MAAMC,UAAU,IAAIC;IAEpB,MAAON,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMG,OAAOH,KAAK,CAACA,MAAM,MAAM,GAAG,EAAE;QAEpC,IAAIO,eAAeJ,SAASA,KAAK,QAAQ,IAAI,CAACE,QAAQ,GAAG,CAACF,OAAO;YAC/DE,QAAQ,GAAG,CAACF;YACZ,MAAMK,WAAWL,KAAK,QAAQ,CAAC,KAAK,GAAG,OAAO;YAC9C,KAAK,MAAMM,SAASD,SAAU;gBAC5BP,QAAQ,GAAG,CAACQ,OAAON,KAAK,QAAQ;gBAChCH,MAAM,IAAI,CAACS;YACb;QACF,OAAO;YACLT,MAAM,GAAG;YACTI,eAAe,IAAI,CAACD;QACtB;IACF;IACA,MAAMO,UAAqB,EAAE;IAE7B,KAAK,MAAMP,QAAQC,eAAgB;QACjC,MAAMO,aAAaV,QAAQ,GAAG,CAACE;QAE/B,IAAIQ,YAAY;YACd,MAAMC,QAAQD,WAAW,OAAO,CAACR;YACjC,IAAIU,UAAUV,OACZ;gBAAA,IAAIJ,WAAWI,MAAMS,OAAOD,aAAa;oBACvCA,WAAW,MAAM,CAACC,OAAO;oBACzBF,QAAQ,IAAI,CAACP;gBACf;YAAA;QAEJ;IACF;IAEA,OAAOO;AACT"}
1
+ {"version":3,"file":"pipeline/utils/measures/delete.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/delete.ts"],"sourcesContent":["import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { isMeasure, isMeasureGroup } from './typeGuard'\n\n/**\n * @description 删除 measureTree 中符合 callback 条件的节点\n * @param measureTree 待删除的 measureTree\n * @param callback 回调函数,用于判断是否删除当前节点\n * @returns 删除的度量\n */\nexport const deleteMeasureTreeByCallback = <T extends MeasureTree>(\n measureTree?: T,\n callback?: (measure: Measure, index: number, measures: (Measure | MeasureGroup)[]) => boolean,\n): Measure[] => {\n if (!measureTree) {\n return undefined as unknown as Measure[]\n }\n const stack: (Measure | MeasureGroup)[] = [...measureTree].reverse()\n const parents = new Map<Measure | MeasureGroup, (Measure | MeasureGroup)[]>()\n\n measureTree.forEach((node) => {\n parents.set(node, measureTree)\n })\n\n const nodesToProcess: Measure[] = []\n const visited = new Set<Measure | MeasureGroup>()\n\n while (stack.length > 0) {\n const node = stack[stack.length - 1]\n\n if (isMeasureGroup(node) && node.children && !visited.has(node)) {\n visited.add(node)\n const children = node.children.slice().reverse()\n for (const child of children) {\n parents.set(child, node.children)\n stack.push(child)\n }\n } else {\n stack.pop()\n nodesToProcess.push(node as Measure)\n }\n }\n const deleted: Measure[] = []\n\n for (const node of nodesToProcess) {\n const parentList = parents.get(node)\n\n if (parentList) {\n const index = parentList.indexOf(node)\n if (isMeasure(node)) {\n if (callback?.(node, index, parentList)) {\n parentList.splice(index, 1)\n deleted.push(node)\n }\n }\n }\n }\n\n return deleted\n}\n"],"names":["deleteMeasureTreeByCallback","measureTree","callback","stack","parents","Map","node","nodesToProcess","visited","Set","isMeasureGroup","children","child","deleted","parentList","index","isMeasure"],"mappings":";AASO,MAAMA,8BAA8B,CACzCC,aACAC;IAEA,IAAI,CAACD,aACH;IAEF,MAAME,QAAoC;WAAIF;KAAY,CAAC,OAAO;IAClE,MAAMG,UAAU,IAAIC;IAEpBJ,YAAY,OAAO,CAAC,CAACK;QACnBF,QAAQ,GAAG,CAACE,MAAML;IACpB;IAEA,MAAMM,iBAA4B,EAAE;IACpC,MAAMC,UAAU,IAAIC;IAEpB,MAAON,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMG,OAAOH,KAAK,CAACA,MAAM,MAAM,GAAG,EAAE;QAEpC,IAAIO,eAAeJ,SAASA,KAAK,QAAQ,IAAI,CAACE,QAAQ,GAAG,CAACF,OAAO;YAC/DE,QAAQ,GAAG,CAACF;YACZ,MAAMK,WAAWL,KAAK,QAAQ,CAAC,KAAK,GAAG,OAAO;YAC9C,KAAK,MAAMM,SAASD,SAAU;gBAC5BP,QAAQ,GAAG,CAACQ,OAAON,KAAK,QAAQ;gBAChCH,MAAM,IAAI,CAACS;YACb;QACF,OAAO;YACLT,MAAM,GAAG;YACTI,eAAe,IAAI,CAACD;QACtB;IACF;IACA,MAAMO,UAAqB,EAAE;IAE7B,KAAK,MAAMP,QAAQC,eAAgB;QACjC,MAAMO,aAAaV,QAAQ,GAAG,CAACE;QAE/B,IAAIQ,YAAY;YACd,MAAMC,QAAQD,WAAW,OAAO,CAACR;YACjC,IAAIU,UAAUV,OACZ;gBAAA,IAAIJ,WAAWI,MAAMS,OAAOD,aAAa;oBACvCA,WAAW,MAAM,CAACC,OAAO;oBACzBF,QAAQ,IAAI,CAACP;gBACf;YAAA;QAEJ;IACF;IAEA,OAAOO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/measures/depth.js","sources":["../../../../../src/pipeline/utils/measures/depth.ts"],"sourcesContent":["import type { Measure, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree/traverse'\n\n/**\n * 获取measures的深度\n * @param measures\n * @param id\n * @returns\n */\nexport const measureDepth = (measures: MeasureTree = []): number => {\n if (!measures) return 0\n let depth = 1\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if ('children' in node) {\n depth = Math.max(depth, 1 + measureDepth(node.children as MeasureTree))\n }\n return false\n })\n return depth\n}\n"],"names":["measureDepth","measures","depth","preorderTraverse","node","Math"],"mappings":";AASO,MAAMA,eAAe,CAACC,WAAwB,EAAE;IACrD,IAAI,CAACA,UAAU,OAAO;IACtB,IAAIC,QAAQ;IACZC,iBAAsCF,UAAU,CAACG;QAC/C,IAAI,cAAcA,MAChBF,QAAQG,KAAK,GAAG,CAACH,OAAO,IAAIF,aAAaI,KAAK,QAAQ;QAExD,OAAO;IACT;IACA,OAAOF;AACT"}
1
+ {"version":3,"file":"pipeline/utils/measures/depth.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/depth.ts"],"sourcesContent":["import type { Measure, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree/traverse'\n\n/**\n * 获取measures的深度\n * @param measures\n * @param id\n * @returns\n */\nexport const measureDepth = (measures: MeasureTree = []): number => {\n if (!measures) return 0\n let depth = 1\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if ('children' in node) {\n depth = Math.max(depth, 1 + measureDepth(node.children as MeasureTree))\n }\n return false\n })\n return depth\n}\n"],"names":["measureDepth","measures","depth","preorderTraverse","node","Math"],"mappings":";AASO,MAAMA,eAAe,CAACC,WAAwB,EAAE;IACrD,IAAI,CAACA,UAAU,OAAO;IACtB,IAAIC,QAAQ;IACZC,iBAAsCF,UAAU,CAACG;QAC/C,IAAI,cAAcA,MAChBF,QAAQG,KAAK,GAAG,CAACH,OAAO,IAAIF,aAAaI,KAAK,QAAQ;QAExD,OAAO;IACT;IACA,OAAOF;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/measures/find.js","sources":["../../../../../src/pipeline/utils/measures/find.ts"],"sourcesContent":["import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree'\n\nexport const findMeasureById = (measures: MeasureTree = [], id: string): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n if (node.id === id) {\n result = node\n return true\n }\n }\n return false\n })\n return result\n}\n\nexport const findFirstMeasure = (measures: MeasureTree = []): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n result = node\n return true\n }\n return false\n })\n return result\n}\n\nexport const findAllMeasures = (measures: MeasureTree = []): Measure[] => {\n if (!measures) return []\n const result: Measure[] = []\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n result.push(node)\n }\n return false\n })\n return result\n}\n\nexport const hasMultipleMeasureInSingleView = (measures: MeasureTree = []): boolean => {\n if (measures.every((m) => !('children' in m))) {\n return measures.length > 1\n }\n let found = false\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if ((node as MeasureGroup).children && (node as MeasureGroup).children!.length > 1) {\n found = true\n return true\n }\n return false\n })\n return found\n}\n"],"names":["findMeasureById","measures","id","result","preorderTraverse","node","findFirstMeasure","findAllMeasures","hasMultipleMeasureInSingleView","m","found"],"mappings":";AAGO,MAAMA,kBAAkB,CAACC,WAAwB,EAAE,EAAEC;IAC1D,IAAI,CAACD,UAAU;IACf,IAAIE;IAEJC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GACrB;YAAA,IAAIA,KAAK,EAAE,KAAKH,IAAI;gBAClBC,SAASE;gBACT,OAAO;YACT;QAAA;QAEF,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMG,mBAAmB,CAACL,WAAwB,EAAE;IACzD,IAAI,CAACA,UAAU;IACf,IAAIE;IACJC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GAAI;YACzBF,SAASE;YACT,OAAO;QACT;QACA,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMI,kBAAkB,CAACN,WAAwB,EAAE;IACxD,IAAI,CAACA,UAAU,OAAO,EAAE;IACxB,MAAME,SAAoB,EAAE;IAC5BC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GACrBF,OAAO,IAAI,CAACE;QAEd,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMK,iCAAiC,CAACP,WAAwB,EAAE;IACvE,IAAIA,SAAS,KAAK,CAAC,CAACQ,IAAM,CAAE,eAAcA,CAAAA,IACxC,OAAOR,SAAS,MAAM,GAAG;IAE3B,IAAIS,QAAQ;IACZN,iBAAsCH,UAAU,CAACI;QAC/C,IAAKA,KAAsB,QAAQ,IAAKA,KAAsB,QAAQ,CAAE,MAAM,GAAG,GAAG;YAClFK,QAAQ;YACR,OAAO;QACT;QACA,OAAO;IACT;IACA,OAAOA;AACT"}
1
+ {"version":3,"file":"pipeline/utils/measures/find.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/find.ts"],"sourcesContent":["import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree'\n\nexport const findMeasureById = (measures: MeasureTree = [], id: string): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n if (node.id === id) {\n result = node\n return true\n }\n }\n return false\n })\n return result\n}\n\nexport const findFirstMeasure = (measures: MeasureTree = []): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n result = node\n return true\n }\n return false\n })\n return result\n}\n\nexport const findAllMeasures = (measures: MeasureTree = []): Measure[] => {\n if (!measures) return []\n const result: Measure[] = []\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n result.push(node)\n }\n return false\n })\n return result\n}\n\nexport const hasMultipleMeasureInSingleView = (measures: MeasureTree = []): boolean => {\n if (measures.every((m) => !('children' in m))) {\n return measures.length > 1\n }\n let found = false\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if ((node as MeasureGroup).children && (node as MeasureGroup).children!.length > 1) {\n found = true\n return true\n }\n return false\n })\n return found\n}\n"],"names":["findMeasureById","measures","id","result","preorderTraverse","node","findFirstMeasure","findAllMeasures","hasMultipleMeasureInSingleView","m","found"],"mappings":";AAGO,MAAMA,kBAAkB,CAACC,WAAwB,EAAE,EAAEC;IAC1D,IAAI,CAACD,UAAU;IACf,IAAIE;IAEJC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GACrB;YAAA,IAAIA,KAAK,EAAE,KAAKH,IAAI;gBAClBC,SAASE;gBACT,OAAO;YACT;QAAA;QAEF,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMG,mBAAmB,CAACL,WAAwB,EAAE;IACzD,IAAI,CAACA,UAAU;IACf,IAAIE;IACJC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GAAI;YACzBF,SAASE;YACT,OAAO;QACT;QACA,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMI,kBAAkB,CAACN,WAAwB,EAAE;IACxD,IAAI,CAACA,UAAU,OAAO,EAAE;IACxB,MAAME,SAAoB,EAAE;IAC5BC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GACrBF,OAAO,IAAI,CAACE;QAEd,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMK,iCAAiC,CAACP,WAAwB,EAAE;IACvE,IAAIA,SAAS,KAAK,CAAC,CAACQ,IAAM,CAAE,eAAcA,CAAAA,IACxC,OAAOR,SAAS,MAAM,GAAG;IAE3B,IAAIS,QAAQ;IACZN,iBAAsCH,UAAU,CAACI;QAC/C,IAAKA,KAAsB,QAAQ,IAAKA,KAAsB,QAAQ,CAAE,MAAM,GAAG,GAAG;YAClFK,QAAQ;YACR,OAAO;QACT;QACA,OAAO;IACT;IACA,OAAOA;AACT"}
@@ -2,3 +2,4 @@ import type { Measure, MeasureGroup } from '../../../types';
2
2
  export declare const isMeasure: (measure: Measure | MeasureGroup) => measure is Measure;
3
3
  export declare const isMeasureGroup: (measure: Measure | MeasureGroup) => measure is MeasureGroup;
4
4
  export declare const isMeasures: (measures: Measure[] | MeasureGroup[]) => measures is Measure[];
5
+ export declare const isPositionMeasure: (measure: Measure) => boolean;
@@ -1,6 +1,13 @@
1
1
  const isMeasure = (measure)=>!('children' in measure);
2
2
  const isMeasureGroup = (measure)=>'children' in measure;
3
3
  const isMeasures = (measures)=>measures.every(isMeasure);
4
- export { isMeasure, isMeasureGroup, isMeasures };
4
+ const isPositionMeasure = (measure)=>!measure.encoding || ![
5
+ 'color',
6
+ 'size',
7
+ 'label',
8
+ 'tooltip',
9
+ 'detail'
10
+ ].includes(measure.encoding);
11
+ export { isMeasure, isMeasureGroup, isMeasures, isPositionMeasure };
5
12
 
6
13
  //# sourceMappingURL=typeGuard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/measures/typeGuard.js","sources":["../../../../../src/pipeline/utils/measures/typeGuard.ts"],"sourcesContent":["import type { Measure, MeasureGroup } from 'src/types'\n\nexport const isMeasure = (measure: Measure | MeasureGroup): measure is Measure => {\n return !('children' in measure)\n}\n\nexport const isMeasureGroup = (measure: Measure | MeasureGroup): measure is MeasureGroup => {\n return 'children' in measure\n}\n\nexport const isMeasures = (measures: Measure[] | MeasureGroup[]): measures is Measure[] => {\n return measures.every(isMeasure)\n}\n"],"names":["isMeasure","measure","isMeasureGroup","isMeasures","measures"],"mappings":"AAEO,MAAMA,YAAY,CAACC,UACjB,CAAE,eAAcA,OAAM;AAGxB,MAAMC,iBAAiB,CAACD,UACtB,cAAcA;AAGhB,MAAME,aAAa,CAACC,WAClBA,SAAS,KAAK,CAACJ"}
1
+ {"version":3,"file":"pipeline/utils/measures/typeGuard.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/typeGuard.ts"],"sourcesContent":["import type { Measure, MeasureGroup } from 'src/types'\n\nexport const isMeasure = (measure: Measure | MeasureGroup): measure is Measure => {\n return !('children' in measure)\n}\n\nexport const isMeasureGroup = (measure: Measure | MeasureGroup): measure is MeasureGroup => {\n return 'children' in measure\n}\n\nexport const isMeasures = (measures: Measure[] | MeasureGroup[]): measures is Measure[] => {\n return measures.every(isMeasure)\n}\n\nexport const isPositionMeasure = (measure: Measure): boolean => {\n return !measure.encoding || !['color', 'size', 'label', 'tooltip', 'detail'].includes(measure.encoding)\n}\n"],"names":["isMeasure","measure","isMeasureGroup","isMeasures","measures","isPositionMeasure"],"mappings":"AAEO,MAAMA,YAAY,CAACC,UACjB,CAAE,eAAcA,OAAM;AAGxB,MAAMC,iBAAiB,CAACD,UACtB,cAAcA;AAGhB,MAAME,aAAa,CAACC,WAClBA,SAAS,KAAK,CAACJ;AAGjB,MAAMK,oBAAoB,CAACJ,UACzB,CAACA,QAAQ,QAAQ,IAAI,CAAC;QAAC;QAAS;QAAQ;QAAS;QAAW;KAAS,CAAC,QAAQ,CAACA,QAAQ,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/pipeline.js","sources":["../../../../src/pipeline/utils/pipeline.ts"],"sourcesContent":["import type { ExecPipelineType, Pipe } from 'src/types'\n\n/**\n * 执行pipeline, 每个pipe负责构建结果的一部分, 构建完成后得到完整的目标结果\n * @param pipeline pipeline数组, 每个pipe负责构建结果的一部分\n * @param initialValue 初始值\n * @param context 上下文\n * @returns 执行后的结果\n */\nexport const execPipeline: ExecPipelineType = <T, U>(\n pipeline: Array<Pipe<T, U>>,\n context: U,\n initialValue: Partial<T> = {},\n): T => {\n const result = pipeline.reduce((prev, cur) => {\n return cur(prev, context)\n }, initialValue)\n return result as T\n}\n"],"names":["execPipeline","pipeline","context","initialValue","result","prev","cur"],"mappings":"AASO,MAAMA,eAAiC,CAC5CC,UACAC,SACAC,eAA2B,CAAC,CAAC;IAE7B,MAAMC,SAASH,SAAS,MAAM,CAAC,CAACI,MAAMC,MAC7BA,IAAID,MAAMH,UAChBC;IACH,OAAOC;AACT"}
1
+ {"version":3,"file":"pipeline/utils/pipeline.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/pipeline.ts"],"sourcesContent":["import type { ExecPipelineType, Pipe } from 'src/types'\n\n/**\n * 执行pipeline, 每个pipe负责构建结果的一部分, 构建完成后得到完整的目标结果\n * @param pipeline pipeline数组, 每个pipe负责构建结果的一部分\n * @param initialValue 初始值\n * @param context 上下文\n * @returns 执行后的结果\n */\nexport const execPipeline: ExecPipelineType = <T, U>(\n pipeline: Array<Pipe<T, U>>,\n context: U,\n initialValue: Partial<T> = {},\n): T => {\n const result = pipeline.reduce((prev, cur) => {\n return cur(prev, context)\n }, initialValue)\n return result as T\n}\n"],"names":["execPipeline","pipeline","context","initialValue","result","prev","cur"],"mappings":"AASO,MAAMA,eAAiC,CAC5CC,UACAC,SACAC,eAA2B,CAAC,CAAC;IAE7B,MAAMC,SAASH,SAAS,MAAM,CAAC,CAACI,MAAMC,MAC7BA,IAAID,MAAMH,UAChBC;IACH,OAAOC;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/replaceNullToUndefined.js","sources":["../../../../src/pipeline/utils/replaceNullToUndefined.ts"],"sourcesContent":["import { isPlainObject, mapValues, pipe } from 'remeda'\n\n// 递归类型,将所有 null 替换为 undefined\ntype NullToUndefined<T> = T extends null\n ? undefined\n : T extends (infer U)[]\n ? NullToUndefined<U>[]\n : T extends object\n ? { [K in keyof T]: NullToUndefined<T[K]> }\n : T\n\nexport const replaceNullToUndefined = <T>(obj: T): NullToUndefined<T> => {\n if (obj === null) {\n return undefined as NullToUndefined<T>\n }\n if (Array.isArray(obj)) {\n // 递归处理数组元素\n return obj.map(replaceNullToUndefined) as NullToUndefined<T>\n }\n if (isPlainObject(obj)) {\n // 使用 remeda 的 mapValues 递归处理对象属性\n return pipe(\n obj as object,\n mapValues((value) => replaceNullToUndefined(value)),\n ) as NullToUndefined<T>\n }\n return obj as NullToUndefined<T>\n}\n"],"names":["replaceNullToUndefined","obj","Array","isPlainObject","pipe","mapValues","value"],"mappings":";AAWO,MAAMA,yBAAyB,CAAIC;IACxC,IAAIA,AAAQ,SAARA,KACF;IAEF,IAAIC,MAAM,OAAO,CAACD,MAEhB,OAAOA,IAAI,GAAG,CAACD;IAEjB,IAAIG,cAAcF,MAEhB,OAAOG,KACLH,KACAI,UAAU,CAACC,QAAUN,uBAAuBM;IAGhD,OAAOL;AACT"}
1
+ {"version":3,"file":"pipeline/utils/replaceNullToUndefined.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/replaceNullToUndefined.ts"],"sourcesContent":["import { isPlainObject, mapValues, pipe } from 'remeda'\n\n// 递归类型,将所有 null 替换为 undefined\ntype NullToUndefined<T> = T extends null\n ? undefined\n : T extends (infer U)[]\n ? NullToUndefined<U>[]\n : T extends object\n ? { [K in keyof T]: NullToUndefined<T[K]> }\n : T\n\nexport const replaceNullToUndefined = <T>(obj: T): NullToUndefined<T> => {\n if (obj === null) {\n return undefined as NullToUndefined<T>\n }\n if (Array.isArray(obj)) {\n // 递归处理数组元素\n return obj.map(replaceNullToUndefined) as NullToUndefined<T>\n }\n if (isPlainObject(obj)) {\n // 使用 remeda 的 mapValues 递归处理对象属性\n return pipe(\n obj as object,\n mapValues((value) => replaceNullToUndefined(value)),\n ) as NullToUndefined<T>\n }\n return obj as NullToUndefined<T>\n}\n"],"names":["replaceNullToUndefined","obj","Array","isPlainObject","pipe","mapValues","value"],"mappings":";AAWO,MAAMA,yBAAyB,CAAIC;IACxC,IAAIA,AAAQ,SAARA,KACF;IAEF,IAAIC,MAAM,OAAO,CAACD,MAEhB,OAAOA,IAAI,GAAG,CAACD;IAEjB,IAAIG,cAAcF,MAEhB,OAAOG,KACLH,KACAI,UAAU,CAACC,QAAUN,uBAAuBM;IAGhD,OAAOL;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/tree/traverse.js","sources":["../../../../../src/pipeline/utils/tree/traverse.ts"],"sourcesContent":["/**\n * 支持泛型与可配置子节点键名的非递归前序遍历\n * @param tree 根节点数组\n * @param callback 遍历时对每个节点执行的回调,返回 true 时停止遍历\n * @param childrenKey 子节点键名(默认 'children')\n */\ntype WithChildren<Node, K extends string> = Node & { [P in K]?: Node[] }\n\nexport const preorderTraverse = <Node, K extends string = 'children'>(\n tree: Node[],\n callback: (node: Node) => boolean,\n childrenKey: K = 'children' as K,\n) => {\n if (!tree || tree.length === 0) return\n\n const stack: Node[] = [...tree].reverse()\n\n while (stack.length > 0) {\n const node = stack.pop() as Node\n const stop = callback(node)\n if (stop === true) {\n return\n }\n\n const children = (node as WithChildren<Node, K>)[childrenKey]\n if (Array.isArray(children) && children.length > 0) {\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i]\n stack.push(child)\n }\n }\n }\n}\n\nexport const findTreeNodesBy = <Node, K extends string = 'children'>(\n nodes: Node[] = [],\n callback: (node: Node) => boolean,\n childrenKey: K = 'children' as K,\n): Node[] => {\n if (!nodes) return []\n const result: Node[] = []\n preorderTraverse<Node, K>(nodes, (node) => {\n if (!(childrenKey in (node as WithChildren<Node, K>))) {\n if (callback(node)) {\n result.push(node)\n }\n }\n return false\n })\n return result\n}\n"],"names":["preorderTraverse","tree","callback","childrenKey","stack","node","stop","children","Array","i","child","findTreeNodesBy","nodes","result"],"mappings":"AAQO,MAAMA,mBAAmB,CAC9BC,MACAC,UACAC,cAAiB,UAAe;IAEhC,IAAI,CAACF,QAAQA,AAAgB,MAAhBA,KAAK,MAAM,EAAQ;IAEhC,MAAMG,QAAgB;WAAIH;KAAK,CAAC,OAAO;IAEvC,MAAOG,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMC,OAAOD,MAAM,GAAG;QACtB,MAAME,OAAOJ,SAASG;QACtB,IAAIC,AAAS,SAATA,MACF;QAGF,MAAMC,WAAYF,IAA8B,CAACF,YAAY;QAC7D,IAAIK,MAAM,OAAO,CAACD,aAAaA,SAAS,MAAM,GAAG,GAC/C,IAAK,IAAIE,IAAIF,SAAS,MAAM,GAAG,GAAGE,KAAK,GAAGA,IAAK;YAC7C,MAAMC,QAAQH,QAAQ,CAACE,EAAE;YACzBL,MAAM,IAAI,CAACM;QACb;IAEJ;AACF;AAEO,MAAMC,kBAAkB,CAC7BC,QAAgB,EAAE,EAClBV,UACAC,cAAiB,UAAe;IAEhC,IAAI,CAACS,OAAO,OAAO,EAAE;IACrB,MAAMC,SAAiB,EAAE;IACzBb,iBAA0BY,OAAO,CAACP;QAChC,IAAI,CAAEF,CAAAA,eAAgBE,IAAG,GACvB;YAAA,IAAIH,SAASG,OACXQ,OAAO,IAAI,CAACR;QACd;QAEF,OAAO;IACT;IACA,OAAOQ;AACT"}
1
+ {"version":3,"file":"pipeline/utils/tree/traverse.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/tree/traverse.ts"],"sourcesContent":["/**\n * 支持泛型与可配置子节点键名的非递归前序遍历\n * @param tree 根节点数组\n * @param callback 遍历时对每个节点执行的回调,返回 true 时停止遍历\n * @param childrenKey 子节点键名(默认 'children')\n */\ntype WithChildren<Node, K extends string> = Node & { [P in K]?: Node[] }\n\nexport const preorderTraverse = <Node, K extends string = 'children'>(\n tree: Node[],\n callback: (node: Node) => boolean,\n childrenKey: K = 'children' as K,\n) => {\n if (!tree || tree.length === 0) return\n\n const stack: Node[] = [...tree].reverse()\n\n while (stack.length > 0) {\n const node = stack.pop() as Node\n const stop = callback(node)\n if (stop === true) {\n return\n }\n\n const children = (node as WithChildren<Node, K>)[childrenKey]\n if (Array.isArray(children) && children.length > 0) {\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i]\n stack.push(child)\n }\n }\n }\n}\n\nexport const findTreeNodesBy = <Node, K extends string = 'children'>(\n nodes: Node[] = [],\n callback: (node: Node) => boolean,\n childrenKey: K = 'children' as K,\n): Node[] => {\n if (!nodes) return []\n const result: Node[] = []\n preorderTraverse<Node, K>(nodes, (node) => {\n if (!(childrenKey in (node as WithChildren<Node, K>))) {\n if (callback(node)) {\n result.push(node)\n }\n }\n return false\n })\n return result\n}\n"],"names":["preorderTraverse","tree","callback","childrenKey","stack","node","stop","children","Array","i","child","findTreeNodesBy","nodes","result"],"mappings":"AAQO,MAAMA,mBAAmB,CAC9BC,MACAC,UACAC,cAAiB,UAAe;IAEhC,IAAI,CAACF,QAAQA,AAAgB,MAAhBA,KAAK,MAAM,EAAQ;IAEhC,MAAMG,QAAgB;WAAIH;KAAK,CAAC,OAAO;IAEvC,MAAOG,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMC,OAAOD,MAAM,GAAG;QACtB,MAAME,OAAOJ,SAASG;QACtB,IAAIC,AAAS,SAATA,MACF;QAGF,MAAMC,WAAYF,IAA8B,CAACF,YAAY;QAC7D,IAAIK,MAAM,OAAO,CAACD,aAAaA,SAAS,MAAM,GAAG,GAC/C,IAAK,IAAIE,IAAIF,SAAS,MAAM,GAAG,GAAGE,KAAK,GAAGA,IAAK;YAC7C,MAAMC,QAAQH,QAAQ,CAACE,EAAE;YACzBL,MAAM,IAAI,CAACM;QACb;IAEJ;AACF;AAEO,MAAMC,kBAAkB,CAC7BC,QAAgB,EAAE,EAClBV,UACAC,cAAiB,UAAe;IAEhC,IAAI,CAACS,OAAO,OAAO,EAAE;IACrB,MAAMC,SAAiB,EAAE;IACzBb,iBAA0BY,OAAO,CAACP;QAChC,IAAI,CAAEF,CAAAA,eAAgBE,IAAG,GACvB;YAAA,IAAIH,SAASG,OACXQ,OAAO,IAAI,CAACR;QACd;QAEF,OAAO;IACT;IACA,OAAOQ;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/valid/checkVSeed.js","sources":["../../../../../src/pipeline/utils/valid/checkVSeed.ts"],"sourcesContent":["import { isEmpty } from 'remeda'\nimport type { VSeed } from 'src/types'\n\nexport const checkVSeed = (vseed: VSeed) => {\n const { chartType, dataset, dimensions, measures } = vseed\n if (!chartType) {\n throw new Error('chartType is required')\n }\n if (!dataset || isEmpty(dataset)) {\n throw new Error('dataset is required, and must be an array')\n }\n if (dimensions && !Array.isArray(dimensions)) {\n throw new Error('dimensions must be an array')\n }\n if (measures && !Array.isArray(measures)) {\n throw new Error('measures must be an array')\n }\n}\n"],"names":["checkVSeed","vseed","chartType","dataset","dimensions","measures","Error","isEmpty","Array"],"mappings":";AAGO,MAAMA,aAAa,CAACC;IACzB,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGJ;IACrD,IAAI,CAACC,WACH,MAAM,IAAII,MAAM;IAElB,IAAI,CAACH,WAAWI,QAAQJ,UACtB,MAAM,IAAIG,MAAM;IAElB,IAAIF,cAAc,CAACI,MAAM,OAAO,CAACJ,aAC/B,MAAM,IAAIE,MAAM;IAElB,IAAID,YAAY,CAACG,MAAM,OAAO,CAACH,WAC7B,MAAM,IAAIC,MAAM;AAEpB"}
1
+ {"version":3,"file":"pipeline/utils/valid/checkVSeed.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/valid/checkVSeed.ts"],"sourcesContent":["import { isEmpty } from 'remeda'\nimport type { VSeed } from 'src/types'\n\nexport const checkVSeed = (vseed: VSeed) => {\n const { chartType, dataset, dimensions, measures } = vseed\n if (!chartType) {\n throw new Error('chartType is required')\n }\n if (!dataset || isEmpty(dataset)) {\n throw new Error('dataset is required, and must be an array')\n }\n if (dimensions && !Array.isArray(dimensions)) {\n throw new Error('dimensions must be an array')\n }\n if (measures && !Array.isArray(measures)) {\n throw new Error('measures must be an array')\n }\n}\n"],"names":["checkVSeed","vseed","chartType","dataset","dimensions","measures","Error","isEmpty","Array"],"mappings":";AAGO,MAAMA,aAAa,CAACC;IACzB,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGJ;IACrD,IAAI,CAACC,WACH,MAAM,IAAII,MAAM;IAElB,IAAI,CAACH,WAAWI,QAAQJ,UACtB,MAAM,IAAIG,MAAM;IAElB,IAAIF,cAAc,CAACI,MAAM,OAAO,CAACJ,aAC/B,MAAM,IAAIE,MAAM;IAElB,IAAID,YAAY,CAACG,MAAM,OAAO,CAACH,WAC7B,MAAM,IAAIC,MAAM;AAEpB"}