@visactor/vseed 0.1.42 → 0.1.44

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 (324) hide show
  1. package/dist/cjs/index.cjs +3 -3
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/advanced/colorItems.d.ts +4 -1
  4. package/dist/esm/builder/builder/advanced/colorItems.js +1 -1
  5. package/dist/esm/builder/builder/advanced/colorItems.js.map +1 -1
  6. package/dist/esm/builder/builder/builder.d.ts +4392 -3
  7. package/dist/esm/dataReshape/constant.d.ts +1 -0
  8. package/dist/esm/dataReshape/constant.js +2 -1
  9. package/dist/esm/dataReshape/constant.js.map +1 -1
  10. package/dist/esm/dataReshape/dataReshapeByEncoding.d.ts +1 -0
  11. package/dist/esm/dataReshape/dataReshapeByEncoding.js +3 -2
  12. package/dist/esm/dataReshape/dataReshapeByEncoding.js.map +1 -1
  13. package/dist/esm/dataReshape/foldMeasures.d.ts +1 -0
  14. package/dist/esm/dataReshape/foldMeasures.js +5 -2
  15. package/dist/esm/dataReshape/foldMeasures.js.map +1 -1
  16. package/dist/esm/dataReshape/unfoldDimensions.js +14 -9
  17. package/dist/esm/dataReshape/unfoldDimensions.js.map +1 -1
  18. package/dist/esm/dataSelector/selector.d.ts +1 -1
  19. package/dist/esm/dataSelector/selector.js +1 -2
  20. package/dist/esm/dataSelector/selector.js.map +1 -1
  21. package/dist/esm/pipeline/advanced/chart/pipeline/area.js +2 -2
  22. package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
  23. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js +2 -2
  24. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
  25. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js +2 -2
  26. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
  27. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js +2 -2
  28. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
  29. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js +2 -2
  30. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
  31. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js +2 -2
  32. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js.map +1 -1
  33. package/dist/esm/pipeline/advanced/chart/pipeline/column.js +2 -2
  34. package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
  35. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js +2 -2
  36. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
  37. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js +2 -2
  38. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
  39. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +2 -2
  40. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
  41. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js +2 -2
  42. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
  43. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js +2 -2
  44. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
  45. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js +2 -2
  46. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
  47. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +4 -2
  48. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
  49. package/dist/esm/pipeline/advanced/chart/pipeline/line.js +2 -2
  50. package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
  51. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +2 -2
  52. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
  53. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js +2 -2
  54. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
  55. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js +2 -2
  56. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
  57. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js +2 -2
  58. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
  59. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +2 -2
  60. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
  61. package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortLegend.js +3 -6
  62. package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortLegend.js.map +1 -1
  63. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.d.ts +1 -0
  64. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js +35 -2
  65. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js.map +1 -1
  66. package/dist/esm/pipeline/advanced/chart/pipes/default/{defaultMeasureName.d.ts → defaultMeasureId.d.ts} +1 -1
  67. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasureId.js +16 -0
  68. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasureId.js.map +1 -0
  69. package/dist/esm/pipeline/advanced/chart/pipes/default/index.d.ts +1 -1
  70. package/dist/esm/pipeline/advanced/chart/pipes/default/index.js +2 -2
  71. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js +6 -6
  72. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
  73. package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js +7 -7
  74. package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js.map +1 -1
  75. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.d.ts +1 -1
  76. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.js +4 -4
  77. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.js.map +1 -1
  78. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js +6 -6
  79. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
  80. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js +6 -6
  81. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
  82. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js +5 -5
  83. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
  84. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js +7 -7
  85. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js.map +1 -1
  86. package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js +6 -6
  87. package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js.map +1 -1
  88. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js +5 -5
  89. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
  90. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +5 -5
  91. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
  92. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js +5 -5
  93. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
  94. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js +6 -6
  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 +7 -7
  97. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
  98. package/dist/esm/pipeline/advanced/chart/pipes/regressionLine/regressionLine.js +1 -1
  99. package/dist/esm/pipeline/advanced/chart/pipes/regressionLine/regressionLine.js.map +1 -1
  100. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +6 -3
  101. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
  102. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js +4 -1
  103. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
  104. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +22 -2
  105. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
  106. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js +6 -3
  107. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
  108. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js +22 -3
  109. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
  110. package/dist/esm/pipeline/advanced/table/pipeline/pivotTable.js +3 -2
  111. package/dist/esm/pipeline/advanced/table/pipeline/pivotTable.js.map +1 -1
  112. package/dist/esm/pipeline/advanced/table/pipeline/table.js +2 -1
  113. package/dist/esm/pipeline/advanced/table/pipeline/table.js.map +1 -1
  114. package/dist/esm/pipeline/advanced/table/pipes/{default/defaultMeasureName.d.ts → cellStyle/cellStyle.d.ts} +1 -1
  115. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/cellStyle.js +16 -0
  116. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/cellStyle.js.map +1 -0
  117. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/index.d.ts +1 -0
  118. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/index.js +2 -0
  119. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.d.ts +2 -0
  120. package/dist/esm/pipeline/advanced/table/pipes/default/{defaultMeasureName.js → defaultMeasureId.js} +5 -5
  121. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js.map +1 -0
  122. package/dist/esm/pipeline/advanced/table/pipes/default/index.d.ts +1 -1
  123. package/dist/esm/pipeline/advanced/table/pipes/default/index.js +2 -2
  124. package/dist/esm/pipeline/advanced/table/pipes/index.d.ts +1 -0
  125. package/dist/esm/pipeline/advanced/table/pipes/index.js +1 -0
  126. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  127. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationArea.js +2 -0
  128. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationArea.js.map +1 -1
  129. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationAreaBand.js +2 -0
  130. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationAreaBand.js.map +1 -1
  131. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationHorizontalLine.js +22 -3
  132. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationHorizontalLine.js.map +1 -1
  133. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPoint.js +2 -0
  134. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPoint.js.map +1 -1
  135. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationVerticalLine.js +20 -1
  136. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationVerticalLine.js.map +1 -1
  137. package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js +24 -11
  138. package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js.map +1 -1
  139. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +2 -1
  140. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
  141. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +2 -1
  142. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  143. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +2 -1
  144. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
  145. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +2 -1
  146. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  147. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js +2 -1
  148. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
  149. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js +2 -1
  150. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
  151. package/dist/esm/pipeline/spec/chart/pipes/color/color.d.ts +4 -1
  152. package/dist/esm/pipeline/spec/chart/pipes/color/color.js +2 -2
  153. package/dist/esm/pipeline/spec/chart/pipes/color/color.js.map +1 -1
  154. package/dist/esm/pipeline/spec/chart/pipes/init/barParallel.js +2 -2
  155. package/dist/esm/pipeline/spec/chart/pipes/init/barParallel.js.map +1 -1
  156. package/dist/esm/pipeline/spec/chart/pipes/init/boxplot.js +2 -2
  157. package/dist/esm/pipeline/spec/chart/pipes/init/boxplot.js.map +1 -1
  158. package/dist/esm/pipeline/spec/chart/pipes/init/columnParallel.js +2 -2
  159. package/dist/esm/pipeline/spec/chart/pipes/init/columnParallel.js.map +1 -1
  160. package/dist/esm/pipeline/spec/chart/pipes/init/histogram.js +4 -0
  161. package/dist/esm/pipeline/spec/chart/pipes/init/histogram.js.map +1 -1
  162. package/dist/esm/pipeline/spec/chart/pipes/init/roseParallel.js +2 -2
  163. package/dist/esm/pipeline/spec/chart/pipes/init/roseParallel.js.map +1 -1
  164. package/dist/esm/pipeline/spec/chart/pipes/label/label.js +4 -3
  165. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  166. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js +1 -1
  167. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js.map +1 -1
  168. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js +2 -1
  169. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js.map +1 -1
  170. package/dist/esm/pipeline/spec/chart/pipes/markStyle/barStyle.js +5 -7
  171. package/dist/esm/pipeline/spec/chart/pipes/markStyle/barStyle.js.map +1 -1
  172. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js +23 -6
  173. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js.map +1 -1
  174. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js +39 -34
  175. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js.map +1 -1
  176. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js +10 -3
  177. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
  178. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +1 -1
  179. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
  180. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js +1 -1
  181. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js.map +1 -1
  182. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +6 -3
  183. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  184. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +2 -0
  185. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
  186. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +2 -0
  187. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  188. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js +2 -0
  189. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
  190. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js +2 -0
  191. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js.map +1 -1
  192. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +2 -0
  193. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
  194. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipStyle.d.ts +3 -0
  195. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipStyle.js +31 -0
  196. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipStyle.js.map +1 -0
  197. package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js +3 -2
  198. package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js.map +1 -1
  199. package/dist/esm/pipeline/spec/table/pipeline/table.js +3 -2
  200. package/dist/esm/pipeline/spec/table/pipeline/table.js.map +1 -1
  201. package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.d.ts +2 -0
  202. package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.js +14 -0
  203. package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.js.map +1 -0
  204. package/dist/esm/pipeline/spec/table/pipes/cellStyle/index.d.ts +2 -0
  205. package/dist/esm/pipeline/spec/table/pipes/cellStyle/index.js +2 -0
  206. package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.d.ts +2 -0
  207. package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js +49 -0
  208. package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js.map +1 -0
  209. package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.d.ts +2 -0
  210. package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js +41 -0
  211. package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js.map +1 -0
  212. package/dist/esm/pipeline/spec/table/pipes/index.d.ts +1 -0
  213. package/dist/esm/pipeline/spec/table/pipes/index.js +1 -0
  214. package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js +13 -3
  215. package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js.map +1 -1
  216. package/dist/esm/pipeline/utils/constant.d.ts +3 -1
  217. package/dist/esm/pipeline/utils/constant.js +4 -2
  218. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  219. package/dist/esm/pipeline/utils/measures/depth.js.map +1 -1
  220. package/dist/esm/pipeline/utils/measures/find.js.map +1 -1
  221. package/dist/esm/pipeline/utils/tree/traverse.d.ts +1 -11
  222. package/dist/esm/pipeline/utils/tree/traverse.js +3 -4
  223. package/dist/esm/pipeline/utils/tree/traverse.js.map +1 -1
  224. package/dist/esm/theme/common/axes.js +2 -2
  225. package/dist/esm/theme/common/axes.js.map +1 -1
  226. package/dist/esm/theme/common/table.d.ts +30 -22
  227. package/dist/esm/theme/common/table.js +12 -2
  228. package/dist/esm/theme/common/table.js.map +1 -1
  229. package/dist/esm/theme/common/tooltip.d.ts +3 -2
  230. package/dist/esm/theme/common/tooltip.js +24 -2
  231. package/dist/esm/theme/common/tooltip.js.map +1 -1
  232. package/dist/esm/theme/dark/dark.js +2 -2
  233. package/dist/esm/theme/dark/dark.js.map +1 -1
  234. package/dist/esm/theme/light/light.js +2 -2
  235. package/dist/esm/theme/light/light.js.map +1 -1
  236. package/dist/esm/types/advancedVSeed.d.ts +3446 -1
  237. package/dist/esm/types/advancedVSeed.js +2 -0
  238. package/dist/esm/types/advancedVSeed.js.map +1 -1
  239. package/dist/esm/types/builder/builder.d.ts +4 -1
  240. package/dist/esm/types/builder/builder.js.map +1 -1
  241. package/dist/esm/types/chartType/area/zArea.d.ts +80 -0
  242. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +80 -0
  243. package/dist/esm/types/chartType/bar/zBar.d.ts +80 -0
  244. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +80 -0
  245. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +80 -0
  246. package/dist/esm/types/chartType/boxplot/zBoxplot.d.ts +80 -0
  247. package/dist/esm/types/chartType/column/zColumn.d.ts +82 -0
  248. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +80 -0
  249. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +80 -0
  250. package/dist/esm/types/chartType/donut/zDonut.d.ts +80 -0
  251. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +80 -0
  252. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +80 -0
  253. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +80 -0
  254. package/dist/esm/types/chartType/histogram/histogram.d.ts +2 -2
  255. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +88 -4
  256. package/dist/esm/types/chartType/histogram/zHistogram.js +2 -2
  257. package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
  258. package/dist/esm/types/chartType/line/zLine.d.ts +80 -0
  259. package/dist/esm/types/chartType/pie/zPie.d.ts +80 -0
  260. package/dist/esm/types/chartType/pivotTable/pivotTable.d.ts +5 -1
  261. package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +76 -0
  262. package/dist/esm/types/chartType/pivotTable/zPivotTable.js +2 -1
  263. package/dist/esm/types/chartType/pivotTable/zPivotTable.js.map +1 -1
  264. package/dist/esm/types/chartType/radar/zRadar.d.ts +80 -0
  265. package/dist/esm/types/chartType/rose/zRose.d.ts +80 -0
  266. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +80 -0
  267. package/dist/esm/types/chartType/scatter/zScatter.d.ts +88 -0
  268. package/dist/esm/types/chartType/table/table.d.ts +5 -1
  269. package/dist/esm/types/chartType/table/zTable.d.ts +76 -0
  270. package/dist/esm/types/chartType/table/zTable.js +2 -1
  271. package/dist/esm/types/chartType/table/zTable.js.map +1 -1
  272. package/dist/esm/types/properties/cellStyle/bodyCellStyle.d.ts +138 -0
  273. package/dist/esm/types/properties/cellStyle/bodyCellStyle.js +16 -0
  274. package/dist/esm/types/properties/cellStyle/bodyCellStyle.js.map +1 -0
  275. package/dist/esm/types/properties/cellStyle/cellStyle.d.ts +80 -0
  276. package/dist/esm/types/properties/cellStyle/cellStyle.js +8 -0
  277. package/dist/esm/types/properties/cellStyle/cellStyle.js.map +1 -0
  278. package/dist/esm/types/properties/cellStyle/index.d.ts +1 -0
  279. package/dist/esm/types/properties/cellStyle/index.js +1 -0
  280. package/dist/esm/types/properties/config/area.d.ts +164 -0
  281. package/dist/esm/types/properties/config/bar.d.ts +246 -0
  282. package/dist/esm/types/properties/config/boxplot.d.ts +82 -0
  283. package/dist/esm/types/properties/config/column.d.ts +258 -0
  284. package/dist/esm/types/properties/config/config.d.ts +1676 -0
  285. package/dist/esm/types/properties/config/dualAxis.d.ts +82 -0
  286. package/dist/esm/types/properties/config/funnel.d.ts +82 -0
  287. package/dist/esm/types/properties/config/heatmap.d.ts +82 -0
  288. package/dist/esm/types/properties/config/histogram.d.ts +94 -0
  289. package/dist/esm/types/properties/config/label/label.d.ts +5 -0
  290. package/dist/esm/types/properties/config/label/zLabel.d.ts +69 -0
  291. package/dist/esm/types/properties/config/label/zLabel.js +6 -1
  292. package/dist/esm/types/properties/config/label/zLabel.js.map +1 -1
  293. package/dist/esm/types/properties/config/label/zPieLabel.d.ts +69 -0
  294. package/dist/esm/types/properties/config/line.d.ts +82 -0
  295. package/dist/esm/types/properties/config/pie.d.ts +246 -0
  296. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.d.ts +2 -0
  297. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js +3 -1
  298. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js.map +1 -1
  299. package/dist/esm/types/properties/config/rose.d.ts +164 -0
  300. package/dist/esm/types/properties/config/scatter.d.ts +94 -0
  301. package/dist/esm/types/properties/config/tooltip/tooltip.d.ts +12 -0
  302. package/dist/esm/types/properties/config/tooltip/tooltip.js +12 -1
  303. package/dist/esm/types/properties/config/tooltip/tooltip.js.map +1 -1
  304. package/dist/esm/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +4 -1
  305. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +8 -2
  306. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js +4 -1
  307. package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js.map +1 -1
  308. package/dist/esm/types/properties/index.d.ts +1 -0
  309. package/dist/esm/types/properties/index.js +1 -0
  310. package/dist/esm/types/properties/markStyle/barStyle.d.ts +5 -0
  311. package/dist/esm/types/properties/markStyle/barStyle.js.map +1 -1
  312. package/dist/esm/types/properties/regressionLine/ecdfRegressionLine.d.ts +4 -0
  313. package/dist/esm/types/properties/regressionLine/kdeRegressionLine.d.ts +4 -0
  314. package/dist/esm/types/properties/regressionLine/zRegressionLine.d.ts +18 -0
  315. package/dist/esm/types/properties/regressionLine/zRegressionLine.js +1 -0
  316. package/dist/esm/types/properties/regressionLine/zRegressionLine.js.map +1 -1
  317. package/dist/esm/types/properties/theme/customTheme.d.ts +3352 -0
  318. package/dist/esm/types/zVseed.d.ts +1890 -124
  319. package/dist/umd/index.js +840 -446
  320. package/dist/umd/index.js.map +1 -1
  321. package/package.json +3 -3
  322. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasureName.js +0 -16
  323. package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasureName.js.map +0 -1
  324. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureName.js.map +0 -1
package/dist/umd/index.js CHANGED
@@ -107,7 +107,7 @@
107
107
  zColumnParallel: ()=>zColumnParallel,
108
108
  zDimensions: ()=>zDimensions,
109
109
  zLegend: ()=>zLegend,
110
- LINEAR_AXIS_INNER_OFFSET_TOP: ()=>7,
110
+ LINEAR_AXIS_INNER_OFFSET_TOP: ()=>12,
111
111
  replaceNullToUndefined: ()=>replaceNullToUndefined,
112
112
  zHeatmap: ()=>zHeatmap,
113
113
  FoldXMeasureId: ()=>FoldXMeasureId,
@@ -174,10 +174,11 @@
174
174
  zBackgroundColor: ()=>zBackgroundColor,
175
175
  zAreaPercentConfig: ()=>zAreaPercentConfig,
176
176
  zLowessRegressionLine: ()=>zLowessRegressionLine,
177
+ MeasureId: ()=>MeasureId,
177
178
  registerRadar: ()=>registerRadar,
178
- zMeasure: ()=>zMeasure,
179
179
  zLocale: ()=>zLocale,
180
180
  isDimension: ()=>isDimension,
181
+ zMeasure: ()=>zMeasure,
181
182
  registerScatter: ()=>registerScatter,
182
183
  boxplotSpecPipeline: ()=>boxplotSpecPipeline,
183
184
  autoNumFormatter: ()=>autoNumFormatter,
@@ -192,22 +193,24 @@
192
193
  zColumnPercent: ()=>zColumnPercent,
193
194
  foldMeasures: ()=>foldMeasures,
194
195
  zFunnel: ()=>zFunnel,
196
+ zDimensionEncoding: ()=>zDimensionEncoding,
195
197
  isPivotTable: ()=>isPivotTable,
196
198
  registerPie: ()=>registerPie,
197
- zDimensionEncoding: ()=>zDimensionEncoding,
198
199
  zEcdfRegressionLine: ()=>zEcdfRegressionLine,
199
200
  zBarParallelConfig: ()=>zBarParallelConfig,
200
201
  lineAdvancedPipeline: ()=>lineAdvancedPipeline,
202
+ AXIS_LABEL_SPACE: ()=>8,
201
203
  FoldMeasureValue: ()=>FoldMeasureValue,
202
204
  ANNOTATION_Z_INDEX: ()=>1000,
203
205
  Q3MeasureValue: ()=>"__Q3__",
204
206
  createFormatter: ()=>createFormatter,
205
207
  columnPercentSpecPipeline: ()=>columnPercentSpecPipeline,
208
+ BAND_AXIS_INNER_OFFSET_IN_PIVOT: ()=>2,
206
209
  isMeasureSelector: ()=>isMeasureSelector,
207
210
  areaAdvancedPipeline: ()=>areaAdvancedPipeline,
211
+ zBarConfig: ()=>zBarConfig,
208
212
  areaPercentSpecPipeline: ()=>areaPercentSpecPipeline,
209
213
  barParallelSpecPipeline: ()=>barParallelSpecPipeline,
210
- zBarConfig: ()=>zBarConfig,
211
214
  zPie: ()=>zPie,
212
215
  zBar: ()=>zBar,
213
216
  pieAdvancedPipeline: ()=>pieAdvancedPipeline,
@@ -221,6 +224,7 @@
221
224
  zFunnelTransform: ()=>zFunnelTransform,
222
225
  zLinearRegressionLine: ()=>zLinearRegressionLine,
223
226
  zRoseConfig: ()=>zRoseConfig,
227
+ zBodyCellStyle: ()=>zBodyCellStyle,
224
228
  zScatterMeasures: ()=>zScatterMeasures,
225
229
  zAnnotation: ()=>zAnnotation,
226
230
  selector: ()=>selector_selector,
@@ -505,7 +509,7 @@
505
509
  next: t
506
510
  });
507
511
  }
508
- const preorderTraverse = (tree, callback)=>{
512
+ const preorderTraverse = (tree, callback, childrenKey = 'children')=>{
509
513
  if (!tree || 0 === tree.length) return;
510
514
  const stack = [
511
515
  ...tree
@@ -514,9 +518,8 @@
514
518
  const node = stack.pop();
515
519
  const stop = callback(node);
516
520
  if (true === stop) return;
517
- if (!('children' in node)) continue;
518
- const children = node.children;
519
- if (children && children.length > 0) for(let i = children.length - 1; i >= 0; i--){
521
+ const children = node[childrenKey];
522
+ if (Array.isArray(children) && children.length > 0) for(let i = children.length - 1; i >= 0; i--){
520
523
  const child = children[i];
521
524
  stack.push(child);
522
525
  }
@@ -655,7 +658,7 @@
655
658
  }), {});
656
659
  return colorItems.map((d)=>({
657
660
  id: d,
658
- alias: colorIdMap[d]
661
+ alias: colorIdMap[d]?.alias
659
662
  }));
660
663
  };
661
664
  const getColorIdMap = (builder)=>{
@@ -891,14 +894,6 @@
891
894
  dimensions: newDimensions
892
895
  };
893
896
  };
894
- const records_records = (advancedVSeed, context)=>{
895
- const { vseed } = context;
896
- const { dataset } = vseed;
897
- return {
898
- ...advancedVSeed,
899
- dataset
900
- };
901
- };
902
897
  function chunk_2T7K3PFL_i(...e) {
903
898
  return chunk_WIMGWYZL_u(chunk_2T7K3PFL_o, e);
904
899
  }
@@ -907,6 +902,47 @@
907
902
  for (let n of s)n in e && (r[n] = e[n]);
908
903
  return r;
909
904
  }
905
+ function chunk_BZNENX2T_r(o) {
906
+ if ("object" != typeof o || null === o) return !1;
907
+ let e = Object.getPrototypeOf(o);
908
+ return null === e || e === Object.prototype;
909
+ }
910
+ function chunk_3ZJAREUD_i(...e) {
911
+ return chunk_WIMGWYZL_u(chunk_3ZJAREUD_o, e);
912
+ }
913
+ function chunk_3ZJAREUD_o(e, r) {
914
+ let a = {};
915
+ for (let [n, u] of Object.entries(e)){
916
+ let l = r(u, n, e);
917
+ a[n] = l;
918
+ }
919
+ return a;
920
+ }
921
+ const replaceNullToUndefined = (obj)=>{
922
+ if (null === obj) return;
923
+ if (Array.isArray(obj)) return obj.map(replaceNullToUndefined);
924
+ if (chunk_BZNENX2T_r(obj)) return C(obj, chunk_3ZJAREUD_i((value)=>replaceNullToUndefined(value)));
925
+ return obj;
926
+ };
927
+ const cellStyle_cellStyle = (advancedVSeed, context)=>{
928
+ const { vseed } = context;
929
+ const pickedCellStyle = chunk_2T7K3PFL_i(vseed, [
930
+ 'bodyCellStyle'
931
+ ]);
932
+ const style = replaceNullToUndefined(pickedCellStyle);
933
+ return {
934
+ ...advancedVSeed,
935
+ cellStyle: style
936
+ };
937
+ };
938
+ const records_records = (advancedVSeed, context)=>{
939
+ const { vseed } = context;
940
+ const { dataset } = vseed;
941
+ return {
942
+ ...advancedVSeed,
943
+ dataset
944
+ };
945
+ };
910
946
  const tableConfig_tableConfig = (advancedVSeed, context)=>{
911
947
  const { vseed } = context;
912
948
  const { chartType } = vseed;
@@ -934,11 +970,6 @@
934
970
  };
935
971
  return result;
936
972
  };
937
- function chunk_BZNENX2T_r(o) {
938
- if ("object" != typeof o || null === o) return !1;
939
- let e = Object.getPrototypeOf(o);
940
- return null === e || e === Object.prototype;
941
- }
942
973
  function D(...e) {
943
974
  return chunk_WIMGWYZL_u(chunk_PDQFB3TV_s, e);
944
975
  }
@@ -1009,6 +1040,7 @@
1009
1040
  initAdvancedVSeed,
1010
1041
  defaultMeasures_defaultMeasures,
1011
1042
  defaultDimensions,
1043
+ cellStyle_cellStyle,
1012
1044
  records_records,
1013
1045
  tableConfig_tableConfig,
1014
1046
  theme_theme
@@ -1343,6 +1375,170 @@
1343
1375
  };
1344
1376
  return result;
1345
1377
  };
1378
+ const isType_isType = (value, type)=>Object.prototype.toString.call(value) === `[object ${type}]`;
1379
+ const isType = isType_isType;
1380
+ const isArray_isArray = (value)=>Array.isArray ? Array.isArray(value) : isType(value, "Array");
1381
+ const common_isArray = isArray_isArray;
1382
+ const isValid = (value)=>null != value;
1383
+ const common_isValid = isValid;
1384
+ function array_array(arr) {
1385
+ return common_isValid(arr) ? common_isArray(arr) ? arr : [
1386
+ arr
1387
+ ] : [];
1388
+ }
1389
+ function chunk_AIG3BDKO_i(...e) {
1390
+ return chunk_WIMGWYZL_u(chunk_AIG3BDKO_n, e);
1391
+ }
1392
+ var chunk_AIG3BDKO_n = (e, r)=>e.length >= r;
1393
+ function chunk_KI5X74E2_y(...t) {
1394
+ return chunk_WIMGWYZL_u(chunk_KI5X74E2_f, t);
1395
+ }
1396
+ function chunk_KI5X74E2_f(t, e) {
1397
+ if (!chunk_AIG3BDKO_i(e, 1)) return {
1398
+ ...t
1399
+ };
1400
+ if (!chunk_AIG3BDKO_i(e, 2)) {
1401
+ let { [e[0]]: r, ...m } = t;
1402
+ return m;
1403
+ }
1404
+ let o = {
1405
+ ...t
1406
+ };
1407
+ for (let r of e)delete o[r];
1408
+ return o;
1409
+ }
1410
+ const selector_selector = (vchartDatum, selector, selectorMode = 'And')=>{
1411
+ if (!selector) return true;
1412
+ const vchartKeys = Object.keys(vchartDatum).filter((k)=>k.toLocaleLowerCase().startsWith('__vchart'));
1413
+ const datum = chunk_KI5X74E2_y(vchartDatum, vchartKeys);
1414
+ const selectors = Array.isArray(selector) ? selector : [
1415
+ selector
1416
+ ];
1417
+ return selectors['And' === selectorMode ? 'every' : 'some']((selector)=>{
1418
+ if (isValueSelector(selector)) {
1419
+ if (Object.values(datum).find((v)=>v === selector)) return true;
1420
+ } else if (isMeasureSelector(selector)) {
1421
+ const op = selector.operator || selector.op;
1422
+ const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
1423
+ selector.value
1424
+ ];
1425
+ switch(op){
1426
+ case '=':
1427
+ if (String(datum[selector.field]) === String(selectorValueArr[0])) return true;
1428
+ break;
1429
+ case '==':
1430
+ if (datum[selector.field] === selectorValueArr[0]) return true;
1431
+ break;
1432
+ case '!=':
1433
+ if (datum[selector.field] !== selectorValueArr[0]) return true;
1434
+ break;
1435
+ case '>':
1436
+ if (datum[selector.field] > selectorValueArr[0]) return true;
1437
+ break;
1438
+ case '<':
1439
+ if (datum[selector.field] < selectorValueArr[0]) return true;
1440
+ break;
1441
+ case '>=':
1442
+ if (datum[selector.field] >= selectorValueArr[0]) return true;
1443
+ break;
1444
+ case '<=':
1445
+ if (datum[selector.field] <= selectorValueArr[0]) return true;
1446
+ break;
1447
+ case 'between':
1448
+ if (Array.isArray(selector.value) && datum[selector.field] >= selectorValueArr[0] && datum[selector.field] <= selectorValueArr[1]) return true;
1449
+ break;
1450
+ }
1451
+ } else if (isDimensionSelector(selector)) {
1452
+ const op = selector.operator || selector.op;
1453
+ const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
1454
+ selector.value
1455
+ ];
1456
+ switch(op){
1457
+ case 'in':
1458
+ if (selectorValueArr.includes(datum[selector.field])) return true;
1459
+ break;
1460
+ case 'not in':
1461
+ if (!selectorValueArr.includes(datum[selector.field])) return true;
1462
+ break;
1463
+ }
1464
+ } else if (isPartialDatumSelector(selector)) {
1465
+ if (Object.keys(selector).every((key)=>datum[key] === selector[key])) return true;
1466
+ }
1467
+ return false;
1468
+ });
1469
+ };
1470
+ const isValueSelector = (selector)=>'string' == typeof selector || 'number' == typeof selector;
1471
+ const isPartialDatumSelector = (selector)=>'object' == typeof selector && null !== selector;
1472
+ const isMeasureSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && ('operator' in selector || 'op' in selector) && 'value' in selector && ([
1473
+ '=',
1474
+ '==',
1475
+ '!=',
1476
+ '>',
1477
+ '<',
1478
+ '>=',
1479
+ '<=',
1480
+ 'between'
1481
+ ].includes(selector.operator) || [
1482
+ '=',
1483
+ '==',
1484
+ '!=',
1485
+ '>',
1486
+ '<',
1487
+ '>=',
1488
+ '<=',
1489
+ 'between'
1490
+ ].includes(selector.op));
1491
+ const isDimensionSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && ('operator' in selector || 'op' in selector) && 'value' in selector && ([
1492
+ 'in',
1493
+ 'not in'
1494
+ ].includes(selector.operator) || [
1495
+ 'in',
1496
+ 'not in'
1497
+ ].includes(selector.op));
1498
+ const tableStyleMap = {
1499
+ backgroundColor: 'bgColor',
1500
+ textColor: 'color',
1501
+ textFontSize: 'fontSize',
1502
+ borderColor: 'borderColor',
1503
+ borderLineWidth: 'borderLineWidth'
1504
+ };
1505
+ const pickBodyCellStyle = (bodyCellStyle)=>Object.keys(tableStyleMap).reduce((acc, key)=>{
1506
+ if (key in bodyCellStyle) acc[tableStyleMap[key]] = bodyCellStyle[key];
1507
+ return acc;
1508
+ }, {});
1509
+ const tableBodyCell = (spec, context)=>{
1510
+ const { advancedVSeed } = context;
1511
+ const { cellStyle } = advancedVSeed;
1512
+ const bodyCellStyle = cellStyle?.bodyCellStyle;
1513
+ if (!bodyCellStyle) return spec;
1514
+ const bodyCellStyleList = array_array(bodyCellStyle);
1515
+ const columns = spec.columns || [];
1516
+ const setStyleOfColumn = (col)=>{
1517
+ const field = col.field;
1518
+ const matchedStyles = bodyCellStyleList.filter((style)=>{
1519
+ if (chunk_JK3VNB42_n(style.selector)) return true;
1520
+ const selectors = array_array(style.selector);
1521
+ return selectors.some((selector)=>chunk_BZNENX2T_r(selector) ? chunk_JK3VNB42_n(selector.field) || selector.field === field : chunk_6GTAPB47_e(selector) || chunk_SFZGYJFI_t(selector));
1522
+ });
1523
+ if (!matchedStyles.length) return false;
1524
+ col.style = (datum)=>{
1525
+ const originalDatum = {
1526
+ [field]: datum.dataValue
1527
+ };
1528
+ const mergedStyle = matchedStyles.reduce((result, style)=>{
1529
+ if (selector_selector(originalDatum, style.selector)) return {
1530
+ ...result,
1531
+ ...pickBodyCellStyle(style)
1532
+ };
1533
+ return result;
1534
+ }, {});
1535
+ return mergedStyle;
1536
+ };
1537
+ return false;
1538
+ };
1539
+ preorderTraverse(columns, setStyleOfColumn, 'columns');
1540
+ return spec;
1541
+ };
1346
1542
  const tableSpecPipeline = [
1347
1543
  initTable,
1348
1544
  dimensionTreeToColumns,
@@ -1350,7 +1546,8 @@
1350
1546
  bodyStyle,
1351
1547
  headerStyle,
1352
1548
  frameStyle,
1353
- selectionStyle
1549
+ selectionStyle,
1550
+ tableBodyCell
1354
1551
  ];
1355
1552
  const registerTable = ()=>{
1356
1553
  Builder._advancedPipelineMap.table = tableAdvancedPipeline;
@@ -1360,6 +1557,7 @@
1360
1557
  const FoldMeasureName = '__MeaName__';
1361
1558
  const FoldMeasureId = '__MeaId__';
1362
1559
  const FoldMeasureValue = '__MeaValue__';
1560
+ const MeasureId = FoldMeasureId;
1363
1561
  const MeasureName = FoldMeasureName;
1364
1562
  const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
1365
1563
  const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
@@ -1381,13 +1579,13 @@
1381
1579
  const BinEndMeasureId = '__BinEnd__';
1382
1580
  const BinCountMeasureId = '__BinCount__';
1383
1581
  const BinPercentageMeasureId = '__BinPercentage__';
1384
- const defaultMeasureName = (advancedVSeed)=>{
1582
+ const defaultMeasureId = (advancedVSeed)=>{
1385
1583
  const result = {
1386
1584
  ...advancedVSeed
1387
1585
  };
1388
1586
  const measures = findAllMeasures(advancedVSeed.measures);
1389
1587
  if (measures.length > 1 && !result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push({
1390
- id: MeasureName,
1588
+ id: MeasureId,
1391
1589
  alias: intl.i18n`指标名称`,
1392
1590
  encoding: 'row'
1393
1591
  });
@@ -1439,29 +1637,8 @@
1439
1637
  encoding.tooltip = measures.map((item)=>item.id);
1440
1638
  encoding.detail = chunk_QJLMYOTX_i(measures.filter((item)=>'detail' === item.encoding || !item.encoding).map((item)=>item.id));
1441
1639
  };
1442
- function chunk_AIG3BDKO_i(...e) {
1443
- return chunk_WIMGWYZL_u(chunk_AIG3BDKO_n, e);
1444
- }
1445
- var chunk_AIG3BDKO_n = (e, r)=>e.length >= r;
1446
- function chunk_KI5X74E2_y(...t) {
1447
- return chunk_WIMGWYZL_u(chunk_KI5X74E2_f, t);
1448
- }
1449
- function chunk_KI5X74E2_f(t, e) {
1450
- if (!chunk_AIG3BDKO_i(e, 1)) return {
1451
- ...t
1452
- };
1453
- if (!chunk_AIG3BDKO_i(e, 2)) {
1454
- let { [e[0]]: r, ...m } = t;
1455
- return m;
1456
- }
1457
- let o = {
1458
- ...t
1459
- };
1460
- for (let r of e)delete o[r];
1461
- return o;
1462
- }
1463
1640
  const foldMeasures = (dataset, measures, options)=>{
1464
- const { measureId, measureName, measureValue, colorMeasureId, allowEmptyFold = true } = options || {};
1641
+ const { measureId, measureName, measureValue, colorMeasureId, allowEmptyFold = true, omitIds = [] } = options || {};
1465
1642
  const foldInfo = {
1466
1643
  measureId,
1467
1644
  measureName,
@@ -1486,7 +1663,10 @@
1486
1663
  for(let i = 0; i < dataset.length; i++)for(let j = 0; j < measures.length; j++){
1487
1664
  const datum = chunk_KI5X74E2_y({
1488
1665
  ...dataset[i]
1489
- }, ids);
1666
+ }, [
1667
+ ...ids,
1668
+ ...omitIds
1669
+ ]);
1490
1670
  datum[ORIGINAL_DATA] = dataset[i];
1491
1671
  const measure = measures[j];
1492
1672
  const { id, alias } = measure;
@@ -1574,7 +1754,8 @@
1574
1754
  initAdvancedVSeed,
1575
1755
  defaultMeasures_defaultMeasures,
1576
1756
  defaultDimensions,
1577
- defaultMeasureName,
1757
+ defaultMeasureId,
1758
+ cellStyle_cellStyle,
1578
1759
  encodingForPivotTable,
1579
1760
  reshapePivotTable,
1580
1761
  pivotTableConfig,
@@ -1639,15 +1820,23 @@
1639
1820
  const pivotRows = (spec, context)=>{
1640
1821
  const { advancedVSeed } = context;
1641
1822
  const dimensions = advancedVSeed.dimensions;
1642
- const { encoding } = advancedVSeed;
1823
+ const { encoding, measures } = advancedVSeed;
1643
1824
  const rows = dimensions.filter((item)=>encoding.row?.includes(item.id));
1825
+ const allMeasures = findAllMeasures(measures);
1644
1826
  return {
1645
1827
  ...spec,
1646
- rows: rows.map((item)=>({
1828
+ rows: rows.map((item)=>{
1829
+ const res = {
1647
1830
  dimensionKey: item.id,
1648
1831
  title: item.alias || item.id,
1649
1832
  width: 'auto'
1650
- }))
1833
+ };
1834
+ if (item.id === MeasureId) res.headerFormat = (measureId)=>{
1835
+ const measure = allMeasures.find((m)=>m.id === measureId);
1836
+ return measure?.alias ?? measureId;
1837
+ };
1838
+ return res;
1839
+ })
1651
1840
  };
1652
1841
  };
1653
1842
  const titleOnDimension = (spec)=>{
@@ -1790,6 +1979,47 @@
1790
1979
  };
1791
1980
  return result;
1792
1981
  };
1982
+ const pivotTableBodyCell = (spec, context)=>{
1983
+ const { advancedVSeed } = context;
1984
+ const { cellStyle } = advancedVSeed;
1985
+ const bodyCellStyle = cellStyle?.bodyCellStyle;
1986
+ if (!bodyCellStyle) return spec;
1987
+ const bodyCellStyleList = array_array(bodyCellStyle);
1988
+ const indicators = spec.indicators || [];
1989
+ const newIndicators = indicators.map((ind)=>{
1990
+ const newInd = chunk_SFZGYJFI_t(ind) ? {
1991
+ indicatorKey: ind
1992
+ } : ind;
1993
+ const { indicatorKey } = newInd;
1994
+ newInd.style = (datum)=>{
1995
+ const { dataValue, cellHeaderPaths } = datum;
1996
+ const headerPaths = [
1997
+ ...cellHeaderPaths.colHeaderPaths,
1998
+ ...cellHeaderPaths.rowHeaderPaths
1999
+ ];
2000
+ const originalDatum = {
2001
+ [indicatorKey]: dataValue
2002
+ };
2003
+ headerPaths.forEach((path)=>{
2004
+ if (path.dimensionKey) originalDatum[path.dimensionKey] = path.value;
2005
+ });
2006
+ if (!chunk_JK3VNB42_n(originalDatum[MeasureId]) && !chunk_JK3VNB42_n(originalDatum[FoldMeasureValue])) originalDatum[originalDatum[MeasureId]] = originalDatum[FoldMeasureValue];
2007
+ const mergedStyle = bodyCellStyleList.reduce((result, style)=>{
2008
+ if (selector_selector(originalDatum, style.selector)) return {
2009
+ ...result,
2010
+ ...pickBodyCellStyle(style)
2011
+ };
2012
+ return result;
2013
+ }, {});
2014
+ return mergedStyle;
2015
+ };
2016
+ return newInd;
2017
+ });
2018
+ return {
2019
+ ...spec,
2020
+ indicators: newIndicators
2021
+ };
2022
+ };
1793
2023
  const dataConfig = (spec, context)=>{
1794
2024
  const { advancedVSeed } = context;
1795
2025
  const measures = findAllMeasures(advancedVSeed.measures);
@@ -1817,7 +2047,8 @@
1817
2047
  cornerHeaderStyle,
1818
2048
  frameStyle,
1819
2049
  selectionStyle,
1820
- dataConfig
2050
+ dataConfig,
2051
+ pivotTableBodyCell
1821
2052
  ];
1822
2053
  const registerPivotTable = ()=>{
1823
2054
  Builder._advancedPipelineMap.pivotTable = pivotTableAdvancedPipeline;
@@ -1897,15 +2128,15 @@
1897
2128
  dimensions: newDimensions
1898
2129
  };
1899
2130
  };
1900
- const defaultMeasureName_defaultMeasureName = (advancedVSeed)=>{
2131
+ const defaultMeasureId_defaultMeasureId = (advancedVSeed)=>{
1901
2132
  const result = {
1902
2133
  ...advancedVSeed
1903
2134
  };
1904
- const MeaName = {
1905
- id: MeasureName,
1906
- alias: intl.i18n`指标名称`
2135
+ const MeaIdDim = {
2136
+ id: MeasureId,
2137
+ alias: intl.i18n`指标Id`
1907
2138
  };
1908
- if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
2139
+ if (!result.dimensions?.some((dim)=>dim.id === MeasureId)) result.dimensions?.push(MeaIdDim);
1909
2140
  return result;
1910
2141
  };
1911
2142
  const encodingAdapter = (noEncodingPipeline, hasEncodingPipeline)=>(advancedVSeed, context)=>{
@@ -1918,10 +2149,10 @@
1918
2149
  };
1919
2150
  const addColorToEncoding = (dimensions, encoding, isMultiMeasure)=>{
1920
2151
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1921
- const measureName = dimensions.find((item)=>item.id === MeasureName);
1922
- if (isMultiMeasure && measureName && !measureName.encoding) encoding.color.push(MeasureName);
2152
+ const measureId = dimensions.find((item)=>item.id === MeasureId);
2153
+ if (isMultiMeasure && measureId && !measureId.encoding) encoding.color.push(MeasureId);
1923
2154
  if (0 === encoding.color.length) encoding.color = [
1924
- MeasureName
2155
+ MeasureId
1925
2156
  ];
1926
2157
  };
1927
2158
  const defaultEncodingForLine = (advancedVSeed)=>{
@@ -1954,7 +2185,7 @@
1954
2185
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
1955
2186
  encoding.x = uniqueDimIds.slice(0, 1);
1956
2187
  encoding.color = uniqueDimIds.slice(1);
1957
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
2188
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
1958
2189
  encoding.detail = [];
1959
2190
  encoding.label = [];
1960
2191
  encoding.row = [];
@@ -1968,12 +2199,12 @@
1968
2199
  addColorToEncoding(dimensions, encoding, isMultiMeasure);
1969
2200
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1970
2201
  if (0 === encoding.detail.length) encoding.detail = [
1971
- MeasureName
2202
+ MeasureId
1972
2203
  ];
1973
2204
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
1974
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
2205
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
1975
2206
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
1976
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
2207
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
1977
2208
  };
1978
2209
  const line_generateDefaultMeasureEncoding = (measures, encoding)=>{
1979
2210
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -2148,7 +2379,7 @@
2148
2379
  };
2149
2380
  }
2150
2381
  const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
2151
- const { foldMeasureId, separator, colorItemAsId } = options;
2382
+ const { separator } = options;
2152
2383
  const unfoldInfo = {
2153
2384
  encodingAngle: AngleEncoding,
2154
2385
  encodingX: XEncoding,
@@ -2175,14 +2406,12 @@
2175
2406
  applyEncoding(ColorEncoding, colorDimensions, datum, separator);
2176
2407
  applyEncoding(DetailEncoding, detailDimensions, datum, separator);
2177
2408
  if (!colorDimensions.length || !datum[ColorEncoding]) continue;
2178
- const measureId = String(datum[foldMeasureId] ?? '');
2179
- const colorItem = String(datum[ColorEncoding] ?? '');
2180
- const colorId = colorItemAsId ? colorItem : measureId ? [
2181
- colorItem,
2182
- measureId
2183
- ].join(separator) : colorItem;
2409
+ const colorId = String(datum[ColorEncoding] ?? '');
2184
2410
  datum[ColorIdEncoding] = colorId;
2185
- colorIdMap[colorId] = colorItem;
2411
+ colorIdMap[colorId] = {
2412
+ id: colorId,
2413
+ alias: getColorAliasItem(ColorEncoding, colorDimensions, datum, separator)
2414
+ };
2186
2415
  colorItems.add(colorId);
2187
2416
  }
2188
2417
  unfoldInfo.colorItems = Array.from(colorItems);
@@ -2195,13 +2424,21 @@
2195
2424
  const applyEncoding = (encoding, dimensions, datum, separator)=>{
2196
2425
  if (encoding && dimensions.length) datum[encoding] = dimensions.map((dim)=>String(datum[dim.id])).join(separator);
2197
2426
  };
2427
+ const getColorAliasItem = (encoding, dimensions, datum, separator)=>{
2428
+ if (encoding && dimensions.length) return dimensions.map((dim)=>{
2429
+ if (dim.id === MeasureId) return String(datum[MeasureName]);
2430
+ return String(datum[dim.id]);
2431
+ }).join(separator);
2432
+ return '';
2433
+ };
2198
2434
  const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)=>{
2199
- const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false, colorMeasureId } = options || {};
2435
+ const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false, colorMeasureId, omitIds } = options || {};
2200
2436
  const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, {
2201
2437
  measureId: foldMeasureId,
2202
2438
  measureName: foldMeasureName,
2203
2439
  measureValue: foldMeasureValue,
2204
- colorMeasureId
2440
+ colorMeasureId,
2441
+ omitIds
2205
2442
  });
2206
2443
  const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
2207
2444
  foldMeasureId,
@@ -2267,6 +2504,7 @@
2267
2504
  const { vseed } = context;
2268
2505
  const { dataset } = vseed;
2269
2506
  const { dimensions = [], measures = [], encoding } = advancedVSeed;
2507
+ const allMeasures = findAllMeasures(measures);
2270
2508
  const measureGroups = [];
2271
2509
  if (measures) measures.forEach((measure)=>{
2272
2510
  if (measure.children && measure.children.length > 0) measureGroups.push(measure);
@@ -2280,7 +2518,8 @@
2280
2518
  const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(measures, (item)=>item.id), encoding, {
2281
2519
  colorItemAsId: false,
2282
2520
  foldMeasureValue: `${FoldMeasureValue}${groupId}`,
2283
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
2521
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
2522
+ omitIds: allMeasures.map((item)=>item.id)
2284
2523
  });
2285
2524
  const reshapeInfo = {
2286
2525
  id: groupId,
@@ -2348,17 +2587,14 @@
2348
2587
  const { sortLegend } = vseed;
2349
2588
  const { datasetReshapeInfo, dataset } = advancedVSeed;
2350
2589
  const colorId = datasetReshapeInfo?.[0]?.unfoldInfo?.encodingColorId;
2351
- const colorIdMap = datasetReshapeInfo?.[0]?.unfoldInfo?.colorIdMap;
2590
+ const colorIdMap = datasetReshapeInfo?.[0]?.unfoldInfo?.colorIdMap ?? {};
2352
2591
  const colorItems = datasetReshapeInfo?.[0]?.unfoldInfo?.colorItems;
2353
2592
  if (!sortLegend || !colorId || !colorIdMap || !colorItems) return advancedVSeed;
2354
2593
  if (!result.analysis) result.analysis = {};
2355
2594
  if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
2356
2595
  if (sortLegend.customOrder) {
2357
- const nameMap = Object.keys(colorIdMap).reduce((pre, cur)=>{
2358
- pre[colorIdMap[cur]] = cur;
2359
- return pre;
2360
- }, {});
2361
- const orderRes = sortLegend.customOrder.map((itemNameOrId)=>nameMap[itemNameOrId] ? nameMap[itemNameOrId] : itemNameOrId);
2596
+ const colorIds = Object.keys(colorIdMap);
2597
+ const orderRes = sortLegend.customOrder.map((itemNameOrId)=>colorIds.find((id)=>colorIdMap[id]?.alias === itemNameOrId || colorIdMap[id]?.id === itemNameOrId || id === itemNameOrId));
2362
2598
  result.analysis.orderMapping[colorId] = orderRes;
2363
2599
  return result;
2364
2600
  }
@@ -2366,23 +2602,6 @@
2366
2602
  result.analysis.orderMapping[colorId] = orderRes;
2367
2603
  return result;
2368
2604
  };
2369
- function chunk_3ZJAREUD_i(...e) {
2370
- return chunk_WIMGWYZL_u(chunk_3ZJAREUD_o, e);
2371
- }
2372
- function chunk_3ZJAREUD_o(e, r) {
2373
- let a = {};
2374
- for (let [n, u] of Object.entries(e)){
2375
- let l = r(u, n, e);
2376
- a[n] = l;
2377
- }
2378
- return a;
2379
- }
2380
- const replaceNullToUndefined = (obj)=>{
2381
- if (null === obj) return;
2382
- if (Array.isArray(obj)) return obj.map(replaceNullToUndefined);
2383
- if (chunk_BZNENX2T_r(obj)) return C(obj, chunk_3ZJAREUD_i((value)=>replaceNullToUndefined(value)));
2384
- return obj;
2385
- };
2386
2605
  const line_lineConfig = (advancedVSeed, context)=>{
2387
2606
  const { vseed } = context;
2388
2607
  const { chartType } = vseed;
@@ -2439,7 +2658,7 @@
2439
2658
  initAdvancedVSeed_initAdvancedVSeed,
2440
2659
  default_defaultMeasures_defaultMeasures,
2441
2660
  defaultDimensions_defaultDimensions,
2442
- defaultMeasureName_defaultMeasureName,
2661
+ defaultMeasureId_defaultMeasureId,
2443
2662
  encodingAdapter([
2444
2663
  defaultEncodingForLine,
2445
2664
  buildMeasures
@@ -2514,7 +2733,7 @@
2514
2733
  const accurateMap = colors.reduce((prev, cur)=>{
2515
2734
  const name = cur[0];
2516
2735
  const colorValue = cur[1];
2517
- const accurateMatchedList = Object.entries(colorIdMap).filter(([colorKey, colorAlias])=>colorKey === name || colorAlias === name);
2736
+ const accurateMatchedList = Object.entries(colorIdMap).filter(([colorKey, colorObj])=>colorKey === name || colorObj.alias === name || colorObj.id === name);
2518
2737
  accurateMatchedList.forEach((item)=>{
2519
2738
  prev[item[0]] = colorValue;
2520
2739
  matchedList.push(name);
@@ -2525,7 +2744,7 @@
2525
2744
  const name = cur[0];
2526
2745
  const colorValue = cur[1];
2527
2746
  if (matchedList.includes(name)) return prev;
2528
- const fuzzyMatchedList = Object.entries(colorIdMap).filter(([colorKey, colorAlias])=>colorKey.includes(name) || colorAlias.includes(name));
2747
+ const fuzzyMatchedList = Object.entries(colorIdMap).filter(([colorKey, colorObj])=>colorKey.includes(name) || colorObj.alias.includes(name) || colorObj.id.includes(name));
2529
2748
  fuzzyMatchedList.forEach((item)=>{
2530
2749
  if (prev[item[0]]) return;
2531
2750
  prev[item[0]] = colorValue;
@@ -2761,6 +2980,7 @@
2761
2980
  max,
2762
2981
  min,
2763
2982
  label: {
2983
+ space: 8,
2764
2984
  visible: label?.visible,
2765
2985
  formatMethod: (value)=>{
2766
2986
  if (isBarPercent(vseed) || isColumnPercent(vseed) || isAreaPercent(vseed)) return createLinearPercentFormat(value, autoFormat, numFormat, formatter, percentFormatter);
@@ -2806,7 +3026,7 @@
2806
3026
  }
2807
3027
  },
2808
3028
  innerOffset: {
2809
- top: 7
3029
+ top: 12
2810
3030
  }
2811
3031
  };
2812
3032
  result.axes = [
@@ -2946,7 +3166,7 @@
2946
3166
  }
2947
3167
  },
2948
3168
  label: {
2949
- formatMethod: (value)=>unfoldInfo.colorIdMap[String(value)] ?? value,
3169
+ formatMethod: (value)=>unfoldInfo.colorIdMap[String(value)]?.alias ?? value,
2950
3170
  style: {
2951
3171
  fontSize: labelFontSize,
2952
3172
  fill: labelColor || labelFontColor,
@@ -3056,95 +3276,6 @@
3056
3276
  }
3057
3277
  return result;
3058
3278
  };
3059
- const selector_selector = (vchartDatum, selector)=>{
3060
- if (!selector) return true;
3061
- const selectorMode = 'And';
3062
- const vchartKeys = Object.keys(vchartDatum).filter((k)=>k.toLocaleLowerCase().startsWith('__vchart'));
3063
- const datum = chunk_KI5X74E2_y(vchartDatum, vchartKeys);
3064
- const selectors = Array.isArray(selector) ? selector : [
3065
- selector
3066
- ];
3067
- return selectors['And' === selectorMode ? 'every' : 'some']((selector)=>{
3068
- if (isValueSelector(selector)) {
3069
- if (Object.values(datum).find((v)=>v === selector)) return true;
3070
- } else if (isMeasureSelector(selector)) {
3071
- const op = selector.operator || selector.op;
3072
- const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
3073
- selector.value
3074
- ];
3075
- switch(op){
3076
- case '=':
3077
- if (String(datum[selector.field]) === String(selectorValueArr[0])) return true;
3078
- break;
3079
- case '==':
3080
- if (datum[selector.field] === selectorValueArr[0]) return true;
3081
- break;
3082
- case '!=':
3083
- if (datum[selector.field] !== selectorValueArr[0]) return true;
3084
- break;
3085
- case '>':
3086
- if (datum[selector.field] > selectorValueArr[0]) return true;
3087
- break;
3088
- case '<':
3089
- if (datum[selector.field] < selectorValueArr[0]) return true;
3090
- break;
3091
- case '>=':
3092
- if (datum[selector.field] >= selectorValueArr[0]) return true;
3093
- break;
3094
- case '<=':
3095
- if (datum[selector.field] <= selectorValueArr[0]) return true;
3096
- break;
3097
- case 'between':
3098
- if (Array.isArray(selector.value) && datum[selector.field] >= selectorValueArr[0] && datum[selector.field] <= selectorValueArr[1]) return true;
3099
- break;
3100
- }
3101
- } else if (isDimensionSelector(selector)) {
3102
- const op = selector.operator || selector.op;
3103
- const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
3104
- selector.value
3105
- ];
3106
- switch(op){
3107
- case 'in':
3108
- if (selectorValueArr.includes(datum[selector.field])) return true;
3109
- break;
3110
- case 'not in':
3111
- if (!selectorValueArr.includes(datum[selector.field])) return true;
3112
- break;
3113
- }
3114
- } else if (isPartialDatumSelector(selector)) {
3115
- if (Object.keys(selector).every((key)=>datum[key] === selector[key])) return true;
3116
- }
3117
- return false;
3118
- });
3119
- };
3120
- const isValueSelector = (selector)=>'string' == typeof selector || 'number' == typeof selector;
3121
- const isPartialDatumSelector = (selector)=>'object' == typeof selector && null !== selector;
3122
- const isMeasureSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && ('operator' in selector || 'op' in selector) && 'value' in selector && ([
3123
- '=',
3124
- '==',
3125
- '!=',
3126
- '>',
3127
- '<',
3128
- '>=',
3129
- '<=',
3130
- 'between'
3131
- ].includes(selector.operator) || [
3132
- '=',
3133
- '==',
3134
- '!=',
3135
- '>',
3136
- '<',
3137
- '>=',
3138
- '<=',
3139
- 'between'
3140
- ].includes(selector.op));
3141
- const isDimensionSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && ('operator' in selector || 'op' in selector) && 'value' in selector && ([
3142
- 'in',
3143
- 'not in'
3144
- ].includes(selector.operator) || [
3145
- 'in',
3146
- 'not in'
3147
- ].includes(selector.op));
3148
3279
  const pointStyle_pointStyle = (spec, context)=>{
3149
3280
  const { advancedVSeed } = context;
3150
3281
  const { markStyle } = advancedVSeed;
@@ -3370,7 +3501,7 @@
3370
3501
  const buildLabel = (label, vseedMeasures = [], vseedDimensions = [], advancedVSeedDimensions, advancedVSeedMeasures, encoding, foldInfoList)=>{
3371
3502
  const { enable, wrap, showValue, showValuePercent, showDimension, labelOverlap, labelColorSmartInvert, labelStroke, labelColor, labelFontSize, labelFontWeight, labelBackgroundColor, labelPosition, autoFormat, numFormat = {} } = label;
3372
3503
  const hasDimLabelEncoding = vseedDimensions.some((item)=>encoding.label?.includes(item.id));
3373
- const labelDims = T(hasDimLabelEncoding ? vseedDimensions.filter((item)=>encoding.label?.includes(item.id)) : showDimension ? advancedVSeedDimensions.filter((d)=>d.id !== MeasureName) : [], (item)=>item.id);
3504
+ const labelDims = T(hasDimLabelEncoding ? vseedDimensions.filter((item)=>encoding.label?.includes(item.id)) : showDimension ? advancedVSeedDimensions.filter((d)=>d.id !== MeasureId) : [], (item)=>item.id);
3374
3505
  const labelMeas = T(vseedMeasures.filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3375
3506
  const percentFormat = chunk_5S4PYKVY_t(numFormat, {
3376
3507
  type: 'percent'
@@ -3378,7 +3509,7 @@
3378
3509
  const percentFormatter = createFormatter(percentFormat);
3379
3510
  const result = {
3380
3511
  visible: enable,
3381
- dataFilter: (data)=>data.filter((entry)=>entry.data?.[DATUM_HIDE_KEY] !== true),
3512
+ dataFilter: (data)=>data.filter((entry)=>entry.data?.[DATUM_HIDE_KEY] !== true && selector_selector(entry.data, label.selector, 'Or')),
3382
3513
  formatMethod: (_, datum)=>{
3383
3514
  const result = [];
3384
3515
  const dimLabels = labelDims.map((item)=>{
@@ -3417,6 +3548,34 @@
3417
3548
  };
3418
3549
  return result;
3419
3550
  };
3551
+ const getTooltipStyle = (tooltipConfig)=>({
3552
+ panel: {
3553
+ padding: tooltipConfig.padding,
3554
+ border: {
3555
+ radius: tooltipConfig.borderRadius,
3556
+ width: tooltipConfig.borderWidth,
3557
+ color: tooltipConfig.borderColor
3558
+ },
3559
+ backgroundColor: tooltipConfig.backgroundColor
3560
+ },
3561
+ keyLabel: {
3562
+ lineHeight: tooltipConfig.lineHeight,
3563
+ fontSize: tooltipConfig.fontSize,
3564
+ fontColor: tooltipConfig.keyColor
3565
+ },
3566
+ valueLabel: {
3567
+ lineHeight: tooltipConfig.lineHeight,
3568
+ fontSize: tooltipConfig.fontSize,
3569
+ fontColor: tooltipConfig.valueColor,
3570
+ fontWeight: 'medium'
3571
+ },
3572
+ titleLabel: {
3573
+ fontSize: tooltipConfig.fontSize,
3574
+ lineHeight: tooltipConfig.lineHeight,
3575
+ fontColor: tooltipConfig.titleColor,
3576
+ fontWeight: 'bold'
3577
+ }
3578
+ });
3420
3579
  const tooltip_tooltip = (spec, context)=>{
3421
3580
  const result = {
3422
3581
  ...spec
@@ -3427,10 +3586,11 @@
3427
3586
  const { tooltip = {
3428
3587
  enable: true
3429
3588
  } } = baseConfig;
3430
- const { enable } = tooltip;
3589
+ const { enable = true } = tooltip;
3431
3590
  const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
3432
3591
  result.tooltip = {
3433
- visible: enable,
3592
+ style: getTooltipStyle(tooltip),
3593
+ visible: !!enable,
3434
3594
  mark: {
3435
3595
  title: {
3436
3596
  visible: false
@@ -3456,7 +3616,8 @@
3456
3616
  hasShape: true,
3457
3617
  key: dimensions.some((d)=>'color' === d.encoding) ? (v)=>{
3458
3618
  const datum = v;
3459
- return datum && datum[encodingColor] || '';
3619
+ const key = datum && datum[encodingColor] || '';
3620
+ return unfoldInfo.colorIdMap[key].alias ?? key;
3460
3621
  } : Object.values(foldMap)[0],
3461
3622
  value: (v)=>{
3462
3623
  const datum = v;
@@ -3574,6 +3735,7 @@
3574
3735
  text: {
3575
3736
  text: text,
3576
3737
  style: {
3738
+ opacity: 0.95,
3577
3739
  visible: true,
3578
3740
  textAlign: textAlign,
3579
3741
  textBaseline: textBaseline,
@@ -3589,6 +3751,7 @@
3589
3751
  visible: textBackgroundVisible,
3590
3752
  padding: textBackgroundPadding,
3591
3753
  style: {
3754
+ opacity: 0.95,
3592
3755
  cornerRadius: textBackgroundBorderRadius ?? 4,
3593
3756
  fill: textBackgroundColor,
3594
3757
  stroke: textBackgroundBorderColor,
@@ -3631,7 +3794,23 @@
3631
3794
  const { selector: selectorPoint, xValue, text = '', textPosition = 'insideEnd', textColor = theme?.textColor ?? '#ffffff', textFontSize = theme?.textFontSize ?? 12, textFontWeight = theme?.textFontWeight ?? 400, textAlign = 'center', textBaseline = 'top', lineColor = theme?.lineColor ?? '#212121', lineStyle = theme?.lineStyle ?? 'dashed', lineVisible = theme?.lineStyle ?? true, lineWidth = theme?.lineWidth ?? 1, textBackgroundVisible = theme?.textBackgroundVisible ?? true, textBackgroundColor = theme?.textBackgroundColor ?? '#212121', textBackgroundBorderColor = theme?.textBackgroundBorderColor ?? '#212121', textBackgroundBorderRadius = theme?.textBackgroundBorderRadius ?? 4, textBackgroundBorderWidth = theme?.textBackgroundBorderWidth ?? 1, textBackgroundPadding = theme?.textBackgroundPadding ?? 2 } = annotationVerticalLine;
3632
3795
  const dataset = advancedVSeed.dataset.flat();
3633
3796
  const generateOneMarkLine = (x)=>({
3634
- x: x,
3797
+ positions: (datum, series)=>{
3798
+ const regionStart = series.getRegion()?.getLayoutStartPoint();
3799
+ const xAxisHelper = series.getXAxisHelper();
3800
+ const yAxisHelper = series.getYAxisHelper();
3801
+ const xPos = xAxisHelper.getScale(0).scale(x) + regionStart.x;
3802
+ const yRange = yAxisHelper.getScale(0).range();
3803
+ return [
3804
+ {
3805
+ x: xPos,
3806
+ y: yRange ? yRange[0] + regionStart.y : 0
3807
+ },
3808
+ {
3809
+ x: xPos,
3810
+ y: yRange ? yRange[1] + regionStart.y : 0
3811
+ }
3812
+ ];
3813
+ },
3635
3814
  zIndex: 1000,
3636
3815
  line: {
3637
3816
  style: {
@@ -3651,9 +3830,11 @@
3651
3830
  }
3652
3831
  },
3653
3832
  label: {
3833
+ confine: true,
3654
3834
  text: text,
3655
3835
  position: positionMap[textPosition || 'insideEnd'],
3656
3836
  style: {
3837
+ opacity: 0.95,
3657
3838
  dx: 5,
3658
3839
  visible: true,
3659
3840
  stroke: textBackgroundColor,
@@ -3668,6 +3849,7 @@
3668
3849
  visible: textBackgroundVisible,
3669
3850
  padding: textBackgroundPadding,
3670
3851
  style: {
3852
+ opacity: 0.95,
3671
3853
  dx: 5,
3672
3854
  cornerRadius: textBackgroundBorderRadius,
3673
3855
  fill: textBackgroundColor,
@@ -3741,7 +3923,23 @@
3741
3923
  const { selector: selectorPoint, yValue, text = '', textPosition = 'insideEnd', textColor = theme?.textColor ?? '#ffffff', textFontSize = theme?.textFontSize ?? 12, textFontWeight = theme?.textFontWeight ?? 400, textAlign = 'right', textBaseline = 'bottom', lineColor = theme?.lineColor ?? '#212121', lineStyle = theme?.lineStyle ?? 'dashed', lineVisible = theme?.lineStyle ?? true, lineWidth = theme?.lineWidth ?? 1, textBackgroundVisible = theme?.textBackgroundVisible ?? true, textBackgroundColor = theme?.textBackgroundColor ?? '#212121', textBackgroundBorderColor = theme?.textBackgroundBorderColor ?? '#212121', textBackgroundBorderRadius = theme?.textBackgroundBorderRadius ?? 4, textBackgroundBorderWidth = theme?.textBackgroundBorderWidth ?? 1, textBackgroundPadding = theme?.textBackgroundPadding ?? 2 } = annotationHorizontalLine;
3742
3924
  const dataset = advancedVSeed.dataset.flat();
3743
3925
  const generateOneMarkLine = (y)=>({
3744
- y,
3926
+ positions: (datum, series)=>{
3927
+ const regionStart = series.getRegion()?.getLayoutStartPoint();
3928
+ const xAxisHelper = series.getXAxisHelper();
3929
+ const yAxisHelper = series.getYAxisHelper();
3930
+ const yPos = yAxisHelper.getScale(0).scale(y) + regionStart.y;
3931
+ const xRange = xAxisHelper.getScale(0).range();
3932
+ return [
3933
+ {
3934
+ x: xRange ? xRange[0] + regionStart.x : 0,
3935
+ y: yPos
3936
+ },
3937
+ {
3938
+ x: xRange ? xRange[1] + regionStart.x : 0,
3939
+ y: yPos
3940
+ }
3941
+ ];
3942
+ },
3745
3943
  zIndex: 1000,
3746
3944
  line: {
3747
3945
  style: {
@@ -3760,9 +3958,11 @@
3760
3958
  }
3761
3959
  },
3762
3960
  label: {
3961
+ confine: true,
3763
3962
  text: text,
3764
3963
  position: positionMap[textPosition || 'insideEnd'],
3765
3964
  style: {
3965
+ opacity: 0.95,
3766
3966
  visible: true,
3767
3967
  dy: 4,
3768
3968
  stroke: textBackgroundColor,
@@ -3777,6 +3977,7 @@
3777
3977
  visible: textBackgroundVisible,
3778
3978
  padding: textBackgroundPadding,
3779
3979
  style: {
3980
+ opacity: 0.95,
3780
3981
  dy: 4,
3781
3982
  cornerRadius: textBackgroundBorderRadius,
3782
3983
  fill: textBackgroundColor,
@@ -3789,9 +3990,9 @@
3789
3990
  startSymbol: {
3790
3991
  visible: theme?.startSymbolVisible ?? true,
3791
3992
  symbolType: theme?.startSymbolType ?? 'triangleDown',
3792
- size: 5,
3993
+ size: 5 + (lineWidth || 1),
3793
3994
  style: {
3794
- dx: 0,
3995
+ dx: 3,
3795
3996
  fill: lineColor
3796
3997
  }
3797
3998
  },
@@ -3918,6 +4119,7 @@
3918
4119
  visible: true,
3919
4120
  text: text,
3920
4121
  style: {
4122
+ opacity: 0.95,
3921
4123
  dy: isBottom ? 2 * -(textFontSize || 12) : 0,
3922
4124
  textAlign: textAlign,
3923
4125
  textBaseline: textBaseline,
@@ -3931,6 +4133,7 @@
3931
4133
  visible: textBackgroundVisible,
3932
4134
  padding: textBackgroundPadding,
3933
4135
  style: {
4136
+ opacity: 0.95,
3934
4137
  dy: isBottom ? 2 * -(textFontSize || 12) : 0,
3935
4138
  cornerRadius: textBackgroundBorderRadius ?? 4,
3936
4139
  fill: textBackgroundColor,
@@ -3958,17 +4161,6 @@
3958
4161
  markArea: markArea
3959
4162
  };
3960
4163
  };
3961
- const isType_isType = (value, type)=>Object.prototype.toString.call(value) === `[object ${type}]`;
3962
- const isType = isType_isType;
3963
- const isArray_isArray = (value)=>Array.isArray ? Array.isArray(value) : isType(value, "Array");
3964
- const common_isArray = isArray_isArray;
3965
- const isValid = (value)=>null != value;
3966
- const common_isValid = isValid;
3967
- function array_array(arr) {
3968
- return common_isValid(arr) ? common_isArray(arr) ? arr : [
3969
- arr
3970
- ] : [];
3971
- }
3972
4164
  const isNumber = (value, fuzzy = !1)=>{
3973
4165
  const type = typeof value;
3974
4166
  return fuzzy ? "number" === type : "number" === type || isType(value, "Number");
@@ -4335,6 +4527,24 @@
4335
4527
  return this.formatHex();
4336
4528
  }
4337
4529
  }
4530
+ function clamper(a, b) {
4531
+ let t;
4532
+ return a > b && (t = a, a = b, b = t), (x)=>Math.max(a, Math.min(b, x));
4533
+ }
4534
+ const formatGradientStops = (stops)=>{
4535
+ const firstInvalidateIndex = stops.findIndex((stop)=>stop.offset < 0 || stop.offset > 1);
4536
+ if (firstInvalidateIndex >= 0) {
4537
+ if (stops[firstInvalidateIndex].offset > 1) {
4538
+ const newStops = stops.slice(0, firstInvalidateIndex + 1);
4539
+ newStops[newStops.length - 1].offset = 1;
4540
+ return newStops;
4541
+ }
4542
+ const newStops = stops.slice(firstInvalidateIndex + 1);
4543
+ newStops[0].offset = 0;
4544
+ return newStops;
4545
+ }
4546
+ return stops;
4547
+ };
4338
4548
  const splitLine = (spec, context)=>{
4339
4549
  const { advancedVSeed } = context;
4340
4550
  const { annotation, chartType, datasetReshapeInfo } = advancedVSeed;
@@ -4376,7 +4586,8 @@
4376
4586
  });
4377
4587
  });
4378
4588
  if (!points || !points.length) return;
4379
- const splitCoordinate = lineSeries.getYAxisHelper().getScale(0).scale(splitValue);
4589
+ const scale = lineSeries.getYAxisHelper().getScale(0);
4590
+ const splitCoordinate = scale.scale(splitValue);
4380
4591
  const minY = Math.min(...points.map((p)=>p.y));
4381
4592
  const maxY = Math.max(...points.map((p)=>p.y));
4382
4593
  const ratio = (splitCoordinate - minY) / (maxY - minY);
@@ -4386,7 +4597,7 @@
4386
4597
  x1: 0,
4387
4598
  y0: 0,
4388
4599
  y1: 1,
4389
- stops: [
4600
+ stops: formatGradientStops([
4390
4601
  {
4391
4602
  color: colorConfig.positiveColor,
4392
4603
  offset: 0
@@ -4403,7 +4614,7 @@
4403
4614
  color: colorConfig.negativeColor,
4404
4615
  offset: 1
4405
4616
  }
4406
- ]
4617
+ ])
4407
4618
  };
4408
4619
  const areaFill = {
4409
4620
  gradient: 'linear',
@@ -4411,7 +4622,7 @@
4411
4622
  x1: 0,
4412
4623
  y0: 0,
4413
4624
  y1: 1,
4414
- stops: [
4625
+ stops: formatGradientStops([
4415
4626
  {
4416
4627
  color: colorConfig.positiveColor,
4417
4628
  offset: 0
@@ -4428,7 +4639,7 @@
4428
4639
  color: colorConfig.negativeColor,
4429
4640
  offset: 1
4430
4641
  }
4431
- ]
4642
+ ])
4432
4643
  };
4433
4644
  const attrs = {
4434
4645
  segments: null,
@@ -4441,12 +4652,13 @@
4441
4652
  lineGraphics[0].setAttributes(attrs);
4442
4653
  lineGraphics[0].setFinalAttributes?.(attrs);
4443
4654
  const start = lineSeries.getRegion().getLayoutStartPoint();
4655
+ const range = scale.range();
4444
4656
  return {
4445
4657
  points: points.map((entry)=>({
4446
4658
  x: entry.x + start.x,
4447
4659
  y: entry.y + start.y
4448
4660
  })),
4449
- splitCoordinate,
4661
+ splitCoordinate: clamper(range[0], range[range.length - 1])(splitCoordinate) + start.y,
4450
4662
  areaFill,
4451
4663
  lineStroke
4452
4664
  };
@@ -4490,10 +4702,7 @@
4490
4702
  if (!seriesSpec.point.style) seriesSpec.point.style = {};
4491
4703
  if (!seriesSpec.line.style) seriesSpec.line.style = {};
4492
4704
  const measureValueKey = datasetReshapeInfo[0].foldInfo.measureValue;
4493
- seriesSpec.point.style.fill = (datum)=>{
4494
- console.log(datum);
4495
- return datum?.[measureValueKey] >= splitValue ? colorConfig.positiveColor : colorConfig.negativeColor;
4496
- };
4705
+ seriesSpec.point.style.fill = (datum)=>datum?.[measureValueKey] >= splitValue ? colorConfig.positiveColor : colorConfig.negativeColor;
4497
4706
  seriesSpec.line.style.stroke = (datum)=>datum?.[measureValueKey] >= splitValue ? colorConfig.positiveColor : colorConfig.negativeColor;
4498
4707
  if (seriesSpec.label && seriesSpec.label.visible && chunk_JK3VNB42_n(seriesSpec.label.style?.fill)) seriesSpec.label.style = {
4499
4708
  ...seriesSpec.label.style,
@@ -4544,14 +4753,13 @@
4544
4753
  };
4545
4754
  const pivotGridStyle = (spec, context)=>{
4546
4755
  const { vseed, advancedVSeed } = context;
4547
- const { config, chartType, dimensions } = advancedVSeed;
4756
+ const { config, chartType } = advancedVSeed;
4548
4757
  const themConfig = config?.[chartType]?.pivotGrid ?? {};
4549
4758
  const onlyCombination = !isPivot(vseed) && isCombination(vseed);
4550
4759
  const result = {
4551
4760
  ...spec
4552
4761
  };
4553
4762
  const transparent = 'rgba(0,0,0,0)';
4554
- const hasColumnDimension = dimensions.some((dim)=>'column' === dim.encoding);
4555
4763
  const borderColor = themConfig.borderColor ?? '#e3e5eb';
4556
4764
  const bodyFontColor = themConfig.bodyFontColor ?? '#141414';
4557
4765
  const headerFontColor = themConfig.headerFontColor ?? '#21252c';
@@ -4569,12 +4777,15 @@
4569
4777
  bodyStyle: {
4570
4778
  borderColor,
4571
4779
  color: bodyFontColor,
4572
- borderLineWidth: (arg)=>[
4780
+ borderLineWidth: (arg)=>{
4781
+ const noYAxis = 'pie' === chartType || 'rose' === chartType || 'donut' === chartType || 'funnel' === chartType || 'radar' === chartType || 'roseParallel' === chartType;
4782
+ return [
4573
4783
  0 === arg.row ? outlineBorderLineWidth : 1,
4574
4784
  outlineBorderLineWidth,
4575
4785
  0,
4576
- 0 === arg.col ? outlineBorderLineWidth : 1
4577
- ],
4786
+ 0 === arg.col || noYAxis && 1 === arg.col ? outlineBorderLineWidth : 1
4787
+ ];
4788
+ },
4578
4789
  bgColor: transparent,
4579
4790
  hover: {
4580
4791
  cellBgColor: 'transparent'
@@ -4604,7 +4815,7 @@
4604
4815
  color: headerFontColor,
4605
4816
  padding: [
4606
4817
  0,
4607
- 4,
4818
+ 12,
4608
4819
  0,
4609
4820
  4
4610
4821
  ],
@@ -4628,7 +4839,7 @@
4628
4839
  color: headerFontColor,
4629
4840
  padding: [
4630
4841
  0,
4631
- 4,
4842
+ 12,
4632
4843
  0,
4633
4844
  4
4634
4845
  ],
@@ -4649,23 +4860,6 @@
4649
4860
  inlineColumnBgColor: hoverHeaderInlineBackgroundColor || void 0
4650
4861
  }
4651
4862
  },
4652
- cornerRightTopCellStyle: {
4653
- borderColor,
4654
- borderLineWidth: 0,
4655
- frameStyle: {
4656
- borderColor,
4657
- borderLineWidth: [
4658
- outlineBorderLineWidth,
4659
- outlineBorderLineWidth,
4660
- 1,
4661
- 1
4662
- ]
4663
- },
4664
- bgColor: headerBackgroundColor,
4665
- hover: {
4666
- cellBgColor: hoverHeaderBackgroundColor
4667
- }
4668
- },
4669
4863
  cornerLeftBottomCellStyle: {
4670
4864
  borderColor,
4671
4865
  borderLineWidth: [
@@ -4688,24 +4882,19 @@
4688
4882
  cellBgColor: hoverHeaderBackgroundColor
4689
4883
  }
4690
4884
  },
4691
- cornerRightBottomCellStyle: {
4885
+ cornerRightTopCellStyle: {
4692
4886
  borderColor,
4693
- bgColor: headerBackgroundColor,
4694
4887
  borderLineWidth: [
4695
- 1,
4696
4888
  outlineBorderLineWidth,
4697
4889
  outlineBorderLineWidth,
4890
+ 1,
4698
4891
  1
4699
4892
  ],
4700
4893
  frameStyle: {
4701
4894
  borderColor,
4702
- borderLineWidth: [
4703
- 1,
4704
- outlineBorderLineWidth,
4705
- outlineBorderLineWidth,
4706
- 1
4707
- ]
4895
+ borderLineWidth: 0
4708
4896
  },
4897
+ bgColor: headerBackgroundColor,
4709
4898
  hover: {
4710
4899
  cellBgColor: hoverHeaderBackgroundColor
4711
4900
  }
@@ -4714,16 +4903,41 @@
4714
4903
  borderColor,
4715
4904
  bgColor: headerBackgroundColor,
4716
4905
  borderLineWidth: (arg)=>[
4717
- 0 === arg.row || hasColumnDimension && 1 === arg.row ? outlineBorderLineWidth : 1,
4906
+ 0 === arg.row ? outlineBorderLineWidth : 1,
4718
4907
  outlineBorderLineWidth,
4719
4908
  0,
4720
4909
  1
4721
4910
  ],
4911
+ frameStyle: {
4912
+ borderLineWidth: 0
4913
+ },
4722
4914
  hover: {
4723
4915
  borderLineWidth: 0,
4724
4916
  cellBgColor: hoverHeaderBackgroundColor
4725
4917
  }
4726
4918
  },
4919
+ cornerRightBottomCellStyle: {
4920
+ borderColor,
4921
+ bgColor: headerBackgroundColor,
4922
+ borderLineWidth: [
4923
+ 1,
4924
+ outlineBorderLineWidth,
4925
+ outlineBorderLineWidth,
4926
+ 1
4927
+ ],
4928
+ frameStyle: {
4929
+ borderColor,
4930
+ borderLineWidth: [
4931
+ 1,
4932
+ outlineBorderLineWidth,
4933
+ outlineBorderLineWidth,
4934
+ 1
4935
+ ]
4936
+ },
4937
+ hover: {
4938
+ cellBgColor: hoverHeaderBackgroundColor
4939
+ }
4940
+ },
4727
4941
  bottomFrozenStyle: {
4728
4942
  borderColor,
4729
4943
  borderLineWidth: [
@@ -4754,10 +4968,13 @@
4754
4968
  ...spec
4755
4969
  };
4756
4970
  const { advancedVSeed } = context;
4757
- const { measures, datasetReshapeInfo, dataset } = advancedVSeed;
4971
+ const { measures, datasetReshapeInfo, dataset, encoding } = advancedVSeed;
4758
4972
  const colorItems = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>d.unfoldInfo.colorItems));
4973
+ const allMeasureIds = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>Object.keys(d.foldInfo.foldMap || {})));
4759
4974
  const indicators = datasetReshapeInfo.map((reshapeInfo, index)=>{
4760
- const measure = measures?.find((d)=>d.id === reshapeInfo.id);
4975
+ const measureGroup = measures?.find((d)=>d.id === reshapeInfo.id);
4976
+ const subMeasuresId = (measureGroup?.children || []).map((d)=>d.id);
4977
+ const invalideMeasuresIds = allMeasureIds.filter((id)=>!subMeasuresId.includes(id));
4761
4978
  const newDataset = dataset[index];
4762
4979
  const newDatasetReshapeInfo = [
4763
4980
  {
@@ -4773,13 +4990,17 @@
4773
4990
  advancedVSeed: {
4774
4991
  ...advancedVSeed,
4775
4992
  datasetReshapeInfo: newDatasetReshapeInfo,
4993
+ encoding: Object.keys(encoding).reduce((res, key)=>{
4994
+ res[key] = encoding[key]?.filter((e)=>!invalideMeasuresIds.includes(e));
4995
+ return res;
4996
+ }, {}),
4776
4997
  dataset: newDataset
4777
4998
  }
4778
4999
  };
4779
5000
  const chartSpec = execPipeline(chartPipeline, newContext, {});
4780
5001
  return {
4781
5002
  indicatorKey: reshapeInfo.id,
4782
- title: measure?.alias,
5003
+ title: measureGroup?.alias,
4783
5004
  cellType: 'chart',
4784
5005
  chartModule: 'vchart',
4785
5006
  chartSpec: chartSpec,
@@ -4834,12 +5055,28 @@
4834
5055
  };
4835
5056
  const pivotAxisStyle = (axisStyle)=>(spec, context)=>{
4836
5057
  const result = axisStyle(spec, context);
4837
- if (result.axes) result.axes.forEach((axis)=>{
4838
- axis.domainLine = {
4839
- visible: false
4840
- };
4841
- if (axis.grid && axis.grid.visible && axis.grid.style) axis.grid.style.strokeOpacity = 0.3;
4842
- });
5058
+ if (result.axes) {
5059
+ const { advancedVSeed } = context;
5060
+ const { config, chartType } = advancedVSeed;
5061
+ const themConfig = config?.[chartType]?.pivotGrid ?? {};
5062
+ result.axes.forEach((axis)=>{
5063
+ axis.domainLine = {
5064
+ visible: false
5065
+ };
5066
+ if (themConfig.chartGridColor && axis.grid && axis.grid.visible && axis.grid.style) axis.grid.style.stroke = themConfig.chartGridColor;
5067
+ if (themConfig.axisLabelColor && axis.label && axis.label.visible && axis.label.style) axis.label.style.fill = themConfig.axisLabelColor;
5068
+ if ('band' === axis.type) {
5069
+ if ('left' === axis.orient || 'right' === axis.orient) axis.innerOffset = {
5070
+ top: 2,
5071
+ bottom: 2
5072
+ };
5073
+ else if ('top' === axis.orient || 'bottom' === axis.orient) axis.innerOffset = {
5074
+ left: 2,
5075
+ right: 2
5076
+ };
5077
+ }
5078
+ });
5079
+ }
4843
5080
  return result;
4844
5081
  };
4845
5082
  const pivotRowDimensions = (spec, context)=>{
@@ -4958,6 +5195,7 @@
4958
5195
  'br'
4959
5196
  ].includes(position) ? 'end' : 'middle';
4960
5197
  const legends = {
5198
+ padding: 0,
4961
5199
  visible: enable,
4962
5200
  type: 'discrete',
4963
5201
  orient,
@@ -4994,7 +5232,7 @@
4994
5232
  }
4995
5233
  },
4996
5234
  label: {
4997
- formatMethod: (value)=>colorIdMap[value] ?? value,
5235
+ formatMethod: (value)=>colorIdMap[value]?.alias ?? value,
4998
5236
  style: {
4999
5237
  fontSize: labelFontSize,
5000
5238
  fill: labelColor || labelFontColor,
@@ -5186,12 +5424,12 @@
5186
5424
  };
5187
5425
  };
5188
5426
  const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5189
- const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
5427
+ const onlyMeasureId = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureId);
5190
5428
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
5191
5429
  encoding.x = uniqueDimIds.slice(0, 1);
5192
- encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
5430
+ encoding.color = uniqueDimIds.slice(onlyMeasureId ? 0 : 1);
5193
5431
  encoding.detail = encoding.color;
5194
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
5432
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
5195
5433
  encoding.label = [];
5196
5434
  encoding.row = [];
5197
5435
  encoding.column = [];
@@ -5205,9 +5443,9 @@
5205
5443
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5206
5444
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
5207
5445
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
5208
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
5446
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
5209
5447
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
5210
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
5448
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
5211
5449
  };
5212
5450
  const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
5213
5451
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -5278,7 +5516,7 @@
5278
5516
  keys.forEach((key)=>{
5279
5517
  if (vseed[key]) {
5280
5518
  hasLine = true;
5281
- regressionLineConfig[key] = true === vseed[key] ? {} : vseed[key];
5519
+ regressionLineConfig[key] = vseed[key];
5282
5520
  }
5283
5521
  });
5284
5522
  return hasLine ? {
@@ -5292,7 +5530,7 @@
5292
5530
  initAdvancedVSeed_initAdvancedVSeed,
5293
5531
  default_defaultMeasures_defaultMeasures,
5294
5532
  defaultDimensions_defaultDimensions,
5295
- defaultMeasureName_defaultMeasureName,
5533
+ defaultMeasureId_defaultMeasureId,
5296
5534
  encodingAdapter([
5297
5535
  defaultEncodingForColumn,
5298
5536
  buildMeasures
@@ -5450,7 +5688,7 @@
5450
5688
  barStyle
5451
5689
  ];
5452
5690
  const customMap = barStyles.reduce((result, style, index)=>{
5453
- const { barBorderColor, barBorderStyle, barBorderWidth = 1, barColor, barColorOpacity, barRadius, barVisible = true } = style;
5691
+ const { barBorderColor, barBorderStyle, barBorderWidth = 1, barColor, barColorOpacity, barBorderOpacity, barRadius, barVisible = true } = style;
5454
5692
  const lineDash = 'dashed' === barBorderStyle ? [
5455
5693
  5,
5456
5694
  2
@@ -5474,12 +5712,10 @@
5474
5712
  fill: barColor,
5475
5713
  fillOpacity: barColorOpacity,
5476
5714
  cornerRadius: barRadius,
5477
- innerBorder: {
5478
- stroke: barBorderColor,
5479
- lineWidth: barBorderWidth,
5480
- distance: (barBorderWidth || 0) / 2,
5481
- lineDash: lineDash
5482
- }
5715
+ lineWidth: barBorderWidth,
5716
+ stroke: barBorderColor,
5717
+ strokeOpacity: barBorderOpacity,
5718
+ lineDash: lineDash
5483
5719
  }
5484
5720
  }
5485
5721
  };
@@ -5600,6 +5836,7 @@
5600
5836
  visible: true,
5601
5837
  text: text,
5602
5838
  style: {
5839
+ opacity: 0.95,
5603
5840
  dy: dy,
5604
5841
  textAlign: textAlign,
5605
5842
  textBaseline: textBaseline,
@@ -5613,6 +5850,7 @@
5613
5850
  visible: textBackgroundVisible,
5614
5851
  padding: textBackgroundPadding,
5615
5852
  style: {
5853
+ opacity: 0.95,
5616
5854
  dy: dy,
5617
5855
  cornerRadius: textBackgroundBorderRadius ?? 4,
5618
5856
  fill: textBackgroundColor,
@@ -5640,10 +5878,6 @@
5640
5878
  markArea: markArea
5641
5879
  };
5642
5880
  };
5643
- function clamper(a, b) {
5644
- let t;
5645
- return a > b && (t = a, a = b, b = t), (x)=>Math.max(a, Math.min(b, x));
5646
- }
5647
5881
  function invNorm(p) {
5648
5882
  if (p <= 0 || p >= 1) return 0;
5649
5883
  const c1 = -0.00778489400243029, c2 = -0.322396458041136, c3 = -2.40075827716184, c4 = -2.54973253934373, c5 = 4.37466414146497, c6 = 2.93816398269878, d1 = .00778469570904146, d2 = .32246712907004, d3 = 2.445134137143, d4 = 3.75440866190742;
@@ -6174,7 +6408,7 @@
6174
6408
  initAdvancedVSeed_initAdvancedVSeed,
6175
6409
  default_defaultMeasures_defaultMeasures,
6176
6410
  defaultDimensions_defaultDimensions,
6177
- defaultMeasureName_defaultMeasureName,
6411
+ defaultMeasureId_defaultMeasureId,
6178
6412
  encodingAdapter([
6179
6413
  defaultEncodingForColumn,
6180
6414
  buildMeasures
@@ -6255,7 +6489,7 @@
6255
6489
  ];
6256
6490
  if (!sameDimensionsMode) {
6257
6491
  result.xField.push(unfoldInfo.encodingDetail);
6258
- if (encoding.detail?.[0] === MeasureName && encoding.y?.length === 1) result.xField.pop();
6492
+ if (encoding.detail?.[0] === MeasureId && encoding.y?.length === 1) result.xField.pop();
6259
6493
  }
6260
6494
  result.yField = foldInfo.measureValue;
6261
6495
  result.seriesField = unfoldInfo.encodingColorId;
@@ -6339,7 +6573,7 @@
6339
6573
  initAdvancedVSeed_initAdvancedVSeed,
6340
6574
  default_defaultMeasures_defaultMeasures,
6341
6575
  defaultDimensions_defaultDimensions,
6342
- defaultMeasureName_defaultMeasureName,
6576
+ defaultMeasureId_defaultMeasureId,
6343
6577
  encodingAdapter([
6344
6578
  defaultEncodingForColumn,
6345
6579
  buildMeasures
@@ -6459,12 +6693,12 @@
6459
6693
  };
6460
6694
  };
6461
6695
  const bar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
6462
- const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
6696
+ const onlyMeasureId = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureId);
6463
6697
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
6464
6698
  encoding.y = uniqueDimIds.slice(0, 1);
6465
- encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
6699
+ encoding.color = uniqueDimIds.slice(onlyMeasureId ? 0 : 1);
6466
6700
  encoding.detail = encoding.color;
6467
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
6701
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
6468
6702
  encoding.label = [];
6469
6703
  encoding.row = [];
6470
6704
  encoding.column = [];
@@ -6478,9 +6712,9 @@
6478
6712
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
6479
6713
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
6480
6714
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
6481
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
6715
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
6482
6716
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
6483
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
6717
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
6484
6718
  };
6485
6719
  const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
6486
6720
  encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -6521,7 +6755,7 @@
6521
6755
  initAdvancedVSeed_initAdvancedVSeed,
6522
6756
  default_defaultMeasures_defaultMeasures,
6523
6757
  defaultDimensions_defaultDimensions,
6524
- defaultMeasureName_defaultMeasureName,
6758
+ defaultMeasureId_defaultMeasureId,
6525
6759
  encodingAdapter([
6526
6760
  defaultEncodingForBar,
6527
6761
  buildMeasures
@@ -6637,6 +6871,7 @@
6637
6871
  max,
6638
6872
  min,
6639
6873
  label: {
6874
+ space: 8,
6640
6875
  visible: label?.visible,
6641
6876
  formatMethod: (value)=>{
6642
6877
  if (isBarPercent(vseed) || isColumnPercent(vseed) || isAreaPercent(vseed)) return createLinearPercentFormat(value, autoFormat, numFormat, formatter, percentFormatter);
@@ -6682,7 +6917,7 @@
6682
6917
  }
6683
6918
  },
6684
6919
  innerOffset: {
6685
- right: 7
6920
+ right: 12
6686
6921
  }
6687
6922
  };
6688
6923
  result.axes = [
@@ -6877,7 +7112,7 @@
6877
7112
  initAdvancedVSeed_initAdvancedVSeed,
6878
7113
  default_defaultMeasures_defaultMeasures,
6879
7114
  defaultDimensions_defaultDimensions,
6880
- defaultMeasureName_defaultMeasureName,
7115
+ defaultMeasureId_defaultMeasureId,
6881
7116
  encodingAdapter([
6882
7117
  defaultEncodingForBar,
6883
7118
  buildMeasures
@@ -6918,7 +7153,7 @@
6918
7153
  ];
6919
7154
  if (!sameDimensionsMode) {
6920
7155
  result.yField.push(unfoldInfo.encodingDetail);
6921
- if (encoding.detail?.[0] === MeasureName && encoding.x?.length === 1) result.yField.pop();
7156
+ if (encoding.detail?.[0] === MeasureId && encoding.x?.length === 1) result.yField.pop();
6922
7157
  }
6923
7158
  result.xField = foldInfo.measureValue;
6924
7159
  result.seriesField = unfoldInfo.encodingColorId;
@@ -6991,7 +7226,7 @@
6991
7226
  initAdvancedVSeed_initAdvancedVSeed,
6992
7227
  default_defaultMeasures_defaultMeasures,
6993
7228
  defaultDimensions_defaultDimensions,
6994
- defaultMeasureName_defaultMeasureName,
7229
+ defaultMeasureId_defaultMeasureId,
6995
7230
  encodingAdapter([
6996
7231
  defaultEncodingForBar,
6997
7232
  buildMeasures
@@ -7078,7 +7313,7 @@
7078
7313
  initAdvancedVSeed_initAdvancedVSeed,
7079
7314
  default_defaultMeasures_defaultMeasures,
7080
7315
  defaultDimensions_defaultDimensions,
7081
- defaultMeasureName_defaultMeasureName,
7316
+ defaultMeasureId_defaultMeasureId,
7082
7317
  encodingAdapter([
7083
7318
  defaultEncodingForLine,
7084
7319
  buildMeasures
@@ -7275,7 +7510,7 @@
7275
7510
  initAdvancedVSeed_initAdvancedVSeed,
7276
7511
  default_defaultMeasures_defaultMeasures,
7277
7512
  defaultDimensions_defaultDimensions,
7278
- defaultMeasureName_defaultMeasureName,
7513
+ defaultMeasureId_defaultMeasureId,
7279
7514
  encodingAdapter([
7280
7515
  defaultEncodingForLine,
7281
7516
  buildMeasures
@@ -7390,10 +7625,10 @@
7390
7625
  };
7391
7626
  };
7392
7627
  const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7393
- const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
7394
- const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureName.map((d)=>d.id));
7628
+ const dimensionsWithoutMeasureId = dimensions.filter((item)=>item.id !== MeasureId);
7629
+ const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureId.map((d)=>d.id));
7395
7630
  encoding.detail = encoding.color;
7396
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7631
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
7397
7632
  encoding.label = [];
7398
7633
  encoding.row = [];
7399
7634
  encoding.column = [];
@@ -7402,12 +7637,12 @@
7402
7637
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7403
7638
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7404
7639
  if (0 === encoding.detail.length) encoding.detail = [
7405
- MeasureName
7640
+ MeasureId
7406
7641
  ];
7407
7642
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
7408
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7643
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
7409
7644
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
7410
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
7645
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
7411
7646
  };
7412
7647
  const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
7413
7648
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -7619,6 +7854,7 @@
7619
7854
  const { vseed } = context;
7620
7855
  const { dataset } = vseed;
7621
7856
  const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
7857
+ const allMeasures = findAllMeasures(measures);
7622
7858
  const measureGroups = [];
7623
7859
  const depth = measureDepth(measures);
7624
7860
  if (3 === depth) measures.forEach((measure)=>{
@@ -7638,7 +7874,8 @@
7638
7874
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
7639
7875
  foldMeasureValue: `${FoldXMeasureValue}${index}`,
7640
7876
  colorItemAsId: true,
7641
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
7877
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
7878
+ omitIds: allMeasures.map((item)=>item.id)
7642
7879
  });
7643
7880
  datasets.push(newDataset);
7644
7881
  foldInfoList.push(foldInfo);
@@ -7648,7 +7885,8 @@
7648
7885
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, yMeasures.children, encoding, {
7649
7886
  foldMeasureValue: `${FoldYMeasureValue}${index}`,
7650
7887
  colorItemAsId: true,
7651
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
7888
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
7889
+ omitIds: allMeasures.map((item)=>item.id)
7652
7890
  });
7653
7891
  datasets.push(newDataset);
7654
7892
  foldInfoList.push(foldInfo);
@@ -7685,7 +7923,7 @@
7685
7923
  initAdvancedVSeed_initAdvancedVSeed,
7686
7924
  default_defaultMeasures_defaultMeasures,
7687
7925
  defaultDimensions_defaultDimensions,
7688
- defaultMeasureName_defaultMeasureName,
7926
+ defaultMeasureId_defaultMeasureId,
7689
7927
  encodingAdapter([
7690
7928
  defaultEncodingForScatter,
7691
7929
  buildMeasuresForScatter
@@ -7791,6 +8029,7 @@
7791
8029
  const { enable } = tooltip;
7792
8030
  const { foldInfoList } = datasetReshapeInfo[0];
7793
8031
  result.tooltip = {
8032
+ style: getTooltipStyle(tooltip),
7794
8033
  visible: enable,
7795
8034
  mark: {
7796
8035
  title: {
@@ -8379,12 +8618,12 @@
8379
8618
  };
8380
8619
  };
8381
8620
  const dualAxis_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
8382
- const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
8621
+ const onlyMeasureId = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureId);
8383
8622
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
8384
8623
  encoding.x = uniqueDimIds.slice(0, 1);
8385
- encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
8624
+ encoding.color = uniqueDimIds.slice(onlyMeasureId ? 0 : 1);
8386
8625
  encoding.detail = encoding.color;
8387
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
8626
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
8388
8627
  encoding.label = [];
8389
8628
  encoding.row = [];
8390
8629
  encoding.column = [];
@@ -8398,9 +8637,9 @@
8398
8637
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
8399
8638
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
8400
8639
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
8401
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
8640
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
8402
8641
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
8403
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
8642
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
8404
8643
  };
8405
8644
  const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
8406
8645
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -8579,6 +8818,7 @@
8579
8818
  const { vseed } = context;
8580
8819
  const { dataset } = vseed;
8581
8820
  const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
8821
+ const allMeasures = findAllMeasures(measures);
8582
8822
  const datasetList = [];
8583
8823
  const datasetReshapeInfo = [];
8584
8824
  const measureGroups = [];
@@ -8598,7 +8838,8 @@
8598
8838
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(primaryMeasures.children, (item)=>item.id), encoding, {
8599
8839
  colorItemAsId: false,
8600
8840
  foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
8601
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
8841
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8842
+ omitIds: allMeasures.map((item)=>item.id)
8602
8843
  });
8603
8844
  datasets.push(newDataset);
8604
8845
  foldInfoList.push(foldInfo);
@@ -8608,7 +8849,8 @@
8608
8849
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(secondaryMeasures.children, (item)=>item.id), encoding, {
8609
8850
  colorItemAsId: false,
8610
8851
  foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,
8611
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
8852
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8853
+ omitIds: allMeasures.map((item)=>item.id)
8612
8854
  });
8613
8855
  datasets.push(newDataset);
8614
8856
  foldInfoList.push(foldInfo);
@@ -8674,7 +8916,7 @@
8674
8916
  initAdvancedVSeed_initAdvancedVSeed,
8675
8917
  default_defaultMeasures_defaultMeasures,
8676
8918
  defaultDimensions_defaultDimensions,
8677
- defaultMeasureName_defaultMeasureName,
8919
+ defaultMeasureId_defaultMeasureId,
8678
8920
  encodingAdapter([
8679
8921
  defaultEncodingForDualAxis,
8680
8922
  buildMeasuresForDualAxis
@@ -9015,6 +9257,7 @@
9015
9257
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
9016
9258
  const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
9017
9259
  result.tooltip = {
9260
+ style: getTooltipStyle(tooltip),
9018
9261
  visible: enable,
9019
9262
  mark: {
9020
9263
  title: {
@@ -9098,6 +9341,7 @@
9098
9341
  max,
9099
9342
  min,
9100
9343
  label: {
9344
+ space: 8,
9101
9345
  visible: label?.visible,
9102
9346
  formatMethod: (value)=>createLinearFormat(value, autoFormat, numFormat, formatter),
9103
9347
  style: {
@@ -9140,7 +9384,7 @@
9140
9384
  }
9141
9385
  },
9142
9386
  innerOffset: {
9143
- top: 7
9387
+ top: 12
9144
9388
  }
9145
9389
  };
9146
9390
  result.axes = [
@@ -9191,6 +9435,7 @@
9191
9435
  max,
9192
9436
  min,
9193
9437
  label: {
9438
+ space: 8,
9194
9439
  visible: label?.visible,
9195
9440
  formatMethod: (value)=>createLinearFormat(value, autoFormat, numFormat, formatter),
9196
9441
  style: {
@@ -9233,7 +9478,7 @@
9233
9478
  }
9234
9479
  },
9235
9480
  innerOffset: {
9236
- top: 7
9481
+ top: 12
9237
9482
  }
9238
9483
  };
9239
9484
  result.axes = [
@@ -9407,7 +9652,7 @@
9407
9652
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
9408
9653
  encoding.color = uniqueDimIds.slice(0);
9409
9654
  encoding.detail = encoding.color;
9410
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
9655
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
9411
9656
  encoding.label = [];
9412
9657
  encoding.row = [];
9413
9658
  encoding.column = [];
@@ -9416,12 +9661,12 @@
9416
9661
  addColorToEncoding(dimensions, encoding, isMultiMeasure);
9417
9662
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
9418
9663
  if (0 === encoding.detail.length) encoding.detail = [
9419
- MeasureName
9664
+ MeasureId
9420
9665
  ];
9421
9666
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
9422
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
9667
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
9423
9668
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
9424
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
9669
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
9425
9670
  };
9426
9671
  const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
9427
9672
  encoding.angle = chunk_QJLMYOTX_i(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -9446,7 +9691,7 @@
9446
9691
  initAdvancedVSeed_initAdvancedVSeed,
9447
9692
  default_defaultMeasures_defaultMeasures,
9448
9693
  defaultDimensions_defaultDimensions,
9449
- defaultMeasureName_defaultMeasureName,
9694
+ defaultMeasureId_defaultMeasureId,
9450
9695
  encodingAdapter([
9451
9696
  defaultEncodingForPie,
9452
9697
  buildMeasures
@@ -9607,7 +9852,7 @@
9607
9852
  initAdvancedVSeed_initAdvancedVSeed,
9608
9853
  default_defaultMeasures_defaultMeasures,
9609
9854
  defaultDimensions_defaultDimensions,
9610
- defaultMeasureName_defaultMeasureName,
9855
+ defaultMeasureId_defaultMeasureId,
9611
9856
  encodingAdapter([
9612
9857
  defaultEncodingForPie,
9613
9858
  buildMeasures
@@ -9726,12 +9971,12 @@
9726
9971
  };
9727
9972
  };
9728
9973
  const rose_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
9729
- const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
9974
+ const onlyMeasureId = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureId);
9730
9975
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
9731
9976
  encoding.angle = uniqueDimIds.slice(0, 1);
9732
- encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
9977
+ encoding.color = uniqueDimIds.slice(onlyMeasureId ? 0 : 1);
9733
9978
  encoding.detail = encoding.color;
9734
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
9979
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
9735
9980
  encoding.label = [];
9736
9981
  encoding.row = [];
9737
9982
  encoding.column = [];
@@ -9745,9 +9990,9 @@
9745
9990
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
9746
9991
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
9747
9992
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
9748
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
9993
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
9749
9994
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
9750
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
9995
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
9751
9996
  };
9752
9997
  const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
9753
9998
  encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -9772,7 +10017,7 @@
9772
10017
  initAdvancedVSeed_initAdvancedVSeed,
9773
10018
  default_defaultMeasures_defaultMeasures,
9774
10019
  defaultDimensions_defaultDimensions,
9775
- defaultMeasureName_defaultMeasureName,
10020
+ defaultMeasureId_defaultMeasureId,
9776
10021
  encodingAdapter([
9777
10022
  defaultEncodingForRose,
9778
10023
  buildMeasures
@@ -9925,7 +10170,7 @@
9925
10170
  initAdvancedVSeed_initAdvancedVSeed,
9926
10171
  default_defaultMeasures_defaultMeasures,
9927
10172
  defaultDimensions_defaultDimensions,
9928
- defaultMeasureName_defaultMeasureName,
10173
+ defaultMeasureId_defaultMeasureId,
9929
10174
  encodingAdapter([
9930
10175
  defaultEncodingForRose,
9931
10176
  buildMeasures
@@ -9963,7 +10208,7 @@
9963
10208
  ];
9964
10209
  if (!sameDimensionsMode) {
9965
10210
  result.angleField.push(unfoldInfo.encodingDetail);
9966
- if (encoding.detail?.[0] === MeasureName && encoding.radius?.length === 1) result.angleField.pop();
10211
+ if (encoding.detail?.[0] === MeasureId && encoding.radius?.length === 1) result.angleField.pop();
9967
10212
  }
9968
10213
  result.valueField = foldInfo.measureValue;
9969
10214
  result.seriesField = unfoldInfo.encodingColorId;
@@ -10076,7 +10321,7 @@
10076
10321
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
10077
10322
  encoding.angle = uniqueDimIds.slice(0, 1);
10078
10323
  encoding.color = uniqueDimIds.slice(1);
10079
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
10324
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
10080
10325
  encoding.detail = [];
10081
10326
  encoding.label = [];
10082
10327
  encoding.row = [];
@@ -10090,12 +10335,12 @@
10090
10335
  addColorToEncoding(dimensions, encoding, isMultiMeasure);
10091
10336
  encoding.detail = [];
10092
10337
  if (0 === encoding.detail.length) encoding.detail = [
10093
- MeasureName
10338
+ MeasureId
10094
10339
  ];
10095
10340
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
10096
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
10341
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
10097
10342
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
10098
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
10343
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
10099
10344
  };
10100
10345
  const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
10101
10346
  encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -10120,7 +10365,7 @@
10120
10365
  initAdvancedVSeed_initAdvancedVSeed,
10121
10366
  default_defaultMeasures_defaultMeasures,
10122
10367
  defaultDimensions_defaultDimensions,
10123
- defaultMeasureName_defaultMeasureName,
10368
+ defaultMeasureId_defaultMeasureId,
10124
10369
  encodingAdapter([
10125
10370
  defaultEncodingForRadar,
10126
10371
  buildMeasures
@@ -10294,7 +10539,7 @@
10294
10539
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
10295
10540
  encoding.color = uniqueDimIds.slice(0);
10296
10541
  encoding.detail = encoding.color;
10297
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
10542
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
10298
10543
  encoding.label = [];
10299
10544
  encoding.row = [];
10300
10545
  encoding.column = [];
@@ -10303,12 +10548,12 @@
10303
10548
  addColorToEncoding(dimensions, encoding, isMultiMeasure);
10304
10549
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
10305
10550
  if (0 === encoding.detail.length) encoding.detail = [
10306
- MeasureName
10551
+ MeasureId
10307
10552
  ];
10308
10553
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
10309
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
10554
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
10310
10555
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
10311
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
10556
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
10312
10557
  };
10313
10558
  const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
10314
10559
  encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -10335,7 +10580,7 @@
10335
10580
  initAdvancedVSeed_initAdvancedVSeed,
10336
10581
  default_defaultMeasures_defaultMeasures,
10337
10582
  defaultDimensions_defaultDimensions,
10338
- defaultMeasureName_defaultMeasureName,
10583
+ defaultMeasureId_defaultMeasureId,
10339
10584
  encodingAdapter([
10340
10585
  defaultEncodingForFunnel,
10341
10586
  buildMeasures
@@ -10508,13 +10753,13 @@
10508
10753
  };
10509
10754
  };
10510
10755
  const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
10511
- const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
10756
+ const onlyMeasureId = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureId);
10512
10757
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
10513
10758
  encoding.x = uniqueDimIds.slice(0, 1);
10514
- encoding.y = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
10515
- encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
10759
+ encoding.y = uniqueDimIds.slice(onlyMeasureId ? 0 : 1);
10760
+ encoding.color = uniqueDimIds.slice(onlyMeasureId ? 0 : 1);
10516
10761
  encoding.detail = encoding.color;
10517
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
10762
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
10518
10763
  encoding.label = [];
10519
10764
  encoding.row = [];
10520
10765
  encoding.column = [];
@@ -10531,9 +10776,9 @@
10531
10776
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
10532
10777
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
10533
10778
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
10534
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
10779
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
10535
10780
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
10536
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
10781
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
10537
10782
  };
10538
10783
  const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
10539
10784
  const colorDims = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -10562,7 +10807,7 @@
10562
10807
  initAdvancedVSeed_initAdvancedVSeed,
10563
10808
  default_defaultMeasures_defaultMeasures,
10564
10809
  defaultDimensions_defaultDimensions,
10565
- defaultMeasureName_defaultMeasureName,
10810
+ defaultMeasureId_defaultMeasureId,
10566
10811
  encodingAdapter([
10567
10812
  defaultEncodingForHeatmap,
10568
10813
  buildMeasures
@@ -10613,7 +10858,7 @@
10613
10858
  }
10614
10859
  return result;
10615
10860
  };
10616
- const cellStyle = (spec, context)=>{
10861
+ const markStyle_cellStyle_cellStyle = (spec, context)=>{
10617
10862
  const result = {
10618
10863
  ...spec,
10619
10864
  cell: {
@@ -10648,6 +10893,7 @@
10648
10893
  const { enable } = tooltip;
10649
10894
  const { foldInfo } = datasetReshapeInfo[0];
10650
10895
  result.tooltip = {
10896
+ style: getTooltipStyle(tooltip),
10651
10897
  visible: enable,
10652
10898
  mark: {
10653
10899
  title: {
@@ -10765,7 +11011,7 @@
10765
11011
  colorAdapter(color_color, linearColor),
10766
11012
  label_label,
10767
11013
  colorAdapter(discreteLegend, heatmapColorLegend),
10768
- colorCellStyleFill(cellStyle),
11014
+ colorCellStyleFill(markStyle_cellStyle_cellStyle),
10769
11015
  tooltipHeatmap,
10770
11016
  annotationPoint_annotationPoint,
10771
11017
  annotationVerticalLine_annotationVerticalLine,
@@ -10784,7 +11030,7 @@
10784
11030
  colorAdapter(color_color, linearColor),
10785
11031
  label_label,
10786
11032
  tooltipHeatmap,
10787
- colorCellStyleFill(cellStyle),
11033
+ colorCellStyleFill(markStyle_cellStyle_cellStyle),
10788
11034
  annotationPoint_annotationPoint,
10789
11035
  annotationVerticalLine_annotationVerticalLine,
10790
11036
  annotationHorizontalLine_annotationHorizontalLine,
@@ -10849,18 +11095,18 @@
10849
11095
  else boxplot_generateDefaultDimensionEncoding(dimensions, encoding);
10850
11096
  if (hasMeasureEncoding) boxplot_generateMeasureEncoding(measures, encoding);
10851
11097
  else boxplot_generateDefaultMeasureEncoding(measures, encoding);
10852
- if ((!encoding.value || encoding.value.length <= 1) && encoding.color && encoding.color.length > 1) encoding.color = encoding.color.filter((c)=>c !== MeasureName);
11098
+ if ((!encoding.value || encoding.value.length <= 1) && encoding.color && encoding.color.length > 1) encoding.color = encoding.color.filter((c)=>c !== MeasureId);
10853
11099
  return {
10854
11100
  ...advancedVSeed,
10855
11101
  encoding
10856
11102
  };
10857
11103
  };
10858
11104
  const boxplot_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
10859
- const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
11105
+ const onlyMeasureId = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureId);
10860
11106
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
10861
11107
  encoding.x = uniqueDimIds.slice(0, 1);
10862
- encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
10863
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
11108
+ encoding.color = uniqueDimIds.slice(onlyMeasureId ? 0 : 1);
11109
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
10864
11110
  encoding.label = [];
10865
11111
  encoding.row = [];
10866
11112
  encoding.column = [];
@@ -10872,9 +11118,9 @@
10872
11118
  ];
10873
11119
  addColorToEncoding(dimensions, encoding, isMultiMeasure);
10874
11120
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
10875
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
11121
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
10876
11122
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
10877
- encoding.label = encoding.label.filter((d)=>d !== MeasureName);
11123
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
10878
11124
  };
10879
11125
  const boxplot_generateDefaultMeasureEncoding = (measures, encoding)=>{
10880
11126
  encoding.value = chunk_QJLMYOTX_i(measures.filter((item)=>'value' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -11138,7 +11384,7 @@
11138
11384
  initAdvancedVSeed_initAdvancedVSeed,
11139
11385
  default_defaultMeasures_defaultMeasures,
11140
11386
  defaultDimensions_defaultDimensions,
11141
- defaultMeasureName_defaultMeasureName,
11387
+ defaultMeasureId_defaultMeasureId,
11142
11388
  boxplotConfig,
11143
11389
  encodingAdapter([
11144
11390
  defaultEncodingForBoxplot,
@@ -11184,7 +11430,7 @@
11184
11430
  const sameDimensionsMode = chunk_HGKLN5KY_k(encoding.x, encoding.color);
11185
11431
  if (!sameDimensionsMode) {
11186
11432
  result.xField.push(unfoldInfo.encodingColor);
11187
- if (encoding.color?.[0] === MeasureName && encoding.value?.length === 1) result.xField.pop();
11433
+ if (encoding.color?.[0] === MeasureId && encoding.value?.length === 1) result.xField.pop();
11188
11434
  }
11189
11435
  result.padding = 0;
11190
11436
  result.region = [
@@ -11233,6 +11479,7 @@
11233
11479
  const defaultFormatter = valueMeasure ? createFormatterByMeasure(valueMeasure) : (v)=>v;
11234
11480
  result.tooltip = {
11235
11481
  visible: enable,
11482
+ style: getTooltipStyle(tooltip),
11236
11483
  mark: {
11237
11484
  title: {
11238
11485
  visible: false
@@ -11360,6 +11607,7 @@
11360
11607
  const result = {
11361
11608
  ...advancedVSeed
11362
11609
  };
11610
+ const hasColorEncoding = (advancedVSeed?.dimensions || []).find((field)=>field?.encoding === 'color');
11363
11611
  const pickedConfig = chunk_2T7K3PFL_i(vseed, [
11364
11612
  'backgroundColor',
11365
11613
  'color',
@@ -11373,7 +11621,14 @@
11373
11621
  'binStep',
11374
11622
  'binValueType'
11375
11623
  ]);
11376
- const config = replaceNullToUndefined(pickedConfig);
11624
+ let config = replaceNullToUndefined(pickedConfig);
11625
+ if (!hasColorEncoding && !config?.legend?.enable) config = {
11626
+ ...config,
11627
+ legend: {
11628
+ ...config?.legend,
11629
+ enable: false
11630
+ }
11631
+ };
11377
11632
  result.config = {
11378
11633
  ...result.config || {},
11379
11634
  [chartType]: {
@@ -11382,6 +11637,30 @@
11382
11637
  };
11383
11638
  return result;
11384
11639
  };
11640
+ const histogramXAxisConfig = (advancedVSeed, context)=>{
11641
+ const { vseed } = context;
11642
+ const { chartType } = vseed;
11643
+ const result = {
11644
+ ...advancedVSeed
11645
+ };
11646
+ const { dataset = [] } = advancedVSeed;
11647
+ const flattenDatasert = dataset.flat();
11648
+ const minValue = Math.min(...flattenDatasert.map((v)=>+v[BinStartMeasureId]));
11649
+ const maxValue = Math.max(...flattenDatasert.map((v)=>+v[BinEndMeasureId]));
11650
+ const chartConfig = result.config?.[chartType];
11651
+ result.config = {
11652
+ ...result.config || {},
11653
+ [chartType]: {
11654
+ ...chartConfig,
11655
+ xAxis: {
11656
+ min: Number.isNaN(minValue) ? void 0 : minValue,
11657
+ max: Number.isNaN(maxValue) ? void 0 : maxValue,
11658
+ ...chartConfig?.xAxis || {}
11659
+ }
11660
+ }
11661
+ };
11662
+ return result;
11663
+ };
11385
11664
  const defaultEncodingForHistogram = (advancedVSeed)=>{
11386
11665
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
11387
11666
  const measures = findAllMeasures(vseedMeasures);
@@ -11409,10 +11688,10 @@
11409
11688
  };
11410
11689
  };
11411
11690
  const histogram_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
11412
- const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
11413
- const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureName.map((d)=>d.id));
11691
+ const dimensionsWithoutMeasureId = dimensions.filter((item)=>item.id !== MeasureId);
11692
+ const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureId.map((d)=>d.id));
11414
11693
  encoding.detail = encoding.color;
11415
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
11694
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
11416
11695
  encoding.label = [];
11417
11696
  encoding.row = [];
11418
11697
  encoding.column = [];
@@ -11422,9 +11701,9 @@
11422
11701
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
11423
11702
  if (encoding.detail?.length === 0) encoding.detail = encoding.color;
11424
11703
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
11425
- encoding.tooltip = encoding.tooltip?.filter((d)=>d !== MeasureName);
11704
+ encoding.tooltip = encoding.tooltip?.filter((d)=>d !== MeasureId);
11426
11705
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
11427
- encoding.label = encoding.label?.filter((d)=>d !== MeasureName);
11706
+ encoding.label = encoding.label?.filter((d)=>d !== MeasureId);
11428
11707
  };
11429
11708
  const histogram_generateDefaultMeasureEncoding = (measures, encoding)=>{
11430
11709
  encoding.value = chunk_QJLMYOTX_i(measures.filter((item)=>'value' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -11473,17 +11752,17 @@
11473
11752
  let startMin = min;
11474
11753
  for(options.extent || (startMin = Math.floor(min / stepSize) * stepSize), thresholds = [
11475
11754
  startMin
11476
- ]; startMin < max;)startMin += stepSize, thresholds.push(startMin);
11755
+ ]; startMin <= max;)startMin += stepSize, thresholds.push(startMin);
11477
11756
  } else {
11478
11757
  const bins = options.bins && options.bins > 0 ? Math.floor(options.bins) : 10;
11479
11758
  if (max - min > 1) {
11480
11759
  const start = Math.floor(min), stepSizeInt = Math.ceil((max - start) / bins);
11481
11760
  thresholds = new Array(bins + 1);
11482
- for(let i = 0; i <= bins; i++)thresholds[i] = i === bins ? max : start + stepSizeInt * i;
11761
+ for(let i = 0; i <= bins; i++)thresholds[i] = start + stepSizeInt * i;
11483
11762
  } else {
11484
11763
  const stepSize = (max - min) / bins;
11485
11764
  thresholds = new Array(bins + 1);
11486
- for(let i = 0; i <= bins; i++)thresholds[i] = i === bins ? max : min + stepSize * i;
11765
+ for(let i = 0; i <= bins; i++)thresholds[i] = min + stepSize * i;
11487
11766
  }
11488
11767
  }
11489
11768
  const numBins = Math.max(0, thresholds.length - 1);
@@ -11564,7 +11843,20 @@
11564
11843
  const binStep = chartConfig?.binStep;
11565
11844
  const binValueType = chartConfig?.binValueType;
11566
11845
  let newDatasets = [];
11567
- let foldInfo = {};
11846
+ let foldInfo = {
11847
+ foldMap: {},
11848
+ measureId: FoldMeasureId,
11849
+ measureName: FoldMeasureName,
11850
+ measureValue: FoldMeasureValue,
11851
+ statistics: {
11852
+ max: -1 / 0,
11853
+ min: 1 / 0,
11854
+ sum: 0,
11855
+ count: 0,
11856
+ colorMin: 1 / 0,
11857
+ colorMax: -1 / 0
11858
+ }
11859
+ };
11568
11860
  let unfoldInfo = {};
11569
11861
  const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
11570
11862
  const allMeasures = findAllMeasures(measures);
@@ -11589,8 +11881,15 @@
11589
11881
  binData.forEach((datum)=>{
11590
11882
  datum[FoldMeasureId] = valueField;
11591
11883
  datum[FoldMeasureName] = m?.alias ?? valueField;
11592
- datum[FoldMeasureValue] = 'percentage' === binValueType ? datum[BinPercentageMeasureId] : datum[BinCountMeasureId];
11884
+ const valueNumber = 'percentage' === binValueType ? +datum[BinPercentageMeasureId] : +datum[BinCountMeasureId];
11885
+ datum[FoldMeasureValue] = valueNumber;
11886
+ datum[valueField] = valueNumber;
11887
+ foldInfo.statistics.min = Math.min(foldInfo.statistics.min, valueNumber);
11888
+ foldInfo.statistics.max = Math.max(foldInfo.statistics.max, valueNumber);
11889
+ foldInfo.statistics.sum += valueNumber;
11890
+ foldInfo.statistics.count++;
11593
11891
  });
11892
+ if (m?.id) foldInfo.foldMap[m?.id] = m?.alias;
11594
11893
  const res = unfoldDimensions(binData, uniqDims, encoding, {
11595
11894
  foldMeasureId: FoldMeasureId,
11596
11895
  separator: "-",
@@ -11608,7 +11907,6 @@
11608
11907
  res.dataset.forEach((datum)=>{
11609
11908
  datum[BinStartMeasureId] = datum[encoding.x0[0]];
11610
11909
  datum[BinEndMeasureId] = datum[encoding.x1[0]];
11611
- datum[FoldMeasureId] = datum[encoding.y[0]];
11612
11910
  });
11613
11911
  newDatasets = res.dataset;
11614
11912
  foldInfo = res.foldInfo;
@@ -11654,7 +11952,20 @@
11654
11952
  if (!subMeasures) return;
11655
11953
  const groupId = measureGroup.id;
11656
11954
  let newDatasets = [];
11657
- let foldInfo = {};
11955
+ let foldInfo = {
11956
+ foldMap: {},
11957
+ measureId: FoldMeasureId,
11958
+ measureName: FoldMeasureName,
11959
+ measureValue: FoldMeasureValue,
11960
+ statistics: {
11961
+ max: -1 / 0,
11962
+ min: 1 / 0,
11963
+ sum: 0,
11964
+ count: 0,
11965
+ colorMin: 1 / 0,
11966
+ colorMax: -1 / 0
11967
+ }
11968
+ };
11658
11969
  let unfoldInfo = {};
11659
11970
  if (encoding.value?.length) {
11660
11971
  const valueField = encoding.value[0];
@@ -11678,8 +11989,15 @@
11678
11989
  binData.forEach((datum)=>{
11679
11990
  datum[FoldMeasureId] = valueField;
11680
11991
  datum[FoldMeasureName] = m?.alias ?? valueField;
11681
- datum[FoldMeasureValue] = 'percentage' === binValueType ? datum[BinPercentageMeasureId] : datum[BinCountMeasureId];
11992
+ const valueNumber = 'percentage' === binValueType ? +datum[BinPercentageMeasureId] : +datum[BinCountMeasureId];
11993
+ datum[FoldMeasureValue] = valueNumber;
11994
+ datum[valueField] = valueNumber;
11995
+ foldInfo.statistics.min = Math.min(foldInfo.statistics.min, valueNumber);
11996
+ foldInfo.statistics.max = Math.max(foldInfo.statistics.max, valueNumber);
11997
+ foldInfo.statistics.sum += valueNumber;
11998
+ foldInfo.statistics.count++;
11682
11999
  });
12000
+ if (m?.id) foldInfo.foldMap[m?.id] = m?.alias;
11683
12001
  const res = unfoldDimensions(binData, uniqDims, encoding, {
11684
12002
  foldMeasureId: FoldMeasureId,
11685
12003
  separator: "-",
@@ -11722,7 +12040,7 @@
11722
12040
  initAdvancedVSeed_initAdvancedVSeed,
11723
12041
  default_defaultMeasures_defaultMeasures,
11724
12042
  defaultDimensions_defaultDimensions,
11725
- defaultMeasureName_defaultMeasureName,
12043
+ defaultMeasureId_defaultMeasureId,
11726
12044
  histogramConfig,
11727
12045
  encodingAdapter([
11728
12046
  defaultEncodingForHistogram,
@@ -11742,6 +12060,7 @@
11742
12060
  ], [
11743
12061
  pivotReshapeWithHistogramEncoding
11744
12062
  ]),
12063
+ histogramXAxisConfig,
11745
12064
  sortLegend_sortLegend,
11746
12065
  theme_theme,
11747
12066
  markStyle_markStyle,
@@ -11762,6 +12081,10 @@
11762
12081
  clip: true
11763
12082
  }
11764
12083
  ];
12084
+ result.legends = {
12085
+ visible: false
12086
+ };
12087
+ result.barGap = 2;
11765
12088
  result.animation = true;
11766
12089
  return result;
11767
12090
  };
@@ -11792,6 +12115,7 @@
11792
12115
  } } = baseConfig;
11793
12116
  const { enable } = tooltip;
11794
12117
  result.tooltip = {
12118
+ style: getTooltipStyle(tooltip),
11795
12119
  visible: enable,
11796
12120
  mark: {
11797
12121
  title: {
@@ -11959,7 +12283,7 @@
11959
12283
  const lineTheme = advancedVSeed.config[chartType]?.regressionLine;
11960
12284
  if (!regressionLine || !regressionLine.kdeRegressionLine) return result;
11961
12285
  const rowColumnFields = T(dimensions.filter((dim)=>'row' === dim.encoding || 'column' === dim.encoding), (item)=>item.id);
11962
- const lineList = array_array(regressionLine.kdeRegressionLine);
12286
+ const lineList = array_array(regressionLine.kdeRegressionLine).filter((kdeLine)=>false !== kdeLine.enable);
11963
12287
  if (!result.customMark) result.customMark = [];
11964
12288
  lineList.forEach((line, lineIndex)=>{
11965
12289
  const theme = lineTheme.kdeRegressionLine ?? {};
@@ -12095,7 +12419,7 @@
12095
12419
  const lineTheme = advancedVSeed.config[chartType]?.regressionLine;
12096
12420
  if (!regressionLine || !regressionLine.ecdfRegressionLine) return result;
12097
12421
  const rowColumnFields = T(dimensions.filter((dim)=>'row' === dim.encoding || 'column' === dim.encoding), (item)=>item.id);
12098
- const lineList = array_array(regressionLine.ecdfRegressionLine);
12422
+ const lineList = array_array(regressionLine.ecdfRegressionLine).filter((ecdfLine)=>false !== ecdfLine.enable);
12099
12423
  if (!result.customMark) result.customMark = [];
12100
12424
  lineList.forEach((line, lineIndex)=>{
12101
12425
  const theme = lineTheme?.ecdfRegressionLine ?? {};
@@ -12375,10 +12699,42 @@
12375
12699
  titleFontSize: tableConfig.headerFontSize,
12376
12700
  titleFontWeight: 'bold'
12377
12701
  });
12378
- const getLightPivotChartGridConfig = ()=>pickPivotChartGridConfig(getLightTableConfig());
12379
- const getDarkPivotChartGridConfig = ()=>pickPivotChartGridConfig(getDarkTableConfig());
12702
+ const getLightPivotChartGridConfig = ()=>{
12703
+ const res = pickPivotChartGridConfig(getLightTableConfig());
12704
+ res.chartGridColor = '#F0F1F6';
12705
+ res.axisLabelColor = '#BCC1CB';
12706
+ return res;
12707
+ };
12708
+ const getDarkPivotChartGridConfig = ()=>{
12709
+ const res = pickPivotChartGridConfig(getDarkTableConfig());
12710
+ res.chartGridColor = '#303339';
12711
+ res.axisLabelColor = '#E2E3E6';
12712
+ return res;
12713
+ };
12380
12714
  const getDefaultTooltip = ()=>({
12381
- enable: true
12715
+ enable: true,
12716
+ borderRadius: 12,
12717
+ borderWidth: 1,
12718
+ padding: 7,
12719
+ lineHeight: 12,
12720
+ fontSize: 12,
12721
+ lineSpace: 6
12722
+ });
12723
+ const getLightTooltip = ()=>({
12724
+ ...getDefaultTooltip(),
12725
+ borderColor: '#e3e5e8',
12726
+ backgroundColor: '#fff',
12727
+ keyColor: '#606773',
12728
+ valueColor: '#21252c',
12729
+ titleColor: '#21252c'
12730
+ });
12731
+ const getDarkTooltip = ()=>({
12732
+ ...getDefaultTooltip(),
12733
+ borderColor: '#3c3f44',
12734
+ backgroundColor: '#2b2d30',
12735
+ keyColor: '#89909D',
12736
+ valueColor: '#E2E3E6',
12737
+ titleColor: '#E2E3E6'
12382
12738
  });
12383
12739
  const getLightLinearAxis = ()=>({
12384
12740
  nice: true,
@@ -12387,7 +12743,7 @@
12387
12743
  label: {
12388
12744
  visible: true,
12389
12745
  labelAngle: 0,
12390
- labelColor: '#797B85',
12746
+ labelColor: '#8F959E',
12391
12747
  labelFontSize: 12,
12392
12748
  labelFontWeight: 400
12393
12749
  },
@@ -12433,7 +12789,7 @@
12433
12789
  label: {
12434
12790
  visible: true,
12435
12791
  labelAngle: 0,
12436
- labelColor: '#797B85',
12792
+ labelColor: '#8F959E',
12437
12793
  labelFontSize: 12,
12438
12794
  labelFontWeight: 400
12439
12795
  },
@@ -12745,7 +13101,7 @@
12745
13101
  color: getLightColor(),
12746
13102
  label: getLightLabel(),
12747
13103
  legend: getDefaultLegend(),
12748
- tooltip: getDefaultTooltip()
13104
+ tooltip: getLightTooltip()
12749
13105
  };
12750
13106
  const tableConfig = getLightTableConfig();
12751
13107
  return {
@@ -13014,7 +13370,7 @@
13014
13370
  color: getDarkColor(),
13015
13371
  label: getDarkLabel(),
13016
13372
  legend: getDefaultLegend(),
13017
- tooltip: getDefaultTooltip()
13373
+ tooltip: getDarkTooltip()
13018
13374
  };
13019
13375
  const tableConfig = getDarkTableConfig();
13020
13376
  return {
@@ -16755,7 +17111,10 @@
16755
17111
  encodingDetail: schemas_string(),
16756
17112
  encodingAngle: schemas_string(),
16757
17113
  colorItems: schemas_array(schemas_string()),
16758
- colorIdMap: record(schemas_string(), schemas_string())
17114
+ colorIdMap: record(schemas_string(), schemas_object({
17115
+ id: schemas_string(),
17116
+ alias: schemas_string()
17117
+ }))
16759
17118
  });
16760
17119
  const zDatasetReshapeInfo = schemas_array(schemas_object({
16761
17120
  id: schemas_string(),
@@ -16979,6 +17338,61 @@
16979
17338
  const zLinearColor = schemas_object({
16980
17339
  linearColorScheme: schemas_array(schemas_string()).nullish()
16981
17340
  });
17341
+ const zSelector = union([
17342
+ schemas_string(),
17343
+ schemas_number(),
17344
+ schemas_object({
17345
+ field: schemas_string(),
17346
+ operator: schemas_enum([
17347
+ '=',
17348
+ '==',
17349
+ '!=',
17350
+ '>',
17351
+ '<',
17352
+ '>=',
17353
+ '<=',
17354
+ 'between'
17355
+ ]).nullish(),
17356
+ op: schemas_enum([
17357
+ '=',
17358
+ '==',
17359
+ '!=',
17360
+ '>',
17361
+ '<',
17362
+ '>=',
17363
+ '<=',
17364
+ 'between'
17365
+ ]).nullish(),
17366
+ value: union([
17367
+ schemas_string(),
17368
+ schemas_number(),
17369
+ schemas_array(union([
17370
+ schemas_string(),
17371
+ schemas_number()
17372
+ ]))
17373
+ ])
17374
+ }),
17375
+ schemas_object({
17376
+ field: schemas_string(),
17377
+ operator: schemas_enum([
17378
+ 'in',
17379
+ 'not in'
17380
+ ]).nullish(),
17381
+ op: schemas_enum([
17382
+ 'in',
17383
+ 'not in'
17384
+ ]).nullish(),
17385
+ value: union([
17386
+ schemas_string(),
17387
+ schemas_number(),
17388
+ schemas_array(union([
17389
+ schemas_string(),
17390
+ schemas_number()
17391
+ ]))
17392
+ ])
17393
+ })
17394
+ ]);
17395
+ const zSelectors = schemas_array(zSelector);
16982
17396
  const zLabel = schemas_object({
16983
17397
  enable: schemas_boolean().nullish(),
16984
17398
  wrap: schemas_boolean().nullish(),
@@ -16993,7 +17407,11 @@
16993
17407
  labelColor: schemas_string().nullish(),
16994
17408
  labelColorSmartInvert: schemas_boolean().nullish(),
16995
17409
  labelPosition: schemas_string().nullish(),
16996
- labelOverlap: schemas_boolean().nullish()
17410
+ labelOverlap: schemas_boolean().nullish(),
17411
+ selector: union([
17412
+ zSelector,
17413
+ zSelectors
17414
+ ]).nullish()
16997
17415
  });
16998
17416
  const zLegend = schemas_object({
16999
17417
  enable: schemas_boolean().default(true).nullish(),
@@ -17075,63 +17493,19 @@
17075
17493
  enable: schemas_boolean().default(true).nullish()
17076
17494
  });
17077
17495
  const zTooltip = schemas_object({
17078
- enable: schemas_boolean().default(true).nullish()
17496
+ enable: schemas_boolean().default(true).nullish(),
17497
+ borderColor: schemas_string().nullish(),
17498
+ borderWidth: schemas_number().nullish(),
17499
+ borderRadius: schemas_number().nullish(),
17500
+ padding: schemas_number().or(schemas_array(schemas_number()).length(4)).nullish(),
17501
+ backgroundColor: schemas_string().nullish(),
17502
+ lineHeight: schemas_number().nullish(),
17503
+ fontSize: schemas_number().nullish(),
17504
+ lineSpace: schemas_number().nullish(),
17505
+ keyColor: schemas_string().nullish(),
17506
+ valueColor: schemas_string().nullish(),
17507
+ titleColor: schemas_string().nullish()
17079
17508
  });
17080
- const zSelector = union([
17081
- schemas_string(),
17082
- schemas_number(),
17083
- schemas_object({
17084
- field: schemas_string(),
17085
- operator: schemas_enum([
17086
- '=',
17087
- '==',
17088
- '!=',
17089
- '>',
17090
- '<',
17091
- '>=',
17092
- '<=',
17093
- 'between'
17094
- ]).nullish(),
17095
- op: schemas_enum([
17096
- '=',
17097
- '==',
17098
- '!=',
17099
- '>',
17100
- '<',
17101
- '>=',
17102
- '<=',
17103
- 'between'
17104
- ]).nullish(),
17105
- value: union([
17106
- schemas_string(),
17107
- schemas_number(),
17108
- schemas_array(union([
17109
- schemas_string(),
17110
- schemas_number()
17111
- ]))
17112
- ])
17113
- }),
17114
- schemas_object({
17115
- field: schemas_string(),
17116
- operator: schemas_enum([
17117
- 'in',
17118
- 'not in'
17119
- ]).nullish(),
17120
- op: schemas_enum([
17121
- 'in',
17122
- 'not in'
17123
- ]).nullish(),
17124
- value: union([
17125
- schemas_string(),
17126
- schemas_number(),
17127
- schemas_array(union([
17128
- schemas_string(),
17129
- schemas_number()
17130
- ]))
17131
- ])
17132
- })
17133
- ]);
17134
- const zSelectors = schemas_array(zSelector);
17135
17509
  const zAnnotationPoint = schemas_object({
17136
17510
  selector: union([
17137
17511
  zSelector,
@@ -17317,7 +17691,9 @@
17317
17691
  minChartHeight: schemas_number().nullish(),
17318
17692
  titleFontColor: schemas_string().nullish(),
17319
17693
  titleFontSize: schemas_number().nullish(),
17320
- titleFontWeight: schemas_string().nullish()
17694
+ titleFontWeight: schemas_string().nullish(),
17695
+ chartGridColor: schemas_string().nullish(),
17696
+ axisLabelColor: schemas_string().nullish()
17321
17697
  });
17322
17698
  const zLineConfig = schemas_object({
17323
17699
  backgroundColor: zBackgroundColor.nullish(),
@@ -17340,6 +17716,7 @@
17340
17716
  const zBarMaxWidth = schemas_number().or(schemas_string());
17341
17717
  const zBarGapInGroup = schemas_number().or(schemas_string());
17342
17718
  const zEcdfRegressionLine = schemas_object({
17719
+ enable: schemas_boolean().nullish(),
17343
17720
  color: schemas_string().nullish(),
17344
17721
  lineWidth: schemas_number().nullish(),
17345
17722
  lineDash: schemas_array(schemas_number()).nullish(),
@@ -17706,6 +18083,17 @@
17706
18083
  const zAnalysis = schemas_object({
17707
18084
  orderMapping: record(schemas_string(), schemas_array(schemas_string())).nullish()
17708
18085
  });
18086
+ const zBodyCellStyle = schemas_object({
18087
+ selector: union([
18088
+ zSelector,
18089
+ zSelectors
18090
+ ]).nullish(),
18091
+ backgroundColor: schemas_string().nullish(),
18092
+ textColor: schemas_string().nullish(),
18093
+ textFontSize: schemas_number().nullish(),
18094
+ borderColor: schemas_string().nullish(),
18095
+ borderLineWidth: schemas_number().nullish()
18096
+ });
17709
18097
  const zLocale = schemas_enum([
17710
18098
  'zh-CN',
17711
18099
  'en-US'
@@ -17729,6 +18117,7 @@
17729
18117
  hoverHeaderInlineBackgroundColor: schemas_string().nullish(),
17730
18118
  selectedBorderColor: schemas_string().nullish(),
17731
18119
  selectedBackgroundColor: schemas_string().nullish(),
18120
+ bodyCellStyle: zBodyCellStyle.nullish(),
17732
18121
  theme: zTheme.nullish(),
17733
18122
  locale: zLocale.nullish()
17734
18123
  });
@@ -17751,6 +18140,7 @@
17751
18140
  hoverHeaderInlineBackgroundColor: schemas_string().nullish(),
17752
18141
  selectedBorderColor: schemas_string().nullish(),
17753
18142
  selectedBackgroundColor: schemas_string().nullish(),
18143
+ bodyCellStyle: zBodyCellStyle.nullish(),
17754
18144
  theme: zTheme.nullish(),
17755
18145
  locale: zLocale.nullish()
17756
18146
  });
@@ -18060,8 +18450,8 @@
18060
18450
  annotationVerticalLine: schemas_array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),
18061
18451
  annotationHorizontalLine: schemas_array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),
18062
18452
  annotationArea: schemas_array(zAnnotationArea).or(zAnnotationArea).nullish(),
18063
- ecdfRegressionLine: schemas_array(zEcdfRegressionLine).or(zEcdfRegressionLine).or(schemas_boolean()).nullish(),
18064
- kdeRegressionLine: schemas_array(zKdeRegressionLine).or(zKdeRegressionLine).or(schemas_boolean()).nullish(),
18453
+ ecdfRegressionLine: schemas_array(zEcdfRegressionLine).or(zEcdfRegressionLine).nullish(),
18454
+ kdeRegressionLine: schemas_array(zKdeRegressionLine).or(zKdeRegressionLine).nullish(),
18065
18455
  locale: zLocale.nullish()
18066
18456
  });
18067
18457
  const zRose = schemas_object({
@@ -18209,6 +18599,9 @@
18209
18599
  zBoxplot,
18210
18600
  zHistogram
18211
18601
  ]);
18602
+ const zCellStyle = schemas_object({
18603
+ bodyCellStyle: zBodyCellStyle.nullish()
18604
+ });
18212
18605
  const zAdvancedVSeed = schemas_object({
18213
18606
  chartType: zChartType,
18214
18607
  dataset: zDataset,
@@ -18220,6 +18613,7 @@
18220
18613
  analysis: zAnalysis,
18221
18614
  theme: zTheme,
18222
18615
  markStyle: zMarkStyle,
18616
+ cellStyle: zCellStyle,
18223
18617
  customTheme: zCustomThemeConfig,
18224
18618
  annotation: zAnnotation,
18225
18619
  locale: zLocale,