@visactor/vseed 0.1.45 → 0.1.47

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 (165) hide show
  1. package/dist/cjs/index.cjs +3 -3
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/builder.d.ts +86 -14
  4. package/dist/esm/dataReshape/constant.d.ts +2 -2
  5. package/dist/esm/dataReshape/constant.js +3 -3
  6. package/dist/esm/dataReshape/constant.js.map +1 -1
  7. package/dist/esm/i18n/i18n.js +2 -2
  8. package/dist/esm/i18n/i18n.js.map +1 -1
  9. package/dist/esm/i18n/i18nData.d.ts +2 -0
  10. package/dist/esm/i18n/i18nData.js +41 -5
  11. package/dist/esm/i18n/i18nData.js.map +1 -0
  12. package/dist/esm/pipeline/advanced/chart/pipeline/area.js +3 -3
  13. package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
  14. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js +3 -3
  15. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
  16. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js +3 -3
  17. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
  18. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js +3 -3
  19. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
  20. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js +3 -3
  21. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
  22. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js +3 -3
  23. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js.map +1 -1
  24. package/dist/esm/pipeline/advanced/chart/pipeline/column.js +3 -3
  25. package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
  26. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js +3 -3
  27. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
  28. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js +3 -3
  29. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
  30. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +3 -3
  31. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
  32. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js +3 -3
  33. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
  34. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js +3 -3
  35. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
  36. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js +3 -3
  37. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
  38. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +3 -3
  39. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
  40. package/dist/esm/pipeline/advanced/chart/pipeline/line.js +3 -3
  41. package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
  42. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +3 -3
  43. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
  44. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js +3 -3
  45. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
  46. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js +3 -3
  47. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
  48. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js +3 -3
  49. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
  50. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +3 -3
  51. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
  52. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/index.d.ts +1 -1
  53. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/index.js +1 -1
  54. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.d.ts +2 -0
  55. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js +14 -0
  56. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js.map +1 -0
  57. package/dist/esm/pipeline/advanced/chart/pipes/measures/index.d.ts +1 -1
  58. package/dist/esm/pipeline/advanced/chart/pipes/measures/index.js +2 -2
  59. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.d.ts +2 -0
  60. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js +14 -0
  61. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js.map +1 -0
  62. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js +35 -29
  63. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
  64. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +3 -1
  65. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
  66. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js +3 -1
  67. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
  68. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +5 -3
  69. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
  70. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js +3 -1
  71. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
  72. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js +33 -28
  73. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js.map +1 -1
  74. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +3 -1
  75. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
  76. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js +3 -5
  77. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
  78. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js +3 -1
  79. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
  80. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js +3 -1
  81. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js.map +1 -1
  82. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js +3 -2
  83. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
  84. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js +3 -3
  85. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  86. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +11 -3
  87. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  88. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +11 -3
  89. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  90. package/dist/esm/pipeline/spec/chart/pipes/crosshair/histogramCrosshair.d.ts +2 -0
  91. package/dist/esm/pipeline/spec/chart/pipes/crosshair/histogramCrosshair.js +27 -0
  92. package/dist/esm/pipeline/spec/chart/pipes/crosshair/histogramCrosshair.js.map +1 -0
  93. package/dist/esm/pipeline/spec/chart/pipes/crosshair/index.d.ts +1 -0
  94. package/dist/esm/pipeline/spec/chart/pipes/crosshair/index.js +2 -1
  95. package/dist/esm/pipeline/spec/chart/pipes/init/boxplot.js +3 -3
  96. package/dist/esm/pipeline/spec/chart/pipes/init/boxplot.js.map +1 -1
  97. package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.d.ts +2 -0
  98. package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.js +15 -0
  99. package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.js.map +1 -0
  100. package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js +3 -4
  101. package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js.map +1 -1
  102. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +31 -1
  103. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
  104. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js +5 -1
  105. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js.map +1 -1
  106. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +1 -1
  107. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +5 -1
  108. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  109. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +14 -5
  110. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
  111. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js +6 -4
  112. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js.map +1 -1
  113. package/dist/esm/pipeline/spec/chart/utils/histogram.d.ts +2 -0
  114. package/dist/esm/pipeline/spec/chart/utils/histogram.js +12 -0
  115. package/dist/esm/pipeline/spec/chart/utils/histogram.js.map +1 -0
  116. package/dist/esm/pipeline/utils/measures/delete.d.ts +2 -2
  117. package/dist/esm/pipeline/utils/measures/delete.js +7 -3
  118. package/dist/esm/pipeline/utils/measures/delete.js.map +1 -1
  119. package/dist/esm/pipeline/utils/tree/traverse.d.ts +1 -0
  120. package/dist/esm/pipeline/utils/tree/traverse.js +12 -1
  121. package/dist/esm/pipeline/utils/tree/traverse.js.map +1 -1
  122. package/dist/esm/types/advancedVSeed.d.ts +116 -3
  123. package/dist/esm/types/advancedVSeed.js +2 -0
  124. package/dist/esm/types/advancedVSeed.js.map +1 -1
  125. package/dist/esm/types/chartType/area/zArea.d.ts +12 -3
  126. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +12 -3
  127. package/dist/esm/types/chartType/bar/zBar.d.ts +12 -3
  128. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +12 -3
  129. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +12 -3
  130. package/dist/esm/types/chartType/boxplot/zBoxplot.d.ts +12 -3
  131. package/dist/esm/types/chartType/column/zColumn.d.ts +12 -3
  132. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +12 -3
  133. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +12 -3
  134. package/dist/esm/types/chartType/donut/zDonut.d.ts +12 -3
  135. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +42 -15
  136. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +12 -3
  137. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +12 -3
  138. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +12 -3
  139. package/dist/esm/types/chartType/line/zLine.d.ts +12 -3
  140. package/dist/esm/types/chartType/pie/zPie.d.ts +12 -3
  141. package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +12 -3
  142. package/dist/esm/types/chartType/radar/zRadar.d.ts +12 -3
  143. package/dist/esm/types/chartType/rose/zRose.d.ts +12 -3
  144. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +12 -3
  145. package/dist/esm/types/chartType/scatter/zScatter.d.ts +42 -15
  146. package/dist/esm/types/chartType/table/zTable.d.ts +12 -3
  147. package/dist/esm/types/properties/measures/zDualMeasures.d.ts +60 -24
  148. package/dist/esm/types/properties/measures/zMeasures.d.ts +36 -9
  149. package/dist/esm/types/properties/measures/zMeasures.js +13 -4
  150. package/dist/esm/types/properties/measures/zMeasures.js.map +1 -1
  151. package/dist/esm/types/properties/measures/zScatterMeasures.d.ts +60 -24
  152. package/dist/esm/types/properties/regressionLine/linearRegressionLine.d.ts +5 -0
  153. package/dist/esm/types/properties/regressionLine/logisticRegressionLine.d.ts +5 -0
  154. package/dist/esm/types/properties/regressionLine/lowessRegressionLine.d.ts +5 -0
  155. package/dist/esm/types/properties/regressionLine/polynomialRegressionLine.d.ts +5 -0
  156. package/dist/esm/types/zVseed.d.ts +324 -90
  157. package/dist/umd/index.js +349 -197
  158. package/dist/umd/index.js.map +1 -1
  159. package/package.json +1 -1
  160. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.d.ts +0 -2
  161. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.js +0 -12
  162. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.js.map +0 -1
  163. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteEncodingForMeasure.d.ts +0 -2
  164. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteEncodingForMeasure.js +0 -12
  165. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteEncodingForMeasure.js.map +0 -1
package/dist/umd/index.js CHANGED
@@ -5,44 +5,7 @@
5
5
  else root["VSeed"] = factory();
6
6
  })(globalThis, ()=>(()=>{
7
7
  "use strict";
8
- var __webpack_modules__ = {};
9
- var __webpack_module_cache__ = {};
10
- function __webpack_require__(moduleId) {
11
- var cachedModule = __webpack_module_cache__[moduleId];
12
- if (void 0 !== cachedModule) return cachedModule.exports;
13
- var module1 = __webpack_module_cache__[moduleId] = {
14
- exports: {}
15
- };
16
- __webpack_modules__[moduleId](module1, module1.exports, __webpack_require__);
17
- return module1.exports;
18
- }
19
- (()=>{
20
- var getProto = Object.getPrototypeOf ? (obj)=>Object.getPrototypeOf(obj) : (obj)=>obj.__proto__;
21
- var leafPrototypes;
22
- __webpack_require__.t = function(value, mode) {
23
- if (1 & mode) value = this(value);
24
- if (8 & mode) return value;
25
- if ('object' == typeof value && value) {
26
- if (4 & mode && value.__esModule) return value;
27
- if (16 & mode && 'function' == typeof value.then) return value;
28
- }
29
- var ns = Object.create(null);
30
- __webpack_require__.r(ns);
31
- var def = {};
32
- leafPrototypes = leafPrototypes || [
33
- null,
34
- getProto({}),
35
- getProto([]),
36
- getProto(getProto)
37
- ];
38
- for(var current = 2 & mode && value; 'object' == typeof current && !~leafPrototypes.indexOf(current); current = getProto(current))Object.getOwnPropertyNames(current).forEach((key)=>{
39
- def[key] = ()=>value[key];
40
- });
41
- def['default'] = ()=>value;
42
- __webpack_require__.d(ns, def);
43
- return ns;
44
- };
45
- })();
8
+ var __webpack_require__ = {};
46
9
  (()=>{
47
10
  __webpack_require__.d = (exports1, definition)=>{
48
11
  for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
@@ -151,11 +114,9 @@
151
114
  zDualChartType: ()=>zDualChartType,
152
115
  darkTheme: ()=>darkTheme,
153
116
  isVTable: ()=>isVTable,
154
- MaxMeasureId: ()=>MaxMeasureId,
155
117
  ORIGINAL_DATA: ()=>ORIGINAL_DATA,
156
- MinMeasureId: ()=>MinMeasureId,
157
- columnParallelSpecPipeline: ()=>columnParallelSpecPipeline,
158
118
  zAnnotationHorizontalLineConfig: ()=>zAnnotationHorizontalLineConfig,
119
+ columnParallelSpecPipeline: ()=>columnParallelSpecPipeline,
159
120
  zAnnotationPoint: ()=>zAnnotationPoint,
160
121
  DATUM_HIDE_KEY: ()=>DATUM_HIDE_KEY,
161
122
  isMeasure: ()=>isMeasure,
@@ -171,20 +132,21 @@
171
132
  findMeasureById: ()=>findMeasureById,
172
133
  AngleEncoding: ()=>AngleEncoding,
173
134
  areaPercentAdvancedPipeline: ()=>areaPercentAdvancedPipeline,
174
- zBackgroundColor: ()=>zBackgroundColor,
135
+ findTreeNodesBy: ()=>findTreeNodesBy,
175
136
  zAreaPercentConfig: ()=>zAreaPercentConfig,
176
- zLowessRegressionLine: ()=>zLowessRegressionLine,
137
+ zBackgroundColor: ()=>zBackgroundColor,
177
138
  MeasureId: ()=>MeasureId,
178
139
  registerRadar: ()=>registerRadar,
179
140
  zLocale: ()=>zLocale,
180
141
  isDimension: ()=>isDimension,
142
+ zLowessRegressionLine: ()=>zLowessRegressionLine,
181
143
  zMeasure: ()=>zMeasure,
182
144
  registerScatter: ()=>registerScatter,
183
145
  boxplotSpecPipeline: ()=>boxplotSpecPipeline,
184
146
  autoNumFormatter: ()=>autoNumFormatter,
185
147
  tableSpecPipeline: ()=>tableSpecPipeline,
186
- isCombination: ()=>isCombination,
187
148
  zConfig: ()=>zConfig,
149
+ isCombination: ()=>isCombination,
188
150
  zBarStyle: ()=>zBarStyle,
189
151
  deleteDimensionTreeByCallback: ()=>deleteDimensionTreeByCallback,
190
152
  zRoseParallelConfig: ()=>zRoseParallelConfig,
@@ -198,6 +160,7 @@
198
160
  registerPie: ()=>registerPie,
199
161
  zEcdfRegressionLine: ()=>zEcdfRegressionLine,
200
162
  zBarParallelConfig: ()=>zBarParallelConfig,
163
+ LowerWhisker: ()=>LowerWhisker,
201
164
  lineAdvancedPipeline: ()=>lineAdvancedPipeline,
202
165
  AXIS_LABEL_SPACE: ()=>8,
203
166
  FoldMeasureValue: ()=>FoldMeasureValue,
@@ -235,6 +198,7 @@
235
198
  Separator: ()=>"-",
236
199
  findAllMeasures: ()=>findAllMeasures,
237
200
  zColorLegend: ()=>zColorLegend,
201
+ UpperWhisker: ()=>UpperWhisker,
238
202
  EncodingEnum: ()=>EncodingEnum,
239
203
  preorderTraverse: ()=>preorderTraverse,
240
204
  roseParallelSpecPipeline: ()=>roseParallelSpecPipeline,
@@ -300,7 +264,7 @@
300
264
  BinEndMeasureId: ()=>BinEndMeasureId,
301
265
  zAnnotationArea: ()=>zAnnotationArea,
302
266
  DetailEncoding: ()=>DetailEncoding,
303
- isPivot: ()=>isPivot,
267
+ isPivot: ()=>chatType_isPivot,
304
268
  zPointStyle: ()=>zPointStyle,
305
269
  zDimension: ()=>zDimension,
306
270
  lightTheme: ()=>lightTheme,
@@ -351,11 +315,47 @@
351
315
  function chunk_JK3VNB42_n(e) {
352
316
  return null == e;
353
317
  }
354
- var i18nData_namespaceObject = JSON.parse('{"指标名称":{"en-US":"MeasureName","zh-CN":"指标名称"},"指标Id":{"en-US":"MeasureId","zh-CN":"指标Id"},"指标值":{"en-US":"MeasureValue","zh-CN":"指标值"}}');
355
- var i18n_i18nData_namespaceObject = /*#__PURE__*/ __webpack_require__.t(i18nData_namespaceObject, 2);
318
+ const translateMap = {
319
+ 指标名称: {
320
+ 'en-US': 'MeasureName',
321
+ 'zh-CN': "\u6307\u6807\u540D\u79F0"
322
+ },
323
+ 指标Id: {
324
+ 'en-US': 'MeasureId',
325
+ 'zh-CN': "\u6307\u6807Id"
326
+ },
327
+ 指标值: {
328
+ 'en-US': 'MeasureValue',
329
+ 'zh-CN': "\u6307\u6807\u503C"
330
+ },
331
+ 异常点: {
332
+ 'en-US': 'Outlier',
333
+ 'zh-CN': "\u5F02\u5E38\u70B9"
334
+ },
335
+ 上边界: {
336
+ 'en-US': 'Upper Whisker',
337
+ 'zh-CN': "\u4E0A\u8FB9\u754C"
338
+ },
339
+ 上四分位数: {
340
+ 'en-US': 'Q3',
341
+ 'zh-CN': "75\u5206\u4F4D\u6570"
342
+ },
343
+ 中位数: {
344
+ 'en-US': 'Q2',
345
+ 'zh-CN': "\u4E2D\u4F4D\u6570"
346
+ },
347
+ 下四分位数: {
348
+ 'en-US': 'Q1',
349
+ 'zh-CN': "25\u5206\u4F4D\u6570"
350
+ },
351
+ 下边界: {
352
+ 'en-US': 'Lower Whisker',
353
+ 'zh-CN': "\u4E0B\u8FB9\u754C"
354
+ }
355
+ };
356
356
  class i18n_Intl {
357
357
  static instance;
358
- translateMap = i18n_i18nData_namespaceObject;
358
+ translateMap = translateMap;
359
359
  locale = 'zh-CN';
360
360
  canTranslate = (value)=>!!this.translateMap[value];
361
361
  i18n = (segments, ...values)=>{
@@ -525,6 +525,17 @@
525
525
  }
526
526
  }
527
527
  };
528
+ const findTreeNodesBy = (nodes = [], callback, childrenKey = 'children')=>{
529
+ if (!nodes) return [];
530
+ const result = [];
531
+ preorderTraverse(nodes, (node)=>{
532
+ if (!(childrenKey in node)) {
533
+ if (callback(node)) result.push(node);
534
+ }
535
+ return false;
536
+ });
537
+ return result;
538
+ };
528
539
  const measureDepth = (measures = [])=>{
529
540
  if (!measures) return 0;
530
541
  let depth = 1;
@@ -613,10 +624,10 @@
613
624
  const isVChart = (vseed)=>!isVTable(vseed);
614
625
  const isPivotChart = (vseed)=>{
615
626
  if (isVTable(vseed)) return false;
616
- if (isPivot(vseed)) return true;
627
+ if (chatType_isPivot(vseed)) return true;
617
628
  return isCombination(vseed);
618
629
  };
619
- const isPivot = (vseed)=>{
630
+ const chatType_isPivot = (vseed)=>{
620
631
  const { dimensions = [] } = vseed;
621
632
  return dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
622
633
  };
@@ -1571,8 +1582,8 @@
1571
1582
  const DetailEncoding = '__Dim_Detail__';
1572
1583
  const ColorEncoding = '__Dim_Color__';
1573
1584
  const ColorIdEncoding = '__Dim_ColorId__';
1574
- const MinMeasureId = '__Min__';
1575
- const MaxMeasureId = '__Max__';
1585
+ const LowerWhisker = '__Lower_Whisker__';
1586
+ const UpperWhisker = '__Upper_Whisker__';
1576
1587
  const OutliersMeasureId = '__Outliers__';
1577
1588
  const MedianMeasureId = '__Meadian__';
1578
1589
  const BinStartMeasureId = '__BinStart__';
@@ -2271,7 +2282,7 @@
2271
2282
  ];
2272
2283
  };
2273
2284
  const deleteMeasureTreeByCallback = (measureTree, callback)=>{
2274
- if (!measureTree) return measureTree;
2285
+ if (!measureTree) return;
2275
2286
  const stack = [
2276
2287
  ...measureTree
2277
2288
  ].reverse();
@@ -2295,23 +2306,28 @@
2295
2306
  nodesToProcess.push(node);
2296
2307
  }
2297
2308
  }
2309
+ const deleted = [];
2298
2310
  for (const node of nodesToProcess){
2299
2311
  const parentList = parents.get(node);
2300
2312
  if (parentList) {
2301
2313
  const index = parentList.indexOf(node);
2302
2314
  if (isMeasure(node)) {
2303
- if (callback?.(node, index, parentList)) parentList.splice(index, 1);
2315
+ if (callback?.(node, index, parentList)) {
2316
+ parentList.splice(index, 1);
2317
+ deleted.push(node);
2318
+ }
2304
2319
  }
2305
2320
  }
2306
2321
  }
2307
- return measureTree;
2322
+ return deleted;
2308
2323
  };
2309
- const deleteEncodingForMeasure = (encodingKeys)=>(advancedVSeed)=>{
2324
+ const pickMeasuresForReshape = (encodingKeys)=>(advancedVSeed)=>{
2325
+ const clonedMeasures = chunk_BCBB46UE_d(advancedVSeed.measures);
2310
2326
  const deleteBy = (measure)=>encodingKeys.includes(measure.encoding);
2311
- const measureTree = deleteMeasureTreeByCallback(advancedVSeed.measures, deleteBy);
2327
+ deleteMeasureTreeByCallback(clonedMeasures, deleteBy);
2312
2328
  return {
2313
2329
  ...advancedVSeed,
2314
- measures: measureTree
2330
+ reshapeMeasures: clonedMeasures
2315
2331
  };
2316
2332
  };
2317
2333
  const deleteDimensionTreeByCallback = (dimensionTree, callback)=>{
@@ -2350,12 +2366,13 @@
2350
2366
  }
2351
2367
  return dimensionTree;
2352
2368
  };
2353
- const deleteTooltipAndLabelDimension = (advancedVSeed)=>{
2369
+ const pickDimensionsForReshape = (advancedVSeed)=>{
2354
2370
  const deleteBy = (dimension)=>'tooltip' === dimension.encoding || 'label' === dimension.encoding;
2355
- const dimensionTree = deleteDimensionTreeByCallback(advancedVSeed.dimensions, deleteBy);
2371
+ const reshapeDimensions = chunk_BCBB46UE_d(advancedVSeed.dimensions);
2372
+ deleteDimensionTreeByCallback(reshapeDimensions, deleteBy);
2356
2373
  return {
2357
2374
  ...advancedVSeed,
2358
- dimensions: dimensionTree
2375
+ reshapeDimensions
2359
2376
  };
2360
2377
  };
2361
2378
  const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
@@ -2478,9 +2495,9 @@
2478
2495
  };
2479
2496
  const { vseed } = context;
2480
2497
  const { dataset, chartType } = vseed;
2481
- const { dimensions = [], measures = [], encoding } = advancedVSeed;
2498
+ const { encoding } = advancedVSeed;
2482
2499
  const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
2483
- const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(findAllMeasures(measures), (item)=>item.id), encoding, {
2500
+ const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [], (item)=>item.id), T(advancedVSeed.reshapeMeasures ?? findAllMeasures(advancedVSeed.measures), (item)=>item.id), encoding, {
2484
2501
  colorItemAsId: false,
2485
2502
  colorMeasureId
2486
2503
  });
@@ -2494,9 +2511,7 @@
2494
2511
  foldInfo,
2495
2512
  unfoldInfo
2496
2513
  }
2497
- ],
2498
- dimensions,
2499
- measures
2514
+ ]
2500
2515
  };
2501
2516
  };
2502
2517
  const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
@@ -2505,7 +2520,9 @@
2505
2520
  };
2506
2521
  const { vseed } = context;
2507
2522
  const { dataset } = vseed;
2508
- const { dimensions = [], measures = [], encoding } = advancedVSeed;
2523
+ const { encoding } = advancedVSeed;
2524
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
2525
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
2509
2526
  const allMeasures = findAllMeasures(measures);
2510
2527
  const measureGroups = [];
2511
2528
  if (measures) measures.forEach((measure)=>{
@@ -2667,12 +2684,12 @@
2667
2684
  ], [
2668
2685
  encodingForLine,
2669
2686
  buildMeasures,
2670
- deleteEncodingForMeasure([
2687
+ pickMeasuresForReshape([
2671
2688
  'tooltip',
2672
2689
  'label',
2673
2690
  'color'
2674
2691
  ]),
2675
- deleteTooltipAndLabelDimension
2692
+ pickDimensionsForReshape
2676
2693
  ]),
2677
2694
  pivotAdapter([
2678
2695
  reshapeWithEncoding
@@ -2966,12 +2983,22 @@
2966
2983
  const { measures, dimensions, encoding } = advancedVSeed;
2967
2984
  const config = advancedVSeed.config?.[chartType]?.yAxis;
2968
2985
  if (!result.axes) result.axes = [];
2986
+ const isPivot = isPivotChart(vseed);
2969
2987
  const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat, numFormat = {} } = config;
2970
2988
  const formatter = createNumFormatter(numFormat);
2971
2989
  const percentFormatter = createNumFormatter({
2972
2990
  type: 'percent'
2973
2991
  });
2974
2992
  const linearAxis = {
2993
+ ...isPivot ? {
2994
+ range: {
2995
+ min,
2996
+ max
2997
+ }
2998
+ } : {
2999
+ min,
3000
+ max
3001
+ },
2975
3002
  visible,
2976
3003
  type: log ? 'log' : 'linear',
2977
3004
  base: logBase,
@@ -2979,8 +3006,6 @@
2979
3006
  nice,
2980
3007
  zero: log ? false : zero,
2981
3008
  inverse,
2982
- max,
2983
- min,
2984
3009
  label: {
2985
3010
  space: 8,
2986
3011
  visible: label?.visible,
@@ -3218,7 +3243,7 @@
3218
3243
  ...spec
3219
3244
  };
3220
3245
  const { advancedVSeed } = context;
3221
- const { datasetReshapeInfo, chartType } = advancedVSeed;
3246
+ const { datasetReshapeInfo, chartType, measures = [] } = advancedVSeed;
3222
3247
  const { unfoldInfo } = datasetReshapeInfo[0];
3223
3248
  const baseConfig = advancedVSeed.config[chartType];
3224
3249
  if (!baseConfig || !baseConfig.legend) return result;
@@ -3279,8 +3304,7 @@
3279
3304
  }
3280
3305
  }
3281
3306
  };
3282
- const measures = findAllMeasures(advancedVSeed.measures);
3283
- const colorMeasure = measures.find((m)=>'color' === m.encoding);
3307
+ const colorMeasure = findTreeNodesBy(measures, (m)=>'color' === m.encoding)?.[0];
3284
3308
  if (colorMeasure) {
3285
3309
  const formatter = createFormatterByMeasure(colorMeasure);
3286
3310
  result.legends.handlerText.formatter = formatter;
@@ -3642,7 +3666,11 @@
3642
3666
  const datum = v;
3643
3667
  const key = datum && datum[encodingColor] || '';
3644
3668
  return unfoldInfo.colorIdMap[key].alias ?? key;
3645
- } : Object.values(foldMap)[0],
3669
+ } : (v)=>{
3670
+ const datum = v;
3671
+ const key = datum && datum[measureId] || '';
3672
+ return foldMap[key] ?? key;
3673
+ },
3646
3674
  value: (v)=>{
3647
3675
  const datum = v;
3648
3676
  if (!datum) return '';
@@ -4783,7 +4811,7 @@
4783
4811
  const { vseed, advancedVSeed } = context;
4784
4812
  const { config, chartType } = advancedVSeed;
4785
4813
  const themConfig = config?.[chartType]?.pivotGrid ?? {};
4786
- const onlyCombination = !isPivot(vseed) && isCombination(vseed);
4814
+ const onlyCombination = !chatType_isPivot(vseed) && isCombination(vseed);
4787
4815
  const result = {
4788
4816
  ...spec
4789
4817
  };
@@ -5568,12 +5596,12 @@
5568
5596
  ], [
5569
5597
  encodingForColumn,
5570
5598
  buildMeasures,
5571
- deleteEncodingForMeasure([
5599
+ pickMeasuresForReshape([
5572
5600
  'tooltip',
5573
5601
  'label',
5574
5602
  'color'
5575
5603
  ]),
5576
- deleteTooltipAndLabelDimension
5604
+ pickDimensionsForReshape
5577
5605
  ]),
5578
5606
  pivotAdapter([
5579
5607
  reshapeWithEncoding
@@ -6439,12 +6467,12 @@
6439
6467
  ], [
6440
6468
  encodingForColumn,
6441
6469
  buildMeasures,
6442
- deleteEncodingForMeasure([
6470
+ pickMeasuresForReshape([
6443
6471
  'tooltip',
6444
6472
  'label',
6445
6473
  'color'
6446
6474
  ]),
6447
- deleteTooltipAndLabelDimension
6475
+ pickDimensionsForReshape
6448
6476
  ]),
6449
6477
  pivotAdapter([
6450
6478
  reshapeWithEncoding
@@ -6604,12 +6632,12 @@
6604
6632
  ], [
6605
6633
  encodingForColumn,
6606
6634
  buildMeasures,
6607
- deleteEncodingForMeasure([
6635
+ pickMeasuresForReshape([
6608
6636
  'tooltip',
6609
6637
  'label',
6610
6638
  'color'
6611
6639
  ]),
6612
- deleteTooltipAndLabelDimension
6640
+ pickDimensionsForReshape
6613
6641
  ]),
6614
6642
  pivotAdapter([
6615
6643
  reshapeWithEncoding
@@ -6786,12 +6814,12 @@
6786
6814
  ], [
6787
6815
  encodingForBar,
6788
6816
  buildMeasures,
6789
- deleteEncodingForMeasure([
6817
+ pickMeasuresForReshape([
6790
6818
  'tooltip',
6791
6819
  'label',
6792
6820
  'color'
6793
6821
  ]),
6794
- deleteTooltipAndLabelDimension
6822
+ pickDimensionsForReshape
6795
6823
  ]),
6796
6824
  pivotAdapter([
6797
6825
  reshapeWithEncoding
@@ -6879,12 +6907,22 @@
6879
6907
  const { chartType } = vseed;
6880
6908
  const config = advancedVSeed.config?.[chartType]?.xAxis;
6881
6909
  if (!result.axes) result.axes = [];
6910
+ const isPivot = isPivotChart(vseed);
6882
6911
  const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat, numFormat = {} } = config;
6883
6912
  const formatter = createNumFormatter(numFormat);
6884
6913
  const percentFormatter = createNumFormatter({
6885
6914
  type: 'percent'
6886
6915
  });
6887
6916
  const linearAxis = {
6917
+ ...isPivot ? {
6918
+ range: {
6919
+ min,
6920
+ max
6921
+ }
6922
+ } : {
6923
+ min,
6924
+ max
6925
+ },
6888
6926
  visible,
6889
6927
  type: log ? 'log' : 'linear',
6890
6928
  base: logBase,
@@ -6892,8 +6930,6 @@
6892
6930
  nice,
6893
6931
  zero: log ? false : zero,
6894
6932
  inverse,
6895
- max,
6896
- min,
6897
6933
  label: {
6898
6934
  space: 8,
6899
6935
  visible: label?.visible,
@@ -7143,12 +7179,12 @@
7143
7179
  ], [
7144
7180
  encodingForBar,
7145
7181
  buildMeasures,
7146
- deleteEncodingForMeasure([
7182
+ pickMeasuresForReshape([
7147
7183
  'tooltip',
7148
7184
  'label',
7149
7185
  'color'
7150
7186
  ]),
7151
- deleteTooltipAndLabelDimension
7187
+ pickDimensionsForReshape
7152
7188
  ]),
7153
7189
  pivotAdapter([
7154
7190
  reshapeWithEncoding
@@ -7257,12 +7293,12 @@
7257
7293
  ], [
7258
7294
  encodingForBar,
7259
7295
  buildMeasures,
7260
- deleteEncodingForMeasure([
7296
+ pickMeasuresForReshape([
7261
7297
  'tooltip',
7262
7298
  'label',
7263
7299
  'color'
7264
7300
  ]),
7265
- deleteTooltipAndLabelDimension
7301
+ pickDimensionsForReshape
7266
7302
  ]),
7267
7303
  pivotAdapter([
7268
7304
  reshapeWithEncoding
@@ -7344,12 +7380,12 @@
7344
7380
  ], [
7345
7381
  encodingForLine,
7346
7382
  buildMeasures,
7347
- deleteEncodingForMeasure([
7383
+ pickMeasuresForReshape([
7348
7384
  'tooltip',
7349
7385
  'label',
7350
7386
  'color'
7351
7387
  ]),
7352
- deleteTooltipAndLabelDimension
7388
+ pickDimensionsForReshape
7353
7389
  ]),
7354
7390
  pivotAdapter([
7355
7391
  reshapeWithEncoding
@@ -7541,12 +7577,12 @@
7541
7577
  ], [
7542
7578
  encodingForLine,
7543
7579
  buildMeasures,
7544
- deleteEncodingForMeasure([
7580
+ pickMeasuresForReshape([
7545
7581
  'tooltip',
7546
7582
  'label',
7547
7583
  'color'
7548
7584
  ]),
7549
- deleteTooltipAndLabelDimension
7585
+ pickDimensionsForReshape
7550
7586
  ]),
7551
7587
  pivotAdapter([
7552
7588
  reshapeWithEncoding
@@ -7820,7 +7856,9 @@
7820
7856
  };
7821
7857
  const { vseed } = context;
7822
7858
  const { dataset } = vseed;
7823
- const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
7859
+ const { encoding, chartType } = advancedVSeed;
7860
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
7861
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
7824
7862
  if (measures.length > 2) throw new Error('measures can not be more than 2 groups in scatter');
7825
7863
  const foldInfoList = [];
7826
7864
  const unfoldInfoList = [];
@@ -7877,7 +7915,9 @@
7877
7915
  };
7878
7916
  const { vseed } = context;
7879
7917
  const { dataset } = vseed;
7880
- const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
7918
+ const { encoding, chartType } = advancedVSeed;
7919
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
7920
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
7881
7921
  const allMeasures = findAllMeasures(measures);
7882
7922
  const measureGroups = [];
7883
7923
  const depth = measureDepth(measures);
@@ -7954,12 +7994,12 @@
7954
7994
  ], [
7955
7995
  encodingForScatter,
7956
7996
  buildMeasuresForScatter,
7957
- deleteEncodingForMeasure([
7997
+ pickMeasuresForReshape([
7958
7998
  'tooltip',
7959
7999
  'label',
7960
8000
  'size'
7961
8001
  ]),
7962
- deleteTooltipAndLabelDimension
8002
+ pickDimensionsForReshape
7963
8003
  ]),
7964
8004
  pivotAdapter([
7965
8005
  reshapeWithScatterEncoding
@@ -8397,7 +8437,7 @@
8397
8437
  }
8398
8438
  };
8399
8439
  }
8400
- const generateRegressionLinePipe = (type, regressionFunction, getOptions)=>(spec, context)=>{
8440
+ const generateRegressionLinePipe = (type, regressionFunction, getOptions = getDefaultRegressionOptions)=>(spec, context)=>{
8401
8441
  const result = {
8402
8442
  ...spec
8403
8443
  };
@@ -8545,9 +8585,13 @@
8545
8585
  });
8546
8586
  return result;
8547
8587
  };
8588
+ const getDefaultRegressionOptions = (lineConfig)=>({
8589
+ alpha: lineConfig?.confidenceLevel ?? 0.95
8590
+ });
8548
8591
  const linearRegressionLine = generateRegressionLinePipe('linearRegressionLine', regressionLinear);
8549
8592
  const lowessRegressionLine = generateRegressionLinePipe('lowessRegressionLine', regressionLowess);
8550
8593
  const polynomialRegressionLine = generateRegressionLinePipe('polynomialRegressionLine', regressionPolynomial, (lineConfig)=>({
8594
+ ...getDefaultRegressionOptions(lineConfig),
8551
8595
  degree: lineConfig.degree ?? 2
8552
8596
  }));
8553
8597
  const logisticRegressionLine = generateRegressionLinePipe('logisticRegressionLine', regressionLogistic);
@@ -8786,7 +8830,9 @@
8786
8830
  };
8787
8831
  const { vseed } = context;
8788
8832
  const { dataset } = vseed;
8789
- const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
8833
+ const { encoding, chartType } = advancedVSeed;
8834
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
8835
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
8790
8836
  if (measures.length > 2) throw new Error('measures can not be more than 2 groups in dualAxis');
8791
8837
  const foldInfoList = [];
8792
8838
  const unfoldInfoList = [];
@@ -8841,7 +8887,9 @@
8841
8887
  };
8842
8888
  const { vseed } = context;
8843
8889
  const { dataset } = vseed;
8844
- const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
8890
+ const { encoding, chartType } = advancedVSeed;
8891
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
8892
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
8845
8893
  const allMeasures = findAllMeasures(measures);
8846
8894
  const datasetList = [];
8847
8895
  const datasetReshapeInfo = [];
@@ -8947,12 +8995,12 @@
8947
8995
  ], [
8948
8996
  encodingForDualAxis,
8949
8997
  buildMeasuresForDualAxis,
8950
- deleteEncodingForMeasure([
8998
+ pickMeasuresForReshape([
8951
8999
  'tooltip',
8952
9000
  'label',
8953
9001
  'color'
8954
9002
  ]),
8955
- deleteTooltipAndLabelDimension
9003
+ pickDimensionsForReshape
8956
9004
  ]),
8957
9005
  pivotAdapter([
8958
9006
  reshapeWithDualEncoding
@@ -9722,12 +9770,12 @@
9722
9770
  ], [
9723
9771
  encodingForPie,
9724
9772
  buildMeasures,
9725
- deleteEncodingForMeasure([
9773
+ pickMeasuresForReshape([
9726
9774
  'tooltip',
9727
9775
  'label',
9728
9776
  'color'
9729
9777
  ]),
9730
- deleteTooltipAndLabelDimension
9778
+ pickDimensionsForReshape
9731
9779
  ]),
9732
9780
  pivotAdapter([
9733
9781
  reshapeWithEncoding
@@ -9883,12 +9931,12 @@
9883
9931
  ], [
9884
9932
  encodingForPie,
9885
9933
  buildMeasures,
9886
- deleteEncodingForMeasure([
9934
+ pickMeasuresForReshape([
9887
9935
  'tooltip',
9888
9936
  'label',
9889
9937
  'color'
9890
9938
  ]),
9891
- deleteTooltipAndLabelDimension
9939
+ pickDimensionsForReshape
9892
9940
  ]),
9893
9941
  pivotAdapter([
9894
9942
  reshapeWithEncoding
@@ -10048,12 +10096,12 @@
10048
10096
  ], [
10049
10097
  encodingForRose,
10050
10098
  buildMeasures,
10051
- deleteEncodingForMeasure([
10099
+ pickMeasuresForReshape([
10052
10100
  'tooltip',
10053
10101
  'label',
10054
10102
  'color'
10055
10103
  ]),
10056
- deleteTooltipAndLabelDimension
10104
+ pickDimensionsForReshape
10057
10105
  ]),
10058
10106
  pivotAdapter([
10059
10107
  reshapeWithEncoding
@@ -10201,12 +10249,12 @@
10201
10249
  ], [
10202
10250
  encodingForRose,
10203
10251
  buildMeasures,
10204
- deleteEncodingForMeasure([
10252
+ pickMeasuresForReshape([
10205
10253
  'tooltip',
10206
10254
  'label',
10207
10255
  'color'
10208
10256
  ]),
10209
- deleteTooltipAndLabelDimension
10257
+ pickDimensionsForReshape
10210
10258
  ]),
10211
10259
  pivotAdapter([
10212
10260
  reshapeWithEncoding
@@ -10396,12 +10444,12 @@
10396
10444
  ], [
10397
10445
  encodingForRadar,
10398
10446
  buildMeasures,
10399
- deleteEncodingForMeasure([
10447
+ pickMeasuresForReshape([
10400
10448
  'tooltip',
10401
10449
  'label',
10402
10450
  'color'
10403
10451
  ]),
10404
- deleteTooltipAndLabelDimension
10452
+ pickDimensionsForReshape
10405
10453
  ]),
10406
10454
  pivotAdapter([
10407
10455
  reshapeWithEncoding
@@ -10611,12 +10659,12 @@
10611
10659
  ], [
10612
10660
  encodingForFunnel,
10613
10661
  buildMeasures,
10614
- deleteEncodingForMeasure([
10662
+ pickMeasuresForReshape([
10615
10663
  'tooltip',
10616
10664
  'label',
10617
10665
  'color'
10618
10666
  ]),
10619
- deleteTooltipAndLabelDimension
10667
+ pickDimensionsForReshape
10620
10668
  ]),
10621
10669
  pivotAdapter([
10622
10670
  reshapeWithEncoding
@@ -10838,11 +10886,11 @@
10838
10886
  ], [
10839
10887
  encodingForHeatmap,
10840
10888
  buildMeasures,
10841
- deleteEncodingForMeasure([
10889
+ pickMeasuresForReshape([
10842
10890
  'tooltip',
10843
10891
  'label'
10844
10892
  ]),
10845
- deleteTooltipAndLabelDimension
10893
+ pickDimensionsForReshape
10846
10894
  ]),
10847
10895
  pivotAdapter([
10848
10896
  reshapeWithEncoding
@@ -11244,36 +11292,42 @@
11244
11292
  };
11245
11293
  const { vseed } = context;
11246
11294
  const { dataset, chartType } = vseed;
11247
- const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed;
11295
+ const { encoding = {}, config } = advancedVSeed;
11296
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
11297
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
11248
11298
  const uniqDims = T(dimensions, (item)=>item.id);
11249
11299
  const whiskers = config?.[chartType]?.whiskers;
11250
11300
  let newDatasets = [];
11251
11301
  let foldInfo = {};
11252
11302
  let unfoldInfo = {};
11253
11303
  const allMeasures = findAllMeasures(measures);
11254
- if (encoding.value?.length) encoding.value.forEach((f)=>{
11255
- const m = allMeasures.find((m)=>m.id === f);
11256
- const boxPlotData = boxplot_boxplot(dataset, {
11257
- field: f,
11258
- groupField: [
11259
- ...encoding.x ?? [],
11260
- ...encoding.color ?? []
11261
- ],
11262
- whiskers,
11263
- outputNames: {
11264
- q1: "__Q1__",
11265
- q3: "__Q3__",
11266
- min: MinMeasureId,
11267
- max: MaxMeasureId,
11268
- median: MedianMeasureId,
11269
- outliers: OutliersMeasureId
11270
- }
11271
- });
11272
- boxPlotData.forEach((datum)=>{
11273
- datum[FoldMeasureId] = f;
11274
- datum[FoldMeasureName] = m?.alias ?? f;
11304
+ if (encoding.value?.length) {
11305
+ const boxPlotDataList = [];
11306
+ encoding.value.forEach((f)=>{
11307
+ const m = allMeasures.find((m)=>m.id === f);
11308
+ const boxPlotData = boxplot_boxplot(dataset, {
11309
+ field: f,
11310
+ groupField: [
11311
+ ...encoding.x ?? [],
11312
+ ...encoding.color ?? []
11313
+ ],
11314
+ whiskers,
11315
+ outputNames: {
11316
+ q1: "__Q1__",
11317
+ q3: "__Q3__",
11318
+ lowerWhisker: LowerWhisker,
11319
+ upperWhisker: UpperWhisker,
11320
+ median: MedianMeasureId,
11321
+ outliers: OutliersMeasureId
11322
+ }
11323
+ });
11324
+ boxPlotData.forEach((datum)=>{
11325
+ datum[FoldMeasureId] = f;
11326
+ datum[FoldMeasureName] = m?.alias ?? f;
11327
+ });
11328
+ boxPlotDataList.push(...boxPlotData);
11275
11329
  });
11276
- const res = unfoldDimensions(boxPlotData, uniqDims, encoding, {
11330
+ const res = unfoldDimensions(boxPlotDataList, uniqDims, encoding, {
11277
11331
  foldMeasureId: FoldMeasureId,
11278
11332
  separator: "-",
11279
11333
  colorItemAsId: false
@@ -11282,16 +11336,15 @@
11282
11336
  newDatasets.push(d);
11283
11337
  });
11284
11338
  unfoldInfo = res.unfoldInfo;
11285
- });
11286
- else if (encoding.q1?.length && encoding.q3?.length && encoding.min?.length && encoding.max?.length && encoding.median?.length) {
11339
+ } else if (encoding.q1?.length && encoding.q3?.length && encoding.min?.length && encoding.max?.length && encoding.median?.length) {
11287
11340
  const res = unfoldDimensions(dataset, uniqDims, encoding, {
11288
11341
  foldMeasureId: FoldMeasureId,
11289
11342
  separator: "-",
11290
11343
  colorItemAsId: false
11291
11344
  });
11292
11345
  res.dataset.forEach((datum)=>{
11293
- datum[MaxMeasureId] = datum[encoding.max[0]];
11294
- datum[MinMeasureId] = datum[encoding.min[0]];
11346
+ datum[UpperWhisker] = datum[encoding.max[0]];
11347
+ datum[LowerWhisker] = datum[encoding.min[0]];
11295
11348
  datum["__Q1__"] = datum[encoding.q1[0]];
11296
11349
  datum["__Q3__"] = datum[encoding.q3[0]];
11297
11350
  datum[MedianMeasureId] = datum[encoding.median[0]];
@@ -11321,7 +11374,9 @@
11321
11374
  };
11322
11375
  const { vseed } = context;
11323
11376
  const { dataset, chartType } = vseed;
11324
- const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed;
11377
+ const { encoding = {}, config } = advancedVSeed;
11378
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
11379
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
11325
11380
  const uniqDims = T(dimensions, (item)=>item.id);
11326
11381
  const chartConfig = config?.[chartType];
11327
11382
  const whiskers = chartConfig?.whiskers;
@@ -11339,30 +11394,35 @@
11339
11394
  let newDatasets = [];
11340
11395
  let foldInfo = {};
11341
11396
  let unfoldInfo = {};
11342
- if (encoding.value?.length) encoding.value.forEach((f)=>{
11343
- const m = subMeasures.find((m)=>m.id === f);
11344
- const boxPlotData = boxplot_boxplot(dataset, {
11345
- field: f,
11346
- groupField: [
11347
- ...encoding.x ?? [],
11348
- ...encoding.color ?? [],
11349
- ...rowColumnFields.map((item)=>item.id)
11350
- ],
11351
- whiskers,
11352
- outputNames: {
11353
- q1: "__Q1__",
11354
- q3: "__Q3__",
11355
- min: MinMeasureId,
11356
- max: MaxMeasureId,
11357
- median: MedianMeasureId,
11358
- outliers: OutliersMeasureId
11359
- }
11360
- });
11361
- boxPlotData.forEach((datum)=>{
11362
- datum[FoldMeasureId] = f;
11363
- datum[FoldMeasureName] = m?.alias ?? f;
11397
+ const validEncodingIds = (encoding.value || []).filter((id)=>subMeasures.find((field)=>field.id === id));
11398
+ if (validEncodingIds.length) {
11399
+ const boxPlotDataList = [];
11400
+ validEncodingIds.forEach((f)=>{
11401
+ const m = subMeasures.find((m)=>m.id === f);
11402
+ const boxPlotData = boxplot_boxplot(dataset, {
11403
+ field: f,
11404
+ groupField: [
11405
+ ...encoding.x ?? [],
11406
+ ...encoding.color ?? [],
11407
+ ...rowColumnFields.map((item)=>item.id)
11408
+ ],
11409
+ whiskers,
11410
+ outputNames: {
11411
+ q1: "__Q1__",
11412
+ q3: "__Q3__",
11413
+ lowerWhisker: LowerWhisker,
11414
+ upperWhisker: UpperWhisker,
11415
+ median: MedianMeasureId,
11416
+ outliers: OutliersMeasureId
11417
+ }
11418
+ });
11419
+ boxPlotData.forEach((datum)=>{
11420
+ datum[FoldMeasureId] = f;
11421
+ datum[FoldMeasureName] = m?.alias ?? f;
11422
+ });
11423
+ boxPlotDataList.push(...boxPlotData);
11364
11424
  });
11365
- const res = unfoldDimensions(boxPlotData, uniqDims, encoding, {
11425
+ const res = unfoldDimensions(boxPlotDataList, uniqDims, encoding, {
11366
11426
  foldMeasureId: FoldMeasureId,
11367
11427
  separator: "-",
11368
11428
  colorItemAsId: false
@@ -11371,16 +11431,15 @@
11371
11431
  newDatasets.push(d);
11372
11432
  });
11373
11433
  unfoldInfo = res.unfoldInfo;
11374
- });
11375
- else if (encoding.q1?.length && encoding.q3?.length && encoding.min?.length && encoding.max?.length && encoding.median?.length) {
11434
+ } else if (encoding.q1?.length && encoding.q3?.length && encoding.min?.length && encoding.max?.length && encoding.median?.length) {
11376
11435
  const res = unfoldDimensions(dataset, uniqDims, encoding, {
11377
11436
  foldMeasureId: FoldMeasureId,
11378
11437
  separator: "-",
11379
11438
  colorItemAsId: false
11380
11439
  });
11381
11440
  res.dataset.forEach((datum)=>{
11382
- datum[MaxMeasureId] = datum[encoding.max[0]];
11383
- datum[MinMeasureId] = datum[encoding.min[0]];
11441
+ datum[UpperWhisker] = datum[encoding.max[0]];
11442
+ datum[LowerWhisker] = datum[encoding.min[0]];
11384
11443
  datum["__Q1__"] = datum[encoding.q1[0]];
11385
11444
  datum["__Q3__"] = datum[encoding.q3[0]];
11386
11445
  datum[MedianMeasureId] = datum[encoding.median[0]];
@@ -11416,12 +11475,12 @@
11416
11475
  ], [
11417
11476
  encodingForBoxplot,
11418
11477
  buildMeasures,
11419
- deleteEncodingForMeasure([
11478
+ pickMeasuresForReshape([
11420
11479
  'tooltip',
11421
11480
  'label',
11422
11481
  'color'
11423
11482
  ]),
11424
- deleteTooltipAndLabelDimension
11483
+ pickDimensionsForReshape
11425
11484
  ]),
11426
11485
  pivotAdapter([
11427
11486
  reshapeWithBoxplotEncoding
@@ -11441,10 +11500,10 @@
11441
11500
  const { datasetReshapeInfo, encoding } = advancedVSeed;
11442
11501
  const { unfoldInfo } = datasetReshapeInfo[0];
11443
11502
  result.type = 'boxPlot';
11444
- result.minField = MinMeasureId;
11503
+ result.minField = LowerWhisker;
11504
+ result.maxField = UpperWhisker;
11445
11505
  result.q1Field = "__Q1__";
11446
11506
  result.medianField = MedianMeasureId;
11447
- result.maxField = MaxMeasureId;
11448
11507
  result.q3Field = "__Q3__";
11449
11508
  result.outliersField = OutliersMeasureId;
11450
11509
  result.xField = [
@@ -11480,12 +11539,20 @@
11480
11539
  };
11481
11540
  };
11482
11541
  const boxPlotMeasureKeys = [
11483
- MaxMeasureId,
11542
+ UpperWhisker,
11484
11543
  "__Q3__",
11485
11544
  MedianMeasureId,
11486
11545
  "__Q1__",
11487
- MinMeasureId
11546
+ LowerWhisker
11488
11547
  ];
11548
+ const measureAliasMapping = {
11549
+ [OutliersMeasureId]: intl.i18n`异常点`,
11550
+ [UpperWhisker]: intl.i18n`上边界`,
11551
+ ["__Q3__"]: intl.i18n`上四分位数`,
11552
+ [MedianMeasureId]: intl.i18n`中位数`,
11553
+ ["__Q1__"]: intl.i18n`下四分位数`,
11554
+ [LowerWhisker]: intl.i18n`下边界`
11555
+ };
11489
11556
  const VCHART_OUTLIER_KEY = '__VCHART_BOX_PLOT_OUTLIER_VALUE';
11490
11557
  const tooltipBoxplot = (spec, context)=>{
11491
11558
  const result = {
@@ -11517,7 +11584,7 @@
11517
11584
  const formatter = outerlierMeasure ? createFormatterByMeasure(outerlierMeasure) : defaultFormatter;
11518
11585
  tooltipItems.push({
11519
11586
  ...tooltipItems[0],
11520
- key: outerlierMeasure?.alias ?? OutliersMeasureId,
11587
+ key: outerlierMeasure?.alias ?? measureAliasMapping[OutliersMeasureId],
11521
11588
  value: formatter(datum?.[VCHART_OUTLIER_KEY])
11522
11589
  });
11523
11590
  return tooltipItems;
@@ -11529,7 +11596,7 @@
11529
11596
  return {
11530
11597
  ...entry,
11531
11598
  value: formatter(datum?.[entry.key]),
11532
- key: mea?.alias ?? entry.key
11599
+ key: mea?.alias ?? measureAliasMapping[entry?.key] ?? entry.key
11533
11600
  };
11534
11601
  }
11535
11602
  return entry;
@@ -11572,6 +11639,17 @@
11572
11639
  defaultContent
11573
11640
  ];
11574
11641
  };
11642
+ const boxLegend = (spec, context)=>{
11643
+ const normalLegend = discreteLegend(spec, context);
11644
+ normalLegend.legends = {
11645
+ ...normalLegend.legends,
11646
+ data: (data)=>data.map((obj)=>{
11647
+ obj.shape.fill = obj.shape.stroke;
11648
+ return obj;
11649
+ })
11650
+ };
11651
+ return normalLegend;
11652
+ };
11575
11653
  const pipeline_boxplot_boxplot = [
11576
11654
  initBoxplot,
11577
11655
  stackCornerRadius_stackCornerRadius,
@@ -11583,7 +11661,7 @@
11583
11661
  yLinear,
11584
11662
  label_label,
11585
11663
  tooltipBoxplot,
11586
- colorAdapter(discreteLegend, colorLegend),
11664
+ colorAdapter(boxLegend, colorLegend),
11587
11665
  verticalCrosshairRect,
11588
11666
  colorBarStyleFill(barStyle_barStyle),
11589
11667
  annotationPoint_annotationPoint,
@@ -11893,7 +11971,9 @@
11893
11971
  };
11894
11972
  const { vseed } = context;
11895
11973
  const { dataset, chartType } = vseed;
11896
- const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed;
11974
+ const { encoding = {}, config } = advancedVSeed;
11975
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
11976
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
11897
11977
  const uniqDims = T(dimensions, (item)=>item.id);
11898
11978
  const chartConfig = config?.[chartType];
11899
11979
  const binCount = chartConfig?.binCount;
@@ -11990,7 +12070,9 @@
11990
12070
  };
11991
12071
  const { vseed } = context;
11992
12072
  const { dataset, chartType } = vseed;
11993
- const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed;
12073
+ const { encoding = {}, config } = advancedVSeed;
12074
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
12075
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
11994
12076
  const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
11995
12077
  const uniqDims = T(dimensions, (item)=>item.id);
11996
12078
  const chartConfig = config?.[chartType];
@@ -12031,9 +12113,9 @@
12031
12113
  field: valueField,
12032
12114
  groupField: [
12033
12115
  ...encoding.x ?? [],
12034
- ...encoding.color ?? [],
12035
- ...rowColumnFields.map((item)=>item.id)
12116
+ ...encoding.color ?? []
12036
12117
  ],
12118
+ facetField: rowColumnFields.map((item)=>item.id),
12037
12119
  bins: binCount,
12038
12120
  step: binStep,
12039
12121
  outputNames: {
@@ -12105,12 +12187,12 @@
12105
12187
  ], [
12106
12188
  encodingForHistogram,
12107
12189
  buildMeasures,
12108
- deleteEncodingForMeasure([
12190
+ pickMeasuresForReshape([
12109
12191
  'tooltip',
12110
12192
  'label',
12111
12193
  'color'
12112
12194
  ]),
12113
- deleteTooltipAndLabelDimension
12195
+ pickDimensionsForReshape
12114
12196
  ]),
12115
12197
  pivotAdapter([
12116
12198
  reshapeWithHistogramEncoding
@@ -12159,6 +12241,13 @@
12159
12241
  }
12160
12242
  };
12161
12243
  };
12244
+ const getDefaultXFormatterOfHistogram = (advancedVSeed)=>{
12245
+ const { chartType, config } = advancedVSeed;
12246
+ const xConfig = config?.[chartType]?.xAxis;
12247
+ const { autoFormat = true, numFormat = {} } = xConfig;
12248
+ const formatter = createNumFormatter(numFormat);
12249
+ return (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
12250
+ };
12162
12251
  const tooltipHistogram_VCHART_OUTLIER_KEY = '__VCHART_BOX_PLOT_OUTLIER_VALUE';
12163
12252
  const tooltipHistogram = (spec, context)=>{
12164
12253
  const result = {
@@ -12171,6 +12260,7 @@
12171
12260
  enable: true
12172
12261
  } } = baseConfig;
12173
12262
  const { enable } = tooltip;
12263
+ const defaultXFormatter = getDefaultXFormatterOfHistogram(advancedVSeed);
12174
12264
  result.tooltip = {
12175
12265
  style: getTooltipStyle(tooltip),
12176
12266
  visible: enable,
@@ -12178,18 +12268,18 @@
12178
12268
  title: {
12179
12269
  visible: false
12180
12270
  },
12181
- content: tooltipHistogram_createMarkContent(encoding.tooltip || [], dimensions, encoding)
12271
+ content: tooltipHistogram_createMarkContent(encoding.tooltip || [], dimensions, encoding, defaultXFormatter)
12182
12272
  },
12183
12273
  dimension: {
12184
12274
  title: {
12185
12275
  visible: false
12186
12276
  },
12187
- content: tooltipHistogram_createMarkContent(encoding.tooltip || [], dimensions, encoding)
12277
+ content: tooltipHistogram_createMarkContent(encoding.tooltip || [], dimensions, encoding, defaultXFormatter)
12188
12278
  }
12189
12279
  };
12190
12280
  return result;
12191
12281
  };
12192
- const tooltipHistogram_createMarkContent = (tooltip, dimensions, encoding)=>{
12282
+ const tooltipHistogram_createMarkContent = (tooltip, dimensions, encoding, dimFormatter)=>{
12193
12283
  const dims = C(dimensions.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
12194
12284
  const dimContent = dims.map((item)=>({
12195
12285
  visible: true,
@@ -12211,7 +12301,7 @@
12211
12301
  shapeType: 'rectRound',
12212
12302
  key: (datum)=>{
12213
12303
  if (!datum) return '';
12214
- return `${datum[BinStartMeasureId]} ~ ${datum[BinEndMeasureId]}`;
12304
+ return `[${dimFormatter(+datum[BinStartMeasureId])}, ${dimFormatter(+datum[BinEndMeasureId])})`;
12215
12305
  },
12216
12306
  value: (datum)=>{
12217
12307
  if (!datum) return '';
@@ -12224,6 +12314,27 @@
12224
12314
  defaultContent
12225
12315
  ];
12226
12316
  };
12317
+ const histogramVerticalCrosshairRect = (spec, context)=>{
12318
+ const result = verticalCrosshairRect(spec, context);
12319
+ if (!result.crosshair) return result;
12320
+ const crosshair = result.crosshair;
12321
+ if (!crosshair.xField) return result;
12322
+ const defaultXFormatter = getDefaultXFormatterOfHistogram(context.advancedVSeed);
12323
+ crosshair.xField = {
12324
+ ...crosshair.xField || {},
12325
+ label: {
12326
+ ...crosshair.xField?.label || {},
12327
+ formatMethod: (text)=>{
12328
+ if (common_isArray(text)) return text;
12329
+ const binRange = `${text}`.split('~');
12330
+ const binStart = defaultXFormatter(+binRange[0]);
12331
+ const binEnd = defaultXFormatter(+binRange[1]);
12332
+ return 1 === binRange.length ? binStart : `[${binStart}, ${binEnd})`;
12333
+ }
12334
+ }
12335
+ };
12336
+ return result;
12337
+ };
12227
12338
  const gaussian = (u)=>1 / Math.sqrt(2 * Math.PI) * Math.exp(-0.5 * u * u);
12228
12339
  function scott(n, std, dim = 1) {
12229
12340
  return n <= 0 || 0 === std ? 0 : std * Math.pow(n, -1 / (dim + 4));
@@ -12556,6 +12667,36 @@
12556
12667
  }
12557
12668
  });
12558
12669
  });
12670
+ const leftAxis = result.axes?.find((v)=>'left' === v.orient);
12671
+ if (leftAxis && lineList.length) result.axes?.push({
12672
+ visible: true,
12673
+ orient: 'right',
12674
+ type: 'linear',
12675
+ base: 10,
12676
+ min: 0,
12677
+ max: 1,
12678
+ domainLine: {
12679
+ ...leftAxis.domainLine
12680
+ },
12681
+ grid: {
12682
+ visible: false
12683
+ },
12684
+ tick: {
12685
+ ...leftAxis.tick
12686
+ },
12687
+ title: {
12688
+ ...leftAxis.title,
12689
+ visible: false
12690
+ },
12691
+ label: {
12692
+ ...leftAxis.label,
12693
+ visible: true,
12694
+ formatMethod: (v)=>{
12695
+ const text = common_isArray(v) ? v[0] : v;
12696
+ return `${(100 * text).toFixed(1)}%`;
12697
+ }
12698
+ }
12699
+ });
12559
12700
  return result;
12560
12701
  };
12561
12702
  const histogram = [
@@ -12569,7 +12710,7 @@
12569
12710
  label_label,
12570
12711
  tooltipHistogram,
12571
12712
  colorAdapter(discreteLegend, colorLegend),
12572
- verticalCrosshairRect,
12713
+ histogramVerticalCrosshairRect,
12573
12714
  colorBarStyleFill(barStyle_barStyle),
12574
12715
  annotationPoint_annotationPoint,
12575
12716
  annotationVerticalLine_annotationVerticalLine,
@@ -12593,7 +12734,7 @@
12593
12734
  label_label,
12594
12735
  tooltipHistogram,
12595
12736
  colorBarStyleFill(barStyle_barStyle),
12596
- verticalCrosshairRect,
12737
+ histogramVerticalCrosshairRect,
12597
12738
  annotationPoint_annotationPoint,
12598
12739
  annotationVerticalLine_annotationVerticalLine,
12599
12740
  annotationHorizontalLine_annotationHorizontalLine,
@@ -17103,9 +17244,9 @@
17103
17244
  const zMeasure = schemas_object({
17104
17245
  id: schemas_string(),
17105
17246
  alias: schemas_string().optional(),
17106
- autoFormat: schemas_boolean().default(true),
17107
- numFormat: zNumFormat["default"]({}),
17108
- format: zNumFormat["default"]({}),
17247
+ autoFormat: schemas_boolean().optional(),
17248
+ numFormat: zNumFormat.optional(),
17249
+ format: zNumFormat.optional(),
17109
17250
  encoding: schemas_enum([
17110
17251
  'primaryYAxis',
17111
17252
  'secondaryYAxis',
@@ -17118,7 +17259,16 @@
17118
17259
  'label',
17119
17260
  'tooltip',
17120
17261
  'detail',
17121
- 'column'
17262
+ 'column',
17263
+ 'value',
17264
+ 'q1',
17265
+ 'q3',
17266
+ 'min',
17267
+ 'max',
17268
+ 'median',
17269
+ 'outliers',
17270
+ 'x0',
17271
+ 'x1'
17122
17272
  ]).optional(),
17123
17273
  parentId: schemas_string().optional()
17124
17274
  });
@@ -18676,6 +18826,8 @@
18676
18826
  datasetReshapeInfo: zDatasetReshapeInfo,
18677
18827
  dimensions: zDimensionTree,
18678
18828
  measures: zMeasureTree,
18829
+ reshapeMeasures: zMeasureTree.optional(),
18830
+ reshapeDimensions: zDimensionTree.optional(),
18679
18831
  encoding: zEncoding,
18680
18832
  config: zConfig,
18681
18833
  analysis: zAnalysis,