@visactor/vseed 0.0.21 → 0.0.23

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 (58) hide show
  1. package/dist/builder/builder/advanced/colorItems.d.ts +1 -0
  2. package/dist/builder/builder/advanced/index.d.ts +1 -1
  3. package/dist/builder/builder/builder.d.ts +947 -63
  4. package/dist/builder/register/chartType.d.ts +1 -0
  5. package/dist/builder/register/custom.d.ts +3 -0
  6. package/dist/builder/register/index.d.ts +1 -0
  7. package/dist/dataReshape/dataReshapeFor1D.d.ts +19 -0
  8. package/dist/dataReshape/index.d.ts +1 -0
  9. package/dist/index.cjs +713 -51
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.js +667 -48
  12. package/dist/index.js.map +1 -1
  13. package/dist/pipeline/advanced/chart/pipeline/areaRange.d.ts +2 -0
  14. package/dist/pipeline/advanced/chart/pipeline/index.d.ts +1 -0
  15. package/dist/pipeline/advanced/chart/pipes/analysis/index.d.ts +1 -0
  16. package/dist/pipeline/advanced/chart/pipes/analysis/sort.d.ts +4 -0
  17. package/dist/pipeline/advanced/chart/pipes/encoding/encodingXYY.d.ts +2 -0
  18. package/dist/pipeline/advanced/chart/pipes/encoding/index.d.ts +1 -0
  19. package/dist/pipeline/advanced/chart/pipes/index.d.ts +1 -0
  20. package/dist/pipeline/advanced/chart/pipes/init/autoMeasuresBy2M1Group.d.ts +8 -0
  21. package/dist/pipeline/advanced/chart/pipes/init/index.d.ts +1 -0
  22. package/dist/pipeline/advanced/chart/pipes/reshape/index.d.ts +2 -0
  23. package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D.d.ts +8 -0
  24. package/dist/pipeline/advanced/chart/pipes/reshape/reshapeTo1D.d.ts +8 -0
  25. package/dist/pipeline/spec/chart/pipeline/areaRange.d.ts +1 -0
  26. package/dist/pipeline/spec/chart/pipeline/index.d.ts +1 -0
  27. package/dist/pipeline/spec/chart/pipes/dataset/datasetPivot.d.ts +0 -1
  28. package/dist/pipeline/spec/chart/pipes/dataset/index.d.ts +1 -1
  29. package/dist/pipeline/spec/chart/pipes/index.d.ts +1 -0
  30. package/dist/pipeline/spec/chart/pipes/init/areaRange.d.ts +4 -0
  31. package/dist/pipeline/spec/chart/pipes/init/index.d.ts +1 -0
  32. package/dist/pipeline/spec/chart/pipes/series/index.d.ts +1 -0
  33. package/dist/pipeline/spec/chart/pipes/series/series.d.ts +2 -0
  34. package/dist/types/advancedVSeed.d.ts +310 -0
  35. package/dist/types/chartType/area/area.d.ts +25 -1
  36. package/dist/types/chartType/areaPercent/areaPercent.d.ts +25 -1
  37. package/dist/types/chartType/areaRange/areaRange.d.ts +1337 -0
  38. package/dist/types/chartType/areaRange/index.d.ts +1 -0
  39. package/dist/types/chartType/bar/bar.d.ts +25 -1
  40. package/dist/types/chartType/barParallel/barParallel.d.ts +25 -1
  41. package/dist/types/chartType/barPercent/barPercent.d.ts +25 -1
  42. package/dist/types/chartType/column/column.d.ts +25 -1
  43. package/dist/types/chartType/columnParallel/columnParallel.d.ts +25 -1
  44. package/dist/types/chartType/columnPercent/columnPercent.d.ts +25 -1
  45. package/dist/types/chartType/index.d.ts +1 -0
  46. package/dist/types/chartType/line/line.d.ts +41 -1
  47. package/dist/types/properties/analysis/analysis.d.ts +4 -0
  48. package/dist/types/properties/analysis/index.d.ts +3 -0
  49. package/dist/types/properties/analysis/sortAxis.d.ts +39 -0
  50. package/dist/types/properties/analysis/sortLegend.d.ts +39 -0
  51. package/dist/types/properties/chartType/chartType.d.ts +3 -1
  52. package/dist/types/properties/config/config.d.ts +307 -0
  53. package/dist/types/properties/index.d.ts +1 -0
  54. package/dist/types/properties/theme/customTheme.d.ts +306 -0
  55. package/dist/types/vseed.d.ts +1206 -1
  56. package/dist/umd/index.js +8847 -350
  57. package/dist/umd/index.js.map +1 -1
  58. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -1,5 +1,14 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
3
12
  (()=>{
4
13
  __webpack_require__.d = (exports1, definition)=>{
5
14
  for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
@@ -35,12 +44,14 @@ __webpack_require__.d(__webpack_exports__, {
35
44
  zRoseConfig: ()=>zRoseConfig,
36
45
  findFirstMeasure: ()=>findFirstMeasure,
37
46
  scatterAdvancedPipeline: ()=>scatterAdvancedPipeline,
47
+ updateSpec: ()=>updateSpec,
38
48
  zCrosshairRect: ()=>zCrosshairRect,
39
49
  scatterSpecPipeline: ()=>scatterSpecPipeline,
40
50
  intl: ()=>intl,
41
51
  columnPercentAdvancedPipeline: ()=>columnPercentAdvancedPipeline,
42
52
  zColumnConfig: ()=>zColumnConfig,
43
53
  zAnnotation: ()=>zAnnotation,
54
+ zSortLegend: ()=>zSortLegend,
44
55
  pivotTableAdvancedPipeline: ()=>pivotTableAdvancedPipeline,
45
56
  zYBandAxis: ()=>zYBandAxis,
46
57
  dataReshapeFor1D2M: ()=>dataReshapeFor1D2M,
@@ -54,6 +65,7 @@ __webpack_require__.d(__webpack_exports__, {
54
65
  registerColumn: ()=>registerColumn,
55
66
  findAllMeasures: ()=>findAllMeasures,
56
67
  funnelSpecPipeline: ()=>funnelSpecPipeline,
68
+ zAnalysis: ()=>zAnalysis,
57
69
  preorderTraverse: ()=>preorderTraverse,
58
70
  zDimensionTree: ()=>zDimensionTree,
59
71
  roseParallelSpecPipeline: ()=>roseParallelSpecPipeline,
@@ -67,6 +79,7 @@ __webpack_require__.d(__webpack_exports__, {
67
79
  barPercentAdvancedPipeline: ()=>barPercentAdvancedPipeline,
68
80
  findAllDimensions: ()=>findAllDimensions,
69
81
  findDimensionById: ()=>findDimensionById,
82
+ zAreaRangeConfig: ()=>zAreaRangeConfig,
70
83
  zPivotTableConfig: ()=>zPivotTableConfig,
71
84
  zArea: ()=>zArea,
72
85
  zColumnParallel: ()=>zColumnParallel,
@@ -83,21 +96,22 @@ __webpack_require__.d(__webpack_exports__, {
83
96
  zCustomThemeConfig: ()=>zCustomThemeConfig,
84
97
  registerColumnPercent: ()=>registerColumnPercent,
85
98
  zCrosshairLine: ()=>zCrosshairLine,
86
- registerBarPercent: ()=>registerBarPercent,
99
+ registerAreaRange: ()=>registerAreaRange,
87
100
  roseSpecPipeline: ()=>roseSpecPipeline,
101
+ registerBarPercent: ()=>registerBarPercent,
88
102
  zPivotTable: ()=>zPivotTable,
89
103
  registerLightTheme: ()=>registerLightTheme,
90
104
  roseAdvancedPipeline: ()=>roseAdvancedPipeline,
91
105
  zBarParallel: ()=>zBarParallel,
92
106
  zAnnotationVerticalLine: ()=>zAnnotationVerticalLine,
93
- zChartType: ()=>zChartType,
94
- tableAdvancedPipeline: ()=>tableAdvancedPipeline,
95
107
  registerDarkTheme: ()=>registerDarkTheme,
96
- registerPivotTable: ()=>registerPivotTable,
108
+ tableAdvancedPipeline: ()=>tableAdvancedPipeline,
97
109
  pieSpecPipeline: ()=>pieSpecPipeline,
110
+ registerPivotTable: ()=>registerPivotTable,
111
+ zChartType: ()=>zChartType,
98
112
  zMeasureTree: ()=>zMeasureTree,
99
113
  barSpecPipeline: ()=>barSpecPipeline,
100
- zStackCornerRadius: ()=>zStackCornerRadius,
114
+ zSortAxis: ()=>zSortAxis,
101
115
  registerRose: ()=>registerRose,
102
116
  zRose: ()=>zRose,
103
117
  unfoldDimensions: ()=>unfoldDimensions,
@@ -110,6 +124,7 @@ __webpack_require__.d(__webpack_exports__, {
110
124
  registerBar: ()=>registerBar,
111
125
  isVChart: ()=>isVChart,
112
126
  zPieConfig: ()=>zPieConfig,
127
+ zStackCornerRadius: ()=>zStackCornerRadius,
113
128
  zTable: ()=>zTable,
114
129
  registerLine: ()=>registerLine,
115
130
  registerCustomTheme: ()=>registerCustomTheme,
@@ -141,6 +156,7 @@ __webpack_require__.d(__webpack_exports__, {
141
156
  zAnnotationPoint: ()=>zAnnotationPoint,
142
157
  lightTheme: ()=>lightTheme,
143
158
  registerColumnParallel: ()=>registerColumnParallel,
159
+ updateAdvanced: ()=>updateAdvanced,
144
160
  zDimension: ()=>zDimension,
145
161
  isPivotChart: ()=>isPivotChart,
146
162
  zDualAxisConfig: ()=>zDualAxisConfig,
@@ -149,6 +165,7 @@ __webpack_require__.d(__webpack_exports__, {
149
165
  zLineConfig: ()=>zLineConfig,
150
166
  zTableConfig: ()=>zTableConfig,
151
167
  zXBandAxis: ()=>zXBandAxis,
168
+ dataReshapeFor1D: ()=>dataReshapeFor1D,
152
169
  zColumnPercentConfig: ()=>zColumnPercentConfig,
153
170
  findMeasureById: ()=>findMeasureById,
154
171
  zVSeed: ()=>zVSeed,
@@ -159,6 +176,9 @@ __webpack_require__.d(__webpack_exports__, {
159
176
  zMeasure: ()=>zMeasure,
160
177
  zLocale: ()=>zLocale,
161
178
  pivotTableSpecPipeline: ()=>pivotTableSpecPipeline,
179
+ areaRangeSpecPipeline: ()=>areaRangeSpecPipeline,
180
+ areaRangeAdvancedPipeline: ()=>areaRangeAdvancedPipeline,
181
+ zAreaRange: ()=>zAreaRange,
162
182
  registerScatter: ()=>registerScatter,
163
183
  zEncoding: ()=>zEncoding,
164
184
  autoNumFormatter: ()=>autoNumFormatter,
@@ -182,9 +202,9 @@ __webpack_require__.d(__webpack_exports__, {
182
202
  zBarParallelConfig: ()=>zBarParallelConfig,
183
203
  barParallelAdvancedPipeline: ()=>barParallelAdvancedPipeline,
184
204
  FoldMeasureValue: ()=>FoldMeasureValue,
185
- zBarPercentConfig: ()=>zBarPercentConfig,
186
205
  barPercentSpecPipeline: ()=>barPercentSpecPipeline,
187
206
  lineAdvancedPipeline: ()=>lineAdvancedPipeline,
207
+ zBarPercentConfig: ()=>zBarPercentConfig,
188
208
  lineSpecPipeline: ()=>lineSpecPipeline,
189
209
  zTooltip: ()=>zTooltip,
190
210
  createFormatter: ()=>createFormatter,
@@ -257,7 +277,6 @@ const createNumFormatter = (format, locale = intl.getLocale())=>{
257
277
  roundingMode,
258
278
  roundingPriority
259
279
  };
260
- console.log('debug roundingMode', roundingMode);
261
280
  if ((0, external_remeda_namespaceObject.isNumber)(fractionDigits)) {
262
281
  if (fractionDigits >= 0) {
263
282
  numFormatterOptions.minimumFractionDigits = fractionDigits;
@@ -495,6 +514,51 @@ const autoDimensions = (advancedVSeed, context)=>{
495
514
  }));
496
515
  return result;
497
516
  };
517
+ const autoMeasuresBy2M1Group = (advancedVSeed, context)=>{
518
+ const result = {
519
+ ...advancedVSeed
520
+ };
521
+ const { vseed } = context;
522
+ const { measures, dataset } = vseed;
523
+ if (!dataset) throw new Error('dataset is required');
524
+ if (0 === dataset.length) return result;
525
+ if (measures) {
526
+ result.measures = auto2M1Group(measures);
527
+ return result;
528
+ }
529
+ const top100dataset = dataset.slice(0, 100);
530
+ const sample = top100dataset.reduce((prev, cur)=>({
531
+ ...prev,
532
+ ...cur
533
+ }), {});
534
+ const newMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
535
+ '',
536
+ null,
537
+ void 0
538
+ ].includes(key)).map((measure)=>({
539
+ id: measure,
540
+ alias: measure
541
+ }));
542
+ result.measures = auto2M1Group(newMeasures);
543
+ return result;
544
+ };
545
+ const auto2M1Group = (measures)=>{
546
+ const allMeasures = findAllMeasures(measures);
547
+ if (allMeasures.length <= 2) return allMeasures;
548
+ const groups = measures.filter((measure)=>'children' in measure);
549
+ const singleMeasures = measures.filter((measure)=>!('children' in measure));
550
+ for(let i = 0; i < singleMeasures.length; i += 2){
551
+ const group = autoMeasuresBy2M1Group_createEmptyMeasureGroup();
552
+ group.children = allMeasures.slice(i, i + 2);
553
+ groups.push(group);
554
+ }
555
+ return groups;
556
+ };
557
+ const autoMeasuresBy2M1Group_createEmptyMeasureGroup = ()=>({
558
+ id: '',
559
+ alias: '',
560
+ children: []
561
+ });
498
562
  const FoldMeasureName = '__MeaName__';
499
563
  const FoldMeasureValue = '__MeaValue__';
500
564
  const FoldMeasureId = '__MeaId__';
@@ -525,10 +589,10 @@ const unfoldDimensions = (dataset, dimensions, measures, unfoldStartIndex = 0, u
525
589
  for(let i = 0; i < dataset.length; i++){
526
590
  const datum = dataset[i];
527
591
  const colorName = generateDimGroupName(dimensionsToBeUnfolded, datum, dimensionsSeparator);
528
- const colorId = [
592
+ const colorId = datum[foldMeasureId] ? [
529
593
  colorName,
530
- datum[foldMeasureId] || 'id'
531
- ].join(dimensionsSeparator);
594
+ datum[foldMeasureId]
595
+ ].join(dimensionsSeparator) : colorName;
532
596
  datum[unfoldGroupName] = colorName;
533
597
  datum[unfoldGroupId] = colorId;
534
598
  colorItems.push(colorId);
@@ -754,6 +818,58 @@ const dataReshapeFor1D2M = (dataset, dimensions, measures, options)=>{
754
818
  };
755
819
  }
756
820
  };
821
+ const dataReshapeFor1D_emptyReshapeResult = {
822
+ dataset: [],
823
+ foldInfo: {
824
+ foldMap: {},
825
+ measureId: '',
826
+ measureName: '',
827
+ measureValue: ''
828
+ },
829
+ unfoldInfo: {
830
+ groupName: '',
831
+ groupId: '',
832
+ colorItems: [],
833
+ colorIdMap: {}
834
+ }
835
+ };
836
+ const dataReshapeFor1D = (dataset, dimensions, measures, options)=>{
837
+ const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, unfoldDimensionGroup = UnfoldDimensionGroup, unfoldDimensionGroupId = UnfoldDimensionGroupId } = options || {};
838
+ if (0 === dimensions.length && 0 === measures.length) return dataReshapeFor1D_emptyReshapeResult;
839
+ if (0 === dimensions.length) {
840
+ const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(dataset, [], [], 0, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
841
+ return {
842
+ dataset: finalDataset,
843
+ foldInfo: {
844
+ foldMap: {},
845
+ measureId: foldMeasureId,
846
+ measureName: foldMeasureName,
847
+ measureValue: foldMeasureValue
848
+ },
849
+ unfoldInfo
850
+ };
851
+ }
852
+ {
853
+ const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(dataset, [
854
+ ...dimensions
855
+ ], [
856
+ {
857
+ id: foldMeasureValue,
858
+ alias: i18n`指标值`
859
+ }
860
+ ], 0, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
861
+ return {
862
+ dataset: finalDataset,
863
+ foldInfo: {
864
+ foldMap: {},
865
+ measureId: foldMeasureId,
866
+ measureName: foldMeasureName,
867
+ measureValue: foldMeasureValue
868
+ },
869
+ unfoldInfo
870
+ };
871
+ }
872
+ };
757
873
  const reshapeTo2D1M = (advancedVSeed, context)=>{
758
874
  const result = {
759
875
  ...advancedVSeed
@@ -822,6 +938,28 @@ const reshapeTo1D2M = (advancedVSeed, context)=>{
822
938
  ]
823
939
  };
824
940
  };
941
+ const reshapeTo1D = (advancedVSeed, context)=>{
942
+ const result = {
943
+ ...advancedVSeed
944
+ };
945
+ const { vseed } = context;
946
+ const { dataset } = vseed;
947
+ const { dimensions, measures } = advancedVSeed;
948
+ if (!measures || !dimensions || !dataset) return result;
949
+ if (0 === measures.length) throw new Error('measures can not be empty');
950
+ const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D(dataset, dimensions, measures);
951
+ return {
952
+ ...result,
953
+ dataset: newDatasets,
954
+ datasetReshapeInfo: [
955
+ {
956
+ id: '1D2M',
957
+ foldInfo,
958
+ unfoldInfo
959
+ }
960
+ ]
961
+ };
962
+ };
825
963
  const pivotReshapeTo1D1M = (advancedVSeed, context)=>{
826
964
  const result = {
827
965
  ...advancedVSeed
@@ -942,17 +1080,58 @@ const pivotReshapeTo2D1M = (advancedVSeed, context)=>{
942
1080
  datasetReshapeInfo: datasetReshapeInfo
943
1081
  };
944
1082
  };
1083
+ const pivotReshapeTo1D = (advancedVSeed, context)=>{
1084
+ const result = {
1085
+ ...advancedVSeed
1086
+ };
1087
+ const { vseed } = context;
1088
+ const { dataset } = vseed;
1089
+ const { measures } = advancedVSeed;
1090
+ const dimensions = advancedVSeed.dimensions;
1091
+ if (!measures || !dimensions) return result;
1092
+ const measureGroups = [];
1093
+ if (measures) measures.forEach((measure)=>{
1094
+ if (measure.children && measure.children.length > 0) measureGroups.push(measure);
1095
+ });
1096
+ const newDatasets = [];
1097
+ const datasetReshapeInfo = [];
1098
+ measureGroups.forEach((measureGroup)=>{
1099
+ const measures = measureGroup.children;
1100
+ if (!measures) return;
1101
+ const commonDimensions = dimensions.filter((dim)=>'dimension' === dim.location);
1102
+ const groupId = measureGroup.id;
1103
+ const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeFor1D(dataset, commonDimensions, measures, {
1104
+ foldMeasureId: FoldMeasureId,
1105
+ foldMeasureName: FoldMeasureName,
1106
+ foldMeasureValue: FoldMeasureValue + groupId,
1107
+ unfoldDimensionGroup: UnfoldDimensionGroup
1108
+ });
1109
+ const reshapeInfo = {
1110
+ id: groupId,
1111
+ foldInfo,
1112
+ unfoldInfo
1113
+ };
1114
+ newDatasets.push(newSubDataset);
1115
+ datasetReshapeInfo.push(reshapeInfo);
1116
+ });
1117
+ return {
1118
+ ...result,
1119
+ dataset: newDatasets,
1120
+ datasetReshapeInfo: datasetReshapeInfo
1121
+ };
1122
+ };
945
1123
  const encodingXY = (advancedVSeed)=>{
946
1124
  const result = {
947
1125
  ...advancedVSeed
948
1126
  };
949
1127
  const { datasetReshapeInfo, dimensions } = advancedVSeed;
950
1128
  if (!datasetReshapeInfo || !dimensions) return result;
1129
+ const xDimension = dimensions.find((item)=>'rowDimension' !== item.location && 'columnDimension' !== item.location);
951
1130
  const isZeroDimension = 0 === dimensions.length;
952
1131
  const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
953
1132
  const { foldInfo, unfoldInfo } = cur;
954
1133
  const x = [
955
- isZeroDimension ? foldInfo.measureName : dimensions[0].id
1134
+ isZeroDimension ? foldInfo.measureName : xDimension?.id
956
1135
  ];
957
1136
  const y = [
958
1137
  foldInfo.measureValue
@@ -984,11 +1163,12 @@ const encodingYX = (advancedVSeed)=>{
984
1163
  };
985
1164
  const { datasetReshapeInfo, dimensions } = advancedVSeed;
986
1165
  if (!datasetReshapeInfo || !dimensions) return result;
1166
+ const yDimension = dimensions.find((item)=>'rowDimension' !== item.location && 'columnDimension' !== item.location);
987
1167
  const isZeroDimension = 0 === dimensions.length;
988
1168
  const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
989
1169
  const { foldInfo, unfoldInfo } = cur;
990
1170
  const y = [
991
- isZeroDimension ? foldInfo.measureName : dimensions[0].id
1171
+ isZeroDimension ? foldInfo.measureName : yDimension?.id
992
1172
  ];
993
1173
  const x = [
994
1174
  foldInfo.measureValue
@@ -1050,12 +1230,81 @@ const encodingYY = (advancedVSeed)=>{
1050
1230
  encoding
1051
1231
  };
1052
1232
  };
1233
+ const encodingXYY = (advancedVSeed)=>{
1234
+ const result = {
1235
+ ...advancedVSeed
1236
+ };
1237
+ const { datasetReshapeInfo, dimensions, measures } = advancedVSeed;
1238
+ if (!datasetReshapeInfo || !dimensions || !measures) return result;
1239
+ const encoding = datasetReshapeInfo.reduce((prev, cur, index)=>{
1240
+ const measure = measures[index];
1241
+ if ('children' in measure) {
1242
+ const m1 = measure.children?.[0];
1243
+ const m2 = measure.children?.[1] || m1;
1244
+ const { foldInfo, unfoldInfo } = cur;
1245
+ const x = [
1246
+ unfoldInfo.groupId
1247
+ ];
1248
+ const y = [
1249
+ m1?.id,
1250
+ m2?.id
1251
+ ];
1252
+ const group = [
1253
+ unfoldInfo.groupId
1254
+ ];
1255
+ const color = [
1256
+ foldInfo.measureName
1257
+ ];
1258
+ return [
1259
+ ...prev,
1260
+ {
1261
+ x,
1262
+ y,
1263
+ group,
1264
+ color
1265
+ }
1266
+ ];
1267
+ }
1268
+ {
1269
+ const m1 = measures[index];
1270
+ const m2 = measures[index + 1] || m1;
1271
+ const { foldInfo, unfoldInfo } = cur;
1272
+ const x = [
1273
+ unfoldInfo.groupId
1274
+ ];
1275
+ const y = [
1276
+ m1.id,
1277
+ m2.id
1278
+ ];
1279
+ const group = [
1280
+ unfoldInfo.groupId
1281
+ ];
1282
+ const color = [
1283
+ foldInfo.measureName
1284
+ ];
1285
+ return [
1286
+ ...prev,
1287
+ {
1288
+ x,
1289
+ y,
1290
+ group,
1291
+ color
1292
+ }
1293
+ ];
1294
+ }
1295
+ }, []);
1296
+ return {
1297
+ ...result,
1298
+ encoding
1299
+ };
1300
+ };
1053
1301
  const encodingRose = (advancedVSeed)=>{
1054
1302
  const result = {
1055
1303
  ...advancedVSeed
1056
1304
  };
1057
1305
  const { datasetReshapeInfo, dimensions, measures } = advancedVSeed;
1058
1306
  if (!datasetReshapeInfo || !dimensions || !measures) return result;
1307
+ const angleDimension = dimensions.find((item)=>'rowDimension' !== item.location && 'columnDimension' !== item.location);
1059
1308
  const is1D1M = 1 === dimensions.length && 1 === measures.length;
1060
1309
  const isZeroDimension = 0 === dimensions.length;
1061
1310
  const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
@@ -1064,13 +1313,13 @@ const encodingRose = (advancedVSeed)=>{
1064
1313
  foldInfo.measureValue
1065
1314
  ];
1066
1315
  const angle = [
1067
- isZeroDimension ? foldInfo.measureName : dimensions[0].id
1316
+ isZeroDimension ? foldInfo.measureName : angleDimension?.id
1068
1317
  ];
1069
1318
  const group = [
1070
- is1D1M ? dimensions[0].id : unfoldInfo.groupId
1319
+ is1D1M ? angleDimension?.id : unfoldInfo.groupId
1071
1320
  ];
1072
1321
  const color = [
1073
- is1D1M ? dimensions[0].id : unfoldInfo.groupId
1322
+ is1D1M ? angleDimension?.id : unfoldInfo.groupId
1074
1323
  ];
1075
1324
  return [
1076
1325
  ...prev,
@@ -1290,6 +1539,81 @@ const annotation_annotation = (advancedVSeed, context)=>{
1290
1539
  annotation
1291
1540
  };
1292
1541
  };
1542
+ const sortXBandAxis = (advancedVSeed, context)=>{
1543
+ const result = {
1544
+ ...advancedVSeed
1545
+ };
1546
+ const { vseed } = context;
1547
+ const { sortAxis, dataset } = vseed;
1548
+ const { encoding } = advancedVSeed;
1549
+ const xField = encoding?.[0]?.x?.[0];
1550
+ if (!sortAxis || !xField) return advancedVSeed;
1551
+ if (!result.analysis) result.analysis = {};
1552
+ if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
1553
+ const axisOrderResult = calcOrder(sortAxis, xField, dataset);
1554
+ result.analysis.orderMapping[xField] = axisOrderResult;
1555
+ return result;
1556
+ };
1557
+ const sortYBandAxis = (advancedVSeed, context)=>{
1558
+ const result = {
1559
+ ...advancedVSeed
1560
+ };
1561
+ const { vseed } = context;
1562
+ const { sortAxis, dataset } = vseed;
1563
+ const { encoding } = advancedVSeed;
1564
+ const yField = encoding?.[0]?.y?.[0];
1565
+ if (!sortAxis || !yField) return advancedVSeed;
1566
+ if (!result.analysis) result.analysis = {};
1567
+ if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
1568
+ const axisOrderResult = calcOrder(sortAxis, yField, dataset);
1569
+ result.analysis.orderMapping[yField] = axisOrderResult;
1570
+ return result;
1571
+ };
1572
+ const sort_sortLegend = (advancedVSeed, context)=>{
1573
+ const result = {
1574
+ ...advancedVSeed
1575
+ };
1576
+ const { vseed } = context;
1577
+ const { sortLegend } = vseed;
1578
+ const { datasetReshapeInfo } = advancedVSeed;
1579
+ const groupField = datasetReshapeInfo?.[0]?.unfoldInfo?.groupId;
1580
+ const colorIdMap = datasetReshapeInfo?.[0]?.unfoldInfo?.colorIdMap;
1581
+ const colorItems = datasetReshapeInfo?.[0]?.unfoldInfo?.colorItems;
1582
+ if (!sortLegend || !groupField || !colorIdMap || !colorItems) return advancedVSeed;
1583
+ if (!result.analysis) result.analysis = {};
1584
+ if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
1585
+ if (sortLegend.customOrder) {
1586
+ const nameMap = Object.keys(colorIdMap).reduce((pre, cur)=>{
1587
+ pre[colorIdMap[cur]] = cur;
1588
+ return pre;
1589
+ }, {});
1590
+ const orderRes = sortLegend.customOrder.map((itemNameOrId)=>nameMap[itemNameOrId] ? nameMap[itemNameOrId] : itemNameOrId);
1591
+ result.analysis.orderMapping[groupField] = orderRes;
1592
+ return result;
1593
+ }
1594
+ const dataset = advancedVSeed.dataset?.flat(2);
1595
+ const orderRes = calcOrder(sortLegend, groupField, dataset || []);
1596
+ result.analysis.orderMapping[groupField] = orderRes;
1597
+ return result;
1598
+ };
1599
+ const calcOrder = (sortAxis, id, dataset)=>{
1600
+ if (sortAxis.customOrder) return sortAxis.customOrder;
1601
+ const order = sortAxis.order || 'asc';
1602
+ const orderBy = sortAxis.orderBy;
1603
+ const res = (0, external_remeda_namespaceObject.sort)(dataset, (a, b)=>{
1604
+ const aValue = a[orderBy || id];
1605
+ const bValue = b[orderBy || id];
1606
+ if ('asc' === order) {
1607
+ if (aValue < bValue) return -1;
1608
+ if (aValue > bValue) return 1;
1609
+ return 0;
1610
+ }
1611
+ if (aValue > bValue) return -1;
1612
+ if (aValue < bValue) return 1;
1613
+ return 0;
1614
+ });
1615
+ return (0, external_remeda_namespaceObject.unique)(res.map((item)=>item[id]));
1616
+ };
1293
1617
  const lineAdvancedPipeline = [
1294
1618
  initAdvancedVSeed,
1295
1619
  autoMeasures,
@@ -1300,6 +1624,8 @@ const lineAdvancedPipeline = [
1300
1624
  pivotReshapeTo2D1M
1301
1625
  ]),
1302
1626
  encodingXY,
1627
+ sortXBandAxis,
1628
+ sort_sortLegend,
1303
1629
  lineConfig,
1304
1630
  theme_theme,
1305
1631
  markStyle_markStyle,
@@ -1315,6 +1641,8 @@ const barAdvancedPipeline = [
1315
1641
  pivotReshapeTo2D1M
1316
1642
  ]),
1317
1643
  encodingYX,
1644
+ sortYBandAxis,
1645
+ sort_sortLegend,
1318
1646
  barConfig,
1319
1647
  theme_theme,
1320
1648
  markStyle_markStyle,
@@ -1330,6 +1658,8 @@ const barParallelAdvancedPipeline = [
1330
1658
  pivotReshapeTo2D1M
1331
1659
  ]),
1332
1660
  encodingYX,
1661
+ sortYBandAxis,
1662
+ sort_sortLegend,
1333
1663
  barParallelConfig,
1334
1664
  theme_theme,
1335
1665
  markStyle_markStyle,
@@ -1345,6 +1675,8 @@ const barPercentAdvancedPipeline = [
1345
1675
  pivotReshapeTo2D1M
1346
1676
  ]),
1347
1677
  encodingYX,
1678
+ sortYBandAxis,
1679
+ sort_sortLegend,
1348
1680
  barPercentConfig,
1349
1681
  theme_theme,
1350
1682
  markStyle_markStyle,
@@ -1360,6 +1692,8 @@ const columnAdvancedPipeline = [
1360
1692
  pivotReshapeTo2D1M
1361
1693
  ]),
1362
1694
  encodingXY,
1695
+ sortXBandAxis,
1696
+ sort_sortLegend,
1363
1697
  columnConfig,
1364
1698
  theme_theme,
1365
1699
  markStyle_markStyle,
@@ -1375,6 +1709,8 @@ const columnParallelAdvancedPipeline = [
1375
1709
  pivotReshapeTo2D1M
1376
1710
  ]),
1377
1711
  encodingXY,
1712
+ sortXBandAxis,
1713
+ sort_sortLegend,
1378
1714
  columnParallelConfig,
1379
1715
  theme_theme,
1380
1716
  markStyle_markStyle,
@@ -1390,6 +1726,8 @@ const columnPercentAdvancedPipeline = [
1390
1726
  pivotReshapeTo2D1M
1391
1727
  ]),
1392
1728
  encodingXY,
1729
+ sortXBandAxis,
1730
+ sort_sortLegend,
1393
1731
  columnPercentConfig,
1394
1732
  theme_theme,
1395
1733
  markStyle_markStyle,
@@ -1405,6 +1743,8 @@ const areaAdvancedPipeline = [
1405
1743
  pivotReshapeTo2D1M
1406
1744
  ]),
1407
1745
  encodingXY,
1746
+ sortXBandAxis,
1747
+ sort_sortLegend,
1408
1748
  areaConfig,
1409
1749
  theme_theme,
1410
1750
  markStyle_markStyle,
@@ -1420,11 +1760,29 @@ const areaPercentAdvancedPipeline = [
1420
1760
  pivotReshapeTo2D1M
1421
1761
  ]),
1422
1762
  encodingXY,
1763
+ sortXBandAxis,
1764
+ sort_sortLegend,
1423
1765
  areaPercentConfig,
1424
1766
  theme_theme,
1425
1767
  markStyle_markStyle,
1426
1768
  annotation_annotation
1427
1769
  ];
1770
+ const areaRangeAdvancedPipeline = [
1771
+ initAdvancedVSeed,
1772
+ autoMeasuresBy2M1Group,
1773
+ autoDimensions,
1774
+ pivotAdapter([
1775
+ reshapeTo1D
1776
+ ], [
1777
+ pivotReshapeTo1D
1778
+ ]),
1779
+ encodingXYY,
1780
+ sortXBandAxis,
1781
+ areaConfig,
1782
+ theme_theme,
1783
+ markStyle_markStyle,
1784
+ annotation_annotation
1785
+ ];
1428
1786
  const pieAdvancedPipeline = [
1429
1787
  initAdvancedVSeed,
1430
1788
  autoMeasures,
@@ -1665,25 +2023,56 @@ const tableAdvancedPipeline = [
1665
2023
  theme_theme
1666
2024
  ];
1667
2025
  const dataset_dataset = (spec, context)=>{
1668
- const { advancedVSeed } = context;
1669
- const { encoding } = advancedVSeed;
2026
+ const { advancedVSeed, vseed } = context;
2027
+ const { encoding, analysis, datasetReshapeInfo } = advancedVSeed;
2028
+ const { orderMapping = {} } = analysis ?? {};
1670
2029
  const angle = encoding[0]?.angle?.[0];
1671
2030
  const x = encoding[0]?.x?.[0];
2031
+ const y = encoding[0]?.y?.[0];
1672
2032
  const group = encoding[0]?.group?.[0];
2033
+ const id = datasetReshapeInfo[0].id;
1673
2034
  const fields = {};
1674
2035
  if (angle) fields[angle] = {
1675
2036
  sortIndex: 0
1676
2037
  };
1677
- if (x) fields[x] = {
1678
- sortIndex: 0
1679
- };
1680
- if (group) fields[group] = {
1681
- sortIndex: 1
1682
- };
2038
+ if (x) {
2039
+ const order = orderMapping[x];
2040
+ if (order) fields[x] = {
2041
+ sortIndex: 0,
2042
+ domain: order,
2043
+ lockStatisticsByDomain: true
2044
+ };
2045
+ else fields[x] = {
2046
+ sortIndex: 0
2047
+ };
2048
+ }
2049
+ if (y) {
2050
+ const order = orderMapping[y];
2051
+ if (order) fields[y] = {
2052
+ sortIndex: 0,
2053
+ domain: order,
2054
+ lockStatisticsByDomain: true
2055
+ };
2056
+ else fields[y] = {
2057
+ sortIndex: 0
2058
+ };
2059
+ }
2060
+ if (group) {
2061
+ const order = orderMapping[group];
2062
+ if (order) fields[group] = {
2063
+ sortIndex: 0,
2064
+ domain: order,
2065
+ lockStatisticsByDomain: true
2066
+ };
2067
+ else fields[group] = {
2068
+ sortIndex: 0
2069
+ };
2070
+ }
1683
2071
  return {
1684
2072
  ...spec,
1685
2073
  data: {
1686
- values: advancedVSeed.dataset,
2074
+ id,
2075
+ values: isPivotChart(vseed) ? void 0 : advancedVSeed.dataset,
1687
2076
  fields: fields
1688
2077
  }
1689
2078
  };
@@ -1704,12 +2093,6 @@ const datasetPivot = (spec, context)=>{
1704
2093
  records: records
1705
2094
  };
1706
2095
  };
1707
- const datasetPivotPlaceholder = (spec)=>({
1708
- ...spec,
1709
- data: {
1710
- id: 'placeholderDataId'
1711
- }
1712
- });
1713
2096
  const initColumn = (spec, context)=>{
1714
2097
  const result = {
1715
2098
  ...spec
@@ -1798,6 +2181,88 @@ const initArea = (spec, context)=>{
1798
2181
  result.animation = true;
1799
2182
  return result;
1800
2183
  };
2184
+ const initAreaRange = (spec, context)=>{
2185
+ const result = {
2186
+ ...spec
2187
+ };
2188
+ const { advancedVSeed } = context;
2189
+ const { encoding } = advancedVSeed;
2190
+ if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
2191
+ const { color } = advancedVSeed.config.areaRange;
2192
+ result.type = 'rangeArea';
2193
+ result.direction = 'vertical';
2194
+ result.stack = false;
2195
+ result.xField = encoding[0].x[0];
2196
+ result.yField = [
2197
+ encoding[0].y[0],
2198
+ encoding[0].y[1]
2199
+ ];
2200
+ result.animation = true;
2201
+ result.area = {
2202
+ style: {
2203
+ fill: color.colorScheme?.[0]
2204
+ }
2205
+ };
2206
+ return result;
2207
+ };
2208
+ const initAreaRangeLine1 = (spec, context)=>{
2209
+ const result = {
2210
+ ...spec
2211
+ };
2212
+ const { advancedVSeed } = context;
2213
+ const { encoding } = advancedVSeed;
2214
+ if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
2215
+ const { color } = advancedVSeed.config.areaRange;
2216
+ result.type = 'line';
2217
+ result.direction = 'vertical';
2218
+ result.stack = false;
2219
+ result.xField = encoding[0].x[0];
2220
+ result.yField = [
2221
+ encoding[0].y[0]
2222
+ ];
2223
+ result.animation = true;
2224
+ result.line = {
2225
+ style: {
2226
+ stroke: color.colorScheme?.[0]
2227
+ }
2228
+ };
2229
+ result.point = {
2230
+ style: {
2231
+ visible: false,
2232
+ fill: color.colorScheme?.[0]
2233
+ }
2234
+ };
2235
+ return result;
2236
+ };
2237
+ const initAreaRangeLine2 = (spec, context)=>{
2238
+ const result = {
2239
+ ...spec
2240
+ };
2241
+ const { advancedVSeed } = context;
2242
+ const { encoding } = advancedVSeed;
2243
+ if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
2244
+ const { color } = advancedVSeed.config.areaRange;
2245
+ result.type = 'line';
2246
+ result.direction = 'vertical';
2247
+ result.stack = false;
2248
+ result.xField = encoding[0].x[0];
2249
+ result.yField = [
2250
+ encoding[0].y[1]
2251
+ ];
2252
+ result.animation = true;
2253
+ result.line = {
2254
+ style: {
2255
+ stroke: color.colorScheme?.[0]
2256
+ }
2257
+ };
2258
+ result.point = {
2259
+ style: {
2260
+ visible: false,
2261
+ fill: color.colorScheme?.[0]
2262
+ }
2263
+ };
2264
+ return result;
2265
+ };
1801
2266
  const initLine = (spec, context)=>{
1802
2267
  const result = {
1803
2268
  ...spec
@@ -2738,7 +3203,7 @@ const pivotDiscreteLegend = (spec, context)=>{
2738
3203
  }), {});
2739
3204
  const { legend, color } = baseConfig;
2740
3205
  const { colorScheme } = color;
2741
- const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight, maxSize, border, shapeType = 'rectRound' } = legend || {};
3206
+ const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400, maxSize, border, shapeType = 'rectRound' } = legend || {};
2742
3207
  const orient = [
2743
3208
  'bottom',
2744
3209
  'bottomLeft',
@@ -4071,6 +4536,21 @@ const horizontalCrosshairLine = (spec, context)=>{
4071
4536
  };
4072
4537
  return result;
4073
4538
  };
4539
+ const series = (...args)=>{
4540
+ const result = {
4541
+ type: 'common',
4542
+ padding: 0,
4543
+ region: [
4544
+ {
4545
+ clip: true
4546
+ }
4547
+ ]
4548
+ };
4549
+ return (_, context)=>{
4550
+ result.series = args.map((pipeline)=>execPipeline(pipeline, context, {}));
4551
+ return result;
4552
+ };
4553
+ };
4074
4554
  const line_line = [
4075
4555
  initLine,
4076
4556
  color_color,
@@ -4099,7 +4579,7 @@ const pivotLine = [
4099
4579
  initLine,
4100
4580
  color_color,
4101
4581
  background_backgroundColor,
4102
- datasetPivotPlaceholder,
4582
+ dataset_dataset,
4103
4583
  xBand,
4104
4584
  yLinear,
4105
4585
  label_label,
@@ -4150,7 +4630,7 @@ const pivotColumn = [
4150
4630
  stackInverse,
4151
4631
  color_color,
4152
4632
  background_backgroundColor,
4153
- datasetPivotPlaceholder,
4633
+ dataset_dataset,
4154
4634
  xBand,
4155
4635
  yLinear,
4156
4636
  label_label,
@@ -4197,7 +4677,7 @@ const pivotColumnParallel = [
4197
4677
  stackCornerRadius_stackCornerRadius,
4198
4678
  color_color,
4199
4679
  background_backgroundColor,
4200
- datasetPivotPlaceholder,
4680
+ dataset_dataset,
4201
4681
  xBand,
4202
4682
  yLinear,
4203
4683
  label_label,
@@ -4248,7 +4728,7 @@ const pivotColumnPercent = [
4248
4728
  color_color,
4249
4729
  percent,
4250
4730
  background_backgroundColor,
4251
- datasetPivotPlaceholder,
4731
+ dataset_dataset,
4252
4732
  xBand,
4253
4733
  yLinear,
4254
4734
  label_label,
@@ -4295,7 +4775,8 @@ const pivotBar = [
4295
4775
  stackCornerRadius_stackCornerRadius,
4296
4776
  color_color,
4297
4777
  background_backgroundColor,
4298
- datasetPivotPlaceholder,
4778
+ dataset_dataset,
4779
+ xLinear,
4299
4780
  yBand,
4300
4781
  label_label,
4301
4782
  label_label,
@@ -4342,9 +4823,9 @@ const pivotBarParallel = [
4342
4823
  stackCornerRadius_stackCornerRadius,
4343
4824
  color_color,
4344
4825
  background_backgroundColor,
4345
- datasetPivotPlaceholder,
4346
- yBand,
4826
+ dataset_dataset,
4347
4827
  xLinear,
4828
+ yBand,
4348
4829
  label_label,
4349
4830
  tooltip_tooltip,
4350
4831
  horizontalCrosshairRect,
@@ -4391,7 +4872,7 @@ const pivotBarPercent = [
4391
4872
  color_color,
4392
4873
  background_backgroundColor,
4393
4874
  percent,
4394
- datasetPivotPlaceholder,
4875
+ dataset_dataset,
4395
4876
  yBand,
4396
4877
  xLinear,
4397
4878
  label_label,
@@ -4441,7 +4922,7 @@ const pivotArea = [
4441
4922
  color_color,
4442
4923
  background_backgroundColor,
4443
4924
  stackInverse,
4444
- datasetPivotPlaceholder,
4925
+ dataset_dataset,
4445
4926
  xBand,
4446
4927
  yLinear,
4447
4928
  label_label,
@@ -4495,7 +4976,7 @@ const pivotAreaPercent = [
4495
4976
  color_color,
4496
4977
  background_backgroundColor,
4497
4978
  percent,
4498
- datasetPivotPlaceholder,
4979
+ dataset_dataset,
4499
4980
  xBand,
4500
4981
  yLinear,
4501
4982
  label_label,
@@ -4516,6 +4997,69 @@ const pivotAreaPercent = [
4516
4997
  const areaPercentSpecPipeline = [
4517
4998
  pivotAdapter_pivotAdapter(areaPercent, pivotAreaPercent)
4518
4999
  ];
5000
+ const areaRange = [
5001
+ series([
5002
+ initAreaRange,
5003
+ areaStyle_areaStyle
5004
+ ], [
5005
+ initAreaRangeLine1,
5006
+ lineStyle_lineStyle,
5007
+ pointStyle_pointStyle,
5008
+ pointStateDimensionHover
5009
+ ], [
5010
+ initAreaRangeLine2,
5011
+ lineStyle_lineStyle,
5012
+ pointStyle_pointStyle,
5013
+ pointStateDimensionHover
5014
+ ]),
5015
+ dataset_dataset,
5016
+ background_backgroundColor,
5017
+ xBand,
5018
+ yLinear,
5019
+ label_label,
5020
+ verticalCrosshairLine,
5021
+ annotationPoint_annotationPoint,
5022
+ annotationVerticalLine_annotationVerticalLine,
5023
+ annotationHorizontalLine_annotationHorizontalLine,
5024
+ annotationArea_annotationArea
5025
+ ];
5026
+ const pivotAreaRange = [
5027
+ initPivot,
5028
+ pivotGridStyle,
5029
+ pivotIndicators_pivotIndicatorsAsRow,
5030
+ datasetPivot,
5031
+ pivotIndicators([
5032
+ series([
5033
+ initAreaRange,
5034
+ areaStyle_areaStyle
5035
+ ], [
5036
+ initAreaRangeLine1,
5037
+ lineStyle_lineStyle,
5038
+ pointStyle_pointStyle,
5039
+ pointStateDimensionHover
5040
+ ], [
5041
+ initAreaRangeLine2,
5042
+ lineStyle_lineStyle,
5043
+ pointStyle_pointStyle,
5044
+ pointStateDimensionHover
5045
+ ]),
5046
+ background_backgroundColor,
5047
+ dataset_dataset,
5048
+ xBand,
5049
+ yLinear,
5050
+ label_label,
5051
+ verticalCrosshairLine,
5052
+ annotationPoint_annotationPoint,
5053
+ annotationVerticalLine_annotationVerticalLine,
5054
+ annotationHorizontalLine_annotationHorizontalLine,
5055
+ annotationArea_annotationArea
5056
+ ]),
5057
+ pivotRowDimensions,
5058
+ pivotColumnDimensions
5059
+ ];
5060
+ const areaRangeSpecPipeline = [
5061
+ pivotAdapter_pivotAdapter(areaRange, pivotAreaRange)
5062
+ ];
4519
5063
  const pie = [
4520
5064
  initPie,
4521
5065
  color_color,
@@ -4538,7 +5082,7 @@ const pivotPie = [
4538
5082
  initPie,
4539
5083
  color_color,
4540
5084
  background_backgroundColor,
4541
- datasetPivotPlaceholder,
5085
+ dataset_dataset,
4542
5086
  label_label,
4543
5087
  tooltip_tooltip,
4544
5088
  annotationPoint_annotationPoint,
@@ -4575,7 +5119,7 @@ const pivotDonut = [
4575
5119
  initDonut,
4576
5120
  color_color,
4577
5121
  background_backgroundColor,
4578
- datasetPivotPlaceholder,
5122
+ dataset_dataset,
4579
5123
  label_label,
4580
5124
  tooltip_tooltip,
4581
5125
  annotationPoint_annotationPoint,
@@ -4615,7 +5159,7 @@ const pivotRose = [
4615
5159
  stackInverse,
4616
5160
  color_color,
4617
5161
  background_backgroundColor,
4618
- datasetPivotPlaceholder,
5162
+ dataset_dataset,
4619
5163
  radiusAxis,
4620
5164
  angleAxis,
4621
5165
  label_label,
@@ -4656,7 +5200,7 @@ const pivotRoseParallel = [
4656
5200
  stackCornerRadius_stackCornerRadius,
4657
5201
  color_color,
4658
5202
  background_backgroundColor,
4659
- datasetPivotPlaceholder,
5203
+ dataset_dataset,
4660
5204
  radiusAxis,
4661
5205
  angleAxis,
4662
5206
  label_label,
@@ -4696,7 +5240,7 @@ const pivotFunnel = [
4696
5240
  initFunnel,
4697
5241
  color_color,
4698
5242
  background_backgroundColor,
4699
- datasetPivotPlaceholder,
5243
+ dataset_dataset,
4700
5244
  label_label,
4701
5245
  tooltip_tooltip,
4702
5246
  annotationPoint_annotationPoint,
@@ -4739,7 +5283,7 @@ const pivotScatter = [
4739
5283
  initScatter,
4740
5284
  color_color,
4741
5285
  background_backgroundColor,
4742
- datasetPivotPlaceholder,
5286
+ dataset_dataset,
4743
5287
  xLinear,
4744
5288
  yLinear,
4745
5289
  label_label,
@@ -4780,6 +5324,9 @@ const initTable = (spec, context)=>{
4780
5324
  type: 'one-by-one',
4781
5325
  direction: 'row'
4782
5326
  },
5327
+ hover: {
5328
+ highlightMode: 'row'
5329
+ },
4783
5330
  theme: {
4784
5331
  underlayBackgroundColor: 'transparent'
4785
5332
  }
@@ -4945,7 +5492,7 @@ const bodyStyle = (spec, context)=>{
4945
5492
  const fontSize = themConfig.bodyFontSize || 12;
4946
5493
  const hoverCellBgColor = themConfig.hoverBodyBackgroundColor || '#bedaff';
4947
5494
  const hoverInlineColor = (0, external_d3_color_namespaceObject.color)(hoverCellBgColor)?.copy({
4948
- opacity: 0.1
5495
+ opacity: 0.2
4949
5496
  }).toString();
4950
5497
  result.theme.bodyStyle = {
4951
5498
  borderColor: borderColor,
@@ -5137,7 +5684,7 @@ const frameStyle = (spec, context)=>{
5137
5684
  result.theme.frameStyle = {
5138
5685
  borderColor,
5139
5686
  borderLineWidth: 0,
5140
- cornerRadius: 0
5687
+ cornerRadius: 4
5141
5688
  };
5142
5689
  return result;
5143
5690
  };
@@ -5231,6 +5778,16 @@ const getColorItems = (builder)=>{
5231
5778
  }), {});
5232
5779
  return colorItems.map((d)=>colorIdMap[d]);
5233
5780
  };
5781
+ const getColorIdMap = (builder)=>{
5782
+ const advancedVSeed = builder.advancedVSeed;
5783
+ if (!advancedVSeed) return {};
5784
+ const { datasetReshapeInfo } = advancedVSeed;
5785
+ const colorIdMap = datasetReshapeInfo.reduce((prev, cur)=>({
5786
+ ...prev,
5787
+ ...cur.unfoldInfo.colorIdMap
5788
+ }), {});
5789
+ return colorIdMap;
5790
+ };
5234
5791
  class Builder {
5235
5792
  _vseed;
5236
5793
  _advancedVSeed = null;
@@ -5242,11 +5799,22 @@ class Builder {
5242
5799
  build = ()=>build(this);
5243
5800
  buildSpec = (advanced)=>buildSpec(this, advanced);
5244
5801
  buildAdvanced = ()=>buildAdvanced(this);
5245
- getAdvancedPipeline = (chartType)=>Builder._advancedPipelineMap[chartType];
5246
- getSpecPipeline = (chartType)=>Builder._specPipelineMap[chartType];
5802
+ getAdvancedPipeline = (chartType)=>{
5803
+ const customPipe = Builder._customAdvancedPipe[chartType];
5804
+ const pipeline = Builder._advancedPipelineMap[chartType];
5805
+ if (customPipe) pipeline.push(customPipe);
5806
+ return pipeline;
5807
+ };
5808
+ getSpecPipeline = (chartType)=>{
5809
+ const customPipe = Builder._customSpecPipe[chartType];
5810
+ const pipeline = Builder._specPipelineMap[chartType];
5811
+ if (customPipe) pipeline.push(customPipe);
5812
+ return pipeline;
5813
+ };
5247
5814
  getTheme = (themeKey)=>Builder._themeMap[themeKey];
5248
5815
  getThemeMap = ()=>Builder._themeMap;
5249
5816
  getColorItems = ()=>getColorItems(this);
5817
+ getColorIdMap = ()=>getColorIdMap(this);
5250
5818
  get vseed() {
5251
5819
  return this._vseed;
5252
5820
  }
@@ -5267,6 +5835,8 @@ class Builder {
5267
5835
  }
5268
5836
  static _advancedPipelineMap = {};
5269
5837
  static _specPipelineMap = {};
5838
+ static _customAdvancedPipe = {};
5839
+ static _customSpecPipe = {};
5270
5840
  static _themeMap = {};
5271
5841
  static from = (vseed)=>new Builder(vseed);
5272
5842
  }
@@ -5290,6 +5860,10 @@ const registerAreaPercent = ()=>{
5290
5860
  Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
5291
5861
  Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
5292
5862
  };
5863
+ const registerAreaRange = ()=>{
5864
+ Builder._advancedPipelineMap.areaRange = areaRangeAdvancedPipeline;
5865
+ Builder._specPipelineMap.areaRange = areaRangeSpecPipeline;
5866
+ };
5293
5867
  const registerBarPercent = ()=>{
5294
5868
  Builder._advancedPipelineMap.barPercent = barPercentAdvancedPipeline;
5295
5869
  Builder._specPipelineMap.barPercent = barPercentSpecPipeline;
@@ -5582,6 +6156,12 @@ const lightTheme = ()=>{
5582
6156
  yAxis: linearAxis,
5583
6157
  crosshairLine
5584
6158
  },
6159
+ areaRange: {
6160
+ ...baseConfig,
6161
+ xAxis: bandAxis,
6162
+ yAxis: linearAxis,
6163
+ crosshairLine
6164
+ },
5585
6165
  scatter: {
5586
6166
  ...baseConfig,
5587
6167
  xAxis: {
@@ -5875,6 +6455,12 @@ const darkTheme = ()=>{
5875
6455
  yAxis: linearAxis,
5876
6456
  crosshairLine: crosshairLine
5877
6457
  },
6458
+ areaRange: {
6459
+ ...baseConfig,
6460
+ xAxis: bandAxis,
6461
+ yAxis: linearAxis,
6462
+ crosshairLine: crosshairLine
6463
+ },
5878
6464
  scatter: {
5879
6465
  ...baseConfig,
5880
6466
  xAxis: {
@@ -5948,6 +6534,7 @@ const registerAll = ()=>{
5948
6534
  registerBarPercent();
5949
6535
  registerArea();
5950
6536
  registerAreaPercent();
6537
+ registerAreaRange();
5951
6538
  registerPie();
5952
6539
  registerDonut();
5953
6540
  registerRose();
@@ -5959,7 +6546,14 @@ const registerAll = ()=>{
5959
6546
  registerLightTheme();
5960
6547
  registerDarkTheme();
5961
6548
  };
6549
+ const updateAdvanced = (chartType, advancedPipe)=>{
6550
+ Builder._customAdvancedPipe[chartType] = advancedPipe;
6551
+ };
6552
+ const updateSpec = (chartType, specPipe)=>{
6553
+ Builder._customSpecPipe[chartType] = specPipe;
6554
+ };
5962
6555
  const external_zod_namespaceObject = require("zod");
6556
+ var external_zod_default = /*#__PURE__*/ __webpack_require__.n(external_zod_namespaceObject);
5963
6557
  const zChartType = external_zod_namespaceObject.z["enum"]([
5964
6558
  'table',
5965
6559
  'pivotTable',
@@ -5972,6 +6566,7 @@ const zChartType = external_zod_namespaceObject.z["enum"]([
5972
6566
  'barParallel',
5973
6567
  'area',
5974
6568
  'areaPercent',
6569
+ 'areaRange',
5975
6570
  'rose',
5976
6571
  'roseParallel',
5977
6572
  'pie',
@@ -6302,6 +6897,7 @@ const zAreaConfig = external_zod_namespaceObject.z.object({
6302
6897
  crosshairLine: zCrosshairLine.optional()
6303
6898
  });
6304
6899
  const zAreaPercentConfig = zAreaConfig;
6900
+ const zAreaRangeConfig = zAreaConfig;
6305
6901
  const zRoseConfig = external_zod_namespaceObject.z.object({
6306
6902
  backgroundColor: zBackgroundColor.optional(),
6307
6903
  label: zLabel.optional(),
@@ -6354,6 +6950,7 @@ const zConfig = external_zod_namespaceObject.z.object({
6354
6950
  barPercent: zBarPercentConfig.optional(),
6355
6951
  area: zAreaConfig.optional(),
6356
6952
  areaPercent: zAreaPercentConfig.optional(),
6953
+ areaRange: zAreaRangeConfig.optional(),
6357
6954
  rose: zRoseConfig.optional(),
6358
6955
  roseParallel: zRoseParallelConfig.optional(),
6359
6956
  pie: zPieConfig.optional(),
@@ -6716,6 +7313,25 @@ const zAnnotation = external_zod_namespaceObject.z.object({
6716
7313
  annotationHorizontalLine: zAnnotationHorizontalLine.or(external_zod_namespaceObject.z.array(zAnnotationHorizontalLine)).optional(),
6717
7314
  annotationArea: zAnnotationArea.or(external_zod_namespaceObject.z.array(zAnnotationArea)).optional()
6718
7315
  });
7316
+ const zSortAxis = external_zod_namespaceObject.z.object({
7317
+ order: external_zod_namespaceObject.z["enum"]([
7318
+ 'asc',
7319
+ 'desc'
7320
+ ]).default('asc'),
7321
+ orderBy: external_zod_namespaceObject.z.string().optional(),
7322
+ customOrder: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.any()).optional()
7323
+ });
7324
+ const zSortLegend = external_zod_namespaceObject.z.object({
7325
+ order: external_zod_namespaceObject.z["enum"]([
7326
+ 'asc',
7327
+ 'desc'
7328
+ ]).default('asc'),
7329
+ orderBy: external_zod_namespaceObject.z.string().optional(),
7330
+ customOrder: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.any()).optional()
7331
+ });
7332
+ const zAnalysis = external_zod_default().object({
7333
+ orderMapping: external_zod_default().record(external_zod_default().string(), external_zod_default().array(external_zod_default().string())).optional()
7334
+ });
6719
7335
  const zLocale = external_zod_namespaceObject.z["enum"]([
6720
7336
  'zh-CN',
6721
7337
  'en-US'
@@ -6751,6 +7367,8 @@ const zLine = external_zod_namespaceObject.z.object({
6751
7367
  xAxis: zXBandAxis.optional(),
6752
7368
  yAxis: zYLinearAxis.optional(),
6753
7369
  crosshairLine: zCrosshairLine.optional(),
7370
+ sortAxis: zSortAxis.optional(),
7371
+ sortLegend: zSortLegend.optional(),
6754
7372
  theme: zTheme.optional(),
6755
7373
  pointStyle: zPointStyle.optional(),
6756
7374
  lineStyle: zLineStyle.optional(),
@@ -6938,6 +7556,26 @@ const zAreaPercent = external_zod_namespaceObject.z.object({
6938
7556
  annotationArea: external_zod_namespaceObject.z.array(zAnnotationArea).or(zAnnotationArea).optional(),
6939
7557
  locale: zLocale.optional()
6940
7558
  });
7559
+ const zAreaRange = external_zod_namespaceObject.z.object({
7560
+ chartType: external_zod_namespaceObject.z.literal('areaRange'),
7561
+ dataset: zDataset.optional(),
7562
+ dimensions: zDimensions.optional(),
7563
+ measures: zMeasureTree.optional(),
7564
+ backgroundColor: zBackgroundColor.optional(),
7565
+ label: zLabel.optional(),
7566
+ xAxis: zXBandAxis.optional(),
7567
+ yAxis: zYLinearAxis.optional(),
7568
+ crosshairLine: zCrosshairLine.optional(),
7569
+ theme: zTheme.optional(),
7570
+ pointStyle: zPointStyle.optional(),
7571
+ lineStyle: zLineStyle.optional(),
7572
+ areaStyle: zAreaStyle.optional(),
7573
+ annotationPoint: external_zod_namespaceObject.z.array(zAnnotationPoint).or(zAnnotationPoint).optional(),
7574
+ annotationVerticalLine: external_zod_namespaceObject.z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).optional(),
7575
+ annotationHorizontalLine: external_zod_namespaceObject.z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).optional(),
7576
+ annotationArea: external_zod_namespaceObject.z.array(zAnnotationArea).or(zAnnotationArea).optional(),
7577
+ locale: zLocale.optional()
7578
+ });
6941
7579
  const zRose = external_zod_namespaceObject.z.object({
6942
7580
  chartType: external_zod_namespaceObject.z.literal('rose'),
6943
7581
  dataset: zDataset.optional(),
@@ -7036,6 +7674,7 @@ const zVSeed = external_zod_namespaceObject.z.discriminatedUnion('chartType', [
7036
7674
  zBarPercent,
7037
7675
  zArea,
7038
7676
  zAreaPercent,
7677
+ zAreaRange,
7039
7678
  zPie,
7040
7679
  zRose,
7041
7680
  zRoseParallel,
@@ -7051,6 +7690,7 @@ const zAdvancedVSeed = external_zod_namespaceObject.z.object({
7051
7690
  measures: zMeasureTree,
7052
7691
  encoding: zEncoding,
7053
7692
  config: zConfig,
7693
+ analysis: zAnalysis,
7054
7694
  theme: zTheme,
7055
7695
  markStyle: zMarkStyle,
7056
7696
  customTheme: zCustomThemeConfig,
@@ -7068,6 +7708,8 @@ exports.UnfoldDimensionGroupId = __webpack_exports__.UnfoldDimensionGroupId;
7068
7708
  exports.areaAdvancedPipeline = __webpack_exports__.areaAdvancedPipeline;
7069
7709
  exports.areaPercentAdvancedPipeline = __webpack_exports__.areaPercentAdvancedPipeline;
7070
7710
  exports.areaPercentSpecPipeline = __webpack_exports__.areaPercentSpecPipeline;
7711
+ exports.areaRangeAdvancedPipeline = __webpack_exports__.areaRangeAdvancedPipeline;
7712
+ exports.areaRangeSpecPipeline = __webpack_exports__.areaRangeSpecPipeline;
7071
7713
  exports.areaSpecPipeline = __webpack_exports__.areaSpecPipeline;
7072
7714
  exports.autoFormatter = __webpack_exports__.autoFormatter;
7073
7715
  exports.autoNumFormatter = __webpack_exports__.autoNumFormatter;
@@ -7086,6 +7728,7 @@ exports.columnSpecPipeline = __webpack_exports__.columnSpecPipeline;
7086
7728
  exports.createFormatter = __webpack_exports__.createFormatter;
7087
7729
  exports.createNumFormatter = __webpack_exports__.createNumFormatter;
7088
7730
  exports.darkTheme = __webpack_exports__.darkTheme;
7731
+ exports.dataReshapeFor1D = __webpack_exports__.dataReshapeFor1D;
7089
7732
  exports.dataReshapeFor1D1M = __webpack_exports__.dataReshapeFor1D1M;
7090
7733
  exports.dataReshapeFor1D2M = __webpack_exports__.dataReshapeFor1D2M;
7091
7734
  exports.dataReshapeFor2D1M = __webpack_exports__.dataReshapeFor2D1M;
@@ -7119,6 +7762,7 @@ exports.preorderTraverse = __webpack_exports__.preorderTraverse;
7119
7762
  exports.registerAll = __webpack_exports__.registerAll;
7120
7763
  exports.registerArea = __webpack_exports__.registerArea;
7121
7764
  exports.registerAreaPercent = __webpack_exports__.registerAreaPercent;
7765
+ exports.registerAreaRange = __webpack_exports__.registerAreaRange;
7122
7766
  exports.registerBar = __webpack_exports__.registerBar;
7123
7767
  exports.registerBarParallel = __webpack_exports__.registerBarParallel;
7124
7768
  exports.registerBarPercent = __webpack_exports__.registerBarPercent;
@@ -7146,7 +7790,10 @@ exports.scatterSpecPipeline = __webpack_exports__.scatterSpecPipeline;
7146
7790
  exports.tableAdvancedPipeline = __webpack_exports__.tableAdvancedPipeline;
7147
7791
  exports.tableSpecPipeline = __webpack_exports__.tableSpecPipeline;
7148
7792
  exports.unfoldDimensions = __webpack_exports__.unfoldDimensions;
7793
+ exports.updateAdvanced = __webpack_exports__.updateAdvanced;
7794
+ exports.updateSpec = __webpack_exports__.updateSpec;
7149
7795
  exports.zAdvancedVSeed = __webpack_exports__.zAdvancedVSeed;
7796
+ exports.zAnalysis = __webpack_exports__.zAnalysis;
7150
7797
  exports.zAnnotation = __webpack_exports__.zAnnotation;
7151
7798
  exports.zAnnotationArea = __webpack_exports__.zAnnotationArea;
7152
7799
  exports.zAnnotationHorizontalLine = __webpack_exports__.zAnnotationHorizontalLine;
@@ -7156,6 +7803,8 @@ exports.zArea = __webpack_exports__.zArea;
7156
7803
  exports.zAreaConfig = __webpack_exports__.zAreaConfig;
7157
7804
  exports.zAreaPercent = __webpack_exports__.zAreaPercent;
7158
7805
  exports.zAreaPercentConfig = __webpack_exports__.zAreaPercentConfig;
7806
+ exports.zAreaRange = __webpack_exports__.zAreaRange;
7807
+ exports.zAreaRangeConfig = __webpack_exports__.zAreaRangeConfig;
7159
7808
  exports.zAreaStyle = __webpack_exports__.zAreaStyle;
7160
7809
  exports.zAxis = __webpack_exports__.zAxis;
7161
7810
  exports.zBackgroundColor = __webpack_exports__.zBackgroundColor;
@@ -7216,6 +7865,8 @@ exports.zRoseParallel = __webpack_exports__.zRoseParallel;
7216
7865
  exports.zRoseParallelConfig = __webpack_exports__.zRoseParallelConfig;
7217
7866
  exports.zScatter = __webpack_exports__.zScatter;
7218
7867
  exports.zScatterConfig = __webpack_exports__.zScatterConfig;
7868
+ exports.zSortAxis = __webpack_exports__.zSortAxis;
7869
+ exports.zSortLegend = __webpack_exports__.zSortLegend;
7219
7870
  exports.zStackCornerRadius = __webpack_exports__.zStackCornerRadius;
7220
7871
  exports.zTable = __webpack_exports__.zTable;
7221
7872
  exports.zTableConfig = __webpack_exports__.zTableConfig;
@@ -7239,6 +7890,8 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
7239
7890
  "areaAdvancedPipeline",
7240
7891
  "areaPercentAdvancedPipeline",
7241
7892
  "areaPercentSpecPipeline",
7893
+ "areaRangeAdvancedPipeline",
7894
+ "areaRangeSpecPipeline",
7242
7895
  "areaSpecPipeline",
7243
7896
  "autoFormatter",
7244
7897
  "autoNumFormatter",
@@ -7257,6 +7910,7 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
7257
7910
  "createFormatter",
7258
7911
  "createNumFormatter",
7259
7912
  "darkTheme",
7913
+ "dataReshapeFor1D",
7260
7914
  "dataReshapeFor1D1M",
7261
7915
  "dataReshapeFor1D2M",
7262
7916
  "dataReshapeFor2D1M",
@@ -7290,6 +7944,7 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
7290
7944
  "registerAll",
7291
7945
  "registerArea",
7292
7946
  "registerAreaPercent",
7947
+ "registerAreaRange",
7293
7948
  "registerBar",
7294
7949
  "registerBarParallel",
7295
7950
  "registerBarPercent",
@@ -7317,7 +7972,10 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
7317
7972
  "tableAdvancedPipeline",
7318
7973
  "tableSpecPipeline",
7319
7974
  "unfoldDimensions",
7975
+ "updateAdvanced",
7976
+ "updateSpec",
7320
7977
  "zAdvancedVSeed",
7978
+ "zAnalysis",
7321
7979
  "zAnnotation",
7322
7980
  "zAnnotationArea",
7323
7981
  "zAnnotationHorizontalLine",
@@ -7327,6 +7985,8 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
7327
7985
  "zAreaConfig",
7328
7986
  "zAreaPercent",
7329
7987
  "zAreaPercentConfig",
7988
+ "zAreaRange",
7989
+ "zAreaRangeConfig",
7330
7990
  "zAreaStyle",
7331
7991
  "zAxis",
7332
7992
  "zBackgroundColor",
@@ -7387,6 +8047,8 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
7387
8047
  "zRoseParallelConfig",
7388
8048
  "zScatter",
7389
8049
  "zScatterConfig",
8050
+ "zSortAxis",
8051
+ "zSortLegend",
7390
8052
  "zStackCornerRadius",
7391
8053
  "zTable",
7392
8054
  "zTableConfig",