@visactor/vseed 0.3.2 → 0.3.4

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 (287) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/builder.d.ts +1176 -0
  4. package/dist/esm/dataReshape/dataReshapeByEncoding.d.ts +1 -1
  5. package/dist/esm/dataReshape/dataReshapeByEncoding.js.map +1 -1
  6. package/dist/esm/dataReshape/foldMeasures.js +12 -11
  7. package/dist/esm/dataReshape/foldMeasures.js.map +1 -1
  8. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +3 -1
  9. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
  10. package/dist/esm/pipeline/advanced/chart/pipes/config/column.js +1 -0
  11. package/dist/esm/pipeline/advanced/chart/pipes/config/column.js.map +1 -1
  12. package/dist/esm/pipeline/advanced/chart/pipes/config/heatmap.d.ts +2 -0
  13. package/dist/esm/pipeline/advanced/chart/pipes/config/heatmap.js +31 -0
  14. package/dist/esm/pipeline/advanced/chart/pipes/config/heatmap.js.map +1 -0
  15. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js +1 -0
  16. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js.map +1 -1
  17. package/dist/esm/pipeline/advanced/chart/pipes/config/index.d.ts +2 -2
  18. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js +1 -1
  19. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js.map +1 -1
  20. package/dist/esm/pipeline/advanced/chart/pipes/config/line.js +1 -0
  21. package/dist/esm/pipeline/advanced/chart/pipes/config/line.js.map +1 -1
  22. package/dist/esm/pipeline/advanced/chart/pipes/config/pie.js +2 -1
  23. package/dist/esm/pipeline/advanced/chart/pipes/config/pie.js.map +1 -1
  24. package/dist/esm/pipeline/advanced/chart/pipes/config/scatter.js +1 -0
  25. package/dist/esm/pipeline/advanced/chart/pipes/config/scatter.js.map +1 -1
  26. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/addPivotDimensionsForScatter.d.ts +2 -0
  27. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/addPivotDimensionsForScatter.js +29 -0
  28. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/addPivotDimensionsForScatter.js.map +1 -0
  29. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/index.d.ts +1 -0
  30. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/index.js +1 -0
  31. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js +2 -6
  32. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js.map +1 -1
  33. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +13 -4
  34. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
  35. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js +16 -24
  36. package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js.map +1 -1
  37. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
  38. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
  39. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +2 -1
  40. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
  41. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js +10 -6
  42. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
  43. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js.map +1 -1
  44. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +5 -2
  45. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
  46. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js +4 -2
  47. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
  48. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js +2 -1
  49. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
  50. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js +5 -2
  51. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js.map +1 -1
  52. package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js.map +1 -1
  53. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js.map +1 -1
  54. package/dist/esm/pipeline/spec/chart/pipeline/area.js +3 -1
  55. package/dist/esm/pipeline/spec/chart/pipeline/area.js.map +1 -1
  56. package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js +3 -1
  57. package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js.map +1 -1
  58. package/dist/esm/pipeline/spec/chart/pipeline/bar.js +3 -1
  59. package/dist/esm/pipeline/spec/chart/pipeline/bar.js.map +1 -1
  60. package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js +3 -1
  61. package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js.map +1 -1
  62. package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js +3 -1
  63. package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js.map +1 -1
  64. package/dist/esm/pipeline/spec/chart/pipeline/column.js +3 -1
  65. package/dist/esm/pipeline/spec/chart/pipeline/column.js.map +1 -1
  66. package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js +3 -1
  67. package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js.map +1 -1
  68. package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js +3 -1
  69. package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js.map +1 -1
  70. package/dist/esm/pipeline/spec/chart/pipeline/donut.js +5 -2
  71. package/dist/esm/pipeline/spec/chart/pipeline/donut.js.map +1 -1
  72. package/dist/esm/pipeline/spec/chart/pipeline/funnel.js +3 -2
  73. package/dist/esm/pipeline/spec/chart/pipeline/funnel.js.map +1 -1
  74. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js +8 -5
  75. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js.map +1 -1
  76. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js +3 -1
  77. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  78. package/dist/esm/pipeline/spec/chart/pipeline/line.js +3 -1
  79. package/dist/esm/pipeline/spec/chart/pipeline/line.js.map +1 -1
  80. package/dist/esm/pipeline/spec/chart/pipeline/pie.js +5 -2
  81. package/dist/esm/pipeline/spec/chart/pipeline/pie.js.map +1 -1
  82. package/dist/esm/pipeline/spec/chart/pipeline/rose.js +3 -2
  83. package/dist/esm/pipeline/spec/chart/pipeline/rose.js.map +1 -1
  84. package/dist/esm/pipeline/spec/chart/pipeline/roseParallel.js +3 -2
  85. package/dist/esm/pipeline/spec/chart/pipeline/roseParallel.js.map +1 -1
  86. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js +3 -1
  87. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
  88. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointCommon.js +13 -13
  89. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointCommon.js.map +1 -1
  90. package/dist/esm/pipeline/spec/chart/pipes/brush/brush.d.ts +2 -0
  91. package/dist/esm/pipeline/spec/chart/pipes/brush/brush.js +39 -0
  92. package/dist/esm/pipeline/spec/chart/pipes/brush/brush.js.map +1 -0
  93. package/dist/esm/pipeline/spec/chart/pipes/brush/index.d.ts +1 -0
  94. package/dist/esm/pipeline/spec/chart/pipes/brush/index.js +1 -0
  95. package/dist/esm/pipeline/spec/chart/pipes/color/colorAdapter.js +3 -3
  96. package/dist/esm/pipeline/spec/chart/pipes/color/colorAdapter.js.map +1 -1
  97. package/dist/esm/pipeline/spec/chart/pipes/color/index.d.ts +0 -1
  98. package/dist/esm/pipeline/spec/chart/pipes/color/index.js +1 -2
  99. package/dist/esm/pipeline/spec/chart/pipes/index.d.ts +1 -0
  100. package/dist/esm/pipeline/spec/chart/pipes/index.js +1 -0
  101. package/dist/esm/pipeline/spec/chart/pipes/label/label.d.ts +1 -0
  102. package/dist/esm/pipeline/spec/chart/pipes/label/label.js +2 -0
  103. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  104. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js +2 -2
  105. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js.map +1 -1
  106. package/dist/esm/pipeline/spec/chart/pipes/markStyle/areaStyle.js.map +1 -1
  107. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js +2 -1
  108. package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js.map +1 -1
  109. package/dist/esm/pipeline/spec/chart/pipes/markStyle/cellStyle.js +17 -8
  110. package/dist/esm/pipeline/spec/chart/pipes/markStyle/cellStyle.js.map +1 -1
  111. package/dist/esm/pipeline/spec/chart/pipes/markStyle/funnelTransformStyle.js.map +1 -1
  112. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js +2 -1
  113. package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js.map +1 -1
  114. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/heatmapColorDomain.d.ts +2 -0
  115. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/heatmapColorDomain.js +18 -0
  116. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/heatmapColorDomain.js.map +1 -0
  117. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/index.d.ts +1 -0
  118. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/index.js +2 -1
  119. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js +13 -7
  120. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js.map +1 -1
  121. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js +12 -3
  122. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js.map +1 -1
  123. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js +2 -2
  124. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js.map +1 -1
  125. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
  126. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.js +12 -3
  127. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.js.map +1 -1
  128. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotTitle.js +4 -2
  129. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotTitle.js.map +1 -1
  130. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +1 -1
  131. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +8 -7
  132. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  133. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +1 -1
  134. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  135. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.d.ts +1 -1
  136. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +9 -2
  137. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
  138. package/dist/esm/pipeline/spec/table/pipes/init/pivotTable.js +4 -1
  139. package/dist/esm/pipeline/spec/table/pipes/init/pivotTable.js.map +1 -1
  140. package/dist/esm/pipeline/spec/table/pipes/init/table.js +4 -1
  141. package/dist/esm/pipeline/spec/table/pipes/init/table.js.map +1 -1
  142. package/dist/esm/pipeline/utils/chatType.js +24 -4
  143. package/dist/esm/pipeline/utils/chatType.js.map +1 -1
  144. package/dist/esm/pipeline/utils/measures/typeGuard.d.ts +1 -1
  145. package/dist/esm/pipeline/utils/measures/typeGuard.js +30 -6
  146. package/dist/esm/pipeline/utils/measures/typeGuard.js.map +1 -1
  147. package/dist/esm/theme/common/brush.d.ts +3 -0
  148. package/dist/esm/theme/common/brush.js +21 -0
  149. package/dist/esm/theme/common/brush.js.map +1 -0
  150. package/dist/esm/theme/common/heatmapCell.js +4 -2
  151. package/dist/esm/theme/common/heatmapCell.js.map +1 -1
  152. package/dist/esm/theme/common/index.d.ts +1 -0
  153. package/dist/esm/theme/common/index.js +1 -0
  154. package/dist/esm/theme/common/label.d.ts +18 -0
  155. package/dist/esm/theme/common/label.js +9 -1
  156. package/dist/esm/theme/common/label.js.map +1 -1
  157. package/dist/esm/theme/dark/dark.js +4 -2
  158. package/dist/esm/theme/dark/dark.js.map +1 -1
  159. package/dist/esm/theme/light/light.js +4 -2
  160. package/dist/esm/theme/light/light.js.map +1 -1
  161. package/dist/esm/types/advancedVSeed.d.ts +392 -0
  162. package/dist/esm/types/chartType/area/area.d.ts +6 -1
  163. package/dist/esm/types/chartType/area/zArea.d.ts +24 -0
  164. package/dist/esm/types/chartType/area/zArea.js +2 -1
  165. package/dist/esm/types/chartType/area/zArea.js.map +1 -1
  166. package/dist/esm/types/chartType/areaPercent/areaPercent.d.ts +6 -1
  167. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +24 -0
  168. package/dist/esm/types/chartType/areaPercent/zAreaPercent.js +2 -1
  169. package/dist/esm/types/chartType/areaPercent/zAreaPercent.js.map +1 -1
  170. package/dist/esm/types/chartType/bar/bar.d.ts +6 -1
  171. package/dist/esm/types/chartType/bar/zBar.d.ts +24 -0
  172. package/dist/esm/types/chartType/bar/zBar.js +2 -1
  173. package/dist/esm/types/chartType/bar/zBar.js.map +1 -1
  174. package/dist/esm/types/chartType/barParallel/barParallel.d.ts +6 -1
  175. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +24 -0
  176. package/dist/esm/types/chartType/barParallel/zBarParallel.js +2 -1
  177. package/dist/esm/types/chartType/barParallel/zBarParallel.js.map +1 -1
  178. package/dist/esm/types/chartType/barPercent/barPercent.d.ts +6 -1
  179. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +24 -0
  180. package/dist/esm/types/chartType/barPercent/zBarPercent.js +2 -1
  181. package/dist/esm/types/chartType/barPercent/zBarPercent.js.map +1 -1
  182. package/dist/esm/types/chartType/boxPlot/boxPlot.d.ts +6 -1
  183. package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +24 -0
  184. package/dist/esm/types/chartType/boxPlot/zBoxPlot.js +2 -1
  185. package/dist/esm/types/chartType/boxPlot/zBoxPlot.js.map +1 -1
  186. package/dist/esm/types/chartType/column/column.d.ts +6 -1
  187. package/dist/esm/types/chartType/column/zColumn.d.ts +24 -0
  188. package/dist/esm/types/chartType/column/zColumn.js +2 -1
  189. package/dist/esm/types/chartType/column/zColumn.js.map +1 -1
  190. package/dist/esm/types/chartType/columnParallel/columnParallel.d.ts +6 -1
  191. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +24 -0
  192. package/dist/esm/types/chartType/columnParallel/zColumnParallel.js +2 -1
  193. package/dist/esm/types/chartType/columnParallel/zColumnParallel.js.map +1 -1
  194. package/dist/esm/types/chartType/columnPercent/columnPercent.d.ts +6 -1
  195. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +24 -0
  196. package/dist/esm/types/chartType/columnPercent/zColumnPercent.js +2 -1
  197. package/dist/esm/types/chartType/columnPercent/zColumnPercent.js.map +1 -1
  198. package/dist/esm/types/chartType/donut/donut.d.ts +6 -0
  199. package/dist/esm/types/chartType/donut/zDonut.d.ts +24 -0
  200. package/dist/esm/types/chartType/donut/zDonut.js +2 -1
  201. package/dist/esm/types/chartType/donut/zDonut.js.map +1 -1
  202. package/dist/esm/types/chartType/dualAxis/dualAxis.d.ts +6 -1
  203. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +24 -0
  204. package/dist/esm/types/chartType/dualAxis/zDualAxis.js +2 -1
  205. package/dist/esm/types/chartType/dualAxis/zDualAxis.js.map +1 -1
  206. package/dist/esm/types/chartType/funnel/funnel.d.ts +6 -0
  207. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +24 -0
  208. package/dist/esm/types/chartType/funnel/zFunnel.js +2 -1
  209. package/dist/esm/types/chartType/funnel/zFunnel.js.map +1 -1
  210. package/dist/esm/types/chartType/heatmap/heatmap.d.ts +6 -0
  211. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +24 -0
  212. package/dist/esm/types/chartType/heatmap/zHeatmap.js +2 -1
  213. package/dist/esm/types/chartType/heatmap/zHeatmap.js.map +1 -1
  214. package/dist/esm/types/chartType/histogram/histogram.d.ts +6 -1
  215. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +24 -0
  216. package/dist/esm/types/chartType/histogram/zHistogram.js +2 -1
  217. package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
  218. package/dist/esm/types/chartType/line/line.d.ts +6 -1
  219. package/dist/esm/types/chartType/line/zLine.d.ts +24 -0
  220. package/dist/esm/types/chartType/line/zLine.js +2 -1
  221. package/dist/esm/types/chartType/line/zLine.js.map +1 -1
  222. package/dist/esm/types/chartType/pie/pie.d.ts +6 -0
  223. package/dist/esm/types/chartType/pie/zPie.d.ts +24 -0
  224. package/dist/esm/types/chartType/pie/zPie.js +2 -1
  225. package/dist/esm/types/chartType/pie/zPie.js.map +1 -1
  226. package/dist/esm/types/chartType/radar/radar.d.ts +6 -0
  227. package/dist/esm/types/chartType/radar/zRadar.d.ts +24 -0
  228. package/dist/esm/types/chartType/radar/zRadar.js +2 -1
  229. package/dist/esm/types/chartType/radar/zRadar.js.map +1 -1
  230. package/dist/esm/types/chartType/rose/rose.d.ts +6 -0
  231. package/dist/esm/types/chartType/rose/zRose.d.ts +24 -0
  232. package/dist/esm/types/chartType/rose/zRose.js +2 -1
  233. package/dist/esm/types/chartType/rose/zRose.js.map +1 -1
  234. package/dist/esm/types/chartType/roseParallel/roseParallel.d.ts +6 -0
  235. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +24 -0
  236. package/dist/esm/types/chartType/roseParallel/zRoseParallel.js +2 -1
  237. package/dist/esm/types/chartType/roseParallel/zRoseParallel.js.map +1 -1
  238. package/dist/esm/types/chartType/scatter/scatter.d.ts +6 -1
  239. package/dist/esm/types/chartType/scatter/zScatter.d.ts +24 -0
  240. package/dist/esm/types/chartType/scatter/zScatter.js +2 -1
  241. package/dist/esm/types/chartType/scatter/zScatter.js.map +1 -1
  242. package/dist/esm/types/properties/brush/brush.d.ts +69 -0
  243. package/dist/esm/types/properties/brush/brush.js +0 -0
  244. package/dist/esm/types/properties/brush/index.d.ts +4 -0
  245. package/dist/esm/types/properties/brush/index.js +2 -0
  246. package/dist/esm/types/properties/brush/zBrush.d.ts +39 -0
  247. package/dist/esm/types/properties/brush/zBrush.js +30 -0
  248. package/dist/esm/types/properties/brush/zBrush.js.map +1 -0
  249. package/dist/esm/types/properties/config/area.d.ts +26 -0
  250. package/dist/esm/types/properties/config/area.js +3 -1
  251. package/dist/esm/types/properties/config/area.js.map +1 -1
  252. package/dist/esm/types/properties/config/bar.d.ts +39 -0
  253. package/dist/esm/types/properties/config/bar.js +3 -1
  254. package/dist/esm/types/properties/config/bar.js.map +1 -1
  255. package/dist/esm/types/properties/config/column.d.ts +39 -0
  256. package/dist/esm/types/properties/config/column.js +3 -1
  257. package/dist/esm/types/properties/config/column.js.map +1 -1
  258. package/dist/esm/types/properties/config/config.d.ts +196 -0
  259. package/dist/esm/types/properties/config/heatmap/heatmap.d.ts +4 -0
  260. package/dist/esm/types/properties/config/heatmap/zHeatmap.d.ts +1 -0
  261. package/dist/esm/types/properties/config/heatmap/zHeatmap.js +2 -1
  262. package/dist/esm/types/properties/config/heatmap/zHeatmap.js.map +1 -1
  263. package/dist/esm/types/properties/config/heatmap.d.ts +14 -0
  264. package/dist/esm/types/properties/config/heatmap.js +3 -1
  265. package/dist/esm/types/properties/config/heatmap.js.map +1 -1
  266. package/dist/esm/types/properties/config/histogram.d.ts +13 -0
  267. package/dist/esm/types/properties/config/histogram.js +3 -1
  268. package/dist/esm/types/properties/config/histogram.js.map +1 -1
  269. package/dist/esm/types/properties/config/line.d.ts +13 -0
  270. package/dist/esm/types/properties/config/line.js +3 -1
  271. package/dist/esm/types/properties/config/line.js.map +1 -1
  272. package/dist/esm/types/properties/config/pie.d.ts +39 -0
  273. package/dist/esm/types/properties/config/pie.js +3 -1
  274. package/dist/esm/types/properties/config/pie.js.map +1 -1
  275. package/dist/esm/types/properties/config/scatter.d.ts +13 -0
  276. package/dist/esm/types/properties/config/scatter.js +3 -1
  277. package/dist/esm/types/properties/config/scatter.js.map +1 -1
  278. package/dist/esm/types/properties/index.d.ts +1 -0
  279. package/dist/esm/types/properties/index.js +1 -0
  280. package/dist/esm/types/properties/theme/customTheme.d.ts +392 -0
  281. package/dist/esm/types/zVseed.d.ts +480 -0
  282. package/dist/umd/index.js +500 -179
  283. package/dist/umd/index.js.map +1 -1
  284. package/package.json +4 -4
  285. package/dist/esm/pipeline/spec/chart/pipes/color/colorCellStyleFill.d.ts +0 -2
  286. package/dist/esm/pipeline/spec/chart/pipes/color/colorCellStyleFill.js +0 -17
  287. package/dist/esm/pipeline/spec/chart/pipes/color/colorCellStyleFill.js.map +0 -1
package/dist/umd/index.js CHANGED
@@ -117,6 +117,7 @@
117
117
  FoldMeasureName: ()=>FoldMeasureName,
118
118
  darkTheme: ()=>darkTheme,
119
119
  isVTable: ()=>isVTable,
120
+ zBrush: ()=>zBrush,
120
121
  BoxPlotPivotIndicator: ()=>BoxPlotPivotIndicator,
121
122
  ORIGINAL_DATA: ()=>ORIGINAL_DATA,
122
123
  zMeasureSelector: ()=>zMeasureSelector,
@@ -137,6 +138,7 @@
137
138
  zSelectors: ()=>zSelectors,
138
139
  FoldYMeasureId: ()=>FoldYMeasureId,
139
140
  findMeasureById: ()=>findMeasureById,
141
+ zBrushConfig: ()=>zBrushConfig,
140
142
  AngleEncoding: ()=>AngleEncoding,
141
143
  areaPercentAdvancedPipeline: ()=>areaPercentAdvancedPipeline,
142
144
  zBackgroundColor: ()=>zBackgroundColor,
@@ -527,31 +529,6 @@
527
529
  next: t
528
530
  });
529
531
  }
530
- const isMeasure = (measure)=>!('children' in measure);
531
- const isMeasureGroup = (measure)=>'children' in measure;
532
- const isMeasures = (measures)=>measures.every(isMeasure);
533
- const isPositionMeasure = (measure)=>!measure.encoding || ![
534
- 'color',
535
- 'size',
536
- 'label',
537
- 'tooltip',
538
- 'detail'
539
- ].includes(measure.encoding);
540
- const isMeasureTreeWithParentId = (measures)=>{
541
- if (!measures) return false;
542
- return measures.some((measure)=>'parentId' in measure);
543
- };
544
- const isCommonMeasureEncoding = (encoding)=>[
545
- 'color',
546
- 'label',
547
- 'tooltip'
548
- ].includes(encoding);
549
- const ensureParentIdInitialized = (parentId, measuresByView, parentIds)=>{
550
- if (!measuresByView[parentId]) {
551
- measuresByView[parentId] = [];
552
- parentIds.push(parentId);
553
- }
554
- };
555
532
  const DEFAULT_PARENT_ID = '__DefaultParentId__';
556
533
  const ChartTypeEnum = {
557
534
  Table: 'table',
@@ -578,6 +555,54 @@
578
555
  Histogram: 'histogram'
579
556
  };
580
557
  const DATUM_HIDE_KEY = '__VSEED_HideItem__';
558
+ const isMeasure = (measure)=>!('children' in measure);
559
+ const isMeasureGroup = (measure)=>'children' in measure;
560
+ const isMeasures = (measures)=>measures.every(isMeasure);
561
+ const isPositionMeasure = (measure, chartType)=>{
562
+ if (!measure.encoding) return true;
563
+ if (chartType === ChartTypeEnum.Funnel) return 'size' === measure.encoding;
564
+ if (chartType === ChartTypeEnum.Heatmap) return 'color' === measure.encoding;
565
+ if ([
566
+ ChartTypeEnum.Pie,
567
+ ChartTypeEnum.Donut,
568
+ ChartTypeEnum.Rose,
569
+ ChartTypeEnum.RoseParallel
570
+ ].includes(chartType)) return 'angle' === measure.encoding;
571
+ if (chartType === ChartTypeEnum.DualAxis) return [
572
+ 'primaryYAxis',
573
+ 'secondaryYAxis'
574
+ ].includes(measure.encoding);
575
+ if (ChartTypeEnum.Radar === chartType) return 'radius' === measure.encoding;
576
+ if ([
577
+ ChartTypeEnum.Line,
578
+ ChartTypeEnum.Area,
579
+ ChartTypeEnum.AreaPercent,
580
+ ChartTypeEnum.Column,
581
+ ChartTypeEnum.ColumnParallel,
582
+ ChartTypeEnum.ColumnPercent
583
+ ].includes(chartType)) return 'yAxis' === measure.encoding;
584
+ if ([
585
+ ChartTypeEnum.Bar,
586
+ ChartTypeEnum.BarParallel,
587
+ ChartTypeEnum.BarPercent
588
+ ].includes(chartType)) return 'xAxis' === measure.encoding;
589
+ return chartType === ChartTypeEnum.Boxplot && 'value' === measure.encoding;
590
+ };
591
+ const isMeasureTreeWithParentId = (measures)=>{
592
+ if (!measures) return false;
593
+ return measures.some((measure)=>'parentId' in measure);
594
+ };
595
+ const isCommonMeasureEncoding = (encoding)=>[
596
+ 'color',
597
+ 'label',
598
+ 'tooltip'
599
+ ].includes(encoding);
600
+ const ensureParentIdInitialized = (parentId, measuresByView, parentIds)=>{
601
+ if (!measuresByView[parentId]) {
602
+ measuresByView[parentId] = [];
603
+ parentIds.push(parentId);
604
+ }
605
+ };
581
606
  const isTable = (vseed)=>vseed.chartType === ChartTypeEnum.Table;
582
607
  const isPivotTable = (vseed)=>vseed.chartType === ChartTypeEnum.PivotTable;
583
608
  const isRadar = (vseed)=>vseed.chartType === ChartTypeEnum.Radar;
@@ -596,12 +621,32 @@
596
621
  return isCombination(vseed);
597
622
  };
598
623
  const chatType_isPivot = (vseed)=>{
599
- const { dimensions = [] } = vseed;
600
- return dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
624
+ const { dimensions = [], measures = [] } = vseed;
625
+ if (dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding)) return true;
626
+ if (vseed.chartType === ChartTypeEnum.Scatter) {
627
+ const xCount = measures.filter((m)=>'xAxis' === m.encoding).length;
628
+ const yCount = measures.filter((m)=>'yAxis' === m.encoding).length;
629
+ const otherCount = measures.filter((m)=>![
630
+ 'size',
631
+ 'xAxis',
632
+ 'yAxis'
633
+ ].includes(m.encoding) && !isCommonMeasureEncoding(m.encoding)).length;
634
+ let finalXCount;
635
+ let finalYCount;
636
+ if (xCount > 0) {
637
+ finalXCount = xCount;
638
+ finalYCount = yCount + otherCount;
639
+ } else {
640
+ finalXCount = otherCount > 0 ? 1 : 0;
641
+ finalYCount = yCount + Math.max(otherCount - 1, 0);
642
+ }
643
+ if (finalXCount > 1 || finalYCount > 1) return true;
644
+ }
645
+ return false;
601
646
  };
602
647
  const isCombination = (vseed)=>{
603
648
  if (isMeasureTreeWithParentId(vseed.measures)) {
604
- const parentIds = vseed.measures?.filter(isPositionMeasure).map((measure)=>measure.parentId || DEFAULT_PARENT_ID);
649
+ const parentIds = vseed.measures?.filter((m)=>isPositionMeasure(m, vseed.chartType)).map((measure)=>measure.parentId || DEFAULT_PARENT_ID);
605
650
  return parentIds && chunk_QJLMYOTX_i(parentIds).length > 1;
606
651
  }
607
652
  const { measures = [] } = vseed;
@@ -1081,7 +1126,10 @@
1081
1126
  columnResizeMode: 'all',
1082
1127
  showHeader: true,
1083
1128
  tooltip: {
1084
- isShowOverflowTextTooltip: true
1129
+ isShowOverflowTextTooltip: true,
1130
+ renderMode: 'html',
1131
+ confine: false,
1132
+ parentElement: document.body
1085
1133
  },
1086
1134
  animationAppear: {
1087
1135
  duration: 300,
@@ -1740,14 +1788,10 @@
1740
1788
  };
1741
1789
  const result = new Array(dataset.length * measures.length);
1742
1790
  let index = 0;
1743
- const ids = measures.map((d)=>d.id);
1744
1791
  for(let i = 0; i < dataset.length; i++)for(let j = 0; j < measures.length; j++){
1745
1792
  const datum = chunk_KI5X74E2_y({
1746
1793
  ...dataset[i]
1747
- }, [
1748
- ...ids,
1749
- ...omitIds
1750
- ]);
1794
+ }, omitIds);
1751
1795
  datum[ORIGINAL_DATA] = dataset[i];
1752
1796
  const measure = measures[j];
1753
1797
  const { id, alias } = measure;
@@ -1755,7 +1799,17 @@
1755
1799
  datum[measureId] = id;
1756
1800
  datum[measureName] = alias || id;
1757
1801
  datum[measureValue] = dataset[i][id];
1758
- if (colorMeasureId) {
1802
+ const valueNumber = Number(datum[id]);
1803
+ foldInfo.statistics.min = Math.min(foldInfo.statistics.min, valueNumber);
1804
+ foldInfo.statistics.max = Math.max(foldInfo.statistics.max, valueNumber);
1805
+ foldInfo.statistics.sum += valueNumber;
1806
+ foldInfo.statistics.count++;
1807
+ if ('color' === measure.encoding) {
1808
+ foldInfo.statistics.colorMin = foldInfo.statistics.min;
1809
+ foldInfo.statistics.colorMax = foldInfo.statistics.max;
1810
+ datum[ColorEncoding] = valueNumber;
1811
+ datum[ColorIdEncoding] = measure.id;
1812
+ } else if (colorMeasureId) {
1759
1813
  const value = datum[ORIGINAL_DATA][colorMeasureId];
1760
1814
  datum[ColorEncoding] = value;
1761
1815
  datum[ColorIdEncoding] = colorMeasureId;
@@ -1763,11 +1817,6 @@
1763
1817
  foldInfo.statistics.colorMin = Math.min(foldInfo.statistics.colorMin, valueNumber);
1764
1818
  foldInfo.statistics.colorMax = Math.max(foldInfo.statistics.colorMax, valueNumber);
1765
1819
  }
1766
- const valueNumber = Number(datum[id]);
1767
- foldInfo.statistics.min = Math.min(foldInfo.statistics.min, valueNumber);
1768
- foldInfo.statistics.max = Math.max(foldInfo.statistics.max, valueNumber);
1769
- foldInfo.statistics.sum += valueNumber;
1770
- foldInfo.statistics.count++;
1771
1820
  foldInfo.foldMap[id] = alias;
1772
1821
  result[index++] = datum;
1773
1822
  }
@@ -1864,7 +1913,10 @@
1864
1913
  highlightMode: 'cross'
1865
1914
  },
1866
1915
  tooltip: {
1867
- isShowOverflowTextTooltip: true
1916
+ isShowOverflowTextTooltip: true,
1917
+ renderMode: 'html',
1918
+ confine: false,
1919
+ parentElement: document.body
1868
1920
  },
1869
1921
  corner: {
1870
1922
  titleOnDimension: 'all'
@@ -2449,10 +2501,10 @@
2449
2501
  };
2450
2502
  }
2451
2503
  const isLinearColor = (advancedVSeed, vseed)=>{
2452
- const { encoding } = advancedVSeed;
2504
+ const { encoding, chartType } = advancedVSeed;
2453
2505
  const measureIdList = (vseed.measures || advancedVSeed.measures).map((measure)=>measure.id);
2454
- const { color } = encoding;
2455
- return color?.length === 1 && measureIdList.includes(color[0]);
2506
+ const { color = [] } = encoding;
2507
+ return 'heatmap' === chartType ? color.length >= 1 && color.every((c)=>measureIdList.includes(c)) : 1 === color.length && measureIdList.includes(color[0]);
2456
2508
  };
2457
2509
  const getColorMeasureId = (advancedVSeed, vseed)=>{
2458
2510
  if (isLinearColor(advancedVSeed, vseed)) {
@@ -2467,11 +2519,13 @@
2467
2519
  };
2468
2520
  const { vseed } = context;
2469
2521
  const { dataset, chartType } = vseed;
2470
- const { encoding } = advancedVSeed;
2522
+ const { encoding, reshapeMeasures = [] } = advancedVSeed;
2523
+ const allMeasuresIds = (reshapeMeasures[0] ?? []).map((m)=>m.id);
2471
2524
  const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
2472
2525
  const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [], (item)=>item.id), T(advancedVSeed.reshapeMeasures?.[0] ?? [], (item)=>item.id), encoding, {
2473
2526
  colorItemAsId: false,
2474
- colorMeasureId
2527
+ colorMeasureId,
2528
+ omitIds: allMeasuresIds
2475
2529
  });
2476
2530
  return {
2477
2531
  ...result,
@@ -2603,6 +2657,7 @@
2603
2657
  'xAxis',
2604
2658
  'yAxis',
2605
2659
  'crosshairLine',
2660
+ 'brush',
2606
2661
  'dimensionLinkage'
2607
2662
  ]);
2608
2663
  const config = replaceNullToUndefined(pickedConfig);
@@ -3064,6 +3119,42 @@
3064
3119
  ];
3065
3120
  return result;
3066
3121
  };
3122
+ const brush_brush = (spec, context)=>{
3123
+ const result = {
3124
+ ...spec
3125
+ };
3126
+ const { advancedVSeed, vseed } = context;
3127
+ const { brush = {}, chartType } = vseed;
3128
+ const theme = advancedVSeed.config?.[chartType]?.brush ?? {};
3129
+ const enable = brush.enable ?? theme?.enable;
3130
+ if (false === enable) return result;
3131
+ result.brush = {
3132
+ visible: true,
3133
+ removeOnClick: brush.removeOnClick,
3134
+ brushMode: brush?.brushMode || 'single',
3135
+ brushType: brush?.brushType || 'rect',
3136
+ inBrush: {
3137
+ opacity: theme.inBrushStyle?.opacity,
3138
+ stroke: theme.inBrushStyle?.stroke,
3139
+ lineWidth: theme.inBrushStyle?.lineWidth
3140
+ },
3141
+ outOfBrush: {
3142
+ opacity: theme.outOfBrushStyle?.opacity,
3143
+ stroke: theme.outOfBrushStyle?.stroke,
3144
+ lineWidth: theme.outOfBrushStyle?.lineWidth
3145
+ }
3146
+ };
3147
+ if (result.label && false !== result.label.visible) {
3148
+ if (!result.label.state) result.label.state = {};
3149
+ result.label.state.outOfBrush = {
3150
+ opacity: result.brush.outOfBrush.opacity
3151
+ };
3152
+ result.label.state.inBrush = {
3153
+ opacity: result.brush.inBrush.opacity
3154
+ };
3155
+ }
3156
+ return result;
3157
+ };
3067
3158
  const verticalCrosshairLine = (spec, context)=>{
3068
3159
  const result = {
3069
3160
  ...spec
@@ -3599,6 +3690,7 @@
3599
3690
  if (wrap) return result;
3600
3691
  return result.join(' ');
3601
3692
  },
3693
+ syncState: true,
3602
3694
  position: labelPosition,
3603
3695
  style: {
3604
3696
  stroke: labelStroke,
@@ -3609,6 +3701,7 @@
3609
3701
  },
3610
3702
  smartInvert: labelColorSmartInvert
3611
3703
  };
3704
+ if (labelColorSmartInvert) result.style.lineWidth = 2;
3612
3705
  if (labelOverlap) result.overlap = {
3613
3706
  hideOnHit: true,
3614
3707
  clampForce: true
@@ -3723,21 +3816,26 @@
3723
3816
  title: {
3724
3817
  visible: true
3725
3818
  },
3726
- content: createDimensionContent(dimensions, measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1)
3819
+ content: createDimensionContent(encoding.tooltip || [], measures, foldInfo, unfoldInfo, reshapeMeasures.length > 1)
3727
3820
  },
3728
3821
  updateElement: updateTooltipElement
3729
3822
  };
3730
3823
  return result;
3731
3824
  };
3732
- const createDimensionContent = (dimensions = [], measures = [], foldInfo, unfoldInfo, hasMultiMeasureGroup)=>{
3825
+ const createDimensionContent = (tooltip, measures = [], foldInfo, unfoldInfo, hasMultiMeasureGroup)=>{
3733
3826
  const { measureId, measureValue, foldMap } = foldInfo;
3734
3827
  const { encodingColor } = unfoldInfo;
3828
+ const hasMeasureTooltip = tooltip.some((d)=>measures.find((item)=>item.id === d));
3735
3829
  return [
3736
3830
  {
3737
3831
  visible: true,
3738
3832
  shapeType: 'rectRound',
3739
3833
  hasShape: true,
3740
- key: dimensions.some((d)=>'color' === d.encoding) ? (v)=>{
3834
+ key: hasMeasureTooltip ? (v)=>{
3835
+ const datum = v;
3836
+ const key = datum && datum[measureId] || '';
3837
+ return foldMap[key] ?? key;
3838
+ } : (v)=>{
3741
3839
  const datum = v;
3742
3840
  const key = datum && datum[encodingColor] || '';
3743
3841
  const colorKey = `${unfoldInfo.colorIdMap[key].alias ?? key}`;
@@ -3746,10 +3844,6 @@
3746
3844
  return `${colorKey}-${foldMap[mId] ?? mId}`;
3747
3845
  }
3748
3846
  return colorKey;
3749
- } : (v)=>{
3750
- const datum = v;
3751
- const key = datum && datum[measureId] || '';
3752
- return foldMap[key] ?? key;
3753
3847
  },
3754
3848
  value: (v)=>{
3755
3849
  const datum = v;
@@ -3907,19 +4001,6 @@
3907
4001
  confine: true,
3908
4002
  text: {
3909
4003
  text: text,
3910
- style: {
3911
- opacity: 0.95,
3912
- visible: true,
3913
- textAlign: textAlign,
3914
- textBaseline: textBaseline,
3915
- fill: textColor,
3916
- stroke: textBackgroundColor,
3917
- lineWidth: 1,
3918
- fontSize: textFontSize,
3919
- fontWeight: textFontWeight,
3920
- dx,
3921
- dy
3922
- },
3923
4004
  labelBackground: {
3924
4005
  visible: textBackgroundVisible,
3925
4006
  padding: textBackgroundPadding,
@@ -3933,6 +4014,19 @@
3933
4014
  dy
3934
4015
  }
3935
4016
  }
4017
+ },
4018
+ style: {
4019
+ opacity: 0.95,
4020
+ visible: true,
4021
+ textAlign: textAlign,
4022
+ textBaseline: textBaseline,
4023
+ fill: textColor,
4024
+ stroke: textBackgroundColor,
4025
+ lineWidth: 1,
4026
+ fontSize: textFontSize,
4027
+ fontWeight: textFontWeight,
4028
+ dx,
4029
+ dy
3936
4030
  }
3937
4031
  }
3938
4032
  };
@@ -4917,9 +5011,9 @@
4917
5011
  borderColor,
4918
5012
  color: bodyFontColor,
4919
5013
  borderLineWidth: (arg)=>{
4920
- const noYAxis = 'pie' === chartType || 'rose' === chartType || 'donut' === chartType || 'funnel' === chartType || 'radar' === chartType || 'roseParallel' === chartType;
5014
+ const noYAxis = 'pie' === chartType || 'rose' === chartType || 'donut' === chartType || 'radar' === chartType || 'roseParallel' === chartType;
4921
5015
  return [
4922
- 0 === arg.row ? outlineBorderLineWidth : 1,
5016
+ 0 === arg.row || 'funnel' === chartType && 1 === arg.row && arg.table.rowCount <= 2 ? outlineBorderLineWidth : 1,
4923
5017
  outlineBorderLineWidth,
4924
5018
  0,
4925
5019
  0 === arg.col || noYAxis && 1 === arg.col && arg.table.colCount <= 2 ? outlineBorderLineWidth : 1
@@ -5212,7 +5306,7 @@
5212
5306
  const result = axisStyle(spec, context);
5213
5307
  if (result.axes) {
5214
5308
  const { advancedVSeed } = context;
5215
- const { config, chartType, encoding, reshapeMeasures } = advancedVSeed;
5309
+ const { config, chartType, encoding, reshapeMeasures, datasetReshapeInfo } = advancedVSeed;
5216
5310
  const themConfig = config?.[chartType]?.pivotGrid ?? {};
5217
5311
  result.axes.forEach((axis)=>{
5218
5312
  axis.domainLine = {
@@ -5221,11 +5315,16 @@
5221
5315
  if (themConfig.chartGridColor && axis.grid && axis.grid.visible && axis.grid.style) axis.grid.style.stroke = themConfig.chartGridColor;
5222
5316
  if (themConfig.axisLabelColor && axis.label && axis.label.visible && axis.label.style) axis.label.style.fill = themConfig.axisLabelColor;
5223
5317
  if ('band' === axis.type) {
5224
- if ('left' === axis.orient || 'right' === axis.orient) axis.innerOffset = {
5225
- top: 2,
5226
- bottom: 2
5227
- };
5228
- else if ('top' === axis.orient || 'bottom' === axis.orient) axis.innerOffset = {
5318
+ if ('left' === axis.orient || 'right' === axis.orient) {
5319
+ axis.innerOffset = {
5320
+ top: 2,
5321
+ bottom: 2
5322
+ };
5323
+ if (reshapeMeasures && reshapeMeasures.length > 1 && chartType === ChartTypeEnum.Heatmap && common_isNil(axis.title.text)) {
5324
+ axis.title.visible = true;
5325
+ axis.title.text = Object.values(datasetReshapeInfo[0].foldInfo.foldMap)[0];
5326
+ }
5327
+ } else if ('top' === axis.orient || 'bottom' === axis.orient) axis.innerOffset = {
5229
5328
  left: 2,
5230
5329
  right: 2
5231
5330
  };
@@ -5243,12 +5342,20 @@
5243
5342
  };
5244
5343
  const { advancedVSeed } = context;
5245
5344
  const dimensions = advancedVSeed.dimensions;
5345
+ const measures = advancedVSeed.measures ?? [];
5246
5346
  if (!dimensions) return result;
5247
5347
  const rowDimensions = dimensions.filter((dim)=>'row' === dim.encoding);
5248
- const rows = rowDimensions.map((dim)=>({
5348
+ const rows = rowDimensions.map((dim)=>{
5349
+ const baseConfig = {
5249
5350
  dimensionKey: dim.id,
5250
- title: dim.alias || dim.id
5251
- }));
5351
+ title: dim.alias ?? dim.id
5352
+ };
5353
+ if (dim.id === FoldYMeasureId) baseConfig.headerFormat = (title)=>{
5354
+ const measure = measures.find((m)=>m.id === title);
5355
+ return measure ? measure.alias ?? measure.id : title;
5356
+ };
5357
+ return baseConfig;
5358
+ });
5252
5359
  return {
5253
5360
  ...result,
5254
5361
  rows: rows
@@ -5260,12 +5367,20 @@
5260
5367
  };
5261
5368
  const { advancedVSeed } = context;
5262
5369
  const dimensions = advancedVSeed.dimensions;
5370
+ const measures = advancedVSeed.measures ?? [];
5263
5371
  if (!dimensions) return result;
5264
5372
  const columnDimensions = dimensions.filter((dim)=>'column' === dim.encoding);
5265
- const columns = columnDimensions.map((dim)=>({
5373
+ const columns = columnDimensions.map((dim)=>{
5374
+ const baseConfig = {
5266
5375
  dimensionKey: dim.id,
5267
- title: dim.alias || dim.id
5268
- }));
5376
+ title: dim.alias ?? dim.id
5377
+ };
5378
+ if (dim.id === FoldXMeasureId) baseConfig.headerFormat = (title)=>{
5379
+ const measure = measures.find((m)=>m.id === title);
5380
+ return measure ? measure.alias ?? measure.id : title;
5381
+ };
5382
+ return baseConfig;
5383
+ });
5269
5384
  return {
5270
5385
  ...result,
5271
5386
  columns: columns
@@ -5278,8 +5393,9 @@
5278
5393
  const { advancedVSeed } = context;
5279
5394
  const { config, chartType } = advancedVSeed;
5280
5395
  const themConfig = config?.[chartType]?.pivotGrid ?? {};
5281
- if (result.columns && result.columns.length > 0) result.title = {
5282
- text: spec.columns.map((entry)=>entry.title).join('/'),
5396
+ const columns = result.columns?.filter((c)=>c.dimensionKey !== FoldXMeasureId);
5397
+ if (columns && columns.length > 0) result.title = {
5398
+ text: columns.map((entry)=>entry.title).join('/'),
5283
5399
  align: 'center',
5284
5400
  orient: 'top',
5285
5401
  padding: [
@@ -5421,8 +5537,8 @@
5421
5537
  const baseConfig = advancedVSeed.config[chartType];
5422
5538
  if (!baseConfig || !baseConfig.legend) return result;
5423
5539
  const { datasetReshapeInfo } = advancedVSeed;
5424
- const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMin));
5425
- const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMax));
5540
+ const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMax));
5541
+ const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMin));
5426
5542
  const { legend, color } = baseConfig;
5427
5543
  const { colorScheme, linearColorScheme } = color;
5428
5544
  const { enable, position = 'bottom', labelFontColor, labelColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {};
@@ -5552,6 +5668,7 @@
5552
5668
  progressive,
5553
5669
  xBand,
5554
5670
  yLinear,
5671
+ brush_brush,
5555
5672
  verticalCrosshairLine,
5556
5673
  colorAdapter(discreteLegend, colorLegend),
5557
5674
  colorPointStyleFill(pointStyle_pointStyle),
@@ -5578,6 +5695,7 @@
5578
5695
  progressive,
5579
5696
  xBand,
5580
5697
  pivotAxisStyle(yLinear),
5698
+ brush_brush,
5581
5699
  verticalCrosshairLine,
5582
5700
  colorPointStyleFill(pointStyle_pointStyle),
5583
5701
  pointStateDimensionHover,
@@ -5689,6 +5807,7 @@
5689
5807
  'stackCornerRadius',
5690
5808
  'barMaxWidth',
5691
5809
  'barGapInGroup',
5810
+ 'brush',
5692
5811
  'dimensionLinkage'
5693
5812
  ]);
5694
5813
  const config = replaceNullToUndefined(pickedConfig);
@@ -6538,6 +6657,7 @@
6538
6657
  xBand,
6539
6658
  yLinear,
6540
6659
  label_label,
6660
+ brush_brush,
6541
6661
  tooltip_tooltip,
6542
6662
  verticalCrosshairRect,
6543
6663
  colorAdapter(discreteLegend, colorLegend),
@@ -6564,6 +6684,7 @@
6564
6684
  progressive,
6565
6685
  xBand,
6566
6686
  pivotAxisStyle(yLinear),
6687
+ brush_brush,
6567
6688
  label_label,
6568
6689
  tooltip_tooltip,
6569
6690
  verticalCrosshairRect,
@@ -6598,7 +6719,8 @@
6598
6719
  'color',
6599
6720
  'label',
6600
6721
  'legend',
6601
- 'tooltip'
6722
+ 'tooltip',
6723
+ 'brush'
6602
6724
  ]);
6603
6725
  const config = replaceNullToUndefined(pickedConfig);
6604
6726
  result.config = {
@@ -6621,7 +6743,6 @@
6621
6743
  const roseParallelConfig = pieConfig;
6622
6744
  const radarConfig = pieConfig;
6623
6745
  const funnelConfig = pieConfig;
6624
- const heatmapConfig = pieConfig;
6625
6746
  const columnParallelAdvancedPipeline = [
6626
6747
  initAdvancedVSeed_initAdvancedVSeed,
6627
6748
  default_defaultMeasures_defaultMeasures,
@@ -6743,6 +6864,7 @@
6743
6864
  xBand,
6744
6865
  yLinear,
6745
6866
  label_label,
6867
+ brush_brush,
6746
6868
  tooltip_tooltip,
6747
6869
  colorAdapter(discreteLegend, colorLegend),
6748
6870
  verticalCrosshairRect,
@@ -6767,6 +6889,7 @@
6767
6889
  progressive,
6768
6890
  xBand,
6769
6891
  pivotAxisStyle(yLinear),
6892
+ brush_brush,
6770
6893
  label_label,
6771
6894
  tooltip_tooltip,
6772
6895
  verticalCrosshairRect,
@@ -6840,6 +6963,7 @@
6840
6963
  xBand,
6841
6964
  yLinear,
6842
6965
  label_label,
6966
+ brush_brush,
6843
6967
  tooltip_tooltip,
6844
6968
  colorAdapter(discreteLegend, colorLegend),
6845
6969
  verticalCrosshairRect,
@@ -6866,6 +6990,7 @@
6866
6990
  progressive,
6867
6991
  xBand,
6868
6992
  pivotAxisStyle(yLinear),
6993
+ brush_brush,
6869
6994
  label_label,
6870
6995
  tooltip_tooltip,
6871
6996
  verticalCrosshairRect,
@@ -7194,6 +7319,7 @@
7194
7319
  xLinear,
7195
7320
  yBand,
7196
7321
  label_label,
7322
+ brush_brush,
7197
7323
  tooltip_tooltip,
7198
7324
  colorAdapter(discreteLegend, colorLegend),
7199
7325
  horizontalCrosshairRect,
@@ -7219,6 +7345,7 @@
7219
7345
  xLinear,
7220
7346
  pivotAxisStyle(yBand),
7221
7347
  label_label,
7348
+ brush_brush,
7222
7349
  tooltip_tooltip,
7223
7350
  colorBarStyleFill(barStyle_barStyle),
7224
7351
  horizontalCrosshairRect,
@@ -7311,6 +7438,7 @@
7311
7438
  xLinear,
7312
7439
  yBand,
7313
7440
  label_label,
7441
+ brush_brush,
7314
7442
  tooltip_tooltip,
7315
7443
  colorAdapter(discreteLegend, colorLegend),
7316
7444
  horizontalCrosshairRect,
@@ -7334,6 +7462,7 @@
7334
7462
  datasetYX,
7335
7463
  xLinear,
7336
7464
  pivotAxisStyle(yBand),
7465
+ brush_brush,
7337
7466
  label_label,
7338
7467
  tooltip_tooltip,
7339
7468
  colorBarStyleFill(barStyle_barStyle),
@@ -7399,6 +7528,7 @@
7399
7528
  xLinear,
7400
7529
  yBand,
7401
7530
  label_label,
7531
+ brush_brush,
7402
7532
  tooltip_tooltip,
7403
7533
  colorAdapter(discreteLegend, colorLegend),
7404
7534
  horizontalCrosshairRect,
@@ -7423,6 +7553,7 @@
7423
7553
  datasetYX,
7424
7554
  xLinear,
7425
7555
  pivotAxisStyle(yBand),
7556
+ brush_brush,
7426
7557
  label_label,
7427
7558
  tooltip_tooltip,
7428
7559
  colorBarStyleFill(barStyle_barStyle),
@@ -7591,6 +7722,7 @@
7591
7722
  xBand,
7592
7723
  yLinear,
7593
7724
  label_label,
7725
+ brush_brush,
7594
7726
  tooltip_tooltip,
7595
7727
  colorAdapter(discreteLegend, colorLegend),
7596
7728
  verticalCrosshairLine,
@@ -7619,6 +7751,7 @@
7619
7751
  xBand,
7620
7752
  pivotAxisStyle(yLinear),
7621
7753
  label_label,
7754
+ brush_brush,
7622
7755
  tooltip_tooltip,
7623
7756
  verticalCrosshairLine,
7624
7757
  colorPointStyleFill(pointStyle_pointStyle),
@@ -7686,6 +7819,7 @@
7686
7819
  xBand,
7687
7820
  yLinear,
7688
7821
  label_label,
7822
+ brush_brush,
7689
7823
  tooltip_tooltip,
7690
7824
  colorAdapter(discreteLegend, colorLegend),
7691
7825
  verticalCrosshairLine,
@@ -7714,6 +7848,7 @@
7714
7848
  xBand,
7715
7849
  pivotAxisStyle(yLinear),
7716
7850
  label_label,
7851
+ brush_brush,
7717
7852
  tooltip_tooltip,
7718
7853
  verticalCrosshairLine,
7719
7854
  colorPointStyleFill(pointStyle_pointStyle),
@@ -7740,38 +7875,56 @@
7740
7875
  };
7741
7876
  const buildMeasuresForScatter = (advancedVSeed)=>{
7742
7877
  const { measures = [] } = advancedVSeed;
7743
- const measuresByView = {};
7744
- const parentIds = [];
7878
+ const encodedMeasures = [];
7745
7879
  for(let index = 0; index < measures.length; index++){
7746
7880
  const item = measures[index];
7747
7881
  const encoding = item.encoding;
7748
- const parentId = item.parentId || DEFAULT_PARENT_ID;
7749
7882
  const isYAxis = 'yAxis' === encoding;
7750
7883
  const isXAxis = 'xAxis' === encoding;
7751
7884
  const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
7752
- ensureParentIdInitialized(parentId, measuresByView, parentIds);
7753
- if (isYAxis) measuresByView[parentId].push(item);
7754
- else if (isXAxis) measuresByView[parentId].push(item);
7885
+ if (isYAxis) encodedMeasures.push(item);
7886
+ else if (isXAxis) encodedMeasures.push(item);
7755
7887
  else if (!isOtherEncoding && 'size' !== encoding) {
7756
- const xCount = measuresByView[parentId].filter((m)=>'xAxis' === m.encoding).length;
7888
+ const xCount = encodedMeasures.filter((m)=>'xAxis' === m.encoding).length;
7757
7889
  item.encoding = 0 === xCount ? 'xAxis' : 'yAxis';
7758
- measuresByView[parentId].push(item);
7890
+ encodedMeasures.push(item);
7759
7891
  }
7760
7892
  }
7761
- advancedVSeed.reshapeMeasures = parentIds.map((pid)=>{
7762
- const basicMeasures = measuresByView[pid];
7763
- const xCount = basicMeasures.filter((m)=>'xAxis' === m.encoding).length;
7764
- const yCount = basicMeasures.filter((m)=>'yAxis' === m.encoding).length;
7765
- if (0 === yCount && xCount > 0) {
7766
- const cloneMeasure = chunk_BCBB46UE_d(basicMeasures[0]);
7767
- cloneMeasure.encoding = 'yAxis';
7768
- return [
7769
- ...basicMeasures,
7770
- cloneMeasure
7771
- ];
7893
+ const xCount = encodedMeasures.filter((m)=>'xAxis' === m.encoding).length;
7894
+ const yCount = encodedMeasures.filter((m)=>'yAxis' === m.encoding).length;
7895
+ if (0 === yCount && xCount > 0) {
7896
+ const cloneMeasure = chunk_BCBB46UE_d(encodedMeasures[0]);
7897
+ cloneMeasure.encoding = 'yAxis';
7898
+ encodedMeasures.push(cloneMeasure);
7899
+ }
7900
+ advancedVSeed.reshapeMeasures = encodedMeasures.length > 0 ? [
7901
+ encodedMeasures
7902
+ ] : [];
7903
+ return advancedVSeed;
7904
+ };
7905
+ const addPivotDimensionsForScatter = (advancedVSeed)=>{
7906
+ const { reshapeMeasures = [] } = advancedVSeed;
7907
+ if (reshapeMeasures[0]?.length >= 2) {
7908
+ const dimensions = advancedVSeed.dimensions ?? [];
7909
+ const xMeasures = reshapeMeasures[0].filter((m)=>'xAxis' === m.encoding);
7910
+ const yMeasures = reshapeMeasures[0].filter((m)=>'yAxis' === m.encoding);
7911
+ if (xMeasures.length > 1 || yMeasures.length > 1) {
7912
+ dimensions.push({
7913
+ id: FoldXMeasureId,
7914
+ alias: ' ',
7915
+ encoding: 'column'
7916
+ });
7917
+ dimensions.push({
7918
+ id: FoldYMeasureId,
7919
+ alias: ' ',
7920
+ encoding: 'row'
7921
+ });
7772
7922
  }
7773
- return basicMeasures;
7774
- }).filter((m)=>m.length > 0);
7923
+ return {
7924
+ ...advancedVSeed,
7925
+ dimensions
7926
+ };
7927
+ }
7775
7928
  return advancedVSeed;
7776
7929
  };
7777
7930
  const defaultEncodingForScatter = (advancedVSeed)=>{
@@ -7802,7 +7955,11 @@
7802
7955
  const dimensionsWithoutMeasureId = dimensions.filter((item)=>item.id !== MeasureId);
7803
7956
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureId.map((d)=>d.id));
7804
7957
  encoding.detail = encoding.color;
7805
- encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
7958
+ encoding.tooltip = uniqueDimIds.filter((d)=>![
7959
+ MeasureId,
7960
+ FoldYMeasureId,
7961
+ FoldXMeasureId
7962
+ ].includes(d));
7806
7963
  encoding.label = [];
7807
7964
  encoding.row = [];
7808
7965
  encoding.column = [];
@@ -7814,7 +7971,11 @@
7814
7971
  MeasureId
7815
7972
  ];
7816
7973
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
7817
- encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
7974
+ encoding.tooltip = encoding.tooltip.filter((d)=>![
7975
+ MeasureId,
7976
+ FoldYMeasureId,
7977
+ FoldXMeasureId
7978
+ ].includes(d));
7818
7979
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
7819
7980
  encoding.label = encoding.label.filter((d)=>d !== MeasureId);
7820
7981
  };
@@ -7838,7 +7999,8 @@
7838
7999
  ...encoding.tooltip || [],
7839
8000
  ...label,
7840
8001
  ...tooltip,
7841
- ...color
8002
+ ...color,
8003
+ ...encoding.size
7842
8004
  ]);
7843
8005
  };
7844
8006
  const scatterConfig = (advancedVSeed, context)=>{
@@ -7858,6 +8020,7 @@
7858
8020
  'sizeRange',
7859
8021
  'size',
7860
8022
  'crosshairLine',
8023
+ 'brush',
7861
8024
  'dimensionLinkage'
7862
8025
  ]);
7863
8026
  const config = replaceNullToUndefined(pickedConfig);
@@ -7880,6 +8043,7 @@
7880
8043
  const measures = reshapeMeasures?.[0] ?? [];
7881
8044
  const foldInfoList = [];
7882
8045
  const unfoldInfoList = [];
8046
+ const sizeEncodingIds = encoding?.size ?? [];
7883
8047
  const datasets = [];
7884
8048
  const xMeasures = measures.filter((m)=>'xAxis' === m.encoding);
7885
8049
  const yMeasures = measures.filter((m)=>'yAxis' === m.encoding);
@@ -7887,7 +8051,8 @@
7887
8051
  foldMeasureValue: FoldXMeasureValue,
7888
8052
  foldMeasureId: FoldXMeasureId,
7889
8053
  colorItemAsId: true,
7890
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
8054
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8055
+ omitIds: xMeasures.map((m)=>m.id).filter((id)=>!sizeEncodingIds.includes(id))
7891
8056
  });
7892
8057
  datasets.push(xResult.dataset);
7893
8058
  foldInfoList.push(xResult.foldInfo);
@@ -7896,7 +8061,8 @@
7896
8061
  foldMeasureValue: FoldYMeasureValue,
7897
8062
  foldMeasureId: FoldYMeasureId,
7898
8063
  colorItemAsId: true,
7899
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
8064
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8065
+ omitIds: yMeasures.map((m)=>m.id).filter((id)=>!sizeEncodingIds.includes(id))
7900
8066
  });
7901
8067
  datasets[0] = yResult.dataset;
7902
8068
  foldInfoList.push(yResult.foldInfo);
@@ -7932,7 +8098,8 @@
7932
8098
  const { encoding, chartType } = advancedVSeed;
7933
8099
  const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
7934
8100
  const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
7935
- const allMeasuresIds = reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id));
8101
+ let allMeasuresIds = chunk_QJLMYOTX_i(reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id)));
8102
+ if (encoding?.size?.length) allMeasuresIds = allMeasuresIds.filter((mId)=>!encoding.size.includes(mId));
7936
8103
  const datasetList = [];
7937
8104
  const datasetReshapeInfo = [];
7938
8105
  reshapeMeasures.forEach((measures, index)=>{
@@ -7943,6 +8110,7 @@
7943
8110
  const yMeasures = measures.filter((m)=>'yAxis' === m.encoding);
7944
8111
  const xResult = dataReshapeByEncoding(dataset, dimensions, xMeasures, encoding, {
7945
8112
  foldMeasureValue: `${FoldXMeasureValue}${index}`,
8113
+ foldMeasureId: FoldXMeasureId,
7946
8114
  colorItemAsId: true,
7947
8115
  colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
7948
8116
  omitIds: allMeasuresIds
@@ -7952,6 +8120,7 @@
7952
8120
  unfoldInfoList.push(xResult.unfoldInfo);
7953
8121
  const yResult = dataReshapeByEncoding(dataset, dimensions, yMeasures, encoding, {
7954
8122
  foldMeasureValue: `${FoldYMeasureValue}${index}`,
8123
+ foldMeasureId: FoldYMeasureId,
7955
8124
  colorItemAsId: true,
7956
8125
  colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
7957
8126
  omitIds: allMeasuresIds
@@ -7975,10 +8144,10 @@
7975
8144
  unfoldInfo: unfoldInfo
7976
8145
  };
7977
8146
  datasetReshapeInfo.push(reshapeInfo);
7978
- datasetList.push(datasets[0].map((d, index)=>({
7979
- ...d,
7980
- ...datasets[1]?.[index] || {}
7981
- })));
8147
+ datasetList.push(datasets[0].flatMap((d)=>datasets[1].filter((yDatum)=>yDatum[ORIGINAL_DATA] === d[ORIGINAL_DATA]).map((yDatum)=>({
8148
+ ...d,
8149
+ ...yDatum
8150
+ }))));
7982
8151
  });
7983
8152
  return {
7984
8153
  ...result,
@@ -7993,9 +8162,11 @@
7993
8162
  defaultMeasureId_defaultMeasureId,
7994
8163
  encodingAdapter([
7995
8164
  buildMeasuresForScatter,
8165
+ addPivotDimensionsForScatter,
7996
8166
  defaultEncodingForScatter
7997
8167
  ], [
7998
8168
  buildMeasuresForScatter,
8169
+ addPivotDimensionsForScatter,
7999
8170
  encodingForScatter,
8000
8171
  pickDimensionsForReshape
8001
8172
  ]),
@@ -8097,7 +8268,8 @@
8097
8268
  title: {
8098
8269
  visible: false
8099
8270
  },
8100
- content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, locale, foldInfoList)
8271
+ content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, locale, foldInfoList),
8272
+ updateContent: (prev = [])=>T(prev, (entry)=>`${String(entry.key)}::${String(entry.value)}`)
8101
8273
  },
8102
8274
  dimension: {
8103
8275
  visible: false
@@ -8144,7 +8316,13 @@
8144
8316
  visible: true,
8145
8317
  hasShape: true,
8146
8318
  shapeType: 'rectRound',
8147
- key: Object.values(foldInfo.foldMap)[0],
8319
+ key: (v)=>{
8320
+ const { measureId, foldMap } = foldInfo;
8321
+ const datum = v;
8322
+ if (!datum) return '';
8323
+ const id = datum[measureId];
8324
+ return foldMap[id] ?? id;
8325
+ },
8148
8326
  value: (v)=>{
8149
8327
  const { measureId, measureValue } = foldInfo;
8150
8328
  const datum = v;
@@ -8662,6 +8840,7 @@
8662
8840
  progressive,
8663
8841
  xLinear,
8664
8842
  yLinear,
8843
+ brush_brush,
8665
8844
  scatterSize,
8666
8845
  labelScatter,
8667
8846
  tooltipScatter,
@@ -8692,6 +8871,7 @@
8692
8871
  progressive,
8693
8872
  xLinear,
8694
8873
  pivotAxisStyle(yLinear),
8874
+ brush_brush,
8695
8875
  scatterSize,
8696
8876
  labelScatter,
8697
8877
  tooltipScatter,
@@ -8826,6 +9006,7 @@
8826
9006
  const { encoding, chartType } = advancedVSeed;
8827
9007
  const measures = advancedVSeed.reshapeMeasures?.[0] ?? [];
8828
9008
  const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
9009
+ const allMeasuresIds = measures.map((m)=>m.id);
8829
9010
  const foldInfoList = [];
8830
9011
  const unfoldInfoList = [];
8831
9012
  const datasets = [];
@@ -8839,7 +9020,8 @@
8839
9020
  const primaryResult = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(primaryMeasures.filter((m)=>m.chartType === chartType), (item)=>item.id), encoding, {
8840
9021
  colorItemAsId: false,
8841
9022
  foldMeasureValue: FoldPrimaryMeasureValue,
8842
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
9023
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
9024
+ omitIds: allMeasuresIds
8843
9025
  });
8844
9026
  primaryResult.dataset.forEach((row)=>{
8845
9027
  row[DimAxisType] = 'primaryYAxis';
@@ -8852,7 +9034,8 @@
8852
9034
  const secondaryResult = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(secondaryMeasures.filter((m)=>m.chartType === chartType), (item)=>item.id), encoding, {
8853
9035
  colorItemAsId: false,
8854
9036
  foldMeasureValue: FoldSecondaryMeasureValue,
8855
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
9037
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
9038
+ omitIds: allMeasuresIds
8856
9039
  });
8857
9040
  secondaryResult.dataset.forEach((row)=>{
8858
9041
  row[DimAxisType] = 'secondaryYAxis';
@@ -9231,7 +9414,7 @@
9231
9414
  title: {
9232
9415
  visible: true
9233
9416
  },
9234
- content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo, reshapeMeasures.length > 1)
9417
+ content: createDimensionContent(encoding.tooltip || [], measures, options.foldInfo, unfoldInfo, reshapeMeasures.length > 1)
9235
9418
  }
9236
9419
  };
9237
9420
  return result;
@@ -9403,21 +9586,21 @@
9403
9586
  };
9404
9587
  const isObjectLike = (value)=>"object" == typeof value && null !== value;
9405
9588
  const common_isObjectLike = isObjectLike;
9406
- const isPlainObject = function(value) {
9589
+ const isPlainObject_isPlainObject = function(value) {
9407
9590
  if (!common_isObjectLike(value) || !isType(value, "Object")) return !1;
9408
9591
  if (null === Object.getPrototypeOf(value)) return !0;
9409
9592
  let proto = value;
9410
9593
  for(; null !== Object.getPrototypeOf(proto);)proto = Object.getPrototypeOf(proto);
9411
9594
  return Object.getPrototypeOf(value) === proto;
9412
9595
  };
9413
- const common_isPlainObject = isPlainObject;
9596
+ const isPlainObject = isPlainObject_isPlainObject;
9414
9597
  const isString = (value, fuzzy = !1)=>{
9415
9598
  const type = typeof value;
9416
9599
  return fuzzy ? "string" === type : "string" === type || isType(value, "String");
9417
9600
  };
9418
9601
  const common_isString = isString;
9419
9602
  function pickWithout(obj, keys) {
9420
- if (!obj || !common_isPlainObject(obj)) return obj;
9603
+ if (!obj || !isPlainObject(obj)) return obj;
9421
9604
  const result = {};
9422
9605
  return Object.keys(obj).forEach((k)=>{
9423
9606
  const v = obj[k];
@@ -9715,6 +9898,7 @@
9715
9898
  background_backgroundColor,
9716
9899
  datasetXY,
9717
9900
  progressive,
9901
+ brush_brush,
9718
9902
  colorPieStyleFill(pieStyle),
9719
9903
  colorAdapter(discreteLegend, colorLegend),
9720
9904
  labelPie,
@@ -9736,6 +9920,7 @@
9736
9920
  background_backgroundColor,
9737
9921
  datasetXY,
9738
9922
  progressive,
9923
+ brush_brush,
9739
9924
  colorPieStyleFill(pieStyle),
9740
9925
  labelPie,
9741
9926
  tooltip_tooltip,
@@ -9748,7 +9933,8 @@
9748
9933
  pivotRowDimensions,
9749
9934
  pivotColumnDimensions,
9750
9935
  pivotTitle,
9751
- colorAdapter(pivotDiscreteLegend, pivotColorLegend)
9936
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend),
9937
+ dimensionLinkage
9752
9938
  ];
9753
9939
  const pieSpecPipeline = [
9754
9940
  pivotAdapter_pivotAdapter(pie, pivotPie)
@@ -9812,6 +9998,7 @@
9812
9998
  background_backgroundColor,
9813
9999
  datasetXY,
9814
10000
  progressive,
10001
+ brush_brush,
9815
10002
  labelPie,
9816
10003
  colorPieStyleFill(pieStyle),
9817
10004
  colorAdapter(discreteLegend, colorLegend),
@@ -9834,6 +10021,7 @@
9834
10021
  background_backgroundColor,
9835
10022
  datasetXY,
9836
10023
  progressive,
10024
+ brush_brush,
9837
10025
  labelPie,
9838
10026
  colorPieStyleFill(pieStyle),
9839
10027
  tooltip_tooltip,
@@ -9845,7 +10033,8 @@
9845
10033
  pivotRowDimensions,
9846
10034
  pivotColumnDimensions,
9847
10035
  pivotTitle,
9848
- colorAdapter(pivotDiscreteLegend, pivotColorLegend)
10036
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend),
10037
+ dimensionLinkage
9849
10038
  ];
9850
10039
  const donutSpecPipeline = [
9851
10040
  pivotAdapter_pivotAdapter(donut, pivotDonut)
@@ -10067,7 +10256,8 @@
10067
10256
  pivotRowDimensions,
10068
10257
  pivotColumnDimensions,
10069
10258
  pivotTitle,
10070
- colorAdapter(pivotDiscreteLegend, pivotColorLegend)
10259
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend),
10260
+ dimensionLinkage
10071
10261
  ];
10072
10262
  const roseSpecPipeline = [
10073
10263
  pivotAdapter_pivotAdapter(rose, pivotRose)
@@ -10193,7 +10383,8 @@
10193
10383
  pivotRowDimensions,
10194
10384
  pivotColumnDimensions,
10195
10385
  pivotTitle,
10196
- colorAdapter(pivotDiscreteLegend, pivotColorLegend)
10386
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend),
10387
+ dimensionLinkage
10197
10388
  ];
10198
10389
  const roseParallelSpecPipeline = [
10199
10390
  pivotAdapter_pivotAdapter(roseParallel, pivotRoseParallel)
@@ -10610,11 +10801,12 @@
10610
10801
  const pivotFunnel = [
10611
10802
  initPivot,
10612
10803
  pivotGridStyle,
10613
- pivotIndicatorsAsRow,
10804
+ pivotIndicatorsAsCol,
10614
10805
  pivotHideIndicatorName,
10615
10806
  datasetPivot,
10616
10807
  pivotIndicators_pivotIndicators([
10617
10808
  initFunnel,
10809
+ addRegionPadding,
10618
10810
  background_backgroundColor,
10619
10811
  datasetXY,
10620
10812
  colorAdapter(color_color, linearColor),
@@ -10693,15 +10885,11 @@
10693
10885
  };
10694
10886
  const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
10695
10887
  const colorDims = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
10696
- if (colorDims.length > 0) encoding.color = [
10697
- colorDims[0]
10698
- ];
10888
+ if (colorDims.length > 0) encoding.color = colorDims;
10699
10889
  };
10700
10890
  const heatmap_generateMeasureEncoding = (measures, encoding)=>{
10701
10891
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
10702
- if (color.length > 0) encoding.color = [
10703
- color[0]
10704
- ];
10892
+ if (color.length > 0) encoding.color = color;
10705
10893
  const label = chunk_QJLMYOTX_i(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
10706
10894
  encoding.label = chunk_QJLMYOTX_i([
10707
10895
  ...encoding.label || [],
@@ -10714,6 +10902,32 @@
10714
10902
  ...tooltip
10715
10903
  ]);
10716
10904
  };
10905
+ const heatmapConfig = (advancedVSeed, context)=>{
10906
+ const { vseed } = context;
10907
+ const { chartType } = vseed;
10908
+ const result = {
10909
+ ...advancedVSeed
10910
+ };
10911
+ const pickedConfig = chunk_2T7K3PFL_i(vseed, [
10912
+ 'backgroundColor',
10913
+ 'color',
10914
+ 'label',
10915
+ 'legend',
10916
+ 'tooltip',
10917
+ 'xAxis',
10918
+ 'yAxis',
10919
+ 'brush',
10920
+ 'dimensionLinkage'
10921
+ ]);
10922
+ const config = replaceNullToUndefined(pickedConfig);
10923
+ result.config = {
10924
+ ...result.config || {},
10925
+ [chartType]: {
10926
+ ...config
10927
+ }
10928
+ };
10929
+ return result;
10930
+ };
10717
10931
  const heatmapAdvancedPipeline = [
10718
10932
  initAdvancedVSeed_initAdvancedVSeed,
10719
10933
  default_defaultMeasures_defaultMeasures,
@@ -10778,37 +10992,32 @@
10778
10992
  };
10779
10993
  return result;
10780
10994
  };
10781
- const colorCellStyleFill = (stylePipe)=>(spec, context)=>{
10782
- const result = stylePipe(spec, context);
10783
- const { advancedVSeed, vseed } = context;
10784
- const { datasetReshapeInfo } = advancedVSeed;
10785
- const { unfoldInfo } = datasetReshapeInfo[0];
10786
- if (isLinearColor(advancedVSeed, vseed)) {
10787
- if (result?.cell?.style) result.cell.style.fill = {
10788
- field: unfoldInfo.encodingColor,
10789
- scale: 'color'
10790
- };
10791
- }
10792
- return result;
10793
- };
10794
10995
  const markStyle_cellStyle_cellStyle = (spec, context)=>{
10795
- const result = {
10796
- ...spec,
10797
- cell: {
10798
- style: {}
10799
- }
10800
- };
10801
10996
  const { advancedVSeed, vseed } = context;
10802
10997
  const { chartType } = vseed;
10803
10998
  const cell = advancedVSeed.config?.[chartType]?.cell;
10999
+ const { datasetReshapeInfo } = advancedVSeed;
11000
+ const { unfoldInfo } = datasetReshapeInfo[0];
10804
11001
  return {
10805
- ...result,
11002
+ ...spec,
10806
11003
  cell: {
10807
11004
  style: {
10808
11005
  visible: (datum)=>datum?.[DATUM_HIDE_KEY] !== true,
10809
11006
  shape: 'rect',
10810
11007
  stroke: cell?.stroke,
10811
- lineWidth: cell?.lineWidth ?? 1
11008
+ lineWidth: cell?.lineWidth ?? 1,
11009
+ fill: {
11010
+ field: isLinearColor(advancedVSeed, vseed) ? unfoldInfo.encodingColor : unfoldInfo.encodingColorId,
11011
+ scale: 'color'
11012
+ }
11013
+ },
11014
+ state: {
11015
+ hover: {
11016
+ shadowColor: cell?.hoverShadowColor,
11017
+ shadowBlur: 5,
11018
+ shadowOffsetX: 0,
11019
+ shadowOffsetY: 0
11020
+ }
10812
11021
  }
10813
11022
  }
10814
11023
  };
@@ -10904,6 +11113,21 @@
10904
11113
  ...meaContent
10905
11114
  ];
10906
11115
  };
11116
+ const heatmapColorDomain = (spec, context)=>{
11117
+ const { advancedVSeed } = context;
11118
+ const indicators = spec.indicators;
11119
+ if (!indicators || !indicators.length || indicators.every((ind)=>ind.chartSpec.color?.type !== 'linear')) return spec;
11120
+ const { datasetReshapeInfo } = advancedVSeed;
11121
+ const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMax));
11122
+ const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMin));
11123
+ indicators.forEach((ind)=>{
11124
+ if (ind.chartSpec.color?.type === 'linear') ind.chartSpec.color.domain = [
11125
+ min,
11126
+ max
11127
+ ];
11128
+ });
11129
+ return spec;
11130
+ };
10907
11131
  const initHeatmap = (spec, context)=>{
10908
11132
  const result = {
10909
11133
  ...spec
@@ -10933,8 +11157,9 @@
10933
11157
  colorAdapter(color_color, linearColor),
10934
11158
  label_label,
10935
11159
  heatmapBandAxis,
11160
+ brush_brush,
10936
11161
  colorAdapter(discreteLegend, heatmapColorLegend),
10937
- colorCellStyleFill(markStyle_cellStyle_cellStyle),
11162
+ markStyle_cellStyle_cellStyle,
10938
11163
  tooltipHeatmap,
10939
11164
  annotationPoint_annotationPoint,
10940
11165
  annotationVerticalLine_annotationVerticalLine,
@@ -10947,19 +11172,21 @@
10947
11172
  pivotIndicatorsAsRow,
10948
11173
  datasetPivot,
10949
11174
  pivotIndicators_pivotIndicators([
10950
- pivotAxisStyle(initHeatmap),
11175
+ initHeatmap,
10951
11176
  background_backgroundColor,
10952
11177
  datasetXY,
10953
11178
  colorAdapter(color_color, linearColor),
10954
11179
  label_label,
10955
- heatmapBandAxis,
11180
+ pivotAxisStyle(heatmapBandAxis),
11181
+ brush_brush,
10956
11182
  tooltipHeatmap,
10957
- colorCellStyleFill(markStyle_cellStyle_cellStyle),
11183
+ markStyle_cellStyle_cellStyle,
10958
11184
  annotationPoint_annotationPoint,
10959
11185
  annotationVerticalLine_annotationVerticalLine,
10960
11186
  annotationHorizontalLine_annotationHorizontalLine,
10961
11187
  annotationArea_annotationArea
10962
11188
  ]),
11189
+ heatmapColorDomain,
10963
11190
  pivotRowDimensions,
10964
11191
  pivotColumnDimensions,
10965
11192
  pivotTitle,
@@ -11590,7 +11817,8 @@
11590
11817
  const { advancedVSeed, vseed } = context;
11591
11818
  const { markStyle, config } = advancedVSeed;
11592
11819
  const { boxPlotStyle } = markStyle;
11593
- const theme = config?.[vseed.chartType]?.boxPlotStyle;
11820
+ const { chartType } = vseed;
11821
+ const theme = config?.[chartType]?.boxPlotStyle;
11594
11822
  const result = {
11595
11823
  ...spec,
11596
11824
  boxPlot: {
@@ -11643,7 +11871,8 @@
11643
11871
  const { advancedVSeed, vseed } = context;
11644
11872
  const { markStyle, config } = advancedVSeed;
11645
11873
  const { outlierStyle } = markStyle;
11646
- const theme = config?.[vseed.chartType]?.outlierStyle;
11874
+ const { chartType } = vseed;
11875
+ const theme = config?.[chartType]?.outlierStyle;
11647
11876
  const result = {
11648
11877
  ...spec,
11649
11878
  outlier: {
@@ -11790,7 +12019,7 @@
11790
12019
  const length = objValue.length;
11791
12020
  for(; ++index < length;)newValue[index] = objValue[index];
11792
12021
  }
11793
- } else common_isPlainObject(srcValue) ? (newValue = null != objValue ? objValue : {}, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
12022
+ } else isPlainObject(srcValue) ? (newValue = null != objValue ? objValue : {}, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
11794
12023
  isCommon && baseMerge(newValue, srcValue, shallowArray, skipTargetArray), assignMergeValue(target, key, newValue);
11795
12024
  }
11796
12025
  function assignMergeValue(target, key, value) {
@@ -11824,6 +12053,7 @@
11824
12053
  'binCount',
11825
12054
  'binStep',
11826
12055
  'binValueType',
12056
+ 'brush',
11827
12057
  'dimensionLinkage'
11828
12058
  ]);
11829
12059
  let config = replaceNullToUndefined(pickedConfig);
@@ -12160,7 +12390,8 @@
12160
12390
  } else if (encoding.x0?.length && encoding.x1?.length && encoding.y?.length) {
12161
12391
  const res = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), measures.filter((item)=>encoding.y?.includes(item.id)).slice(0, 1), encoding, {
12162
12392
  colorItemAsId: false,
12163
- colorMeasureId
12393
+ colorMeasureId,
12394
+ omitIds: []
12164
12395
  });
12165
12396
  res.dataset.forEach((datum)=>{
12166
12397
  datum[BinStartMeasureId] = datum[encoding.x0[0]];
@@ -12263,7 +12494,8 @@
12263
12494
  } else if (encoding.x0?.length && encoding.x1?.length && encoding.y?.length) {
12264
12495
  const res = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), subMeasures.filter((item)=>encoding.y?.includes(item.id)).slice(0, 1), encoding, {
12265
12496
  colorItemAsId: false,
12266
- colorMeasureId
12497
+ colorMeasureId,
12498
+ omitIds: []
12267
12499
  });
12268
12500
  res.dataset.forEach((datum)=>{
12269
12501
  datum[BinStartMeasureId] = datum[encoding.x0[0]];
@@ -12905,6 +13137,7 @@
12905
13137
  histogramXLinear,
12906
13138
  yLinear,
12907
13139
  label_label,
13140
+ brush_brush,
12908
13141
  tooltipHistogram,
12909
13142
  colorAdapter(discreteLegend, colorLegend),
12910
13143
  histogramVerticalCrosshairRect,
@@ -12928,6 +13161,7 @@
12928
13161
  progressive,
12929
13162
  histogramXLinear,
12930
13163
  pivotAxisStyle(yLinear),
13164
+ brush_brush,
12931
13165
  label_label,
12932
13166
  tooltipHistogram,
12933
13167
  colorBarStyleFill(barStyle_barStyle),
@@ -13040,6 +13274,14 @@
13040
13274
  ...getDefaultLabel(),
13041
13275
  labelStroke: '#fff'
13042
13276
  });
13277
+ const getFunnelDarkLabel = ()=>({
13278
+ ...getDefaultLabel(),
13279
+ labelColor: '#fff'
13280
+ });
13281
+ const getFunnelLightLabel = ()=>({
13282
+ ...getDefaultLabel(),
13283
+ labelColor: '#fff'
13284
+ });
13043
13285
  const getDefaultLegend = ()=>({
13044
13286
  enable: true,
13045
13287
  border: true,
@@ -13073,6 +13315,24 @@
13073
13315
  handlerBorderColor: '#fff',
13074
13316
  railBackgroundColor: '#f1f3f4'
13075
13317
  });
13318
+ const getLightBrushConfig = ()=>({
13319
+ enable: false,
13320
+ inBrushStyle: {
13321
+ opacity: 1
13322
+ },
13323
+ outOfBrushStyle: {
13324
+ opacity: 0.2
13325
+ }
13326
+ });
13327
+ const getDarkBrushConfig = ()=>({
13328
+ enable: false,
13329
+ inBrushStyle: {
13330
+ opacity: 1
13331
+ },
13332
+ outOfBrushStyle: {
13333
+ opacity: 0.25
13334
+ }
13335
+ });
13076
13336
  const getDefaultTableConfig = ()=>({
13077
13337
  bodyFontSize: 12,
13078
13338
  bodyBackgroundColor: 'transparent',
@@ -13423,10 +13683,12 @@
13423
13683
  textColor: '#888C93'
13424
13684
  });
13425
13685
  const getLightHeatmapCellTheme = ()=>({
13426
- stroke: '#fff'
13686
+ stroke: '#fff',
13687
+ hoverShadowColor: '#404349'
13427
13688
  });
13428
13689
  const getDarkHeatmapCellTheme = ()=>({
13429
- stroke: '#404349'
13690
+ stroke: '#404349',
13691
+ hoverShadowColor: '#404349'
13430
13692
  });
13431
13693
  const getDefaultRegressionLine = ()=>({
13432
13694
  lineWidth: 2,
@@ -13542,7 +13804,8 @@
13542
13804
  color: getLightColor(),
13543
13805
  label: getLightLabel(),
13544
13806
  legend: getLightLegend(),
13545
- tooltip: getLightTooltip()
13807
+ tooltip: getLightTooltip(),
13808
+ brush: getLightBrushConfig()
13546
13809
  };
13547
13810
  const tableConfig = getLightTableConfig();
13548
13811
  return {
@@ -13752,6 +14015,7 @@
13752
14015
  },
13753
14016
  funnel: {
13754
14017
  ...baseConfig,
14018
+ label: getFunnelLightLabel(),
13755
14019
  transform: getLightFunnelTransformTheme(),
13756
14020
  pivotGrid: getLightPivotChartGridConfig()
13757
14021
  },
@@ -13812,7 +14076,8 @@
13812
14076
  color: getDarkColor(),
13813
14077
  label: getDarkLabel(),
13814
14078
  legend: getDarkLegend(),
13815
- tooltip: getDarkTooltip()
14079
+ tooltip: getDarkTooltip(),
14080
+ brush: getDarkBrushConfig()
13816
14081
  };
13817
14082
  const tableConfig = getDarkTableConfig();
13818
14083
  return {
@@ -14016,6 +14281,7 @@
14016
14281
  },
14017
14282
  funnel: {
14018
14283
  ...baseConfig,
14284
+ label: getFunnelDarkLabel(),
14019
14285
  transform: getDarkFunnelTransformTheme(),
14020
14286
  pivotGrid: getDarkPivotChartGridConfig()
14021
14287
  },
@@ -18240,6 +18506,32 @@
18240
18506
  showTooltip: schemas_boolean().nullish(),
18241
18507
  showLabel: schemas_boolean().nullish()
18242
18508
  });
18509
+ const zBrushStyleConfig = schemas_object({
18510
+ opacity: schemas_number().optional(),
18511
+ stroke: schemas_string().optional(),
18512
+ lineWidth: schemas_number().optional()
18513
+ });
18514
+ const zBrushConfig = schemas_object({
18515
+ enable: schemas_boolean().optional().default(false),
18516
+ inBrushStyle: zBrushStyleConfig.optional(),
18517
+ outOfBrushStyle: zBrushStyleConfig.optional()
18518
+ });
18519
+ const zBrush = schemas_object({
18520
+ enable: schemas_boolean().optional().default(false),
18521
+ brushType: schemas_enum([
18522
+ 'x',
18523
+ 'y',
18524
+ 'rect',
18525
+ 'polygon'
18526
+ ]).optional().default('rect'),
18527
+ brushMode: schemas_enum([
18528
+ 'single',
18529
+ 'multiple'
18530
+ ]).optional().default('single'),
18531
+ removeOnClick: schemas_boolean().optional().default(true),
18532
+ inBrushStyle: zBrushStyleConfig.optional(),
18533
+ outOfBrushStyle: zBrushStyleConfig.optional()
18534
+ });
18243
18535
  const zLineConfig = schemas_object({
18244
18536
  backgroundColor: zBackgroundColor.nullish(),
18245
18537
  label: zLabel.nullish(),
@@ -18251,7 +18543,8 @@
18251
18543
  crosshairLine: zCrosshairLine.nullish(),
18252
18544
  pivotGrid: zPivotChartGridConfig.nullish(),
18253
18545
  annotation: zAnnotationConfig.nullish(),
18254
- dimensionLinkage: zDimensionLinkage.nullish()
18546
+ dimensionLinkage: zDimensionLinkage.nullish(),
18547
+ brush: zBrushConfig.nullish()
18255
18548
  });
18256
18549
  const zStackCornerRadius = schemas_number().or(schemas_array(schemas_number())).default([
18257
18550
  3,
@@ -18308,7 +18601,8 @@
18308
18601
  barGapInGroup: zBarGapInGroup.nullish(),
18309
18602
  pivotGrid: zPivotChartGridConfig.nullish(),
18310
18603
  annotation: zAnnotationConfig.nullish(),
18311
- dimensionLinkage: zDimensionLinkage.nullish()
18604
+ dimensionLinkage: zDimensionLinkage.nullish(),
18605
+ brush: zBrushConfig.nullish()
18312
18606
  });
18313
18607
  const zColumnConfig = zColumnParallelConfig.extend({
18314
18608
  regressionLine: zRegressionLine.nullish()
@@ -18326,7 +18620,8 @@
18326
18620
  stackCornerRadius: zStackCornerRadius.nullish(),
18327
18621
  pivotGrid: zPivotChartGridConfig.nullish(),
18328
18622
  annotation: zAnnotationConfig.nullish(),
18329
- dimensionLinkage: zDimensionLinkage.nullish()
18623
+ dimensionLinkage: zDimensionLinkage.nullish(),
18624
+ brush: zBrushConfig.nullish()
18330
18625
  });
18331
18626
  const zBarParallelConfig = zBarConfig;
18332
18627
  const zBarPercentConfig = zBarConfig;
@@ -18341,7 +18636,8 @@
18341
18636
  crosshairLine: zCrosshairLine.nullish(),
18342
18637
  pivotGrid: zPivotChartGridConfig.nullish(),
18343
18638
  annotation: zAnnotationConfig.nullish(),
18344
- dimensionLinkage: zDimensionLinkage.nullish()
18639
+ dimensionLinkage: zDimensionLinkage.nullish(),
18640
+ brush: zBrushConfig.nullish()
18345
18641
  });
18346
18642
  const zAreaPercentConfig = zAreaConfig;
18347
18643
  const zScatterConfig = schemas_object({
@@ -18358,7 +18654,8 @@
18358
18654
  pivotGrid: zPivotChartGridConfig.nullish(),
18359
18655
  annotation: zAnnotationConfig.nullish(),
18360
18656
  regressionLine: zRegressionLine.nullish(),
18361
- dimensionLinkage: zDimensionLinkage.nullish()
18657
+ dimensionLinkage: zDimensionLinkage.nullish(),
18658
+ brush: zBrushConfig.nullish()
18362
18659
  });
18363
18660
  const zDualAxisConfig = schemas_object({
18364
18661
  backgroundColor: zBackgroundColor.nullish(),
@@ -18389,7 +18686,8 @@
18389
18686
  tooltip: zTooltip.nullish(),
18390
18687
  legend: zLegend.nullish(),
18391
18688
  pivotGrid: zPivotChartGridConfig.nullish(),
18392
- cornerRadius: schemas_number().nullish()
18689
+ cornerRadius: schemas_number().nullish(),
18690
+ brush: zBrushConfig.nullish()
18393
18691
  });
18394
18692
  const zDonutConfig = zPieConfig;
18395
18693
  const zRadarConfig = zPieConfig;
@@ -18418,7 +18716,8 @@
18418
18716
  const zHeatmapCell = schemas_object({
18419
18717
  stroke: schemas_string().nullish(),
18420
18718
  lineWidth: schemas_number().nullish(),
18421
- cornerRadius: schemas_number().nullish()
18719
+ cornerRadius: schemas_number().nullish(),
18720
+ hoverShadowColor: schemas_string().nullish()
18422
18721
  });
18423
18722
  const zHeatmapConfig = schemas_object({
18424
18723
  backgroundColor: zBackgroundColor.nullish(),
@@ -18429,7 +18728,8 @@
18429
18728
  pivotGrid: zPivotChartGridConfig.nullish(),
18430
18729
  cell: zHeatmapCell.nullish(),
18431
18730
  xAxis: zXBandAxis.nullish(),
18432
- yAxis: zYBandAxis.nullish()
18731
+ yAxis: zYBandAxis.nullish(),
18732
+ brush: zBrushConfig.nullish()
18433
18733
  });
18434
18734
  const zPivotTableConfig = zTableConfig;
18435
18735
  const zWhiskersConfig = schemas_number().or(schemas_array(schemas_number())).default(1.5);
@@ -18502,7 +18802,8 @@
18502
18802
  binStep: schemas_number().positive().nullish(),
18503
18803
  binValueType: literal('count').or(literal('percentage')).nullish(),
18504
18804
  regressionLine: zRegressionLine.nullish(),
18505
- dimensionLinkage: zDimensionLinkage.nullish()
18805
+ dimensionLinkage: zDimensionLinkage.nullish(),
18806
+ brush: zBrushConfig.nullish()
18506
18807
  });
18507
18808
  const zConfig = schemas_object({
18508
18809
  table: zTableConfig.nullish(),
@@ -18750,6 +19051,7 @@
18750
19051
  label: zLabel.nullish(),
18751
19052
  legend: zLegend.nullish(),
18752
19053
  tooltip: zTooltip.nullish(),
19054
+ brush: zBrush.nullish(),
18753
19055
  xAxis: zXBandAxis.nullish(),
18754
19056
  yAxis: zYLinearAxis.nullish(),
18755
19057
  crosshairLine: zCrosshairLine.nullish(),
@@ -18776,6 +19078,7 @@
18776
19078
  label: zLabel.nullish(),
18777
19079
  legend: zLegend.nullish(),
18778
19080
  tooltip: zTooltip.nullish(),
19081
+ brush: zBrush.nullish(),
18779
19082
  xAxis: zXBandAxis.nullish(),
18780
19083
  yAxis: zYLinearAxis.nullish(),
18781
19084
  sort: zSort.nullish(),
@@ -18804,6 +19107,7 @@
18804
19107
  label: zLabel.nullish(),
18805
19108
  legend: zLegend.nullish(),
18806
19109
  tooltip: zTooltip.nullish(),
19110
+ brush: zBrush.nullish(),
18807
19111
  xAxis: zXBandAxis.nullish(),
18808
19112
  yAxis: zYLinearAxis.nullish(),
18809
19113
  crosshairRect: zCrosshairRect.nullish(),
@@ -18830,6 +19134,7 @@
18830
19134
  label: zLabel.nullish(),
18831
19135
  legend: zLegend.nullish(),
18832
19136
  tooltip: zTooltip.nullish(),
19137
+ brush: zBrush.nullish(),
18833
19138
  xAxis: zXBandAxis.nullish(),
18834
19139
  yAxis: zYLinearAxis.nullish(),
18835
19140
  crosshairRect: zCrosshairRect.nullish(),
@@ -18855,6 +19160,7 @@
18855
19160
  label: zLabel.nullish(),
18856
19161
  legend: zLegend.nullish(),
18857
19162
  tooltip: zTooltip.nullish(),
19163
+ brush: zBrush.nullish(),
18858
19164
  xAxis: zXLinearAxis.nullish(),
18859
19165
  yAxis: zYBandAxis.nullish(),
18860
19166
  crosshairRect: zCrosshairRect.nullish(),
@@ -18880,6 +19186,7 @@
18880
19186
  label: zLabel.nullish(),
18881
19187
  legend: zLegend.nullish(),
18882
19188
  tooltip: zTooltip.nullish(),
19189
+ brush: zBrush.nullish(),
18883
19190
  xAxis: zXLinearAxis.nullish(),
18884
19191
  yAxis: zYBandAxis.nullish(),
18885
19192
  crosshairRect: zCrosshairRect.nullish(),
@@ -18906,6 +19213,7 @@
18906
19213
  label: zLabel.nullish(),
18907
19214
  legend: zLegend.nullish(),
18908
19215
  tooltip: zTooltip.nullish(),
19216
+ brush: zBrush.nullish(),
18909
19217
  xAxis: zXLinearAxis.nullish(),
18910
19218
  yAxis: zYBandAxis.nullish(),
18911
19219
  crosshairRect: zCrosshairRect.nullish(),
@@ -18931,6 +19239,7 @@
18931
19239
  label: zLabel.nullish(),
18932
19240
  legend: zLegend.nullish(),
18933
19241
  tooltip: zTooltip.nullish(),
19242
+ brush: zBrush.nullish(),
18934
19243
  xAxis: zXBandAxis.nullish(),
18935
19244
  yAxis: zYLinearAxis.nullish(),
18936
19245
  crosshairLine: zCrosshairLine.nullish(),
@@ -18956,6 +19265,7 @@
18956
19265
  label: zLabel.nullish(),
18957
19266
  legend: zLegend.nullish(),
18958
19267
  tooltip: zTooltip.nullish(),
19268
+ brush: zBrush.nullish(),
18959
19269
  xAxis: zXBandAxis.nullish(),
18960
19270
  yAxis: zYLinearAxis.nullish(),
18961
19271
  crosshairLine: zCrosshairLine.nullish(),
@@ -18983,6 +19293,7 @@
18983
19293
  label: zLabel.nullish(),
18984
19294
  legend: zLegend.nullish(),
18985
19295
  tooltip: zTooltip.nullish(),
19296
+ brush: zBrush.nullish(),
18986
19297
  xAxis: zXLinearAxis.nullish(),
18987
19298
  yAxis: zYLinearAxis.nullish(),
18988
19299
  crosshairLine: zCrosshairLine.nullish(),
@@ -19013,6 +19324,7 @@
19013
19324
  label: zLabel.nullish(),
19014
19325
  legend: zLegend.nullish(),
19015
19326
  tooltip: zTooltip.nullish(),
19327
+ brush: zBrush.nullish(),
19016
19328
  crosshairRect: zCrosshairRect.nullish(),
19017
19329
  sort: zSort.nullish(),
19018
19330
  sortLegend: zSortLegend.nullish(),
@@ -19041,6 +19353,7 @@
19041
19353
  label: zLabel.nullish(),
19042
19354
  legend: zLegend.nullish(),
19043
19355
  tooltip: zTooltip.nullish(),
19356
+ brush: zBrush.nullish(),
19044
19357
  xAxis: zXLinearAxis.nullish(),
19045
19358
  yAxis: zYLinearAxis.nullish(),
19046
19359
  crosshairRect: zCrosshairRect.nullish(),
@@ -19069,6 +19382,7 @@
19069
19382
  label: zLabel.nullish(),
19070
19383
  legend: zLegend.nullish(),
19071
19384
  tooltip: zTooltip.nullish(),
19385
+ brush: zBrush.nullish(),
19072
19386
  theme: zTheme.nullish(),
19073
19387
  locale: zLocale.nullish()
19074
19388
  });
@@ -19083,6 +19397,7 @@
19083
19397
  label: zLabel.nullish(),
19084
19398
  legend: zLegend.nullish(),
19085
19399
  tooltip: zTooltip.nullish(),
19400
+ brush: zBrush.nullish(),
19086
19401
  theme: zTheme.nullish(),
19087
19402
  locale: zLocale.nullish()
19088
19403
  });
@@ -19097,6 +19412,7 @@
19097
19412
  label: zPieLabel.nullish(),
19098
19413
  legend: zLegend.nullish(),
19099
19414
  tooltip: zTooltip.nullish(),
19415
+ brush: zBrush.nullish(),
19100
19416
  theme: zTheme.nullish(),
19101
19417
  locale: zLocale.nullish()
19102
19418
  });
@@ -19111,6 +19427,7 @@
19111
19427
  label: zPieLabel.nullish(),
19112
19428
  legend: zLegend.nullish(),
19113
19429
  tooltip: zTooltip.nullish(),
19430
+ brush: zBrush.nullish(),
19114
19431
  theme: zTheme.nullish(),
19115
19432
  locale: zLocale.nullish()
19116
19433
  });
@@ -19125,6 +19442,7 @@
19125
19442
  label: zLabel.nullish(),
19126
19443
  legend: zLegend.nullish(),
19127
19444
  tooltip: zTooltip.nullish(),
19445
+ brush: zBrush.nullish(),
19128
19446
  theme: zTheme.nullish(),
19129
19447
  locale: zLocale.nullish()
19130
19448
  });
@@ -19139,6 +19457,7 @@
19139
19457
  label: zLabel.nullish(),
19140
19458
  legend: zColorLegend.nullish(),
19141
19459
  tooltip: zTooltip.nullish(),
19460
+ brush: zBrush.nullish(),
19142
19461
  theme: zTheme.nullish(),
19143
19462
  locale: zLocale.nullish()
19144
19463
  });
@@ -19152,6 +19471,7 @@
19152
19471
  label: zLabel.nullish(),
19153
19472
  legend: zColorLegend.nullish(),
19154
19473
  tooltip: zTooltip.nullish(),
19474
+ brush: zBrush.nullish(),
19155
19475
  theme: zTheme.nullish(),
19156
19476
  locale: zLocale.nullish()
19157
19477
  });
@@ -19166,6 +19486,7 @@
19166
19486
  label: zLabel.nullish(),
19167
19487
  legend: zLegend.nullish(),
19168
19488
  tooltip: zTooltip.nullish(),
19489
+ brush: zBrush.nullish(),
19169
19490
  xAxis: zXBandAxis.nullish(),
19170
19491
  yAxis: zYLinearAxis.nullish(),
19171
19492
  sort: zSort.nullish(),