@visactor/vseed 0.0.19 → 0.0.20

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 (233) hide show
  1. package/dist/builder/builder/advanced/colorItems.d.ts +2 -0
  2. package/dist/builder/builder/advanced/index.d.ts +1 -0
  3. package/dist/builder/builder/builder.d.ts +132 -110
  4. package/dist/builder/register/chartType.d.ts +2 -0
  5. package/dist/builder/register/index.d.ts +1 -1
  6. package/dist/dataReshape/foldMeasures.d.ts +3 -3
  7. package/dist/index.cjs +580 -137
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +501 -130
  10. package/dist/index.js.map +1 -1
  11. package/dist/pipeline/advanced/chart/index.d.ts +1 -0
  12. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/area.d.ts +1 -1
  13. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/areaPercent.d.ts +1 -1
  14. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/bar.d.ts +1 -1
  15. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/barParallel.d.ts +1 -1
  16. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/barPercent.d.ts +1 -1
  17. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/column.d.ts +1 -1
  18. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/columnParallel.d.ts +1 -1
  19. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/columnPercent.d.ts +1 -1
  20. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/donut.d.ts +1 -1
  21. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/funnel.d.ts +1 -1
  22. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/line.d.ts +1 -1
  23. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/pie.d.ts +1 -1
  24. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/rose.d.ts +1 -1
  25. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/roseParallel.d.ts +1 -1
  26. package/dist/pipeline/advanced/{pipeline → chart/pipeline}/scatter.d.ts +1 -1
  27. package/dist/pipeline/advanced/chart/pipes/annotation/annotation.d.ts +2 -0
  28. package/dist/pipeline/advanced/{pipes → chart/pipes}/config/config.d.ts +1 -1
  29. package/dist/pipeline/advanced/chart/pipes/encoding/encodingFunnel.d.ts +2 -0
  30. package/dist/pipeline/advanced/chart/pipes/encoding/encodingPie.d.ts +2 -0
  31. package/dist/pipeline/advanced/chart/pipes/encoding/encodingRose.d.ts +2 -0
  32. package/dist/pipeline/advanced/chart/pipes/encoding/encodingXY.d.ts +2 -0
  33. package/dist/pipeline/advanced/chart/pipes/encoding/encodingYX.d.ts +2 -0
  34. package/dist/pipeline/advanced/chart/pipes/encoding/encodingYY.d.ts +2 -0
  35. package/dist/pipeline/advanced/{pipes → chart/pipes}/encoding/index.d.ts +1 -0
  36. package/dist/pipeline/advanced/{pipes → chart/pipes}/index.d.ts +0 -1
  37. package/dist/pipeline/advanced/chart/pipes/init/autoDimensions.d.ts +2 -0
  38. package/dist/pipeline/advanced/chart/pipes/init/autoMeasures.d.ts +2 -0
  39. package/dist/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.d.ts +2 -0
  40. package/dist/pipeline/advanced/chart/pipes/markStyle/markStyle.d.ts +2 -0
  41. package/dist/pipeline/advanced/{pipes → chart/pipes}/pivot/pivotAdapter.d.ts +1 -1
  42. package/dist/pipeline/advanced/{pipes → chart/pipes}/reshape/pivotReshapeTo1D1M.d.ts +1 -1
  43. package/dist/pipeline/advanced/{pipes → chart/pipes}/reshape/pivotReshapeTo1D2M.d.ts +1 -1
  44. package/dist/pipeline/advanced/{pipes → chart/pipes}/reshape/pivotReshapeTo2D1M.d.ts +1 -1
  45. package/dist/pipeline/advanced/{pipes → chart/pipes}/reshape/reshapeTo1D1M.d.ts +1 -1
  46. package/dist/pipeline/advanced/{pipes → chart/pipes}/reshape/reshapeTo1D2M.d.ts +1 -1
  47. package/dist/pipeline/advanced/{pipes → chart/pipes}/reshape/reshapeTo2D1M.d.ts +1 -1
  48. package/dist/pipeline/advanced/chart/pipes/theme/theme.d.ts +2 -0
  49. package/dist/pipeline/advanced/index.d.ts +2 -1
  50. package/dist/pipeline/advanced/table/index.d.ts +1 -0
  51. package/dist/pipeline/advanced/table/pipeline/index.d.ts +2 -0
  52. package/dist/pipeline/advanced/table/pipeline/pivotTable.d.ts +2 -0
  53. package/dist/pipeline/advanced/table/pipeline/table.d.ts +2 -0
  54. package/dist/pipeline/advanced/table/pipes/index.d.ts +2 -0
  55. package/dist/pipeline/advanced/table/pipes/init/autoDimensions.d.ts +2 -0
  56. package/dist/pipeline/advanced/table/pipes/init/autoMeasures.d.ts +2 -0
  57. package/dist/pipeline/advanced/table/pipes/init/autoPivotDimensions.d.ts +2 -0
  58. package/dist/pipeline/advanced/table/pipes/init/autoPivotMeasures.d.ts +2 -0
  59. package/dist/pipeline/advanced/table/pipes/init/index.d.ts +5 -0
  60. package/dist/pipeline/advanced/table/pipes/init/initAdvancedVSeed.d.ts +2 -0
  61. package/dist/pipeline/advanced/table/pipes/records/index.d.ts +1 -0
  62. package/dist/pipeline/advanced/table/pipes/records/records.d.ts +2 -0
  63. package/dist/pipeline/spec/chart/index.d.ts +1 -0
  64. package/dist/pipeline/spec/chart/pipeline/area.d.ts +1 -0
  65. package/dist/pipeline/spec/chart/pipeline/areaPercent.d.ts +1 -0
  66. package/dist/pipeline/spec/chart/pipeline/bar.d.ts +2 -0
  67. package/dist/pipeline/spec/{pipeline → chart/pipeline}/barParallel.d.ts +1 -1
  68. package/dist/pipeline/spec/{pipeline → chart/pipeline}/barPercent.d.ts +1 -1
  69. package/dist/pipeline/spec/chart/pipeline/column.d.ts +1 -0
  70. package/dist/pipeline/spec/{pipeline → chart/pipeline}/columnParallel.d.ts +1 -1
  71. package/dist/pipeline/spec/{pipeline → chart/pipeline}/columnPercent.d.ts +1 -1
  72. package/dist/pipeline/spec/chart/pipeline/donut.d.ts +2 -0
  73. package/dist/pipeline/spec/{pipeline → chart/pipeline}/funnel.d.ts +1 -1
  74. package/dist/pipeline/spec/chart/pipeline/line.d.ts +2 -0
  75. package/dist/pipeline/spec/chart/pipeline/pie.d.ts +2 -0
  76. package/dist/pipeline/spec/chart/pipeline/rose.d.ts +1 -0
  77. package/dist/pipeline/spec/{pipeline → chart/pipeline}/roseParallel.d.ts +1 -1
  78. package/dist/pipeline/spec/{pipeline → chart/pipeline}/scatter.d.ts +1 -1
  79. package/dist/pipeline/spec/chart/pipes/index.d.ts +14 -0
  80. package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/index.d.ts +1 -0
  81. package/dist/pipeline/spec/index.d.ts +2 -1
  82. package/dist/pipeline/spec/table/index.d.ts +1 -0
  83. package/dist/pipeline/spec/table/pipeline/index.d.ts +2 -0
  84. package/dist/pipeline/spec/table/pipeline/pivotTable.d.ts +2 -0
  85. package/dist/pipeline/spec/table/pipeline/table.d.ts +2 -0
  86. package/dist/pipeline/spec/table/pipes/columns/index.d.ts +2 -0
  87. package/dist/pipeline/spec/table/pipes/columns/measuresToColumns.d.ts +3 -0
  88. package/dist/pipeline/spec/table/pipes/columns/pivotColumns.d.ts +2 -0
  89. package/dist/pipeline/spec/table/pipes/index.d.ts +4 -0
  90. package/dist/pipeline/spec/table/pipes/indicators/index.d.ts +1 -0
  91. package/dist/pipeline/spec/table/pipes/indicators/pivotIndicators.d.ts +2 -0
  92. package/dist/pipeline/spec/table/pipes/init/index.d.ts +2 -0
  93. package/dist/pipeline/spec/table/pipes/init/pivotTable.d.ts +2 -0
  94. package/dist/pipeline/spec/table/pipes/init/table.d.ts +2 -0
  95. package/dist/pipeline/spec/table/pipes/rows/index.d.ts +1 -0
  96. package/dist/pipeline/spec/table/pipes/rows/pivotRows.d.ts +2 -0
  97. package/dist/pipeline/utils/chatType.d.ts +4 -2
  98. package/dist/pipeline/utils/dimensions/find.d.ts +4 -0
  99. package/dist/pipeline/utils/dimensions/index.d.ts +1 -0
  100. package/dist/pipeline/utils/index.d.ts +2 -0
  101. package/dist/pipeline/utils/measures/find.d.ts +4 -0
  102. package/dist/pipeline/utils/measures/index.d.ts +1 -1
  103. package/dist/pipeline/utils/tree/index.d.ts +1 -0
  104. package/dist/pipeline/utils/tree/traverse.d.ts +11 -0
  105. package/dist/types/advancedVSeed.d.ts +16 -5
  106. package/dist/types/builder/builder.d.ts +1 -0
  107. package/dist/types/chartType/area/area.d.ts +7 -8
  108. package/dist/types/chartType/areaPercent/areaPercent.d.ts +7 -8
  109. package/dist/types/chartType/bar/bar.d.ts +7 -8
  110. package/dist/types/chartType/barParallel/barParallel.d.ts +7 -8
  111. package/dist/types/chartType/barPercent/barPercent.d.ts +7 -8
  112. package/dist/types/chartType/column/column.d.ts +7 -8
  113. package/dist/types/chartType/columnParallel/columnParallel.d.ts +7 -8
  114. package/dist/types/chartType/columnPercent/columnPercent.d.ts +7 -8
  115. package/dist/types/chartType/donut/donut.d.ts +7 -8
  116. package/dist/types/chartType/dualAxis/dualAxis.d.ts +3 -3
  117. package/dist/types/chartType/funnel/funnel.d.ts +7 -8
  118. package/dist/types/chartType/index.d.ts +3 -3
  119. package/dist/types/chartType/line/line.d.ts +7 -8
  120. package/dist/types/chartType/pie/pie.d.ts +7 -8
  121. package/dist/types/chartType/pivotTable/index.d.ts +1 -1
  122. package/dist/types/chartType/pivotTable/pivotTable.d.ts +58 -3
  123. package/dist/types/chartType/rose/rose.d.ts +4 -5
  124. package/dist/types/chartType/roseParallel/roseParallel.d.ts +4 -5
  125. package/dist/types/chartType/scatter/scatter.d.ts +7 -8
  126. package/dist/types/chartType/table/index.d.ts +1 -1
  127. package/dist/types/chartType/table/table.d.ts +98 -4
  128. package/dist/types/properties/dimensions/dimensions.d.ts +48 -6
  129. package/dist/types/properties/dimensions/index.d.ts +1 -2
  130. package/dist/types/properties/measures/measures.d.ts +39 -3
  131. package/dist/types/vseed.d.ts +205 -76
  132. package/dist/umd/index.js +532 -137
  133. package/dist/umd/index.js.map +1 -1
  134. package/package.json +1 -1
  135. package/dist/pipeline/advanced/pipes/annotation/annotation.d.ts +0 -2
  136. package/dist/pipeline/advanced/pipes/encoding/encodingFunnel.d.ts +0 -2
  137. package/dist/pipeline/advanced/pipes/encoding/encodingPie.d.ts +0 -2
  138. package/dist/pipeline/advanced/pipes/encoding/encodingRose.d.ts +0 -2
  139. package/dist/pipeline/advanced/pipes/encoding/encodingXY.d.ts +0 -2
  140. package/dist/pipeline/advanced/pipes/encoding/encodingYX.d.ts +0 -2
  141. package/dist/pipeline/advanced/pipes/encoding/encodingYY.d.ts +0 -2
  142. package/dist/pipeline/advanced/pipes/i18n/index.d.ts +0 -1
  143. package/dist/pipeline/advanced/pipes/i18n/locale.d.ts +0 -2
  144. package/dist/pipeline/advanced/pipes/init/autoDimensions.d.ts +0 -2
  145. package/dist/pipeline/advanced/pipes/init/autoMeasures.d.ts +0 -2
  146. package/dist/pipeline/advanced/pipes/init/initAdvancedVSeed.d.ts +0 -2
  147. package/dist/pipeline/advanced/pipes/init/utils.d.ts +0 -1
  148. package/dist/pipeline/advanced/pipes/markStyle/markStyle.d.ts +0 -2
  149. package/dist/pipeline/advanced/pipes/theme/theme.d.ts +0 -2
  150. package/dist/pipeline/spec/pipeline/area.d.ts +0 -1
  151. package/dist/pipeline/spec/pipeline/areaPercent.d.ts +0 -1
  152. package/dist/pipeline/spec/pipeline/bar.d.ts +0 -2
  153. package/dist/pipeline/spec/pipeline/column.d.ts +0 -1
  154. package/dist/pipeline/spec/pipeline/donut.d.ts +0 -2
  155. package/dist/pipeline/spec/pipeline/line.d.ts +0 -2
  156. package/dist/pipeline/spec/pipeline/pie.d.ts +0 -2
  157. package/dist/pipeline/spec/pipeline/rose.d.ts +0 -1
  158. package/dist/pipeline/spec/pipes/index.d.ts +0 -14
  159. package/dist/pipeline/utils/measures/findMeasureById.d.ts +0 -3
  160. /package/dist/pipeline/advanced/{pipeline → chart/pipeline}/index.d.ts +0 -0
  161. /package/dist/pipeline/advanced/{pipes → chart/pipes}/annotation/index.d.ts +0 -0
  162. /package/dist/pipeline/advanced/{pipes → chart/pipes}/config/index.d.ts +0 -0
  163. /package/dist/pipeline/advanced/{pipes → chart/pipes}/init/index.d.ts +0 -0
  164. /package/dist/pipeline/advanced/{pipes → chart/pipes}/markStyle/index.d.ts +0 -0
  165. /package/dist/pipeline/advanced/{pipes → chart/pipes}/pivot/index.d.ts +0 -0
  166. /package/dist/pipeline/advanced/{pipes → chart/pipes}/reshape/index.d.ts +0 -0
  167. /package/dist/pipeline/advanced/{pipes → chart/pipes}/theme/index.d.ts +0 -0
  168. /package/dist/pipeline/spec/{pipeline → chart/pipeline}/index.d.ts +0 -0
  169. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/annotation/annotationArea.d.ts +0 -0
  170. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/annotation/annotationAreaBand.d.ts +0 -0
  171. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/annotation/annotationHorizontalLine.d.ts +0 -0
  172. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/annotation/annotationPoint.d.ts +0 -0
  173. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/annotation/annotationVerticalLine.d.ts +0 -0
  174. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/annotation/index.d.ts +0 -0
  175. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/annotation/utils.d.ts +0 -0
  176. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/axes/a.d.ts +0 -0
  177. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/axes/angle.d.ts +0 -0
  178. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/axes/index.d.ts +0 -0
  179. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/axes/radius.d.ts +0 -0
  180. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/axes/xBand.d.ts +0 -0
  181. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/axes/xLinear.d.ts +0 -0
  182. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/axes/yBand.d.ts +0 -0
  183. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/axes/yLinear.d.ts +0 -0
  184. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/backgroundColor/background.d.ts +0 -0
  185. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/backgroundColor/index.d.ts +0 -0
  186. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/color/color.d.ts +0 -0
  187. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/color/index.d.ts +0 -0
  188. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/crosshair/horizontalCrosshairLine.d.ts +0 -0
  189. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/crosshair/horizontalCrosshairRect.d.ts +0 -0
  190. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/crosshair/index.d.ts +0 -0
  191. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/crosshair/verticalCrosshairLine.d.ts +0 -0
  192. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/crosshair/verticalCrosshairRect.d.ts +0 -0
  193. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/dataset/dataset.d.ts +0 -0
  194. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/dataset/datasetPivot.d.ts +0 -0
  195. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/dataset/index.d.ts +0 -0
  196. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/area.d.ts +0 -0
  197. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/bar.d.ts +0 -0
  198. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/barParallel.d.ts +0 -0
  199. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/column.d.ts +0 -0
  200. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/columnParallel.d.ts +0 -0
  201. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/donut.d.ts +0 -0
  202. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/funnel.d.ts +0 -0
  203. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/line.d.ts +0 -0
  204. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/pie.d.ts +0 -0
  205. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/pivot.d.ts +0 -0
  206. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/rose.d.ts +0 -0
  207. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/roseParallel.d.ts +0 -0
  208. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/init/scatter.d.ts +0 -0
  209. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/label/index.d.ts +0 -0
  210. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/label/label.d.ts +0 -0
  211. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/legend/discreteLegend.d.ts +0 -0
  212. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/legend/index.d.ts +0 -0
  213. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/legend/pivotDiscreteLegend.d.ts +0 -0
  214. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/markStyle/areaStyle.d.ts +0 -0
  215. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/markStyle/barStyle.d.ts +0 -0
  216. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/markStyle/index.d.ts +0 -0
  217. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/markStyle/lineStyle.d.ts +0 -0
  218. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/markStyle/pointState.d.ts +0 -0
  219. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/markStyle/pointStyle.d.ts +0 -0
  220. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/percent/index.d.ts +0 -0
  221. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/percent/percent.d.ts +0 -0
  222. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/pivotChart/index.d.ts +0 -0
  223. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/pivotChart/pivotAdapter.d.ts +0 -0
  224. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/pivotChart/pivotColumnDimensions.d.ts +0 -0
  225. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/pivotChart/pivotGridStyle.d.ts +0 -0
  226. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/pivotChart/pivotIndicators.d.ts +0 -0
  227. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/pivotChart/pivotRowDimensions.d.ts +0 -0
  228. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/stack/index.d.ts +0 -0
  229. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/stack/stack.d.ts +0 -0
  230. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/stack/stackCornerRadius.d.ts +0 -0
  231. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/tooltip/index.d.ts +0 -0
  232. /package/dist/pipeline/spec/{pipes/vchart → chart/pipes}/tooltip/tooltip.d.ts +0 -0
  233. /package/dist/pipeline/{constant.d.ts → utils/constant.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -2,23 +2,27 @@ import { clone, groupBy, isArray, isEmpty, isNullish, isNumber, isString, mergeD
2
2
  import { z } from "zod";
3
3
  const initAdvancedVSeed = (advancedVSeed, context)=>{
4
4
  const { vseed } = context;
5
- const { chartType } = vseed;
5
+ const { chartType, locale } = vseed;
6
6
  return {
7
7
  ...advancedVSeed,
8
- chartType
8
+ chartType,
9
+ locale: locale || 'zh-CN'
9
10
  };
10
11
  };
11
12
  const execPipeline = (pipeline, context, initialValue = {})=>{
12
13
  const result = pipeline.reduce((prev, cur)=>cur(prev, context), initialValue);
13
14
  return result;
14
15
  };
16
+ const isTable = (vseed)=>'table' === vseed.chartType;
17
+ const isPivotTable = (vseed)=>'pivotTable' === vseed.chartType;
15
18
  const isVTable = (vseed)=>[
16
19
  'table',
17
20
  'pivotTable'
18
21
  ].includes(vseed.chartType);
19
22
  const isVChart = (vseed)=>!isVTable(vseed);
20
23
  const isPivotChart = (vseed)=>{
21
- const { measures, dimensions } = vseed;
24
+ if (isVTable(vseed)) return false;
25
+ const { measures = [], dimensions = [] } = vseed;
22
26
  const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
23
27
  const hasMeasureGroup = measures && measures.find((measure)=>measure && measure.children);
24
28
  return hasRowOrColumnDimension || hasMeasureGroup;
@@ -108,32 +112,92 @@ const autoNumFormatter = (value, locale = intl.getLocale())=>{
108
112
  };
109
113
  const createFormatter = (format)=>createNumFormatter(format);
110
114
  const autoFormatter = (value, locale)=>autoNumFormatter(value, locale);
111
- const findMeasureById = (measures = [], id)=>{
112
- if (!measures) return;
115
+ const preorderTraverse = (tree, callback)=>{
116
+ if (!tree || 0 === tree.length) return;
113
117
  const stack = [
114
- ...measures
115
- ];
118
+ ...tree
119
+ ].reverse();
116
120
  while(stack.length > 0){
117
- const current = stack.pop();
118
- if (!current) continue;
119
- if (current.id === id && !('children' in current)) return current;
120
- if ('children' in current && current.children) stack.push(...current.children);
121
+ const node = stack.pop();
122
+ const stop = callback(node);
123
+ if (true === stop) return;
124
+ if (!('children' in node)) continue;
125
+ const children = node.children;
126
+ if (children && children.length > 0) for(let i = children.length - 1; i >= 0; i--){
127
+ const child = children[i];
128
+ stack.push(child);
129
+ }
121
130
  }
122
131
  };
132
+ const findMeasureById = (measures = [], id)=>{
133
+ if (!measures) return;
134
+ let result;
135
+ preorderTraverse(measures, (node)=>{
136
+ if (!('children' in node)) {
137
+ if (node.id === id) {
138
+ result = node;
139
+ return true;
140
+ }
141
+ }
142
+ return false;
143
+ });
144
+ return result;
145
+ };
123
146
  const findFirstMeasure = (measures = [])=>{
124
147
  if (!measures) return;
125
- const stack = [
126
- ...measures
127
- ].reverse();
128
- while(stack.length > 0){
129
- const current = stack.pop();
130
- if (!current) continue;
131
- if (!('children' in current)) return current;
132
- if ('children' in current && current.children) {
133
- const children = (current.children || []).reverse();
134
- stack.push(...children);
148
+ let result;
149
+ preorderTraverse(measures, (node)=>{
150
+ if (!('children' in node)) {
151
+ result = node;
152
+ return true;
135
153
  }
136
- }
154
+ return false;
155
+ });
156
+ return result;
157
+ };
158
+ const findAllMeasures = (measures = [])=>{
159
+ if (!measures) return [];
160
+ const result = [];
161
+ preorderTraverse(measures, (node)=>{
162
+ if (!('children' in node)) result.push(node);
163
+ return false;
164
+ });
165
+ return result;
166
+ };
167
+ const findDimensionById = (dimensions = [], id)=>{
168
+ if (!dimensions) return;
169
+ let result;
170
+ preorderTraverse(dimensions, (node)=>{
171
+ if (!('children' in node)) {
172
+ if (node.id === id) {
173
+ result = node;
174
+ return true;
175
+ }
176
+ }
177
+ return false;
178
+ });
179
+ return result;
180
+ };
181
+ const findFirstDimension = (dimensions = [])=>{
182
+ if (!dimensions) return;
183
+ let result;
184
+ preorderTraverse(dimensions, (node)=>{
185
+ if (!('children' in node)) {
186
+ result = node;
187
+ return true;
188
+ }
189
+ return false;
190
+ });
191
+ return result;
192
+ };
193
+ const findAllDimensions = (dimensions = [])=>{
194
+ if (!dimensions) return [];
195
+ const result = [];
196
+ preorderTraverse(dimensions, (node)=>{
197
+ if (!('children' in node)) result.push(node);
198
+ return false;
199
+ });
200
+ return result;
137
201
  };
138
202
  const autoMeasures = (advancedVSeed, context)=>{
139
203
  const result = {
@@ -212,7 +276,7 @@ const autoDimensions = (advancedVSeed, context)=>{
212
276
  };
213
277
  const { vseed } = context;
214
278
  const { dimensions, dataset } = vseed;
215
- const { measures = [] } = advancedVSeed;
279
+ const measures = findAllMeasures(advancedVSeed.measures);
216
280
  if (!dataset) throw new Error('dataset is required');
217
281
  if (0 === dataset.length) return result;
218
282
  if (dimensions) {
@@ -265,7 +329,10 @@ const unfoldDimensions = (dataset, dimensions, measures, unfoldStartIndex = 0, u
265
329
  for(let i = 0; i < dataset.length; i++){
266
330
  const datum = dataset[i];
267
331
  const colorName = generateDimGroupName(dimensionsToBeUnfolded, datum, dimensionsSeparator);
268
- const colorId = colorName + (datum[foldMeasureId] || '');
332
+ const colorId = [
333
+ colorName,
334
+ datum[foldMeasureId] || 'id'
335
+ ].join(dimensionsSeparator);
269
336
  datum[unfoldGroupName] = colorName;
270
337
  datum[unfoldGroupId] = colorId;
271
338
  colorItems.push(colorId);
@@ -565,7 +632,8 @@ const pivotReshapeTo1D1M = (advancedVSeed, context)=>{
565
632
  };
566
633
  const { vseed } = context;
567
634
  const { dataset } = vseed;
568
- const { dimensions, measures } = advancedVSeed;
635
+ const { measures } = advancedVSeed;
636
+ const dimensions = advancedVSeed.dimensions;
569
637
  if (!measures || !dimensions) return result;
570
638
  const measureGroups = [];
571
639
  if (measures) measures.forEach((measure)=>{
@@ -604,7 +672,8 @@ const pivotReshapeTo1D2M = (advancedVSeed, context)=>{
604
672
  };
605
673
  const { vseed } = context;
606
674
  const { dataset } = vseed;
607
- const { dimensions, measures } = advancedVSeed;
675
+ const { measures } = advancedVSeed;
676
+ const dimensions = advancedVSeed.dimensions;
608
677
  if (!measures || !dimensions) return result;
609
678
  const measureGroups = [];
610
679
  if (measures) measures.forEach((measure)=>{
@@ -643,7 +712,8 @@ const pivotReshapeTo2D1M = (advancedVSeed, context)=>{
643
712
  };
644
713
  const { vseed } = context;
645
714
  const { dataset } = vseed;
646
- const { dimensions, measures } = advancedVSeed;
715
+ const { measures } = advancedVSeed;
716
+ const dimensions = advancedVSeed.dimensions;
647
717
  if (!measures || !dimensions) return result;
648
718
  const measureGroups = [];
649
719
  if (measures) measures.forEach((measure)=>{
@@ -748,6 +818,42 @@ const encodingYX = (advancedVSeed)=>{
748
818
  encoding
749
819
  };
750
820
  };
821
+ const encodingYY = (advancedVSeed)=>{
822
+ const result = {
823
+ ...advancedVSeed
824
+ };
825
+ const { datasetReshapeInfo, measures } = advancedVSeed;
826
+ if (!datasetReshapeInfo || !measures) return result;
827
+ const firstMeasure = findFirstMeasure(measures);
828
+ const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
829
+ const { foldInfo, unfoldInfo } = cur;
830
+ const x = [
831
+ firstMeasure?.id
832
+ ];
833
+ const y = [
834
+ foldInfo.measureValue
835
+ ];
836
+ const group = [
837
+ unfoldInfo.groupId
838
+ ];
839
+ const color = [
840
+ unfoldInfo.groupId
841
+ ];
842
+ return [
843
+ ...prev,
844
+ {
845
+ x,
846
+ y,
847
+ group,
848
+ color
849
+ }
850
+ ];
851
+ }, []);
852
+ return {
853
+ ...result,
854
+ encoding
855
+ };
856
+ };
751
857
  const encodingRose = (advancedVSeed)=>{
752
858
  const result = {
753
859
  ...advancedVSeed
@@ -988,17 +1094,8 @@ const annotation_annotation = (advancedVSeed, context)=>{
988
1094
  annotation
989
1095
  };
990
1096
  };
991
- const locale_locale = (advancedVSeed, context)=>{
992
- const { vseed } = context;
993
- const { locale } = vseed;
994
- return {
995
- ...advancedVSeed,
996
- locale: locale || 'zh-CN'
997
- };
998
- };
999
1097
  const lineAdvancedPipeline = [
1000
1098
  initAdvancedVSeed,
1001
- locale_locale,
1002
1099
  autoMeasures,
1003
1100
  autoDimensions,
1004
1101
  pivotAdapter([
@@ -1014,7 +1111,6 @@ const lineAdvancedPipeline = [
1014
1111
  ];
1015
1112
  const barAdvancedPipeline = [
1016
1113
  initAdvancedVSeed,
1017
- locale_locale,
1018
1114
  autoMeasures,
1019
1115
  autoDimensions,
1020
1116
  pivotAdapter([
@@ -1030,7 +1126,6 @@ const barAdvancedPipeline = [
1030
1126
  ];
1031
1127
  const barParallelAdvancedPipeline = [
1032
1128
  initAdvancedVSeed,
1033
- locale_locale,
1034
1129
  autoMeasures,
1035
1130
  autoDimensions,
1036
1131
  pivotAdapter([
@@ -1046,7 +1141,6 @@ const barParallelAdvancedPipeline = [
1046
1141
  ];
1047
1142
  const barPercentAdvancedPipeline = [
1048
1143
  initAdvancedVSeed,
1049
- locale_locale,
1050
1144
  autoMeasures,
1051
1145
  autoDimensions,
1052
1146
  pivotAdapter([
@@ -1062,7 +1156,6 @@ const barPercentAdvancedPipeline = [
1062
1156
  ];
1063
1157
  const columnAdvancedPipeline = [
1064
1158
  initAdvancedVSeed,
1065
- locale_locale,
1066
1159
  autoMeasures,
1067
1160
  autoDimensions,
1068
1161
  pivotAdapter([
@@ -1078,7 +1171,6 @@ const columnAdvancedPipeline = [
1078
1171
  ];
1079
1172
  const columnParallelAdvancedPipeline = [
1080
1173
  initAdvancedVSeed,
1081
- locale_locale,
1082
1174
  autoMeasures,
1083
1175
  autoDimensions,
1084
1176
  pivotAdapter([
@@ -1094,7 +1186,6 @@ const columnParallelAdvancedPipeline = [
1094
1186
  ];
1095
1187
  const columnPercentAdvancedPipeline = [
1096
1188
  initAdvancedVSeed,
1097
- locale_locale,
1098
1189
  autoMeasures,
1099
1190
  autoDimensions,
1100
1191
  pivotAdapter([
@@ -1110,7 +1201,6 @@ const columnPercentAdvancedPipeline = [
1110
1201
  ];
1111
1202
  const areaAdvancedPipeline = [
1112
1203
  initAdvancedVSeed,
1113
- locale_locale,
1114
1204
  autoMeasures,
1115
1205
  autoDimensions,
1116
1206
  pivotAdapter([
@@ -1126,7 +1216,6 @@ const areaAdvancedPipeline = [
1126
1216
  ];
1127
1217
  const areaPercentAdvancedPipeline = [
1128
1218
  initAdvancedVSeed,
1129
- locale_locale,
1130
1219
  autoMeasures,
1131
1220
  autoDimensions,
1132
1221
  pivotAdapter([
@@ -1142,7 +1231,6 @@ const areaPercentAdvancedPipeline = [
1142
1231
  ];
1143
1232
  const pieAdvancedPipeline = [
1144
1233
  initAdvancedVSeed,
1145
- locale_locale,
1146
1234
  autoMeasures,
1147
1235
  autoDimensions,
1148
1236
  pivotAdapter([
@@ -1157,7 +1245,6 @@ const pieAdvancedPipeline = [
1157
1245
  ];
1158
1246
  const donutAdvancedPipeline = [
1159
1247
  initAdvancedVSeed,
1160
- locale_locale,
1161
1248
  autoMeasures,
1162
1249
  autoDimensions,
1163
1250
  pivotAdapter([
@@ -1172,7 +1259,6 @@ const donutAdvancedPipeline = [
1172
1259
  ];
1173
1260
  const roseAdvancedPipeline = [
1174
1261
  initAdvancedVSeed,
1175
- locale_locale,
1176
1262
  autoMeasures,
1177
1263
  autoDimensions,
1178
1264
  pivotAdapter([
@@ -1188,7 +1274,6 @@ const roseAdvancedPipeline = [
1188
1274
  ];
1189
1275
  const roseParallelAdvancedPipeline = [
1190
1276
  initAdvancedVSeed,
1191
- locale_locale,
1192
1277
  autoMeasures,
1193
1278
  autoDimensions,
1194
1279
  pivotAdapter([
@@ -1204,7 +1289,6 @@ const roseParallelAdvancedPipeline = [
1204
1289
  ];
1205
1290
  const funnelAdvancedPipeline = [
1206
1291
  initAdvancedVSeed,
1207
- locale_locale,
1208
1292
  autoMeasures,
1209
1293
  autoDimensions,
1210
1294
  pivotAdapter([
@@ -1217,45 +1301,8 @@ const funnelAdvancedPipeline = [
1217
1301
  theme_theme,
1218
1302
  annotation_annotation
1219
1303
  ];
1220
- const encodingYY = (advancedVSeed)=>{
1221
- const result = {
1222
- ...advancedVSeed
1223
- };
1224
- const { datasetReshapeInfo, measures } = advancedVSeed;
1225
- if (!datasetReshapeInfo || !measures) return result;
1226
- const firstMeasure = findFirstMeasure(measures);
1227
- const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
1228
- const { foldInfo, unfoldInfo } = cur;
1229
- const x = [
1230
- firstMeasure?.id
1231
- ];
1232
- const y = [
1233
- foldInfo.measureValue
1234
- ];
1235
- const group = [
1236
- unfoldInfo.groupId
1237
- ];
1238
- const color = [
1239
- unfoldInfo.groupId
1240
- ];
1241
- return [
1242
- ...prev,
1243
- {
1244
- x,
1245
- y,
1246
- group,
1247
- color
1248
- }
1249
- ];
1250
- }, []);
1251
- return {
1252
- ...result,
1253
- encoding
1254
- };
1255
- };
1256
1304
  const scatterAdvancedPipeline = [
1257
1305
  initAdvancedVSeed,
1258
- locale_locale,
1259
1306
  autoMeasures,
1260
1307
  autoDimensions,
1261
1308
  pivotAdapter([
@@ -1269,6 +1316,158 @@ const scatterAdvancedPipeline = [
1269
1316
  markStyle_markStyle,
1270
1317
  annotation_annotation
1271
1318
  ];
1319
+ const autoMeasures_autoMeasures = (advancedVSeed, context)=>{
1320
+ const result = {
1321
+ ...advancedVSeed
1322
+ };
1323
+ const { vseed } = context;
1324
+ const { measures, dataset } = vseed;
1325
+ if (!dataset) throw new Error('dataset is required');
1326
+ if (0 === dataset.length) return result;
1327
+ if (measures && measures.length > 0) {
1328
+ result.measures = measures;
1329
+ return result;
1330
+ }
1331
+ const top100dataset = dataset.slice(0, 100);
1332
+ const sample = top100dataset.reduce((prev, cur)=>({
1333
+ ...prev,
1334
+ ...cur
1335
+ }), {});
1336
+ result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1337
+ '',
1338
+ null,
1339
+ void 0
1340
+ ].includes(key)).map((measure)=>({
1341
+ id: measure,
1342
+ alias: measure
1343
+ }));
1344
+ return result;
1345
+ };
1346
+ const autoDimensions_autoDimensions = (advancedVSeed, context)=>{
1347
+ const result = {
1348
+ ...advancedVSeed
1349
+ };
1350
+ const { vseed } = context;
1351
+ const { dimensions, dataset } = vseed;
1352
+ const measures = findAllMeasures(advancedVSeed.measures);
1353
+ if (!dataset) throw new Error('dataset is required');
1354
+ if (0 === dataset.length) return result;
1355
+ if (dimensions && dimensions.length > 0) {
1356
+ result.dimensions = dimensions;
1357
+ return result;
1358
+ }
1359
+ const top100dataset = dataset.slice(0, 100);
1360
+ const sample = top100dataset.reduce((prev, cur)=>({
1361
+ ...prev,
1362
+ ...cur
1363
+ }), {});
1364
+ result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1365
+ '',
1366
+ null,
1367
+ void 0
1368
+ ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1369
+ id: dim,
1370
+ alias: dim,
1371
+ location: 'dimension'
1372
+ }));
1373
+ return result;
1374
+ };
1375
+ const autoPivotDimensions = (advancedVSeed, context)=>{
1376
+ const result = {
1377
+ ...advancedVSeed
1378
+ };
1379
+ const { vseed } = context;
1380
+ const { dimensions, dataset } = vseed;
1381
+ const measures = findAllMeasures(advancedVSeed.measures);
1382
+ if (!dataset) throw new Error('dataset is required');
1383
+ if (0 === dataset.length) return result;
1384
+ if (dimensions && dimensions.length > 0) {
1385
+ const newDimensions = findAllDimensions(dimensions);
1386
+ result.dimensions = newDimensions.map((item, index)=>{
1387
+ if ('rowDimension' === item.location || 'columnDimension' === item.location) return item;
1388
+ return {
1389
+ ...item,
1390
+ location: index % 2 === 0 ? 'columnDimension' : 'rowDimension'
1391
+ };
1392
+ });
1393
+ return result;
1394
+ }
1395
+ const top100dataset = dataset.slice(0, 100);
1396
+ const sample = top100dataset.reduce((prev, cur)=>({
1397
+ ...prev,
1398
+ ...cur
1399
+ }), {});
1400
+ let i = 0;
1401
+ result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1402
+ '',
1403
+ null,
1404
+ void 0
1405
+ ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1406
+ id: dim,
1407
+ alias: dim,
1408
+ location: i++ % 2 === 0 ? 'columnDimension' : 'rowDimension'
1409
+ }));
1410
+ return result;
1411
+ };
1412
+ const autoPivotMeasures = (advancedVSeed, context)=>{
1413
+ const result = {
1414
+ ...advancedVSeed
1415
+ };
1416
+ const { vseed } = context;
1417
+ const { dataset } = vseed;
1418
+ const measures = findAllMeasures(vseed.measures);
1419
+ if (!dataset) throw new Error('dataset is required');
1420
+ if (0 === dataset.length) return result;
1421
+ if (measures && measures.length > 0) {
1422
+ result.measures = findAllMeasures(measures);
1423
+ return result;
1424
+ }
1425
+ const top100dataset = dataset.slice(0, 100);
1426
+ const sample = top100dataset.reduce((prev, cur)=>({
1427
+ ...prev,
1428
+ ...cur
1429
+ }), {});
1430
+ result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1431
+ '',
1432
+ null,
1433
+ void 0
1434
+ ].includes(key)).map((measure)=>({
1435
+ id: measure,
1436
+ alias: measure
1437
+ }));
1438
+ return result;
1439
+ };
1440
+ const initAdvancedVSeed_initAdvancedVSeed = (advancedVSeed, context)=>{
1441
+ const { vseed } = context;
1442
+ const { chartType, locale } = vseed;
1443
+ return {
1444
+ ...advancedVSeed,
1445
+ chartType,
1446
+ locale: locale || 'zh-CN'
1447
+ };
1448
+ };
1449
+ const records_records = (advancedVSeed, context)=>{
1450
+ const { vseed } = context;
1451
+ const { dataset } = vseed;
1452
+ return {
1453
+ ...advancedVSeed,
1454
+ dataset
1455
+ };
1456
+ };
1457
+ const pivotTableAdvancedPipeline = [
1458
+ initAdvancedVSeed_initAdvancedVSeed,
1459
+ autoPivotMeasures,
1460
+ autoPivotDimensions,
1461
+ records_records,
1462
+ theme_theme
1463
+ ];
1464
+ const tableAdvancedPipeline = [
1465
+ initAdvancedVSeed_initAdvancedVSeed,
1466
+ autoMeasures_autoMeasures,
1467
+ autoDimensions_autoDimensions,
1468
+ records_records,
1469
+ theme_theme
1470
+ ];
1272
1471
  const dataset_dataset = (spec, context)=>{
1273
1472
  const { advancedVSeed } = context;
1274
1473
  const { encoding } = advancedVSeed;
@@ -1646,6 +1845,27 @@ const initFunnel = (spec, context)=>{
1646
1845
  result.animation = true;
1647
1846
  return result;
1648
1847
  };
1848
+ const initScatter = (spec, context)=>{
1849
+ const result = {
1850
+ ...spec
1851
+ };
1852
+ const { advancedVSeed } = context;
1853
+ const { encoding } = advancedVSeed;
1854
+ if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
1855
+ result.type = 'scatter';
1856
+ result.direction = 'vertical';
1857
+ result.xField = encoding[0].x[0];
1858
+ result.yField = encoding[0].y[0];
1859
+ result.seriesField = encoding[0].group[0];
1860
+ result.padding = 0;
1861
+ result.region = [
1862
+ {
1863
+ clip: true
1864
+ }
1865
+ ];
1866
+ result.animation = true;
1867
+ return result;
1868
+ };
1649
1869
  const xBand = (spec, context)=>{
1650
1870
  const result = {
1651
1871
  ...spec
@@ -2641,7 +2861,7 @@ const pivotColumnDimensions = (spec, context)=>{
2641
2861
  ...spec
2642
2862
  };
2643
2863
  const { advancedVSeed } = context;
2644
- const { dimensions } = advancedVSeed;
2864
+ const dimensions = advancedVSeed.dimensions;
2645
2865
  if (!dimensions) return result;
2646
2866
  const columnDimensions = dimensions.filter((dim)=>'columnDimension' === dim.location);
2647
2867
  const columns = columnDimensions.map((dim)=>({
@@ -2658,7 +2878,7 @@ const pivotRowDimensions = (spec, context)=>{
2658
2878
  ...spec
2659
2879
  };
2660
2880
  const { advancedVSeed } = context;
2661
- const { dimensions } = advancedVSeed;
2881
+ const dimensions = advancedVSeed.dimensions;
2662
2882
  if (!dimensions) return result;
2663
2883
  const rowDimensions = dimensions.filter((dim)=>'rowDimension' === dim.location);
2664
2884
  const rows = rowDimensions.map((dim)=>({
@@ -4295,27 +4515,6 @@ const pivotFunnel = [
4295
4515
  const funnelSpecPipeline = [
4296
4516
  pivotAdapter_pivotAdapter(funnel, pivotFunnel)
4297
4517
  ];
4298
- const initScatter = (spec, context)=>{
4299
- const result = {
4300
- ...spec
4301
- };
4302
- const { advancedVSeed } = context;
4303
- const { encoding } = advancedVSeed;
4304
- if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
4305
- result.type = 'scatter';
4306
- result.direction = 'vertical';
4307
- result.xField = encoding[0].x[0];
4308
- result.yField = encoding[0].y[0];
4309
- result.seriesField = encoding[0].group[0];
4310
- result.padding = 0;
4311
- result.region = [
4312
- {
4313
- clip: true
4314
- }
4315
- ];
4316
- result.animation = true;
4317
- return result;
4318
- };
4319
4518
  const scatter = [
4320
4519
  initScatter,
4321
4520
  color_color,
@@ -4365,6 +4564,128 @@ const pivotScatter = [
4365
4564
  const scatterSpecPipeline = [
4366
4565
  pivotAdapter_pivotAdapter(scatter, pivotScatter)
4367
4566
  ];
4567
+ const initTable = (spec, context)=>{
4568
+ const { advancedVSeed } = context;
4569
+ const { dataset } = advancedVSeed;
4570
+ return {
4571
+ ...spec,
4572
+ records: dataset,
4573
+ widthMode: 'standard',
4574
+ heightMode: 'autoHeight',
4575
+ autoWrapText: true,
4576
+ columnResizeMode: 'all',
4577
+ showHeader: true
4578
+ };
4579
+ };
4580
+ const initPivotTable = (spec, context)=>{
4581
+ const { advancedVSeed } = context;
4582
+ const { dataset } = advancedVSeed;
4583
+ return {
4584
+ ...spec,
4585
+ records: dataset,
4586
+ widthMode: 'standard',
4587
+ heightMode: 'autoHeight',
4588
+ autoWrapText: true,
4589
+ columnResizeMode: 'all'
4590
+ };
4591
+ };
4592
+ const measureTreeToColumns = (spec, context)=>{
4593
+ const { advancedVSeed } = context;
4594
+ const measures = advancedVSeed.measures;
4595
+ const result = {
4596
+ ...spec
4597
+ };
4598
+ const columns = treeTreeToColumns(measures);
4599
+ return {
4600
+ ...result,
4601
+ columns: [
4602
+ ...result.columns || [],
4603
+ ...columns
4604
+ ]
4605
+ };
4606
+ };
4607
+ const dimensionTreeToColumns = (spec, context)=>{
4608
+ const { advancedVSeed } = context;
4609
+ const dimensions = advancedVSeed.dimensions;
4610
+ const result = {
4611
+ ...spec
4612
+ };
4613
+ const columns = treeTreeToColumns(dimensions);
4614
+ return {
4615
+ ...result,
4616
+ columns: [
4617
+ ...result.columns || [],
4618
+ ...columns
4619
+ ]
4620
+ };
4621
+ };
4622
+ const treeTreeToColumns = (tree = [])=>{
4623
+ const result = tree.map((item)=>{
4624
+ const field = item.id;
4625
+ const title = item.alias ?? item.id;
4626
+ if ('children' in item && Array.isArray(item.children)) return {
4627
+ field,
4628
+ title,
4629
+ columns: treeTreeToColumns(item.children)
4630
+ };
4631
+ return {
4632
+ field,
4633
+ title
4634
+ };
4635
+ });
4636
+ return result || [];
4637
+ };
4638
+ const pivotColumns = (spec, context)=>{
4639
+ const { advancedVSeed } = context;
4640
+ const dimensions = advancedVSeed.dimensions;
4641
+ const columns = dimensions.filter((item)=>'columnDimension' === item['location']);
4642
+ return {
4643
+ ...spec,
4644
+ columns: columns.map((item)=>({
4645
+ dimensionKey: item.id,
4646
+ title: item.alias || item.id,
4647
+ width: 'auto'
4648
+ }))
4649
+ };
4650
+ };
4651
+ const pivotRows = (spec, context)=>{
4652
+ const { advancedVSeed } = context;
4653
+ const dimensions = advancedVSeed.dimensions;
4654
+ const rows = dimensions.filter((item)=>'rowDimension' === item['location']);
4655
+ return {
4656
+ ...spec,
4657
+ rows: rows.map((item)=>({
4658
+ dimensionKey: item.id,
4659
+ title: item.alias || item.id,
4660
+ width: 'auto'
4661
+ }))
4662
+ };
4663
+ };
4664
+ const pivotIndicators_pivotIndicators = (spec, context)=>{
4665
+ const { advancedVSeed } = context;
4666
+ const measures = advancedVSeed.measures;
4667
+ return {
4668
+ ...spec,
4669
+ indicatorsAsCol: true,
4670
+ indicators: measures.map((item)=>({
4671
+ cellType: 'text',
4672
+ indicatorKey: item.id,
4673
+ title: item.alias || item.id,
4674
+ width: 'auto'
4675
+ }))
4676
+ };
4677
+ };
4678
+ const tableSpecPipeline = [
4679
+ initTable,
4680
+ dimensionTreeToColumns,
4681
+ measureTreeToColumns
4682
+ ];
4683
+ const pivotTableSpecPipeline = [
4684
+ initPivotTable,
4685
+ pivotColumns,
4686
+ pivotRows,
4687
+ pivotIndicators_pivotIndicators
4688
+ ];
4368
4689
  const buildAdvanced = (builder)=>{
4369
4690
  const { chartType } = builder.vseed;
4370
4691
  if (!chartType) throw new Error('chartType is nil in buildAdvanced');
@@ -4405,6 +4726,17 @@ const build = (builder)=>{
4405
4726
  builder.spec = spec;
4406
4727
  return spec;
4407
4728
  };
4729
+ const getColorItems = (builder)=>{
4730
+ const advancedVSeed = builder.advancedVSeed;
4731
+ if (!advancedVSeed) return [];
4732
+ const { datasetReshapeInfo } = advancedVSeed;
4733
+ const colorItems = unique(datasetReshapeInfo.flatMap((d)=>d.unfoldInfo.colorItems));
4734
+ const colorIdMap = datasetReshapeInfo.reduce((prev, cur)=>({
4735
+ ...prev,
4736
+ ...cur.unfoldInfo.colorIdMap
4737
+ }), {});
4738
+ return colorItems.map((d)=>colorIdMap[d]);
4739
+ };
4408
4740
  class Builder {
4409
4741
  _vseed;
4410
4742
  _advancedVSeed = null;
@@ -4420,6 +4752,7 @@ class Builder {
4420
4752
  getSpecPipeline = (chartType)=>Builder._specPipelineMap[chartType];
4421
4753
  getTheme = (themeKey)=>Builder._themeMap[themeKey];
4422
4754
  getThemeMap = ()=>Builder._themeMap;
4755
+ getColorItems = ()=>getColorItems(this);
4423
4756
  get vseed() {
4424
4757
  return this._vseed;
4425
4758
  }
@@ -4503,6 +4836,14 @@ const registerScatter = ()=>{
4503
4836
  Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
4504
4837
  Builder._specPipelineMap.scatter = scatterSpecPipeline;
4505
4838
  };
4839
+ const registerTable = ()=>{
4840
+ Builder._advancedPipelineMap.table = tableAdvancedPipeline;
4841
+ Builder._specPipelineMap.table = tableSpecPipeline;
4842
+ };
4843
+ const registerPivotTable = ()=>{
4844
+ Builder._advancedPipelineMap.pivotTable = pivotTableAdvancedPipeline;
4845
+ Builder._specPipelineMap.pivotTable = pivotTableSpecPipeline;
4846
+ };
4506
4847
  const darkTheme = ()=>{
4507
4848
  const linearAxis = {
4508
4849
  nice: true,
@@ -5091,6 +5432,8 @@ const registerAll = ()=>{
5091
5432
  registerRoseParallel();
5092
5433
  registerFunnel();
5093
5434
  registerScatter();
5435
+ registerTable();
5436
+ registerPivotTable();
5094
5437
  registerLightTheme();
5095
5438
  registerDarkTheme();
5096
5439
  };
@@ -5119,14 +5462,21 @@ const zDataset = z.array(zDatum);
5119
5462
  const zDimension = z.object({
5120
5463
  id: z.string(),
5121
5464
  alias: z.string().optional(),
5122
- visible: z.boolean().default(true).optional(),
5123
5465
  location: z["enum"]([
5124
5466
  'dimension',
5125
5467
  'rowDimension',
5126
5468
  'columnDimension'
5127
5469
  ]).default('dimension').optional()
5128
5470
  });
5129
- const zDimensions = z.array(zDimension).optional();
5471
+ const zDimensionGroup = z.object({
5472
+ id: z.string(),
5473
+ alias: z.string().optional(),
5474
+ get children () {
5475
+ return z.array(zDimensionGroup.or(zDimension)).optional();
5476
+ }
5477
+ });
5478
+ const zDimensions = z.array(zDimension);
5479
+ const zDimensionTree = z.array(zDimensionGroup.or(zDimension));
5130
5480
  const zNumFormat = z.object({
5131
5481
  type: z["enum"]([
5132
5482
  'number',
@@ -5170,7 +5520,8 @@ const zMeasureGroup = z.object({
5170
5520
  return z.array(zMeasureGroup.or(zMeasure)).optional();
5171
5521
  }
5172
5522
  });
5173
- const zMeasures = z.array(zMeasureGroup.or(zMeasure)).optional();
5523
+ const zMeasures = z.array(zMeasure);
5524
+ const zMeasureTree = z.array(zMeasureGroup.or(zMeasure));
5174
5525
  const zFoldInfo = z.object({
5175
5526
  foldMap: z.record(z.string(), z.string().or(z.undefined())),
5176
5527
  measureId: z.string(),
@@ -5833,11 +6184,29 @@ const zLocale = z["enum"]([
5833
6184
  'zh-CN',
5834
6185
  'en-US'
5835
6186
  ]).default('zh-CN');
6187
+ const zTable = z.object({
6188
+ chartType: z.literal('table'),
6189
+ dataset: zDataset.optional(),
6190
+ dimensions: zDimensions.optional(),
6191
+ measures: zMeasureTree.optional(),
6192
+ backgroundColor: zBackgroundColor.optional(),
6193
+ theme: zTheme.optional(),
6194
+ locale: zLocale.optional()
6195
+ });
6196
+ const zPivotTable = z.object({
6197
+ chartType: z.literal('pivotTable'),
6198
+ dataset: zDataset.optional(),
6199
+ dimensions: zDimensions.optional(),
6200
+ measures: zMeasures.optional(),
6201
+ backgroundColor: zBackgroundColor.optional(),
6202
+ theme: zTheme.optional(),
6203
+ locale: zLocale.optional()
6204
+ });
5836
6205
  const zLine = z.object({
5837
6206
  chartType: z.literal('line'),
5838
6207
  dataset: zDataset.optional(),
5839
6208
  dimensions: zDimensions.optional(),
5840
- measures: zMeasures.optional(),
6209
+ measures: zMeasureTree.optional(),
5841
6210
  backgroundColor: zBackgroundColor.optional(),
5842
6211
  color: zColor.optional(),
5843
6212
  label: zLabel.optional(),
@@ -5859,7 +6228,7 @@ const zColumn = z.object({
5859
6228
  chartType: z.literal('column'),
5860
6229
  dataset: zDataset.optional(),
5861
6230
  dimensions: zDimensions.optional(),
5862
- measures: zMeasures.optional(),
6231
+ measures: zMeasureTree.optional(),
5863
6232
  backgroundColor: zBackgroundColor.optional(),
5864
6233
  color: zColor.optional(),
5865
6234
  label: zLabel.optional(),
@@ -5881,7 +6250,7 @@ const zColumnParallel = z.object({
5881
6250
  chartType: z.literal('columnParallel'),
5882
6251
  dataset: zDataset.optional(),
5883
6252
  dimensions: zDimensions.optional(),
5884
- measures: zMeasures.optional(),
6253
+ measures: zMeasureTree.optional(),
5885
6254
  backgroundColor: zBackgroundColor.optional(),
5886
6255
  color: zColor.optional(),
5887
6256
  label: zLabel.optional(),
@@ -5903,7 +6272,7 @@ const zColumnPercent = z.object({
5903
6272
  chartType: z.literal('columnPercent'),
5904
6273
  dataset: zDataset.optional(),
5905
6274
  dimensions: zDimensions.optional(),
5906
- measures: zMeasures.optional(),
6275
+ measures: zMeasureTree.optional(),
5907
6276
  backgroundColor: zBackgroundColor.optional(),
5908
6277
  color: zColor.optional(),
5909
6278
  label: zLabel.optional(),
@@ -5925,7 +6294,7 @@ const zBar = z.object({
5925
6294
  chartType: z.literal('bar'),
5926
6295
  dataset: zDataset.optional(),
5927
6296
  dimensions: zDimensions.optional(),
5928
- measures: zMeasures.optional(),
6297
+ measures: zMeasureTree.optional(),
5929
6298
  backgroundColor: zBackgroundColor.optional(),
5930
6299
  color: zColor.optional(),
5931
6300
  label: zLabel.optional(),
@@ -5947,7 +6316,7 @@ const zBarParallel = z.object({
5947
6316
  chartType: z.literal('barParallel'),
5948
6317
  dataset: zDataset.optional(),
5949
6318
  dimensions: zDimensions.optional(),
5950
- measures: zMeasures.optional(),
6319
+ measures: zMeasureTree.optional(),
5951
6320
  backgroundColor: zBackgroundColor.optional(),
5952
6321
  color: zColor.optional(),
5953
6322
  label: zLabel.optional(),
@@ -5969,7 +6338,7 @@ const zBarPercent = z.object({
5969
6338
  chartType: z.literal('barPercent'),
5970
6339
  dataset: zDataset.optional(),
5971
6340
  dimensions: zDimensions.optional(),
5972
- measures: zMeasures.optional(),
6341
+ measures: zMeasureTree.optional(),
5973
6342
  backgroundColor: zBackgroundColor.optional(),
5974
6343
  color: zColor.optional(),
5975
6344
  label: zLabel.optional(),
@@ -5991,7 +6360,7 @@ const zArea = z.object({
5991
6360
  chartType: z.literal('area'),
5992
6361
  dataset: zDataset.optional(),
5993
6362
  dimensions: zDimensions.optional(),
5994
- measures: zMeasures.optional(),
6363
+ measures: zMeasureTree.optional(),
5995
6364
  backgroundColor: zBackgroundColor.optional(),
5996
6365
  color: zColor.optional(),
5997
6366
  label: zLabel.optional(),
@@ -6014,7 +6383,7 @@ const zAreaPercent = z.object({
6014
6383
  chartType: z.literal('areaPercent'),
6015
6384
  dataset: zDataset.optional(),
6016
6385
  dimensions: zDimensions.optional(),
6017
- measures: zMeasures.optional(),
6386
+ measures: zMeasureTree.optional(),
6018
6387
  backgroundColor: zBackgroundColor.optional(),
6019
6388
  color: zColor.optional(),
6020
6389
  label: zLabel.optional(),
@@ -6037,7 +6406,7 @@ const zRose = z.object({
6037
6406
  chartType: z.literal('rose'),
6038
6407
  dataset: zDataset.optional(),
6039
6408
  dimensions: zDimensions.optional(),
6040
- measures: zMeasures.optional(),
6409
+ measures: zMeasureTree.optional(),
6041
6410
  backgroundColor: zBackgroundColor.optional(),
6042
6411
  color: zColor.optional(),
6043
6412
  label: zLabel.optional(),
@@ -6050,7 +6419,7 @@ const zRoseParallel = z.object({
6050
6419
  chartType: z.literal('roseParallel'),
6051
6420
  dataset: zDataset.optional(),
6052
6421
  dimensions: zDimensions.optional(),
6053
- measures: zMeasures.optional(),
6422
+ measures: zMeasureTree.optional(),
6054
6423
  backgroundColor: zBackgroundColor.optional(),
6055
6424
  color: zColor.optional(),
6056
6425
  label: zLabel.optional(),
@@ -6063,7 +6432,7 @@ const zPie = z.object({
6063
6432
  chartType: z.literal('pie'),
6064
6433
  dataset: zDataset.optional(),
6065
6434
  dimensions: zDimensions.optional(),
6066
- measures: zMeasures.optional(),
6435
+ measures: zMeasureTree.optional(),
6067
6436
  backgroundColor: zBackgroundColor.optional(),
6068
6437
  color: zColor.optional(),
6069
6438
  label: zLabel.optional(),
@@ -6076,7 +6445,7 @@ const zDonut = z.object({
6076
6445
  chartType: z.literal('donut'),
6077
6446
  dataset: zDataset.optional(),
6078
6447
  dimensions: zDimensions.optional(),
6079
- measures: zMeasures.optional(),
6448
+ measures: zMeasureTree.optional(),
6080
6449
  backgroundColor: zBackgroundColor.optional(),
6081
6450
  color: zColor.optional(),
6082
6451
  label: zLabel.optional(),
@@ -6089,7 +6458,7 @@ const zScatter = z.object({
6089
6458
  chartType: z.literal('scatter'),
6090
6459
  dataset: zDataset.optional(),
6091
6460
  dimensions: zDimensions.optional(),
6092
- measures: zMeasures.optional(),
6461
+ measures: zMeasureTree.optional(),
6093
6462
  backgroundColor: zBackgroundColor.optional(),
6094
6463
  color: zColor.optional(),
6095
6464
  label: zLabel.optional(),
@@ -6110,7 +6479,7 @@ const zFunnel = z.object({
6110
6479
  chartType: z.literal('funnel'),
6111
6480
  dataset: zDataset.optional(),
6112
6481
  dimensions: zDimensions.optional(),
6113
- measures: zMeasures.optional(),
6482
+ measures: zMeasureTree.optional(),
6114
6483
  backgroundColor: zBackgroundColor.optional(),
6115
6484
  color: zColor.optional(),
6116
6485
  label: zLabel.optional(),
@@ -6120,6 +6489,8 @@ const zFunnel = z.object({
6120
6489
  locale: zLocale.optional()
6121
6490
  });
6122
6491
  const zVSeed = z.discriminatedUnion('chartType', [
6492
+ zTable,
6493
+ zPivotTable,
6123
6494
  zLine,
6124
6495
  zColumn,
6125
6496
  zColumnParallel,
@@ -6140,8 +6511,8 @@ const zAdvancedVSeed = z.object({
6140
6511
  chartType: zChartType,
6141
6512
  dataset: zDataset,
6142
6513
  datasetReshapeInfo: zDatasetReshapeInfo,
6143
- dimensions: zDimensions,
6144
- measures: zMeasures,
6514
+ dimensions: zDimensionTree,
6515
+ measures: zMeasureTree,
6145
6516
  encoding: zEncoding,
6146
6517
  config: zConfig,
6147
6518
  theme: zTheme,
@@ -6150,6 +6521,6 @@ const zAdvancedVSeed = z.object({
6150
6521
  annotation: zAnnotation,
6151
6522
  locale: zLocale
6152
6523
  });
6153
- export { Builder, FoldMeasureId, FoldMeasureName, FoldMeasureValue, ORIGINAL_DATA, Separator, UnfoldDimensionGroup, UnfoldDimensionGroupId, areaAdvancedPipeline, areaPercentAdvancedPipeline, areaPercentSpecPipeline, areaSpecPipeline, autoFormatter, autoNumFormatter, barAdvancedPipeline, barParallelAdvancedPipeline, barParallelSpecPipeline, barPercentAdvancedPipeline, barPercentSpecPipeline, barSpecPipeline, columnAdvancedPipeline, columnParallelAdvancedPipeline, columnParallelSpecPipeline, columnPercentAdvancedPipeline, columnPercentSpecPipeline, columnSpecPipeline, createFormatter, createNumFormatter, darkTheme, dataReshapeFor1D1M, dataReshapeFor1D2M, dataReshapeFor2D1M, donutAdvancedPipeline, donutSpecPipeline, execPipeline, findFirstMeasure, findMeasureById, foldMeasures, funnelAdvancedPipeline, funnelSpecPipeline, i18n, intl, isPivotChart, isVChart, isVTable, lightTheme, lineAdvancedPipeline, lineSpecPipeline, pieAdvancedPipeline, pieSpecPipeline, registerAll, registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerColumn, registerColumnParallel, registerColumnPercent, registerCustomTheme, registerDarkTheme, registerLightTheme, registerLine, roseAdvancedPipeline, roseParallelAdvancedPipeline, roseParallelSpecPipeline, roseSpecPipeline, scatterAdvancedPipeline, scatterSpecPipeline, unfoldDimensions, zAdvancedVSeed, zAnnotation, zAnnotationArea, zAnnotationHorizontalLine, zAnnotationPoint, zAnnotationVerticalLine, zArea, zAreaConfig, zAreaPercent, zAreaPercentConfig, zAreaStyle, zAxis, zBackgroundColor, zBar, zBarConfig, zBarParallel, zBarParallelConfig, zBarPercent, zBarPercentConfig, zBarStyle, zChartType, zColor, zColumn, zColumnConfig, zColumnParallel, zColumnParallelConfig, zColumnPercent, zColumnPercentConfig, zConfig, zCrosshairLine, zCrosshairRect, zCustomTheme, zCustomThemeConfig, zDataset, zDatasetReshapeInfo, zDatum, zDimension, zDimensions, zDonut, zDonutConfig, zDualAxisConfig, zEncoding, zFoldInfo, zFunnel, zFunnelConfig, zLabel, zLegend, zLine, zLineConfig, zLineStyle, zLocale, zMarkStyle, zMeasure, zMeasureGroup, zMeasures, zNumFormat, zPie, zPieConfig, zPointStyle, zRose, zRoseConfig, zRoseParallel, zRoseParallelConfig, zScatter, zScatterConfig, zStackCornerRadius, zTheme, zTooltip, zUnfoldInfo, zVSeed, zXBandAxis, zXLinearAxis, zYBandAxis, zYLinearAxis };
6524
+ export { Builder, FoldMeasureId, FoldMeasureName, FoldMeasureValue, ORIGINAL_DATA, Separator, UnfoldDimensionGroup, UnfoldDimensionGroupId, areaAdvancedPipeline, areaPercentAdvancedPipeline, areaPercentSpecPipeline, areaSpecPipeline, autoFormatter, autoNumFormatter, barAdvancedPipeline, barParallelAdvancedPipeline, barParallelSpecPipeline, barPercentAdvancedPipeline, barPercentSpecPipeline, barSpecPipeline, columnAdvancedPipeline, columnParallelAdvancedPipeline, columnParallelSpecPipeline, columnPercentAdvancedPipeline, columnPercentSpecPipeline, columnSpecPipeline, createFormatter, createNumFormatter, darkTheme, dataReshapeFor1D1M, dataReshapeFor1D2M, dataReshapeFor2D1M, donutAdvancedPipeline, donutSpecPipeline, execPipeline, findAllDimensions, findAllMeasures, findDimensionById, findFirstDimension, findFirstMeasure, findMeasureById, foldMeasures, funnelAdvancedPipeline, funnelSpecPipeline, i18n, intl, isPivotChart, isPivotTable, isTable, isVChart, isVTable, lightTheme, lineAdvancedPipeline, lineSpecPipeline, pieAdvancedPipeline, pieSpecPipeline, pivotTableAdvancedPipeline, pivotTableSpecPipeline, preorderTraverse, registerAll, registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerColumn, registerColumnParallel, registerColumnPercent, registerCustomTheme, registerDarkTheme, registerDonut, registerFunnel, registerLightTheme, registerLine, registerPie, registerPivotTable, registerRose, registerRoseParallel, registerScatter, registerTable, roseAdvancedPipeline, roseParallelAdvancedPipeline, roseParallelSpecPipeline, roseSpecPipeline, scatterAdvancedPipeline, scatterSpecPipeline, tableAdvancedPipeline, tableSpecPipeline, unfoldDimensions, zAdvancedVSeed, zAnnotation, zAnnotationArea, zAnnotationHorizontalLine, zAnnotationPoint, zAnnotationVerticalLine, zArea, zAreaConfig, zAreaPercent, zAreaPercentConfig, zAreaStyle, zAxis, zBackgroundColor, zBar, zBarConfig, zBarParallel, zBarParallelConfig, zBarPercent, zBarPercentConfig, zBarStyle, zChartType, zColor, zColumn, zColumnConfig, zColumnParallel, zColumnParallelConfig, zColumnPercent, zColumnPercentConfig, zConfig, zCrosshairLine, zCrosshairRect, zCustomTheme, zCustomThemeConfig, zDataset, zDatasetReshapeInfo, zDatum, zDimension, zDimensionGroup, zDimensionTree, zDimensions, zDonut, zDonutConfig, zDualAxisConfig, zEncoding, zFoldInfo, zFunnel, zFunnelConfig, zLabel, zLegend, zLine, zLineConfig, zLineStyle, zLocale, zMarkStyle, zMeasure, zMeasureGroup, zMeasureTree, zMeasures, zNumFormat, zPie, zPieConfig, zPivotTable, zPointStyle, zRose, zRoseConfig, zRoseParallel, zRoseParallelConfig, zScatter, zScatterConfig, zStackCornerRadius, zTable, zTheme, zTooltip, zUnfoldInfo, zVSeed, zXBandAxis, zXLinearAxis, zYBandAxis, zYLinearAxis };
6154
6525
 
6155
6526
  //# sourceMappingURL=index.js.map