@visactor/vseed 0.0.40 → 0.1.1
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.
- package/dist/builder/builder/builder.d.ts +61 -671
- package/dist/builder/register/chartType/index.d.ts +0 -1
- package/dist/dataReshape/constant.d.ts +17 -2
- package/dist/dataReshape/dataReshapeByEncoding.d.ts +11 -0
- package/dist/dataReshape/index.d.ts +3 -7
- package/dist/dataReshape/unfoldDimensions.d.ts +12 -14
- package/dist/index.cjs +1184 -1891
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1106 -1822
- package/dist/index.js.map +1 -1
- package/dist/pipeline/advanced/chart/pipeline/index.d.ts +0 -1
- package/dist/pipeline/advanced/chart/pipes/analysis/index.d.ts +3 -1
- package/dist/pipeline/advanced/chart/pipes/analysis/sort.d.ts +0 -4
- package/dist/pipeline/advanced/chart/pipes/{encoding/encodingAR.d.ts → analysis/sortLegend.d.ts} +1 -1
- package/dist/pipeline/advanced/chart/pipes/analysis/sortXBand.d.ts +3 -0
- package/dist/pipeline/advanced/chart/pipes/{encoding/encodingPie.d.ts → analysis/sortYBand.d.ts} +1 -1
- package/dist/pipeline/advanced/chart/pipes/encoding/{encodingFunnel.d.ts → bar.d.ts} +1 -1
- package/dist/pipeline/advanced/chart/pipes/encoding/{encodingAreaRange.d.ts → column.d.ts} +1 -1
- package/dist/pipeline/advanced/chart/pipes/encoding/dualAxis.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/funnel.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/heatmap.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/index.d.ts +8 -9
- package/dist/pipeline/advanced/chart/pipes/encoding/{encodingMatrix.d.ts → pie.d.ts} +1 -1
- package/dist/pipeline/advanced/chart/pipes/encoding/radar.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/rose.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/scatter.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/init/autoScatterMeasures.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/init/index.d.ts +2 -1
- package/dist/pipeline/advanced/chart/pipes/reshape/index.d.ts +4 -12
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipeline/index.d.ts +0 -1
- package/dist/pipeline/spec/chart/pipes/color/index.d.ts +0 -1
- package/dist/pipeline/spec/chart/pipes/{color/linearColor.d.ts → dataset/datasetScatter.d.ts} +1 -1
- package/dist/pipeline/spec/chart/pipes/dataset/index.d.ts +1 -0
- package/dist/pipeline/spec/chart/pipes/init/index.d.ts +1 -2
- package/dist/pipeline/spec/chart/pipes/legend/index.d.ts +0 -1
- package/dist/pipeline/spec/chart/pipes/tooltip/index.d.ts +0 -1
- package/dist/types/advancedVSeed.d.ts +26 -311
- package/dist/types/chartType/area/area.d.ts +13 -1
- package/dist/types/chartType/area/zArea.d.ts +14 -0
- package/dist/types/chartType/areaPercent/areaPercent.d.ts +13 -1
- package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +14 -0
- package/dist/types/chartType/bar/bar.d.ts +22 -30
- package/dist/types/chartType/bar/zBar.d.ts +14 -0
- package/dist/types/chartType/barParallel/barParallel.d.ts +21 -30
- package/dist/types/chartType/barParallel/zBarParallel.d.ts +14 -0
- package/dist/types/chartType/barPercent/barPercent.d.ts +19 -21
- package/dist/types/chartType/barPercent/zBarPercent.d.ts +14 -0
- package/dist/types/chartType/column/column.d.ts +19 -28
- package/dist/types/chartType/column/zColumn.d.ts +14 -0
- package/dist/types/chartType/columnParallel/columnParallel.d.ts +22 -27
- package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +14 -0
- package/dist/types/chartType/columnPercent/columnPercent.d.ts +19 -25
- package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +14 -0
- package/dist/types/chartType/donut/donut.d.ts +12 -1
- package/dist/types/chartType/donut/zDonut.d.ts +14 -0
- package/dist/types/chartType/dualAxis/dualAxis.d.ts +13 -1
- package/dist/types/chartType/funnel/funnel.d.ts +12 -1
- package/dist/types/chartType/funnel/zFunnel.d.ts +14 -0
- package/dist/types/chartType/heatmap/heatmap.d.ts +13 -1
- package/dist/types/chartType/index.d.ts +0 -1
- package/dist/types/chartType/line/line.d.ts +17 -10
- package/dist/types/chartType/line/zLine.d.ts +14 -0
- package/dist/types/chartType/pie/pie.d.ts +12 -1
- package/dist/types/chartType/pie/zPie.d.ts +14 -0
- package/dist/types/chartType/radar/radar.d.ts +13 -1
- package/dist/types/chartType/radar/zRadar.d.ts +14 -0
- package/dist/types/chartType/rose/rose.d.ts +13 -1
- package/dist/types/chartType/rose/zRose.d.ts +14 -0
- package/dist/types/chartType/roseParallel/roseParallel.d.ts +13 -1
- package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +14 -0
- package/dist/types/chartType/scatter/scatter.d.ts +92 -5
- package/dist/types/chartType/scatter/zScatter.d.ts +155 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/properties/chartType/chartType.d.ts +1 -3
- package/dist/types/properties/config/config.d.ts +0 -307
- package/dist/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +13 -38
- package/dist/types/properties/datasetReshapeInfo/index.d.ts +1 -1
- package/dist/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +43 -0
- package/dist/types/properties/encoding/encoding.d.ts +49 -16
- package/dist/types/properties/encoding/index.d.ts +2 -2
- package/dist/types/properties/encoding/zEncoding.d.ts +29 -0
- package/dist/types/properties/measures/index.d.ts +4 -2
- package/dist/types/properties/measures/scatterMeasures.d.ts +6 -0
- package/dist/types/properties/measures/zScatterMeasures.d.ts +283 -0
- package/dist/types/properties/theme/customTheme.d.ts +0 -306
- package/dist/types/vseed.d.ts +2 -16816
- package/dist/types/zVseed.d.ts +15738 -0
- package/dist/umd/index.js +1134 -1847
- package/dist/umd/index.js.map +1 -1
- package/package.json +13 -5
- package/dist/builder/register/chartType/areaRange.d.ts +0 -1
- package/dist/dataReshape/dataReshapeFor1D.d.ts +0 -19
- package/dist/dataReshape/dataReshapeFor1D1M.d.ts +0 -19
- package/dist/dataReshape/dataReshapeFor1D2M.d.ts +0 -19
- package/dist/dataReshape/dataReshapeFor2D1M.d.ts +0 -19
- package/dist/dataReshape/dataReshapeFor2D1M0Name.d.ts +0 -19
- package/dist/dataReshape/unfoldZeroDimensions.d.ts +0 -10
- package/dist/pipeline/advanced/chart/pipeline/areaRange.d.ts +0 -2
- package/dist/pipeline/advanced/chart/pipes/encoding/encodingRose.d.ts +0 -2
- package/dist/pipeline/advanced/chart/pipes/encoding/encodingXY.d.ts +0 -2
- package/dist/pipeline/advanced/chart/pipes/encoding/encodingXYY.d.ts +0 -2
- package/dist/pipeline/advanced/chart/pipes/encoding/encodingYX.d.ts +0 -2
- package/dist/pipeline/advanced/chart/pipes/encoding/encodingYY.d.ts +0 -2
- package/dist/pipeline/advanced/chart/pipes/init/autoMeasuresBy2M1Group.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D1M.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D2M.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D1M.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D1M0Name.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D2M.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeTo1D.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeTo1D1M.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeTo1D2M.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeTo2D1M.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeTo2D1M0Name.d.ts +0 -8
- package/dist/pipeline/advanced/chart/pipes/reshape/reshapeTo2D2M.d.ts +0 -8
- package/dist/pipeline/spec/chart/pipeline/areaRange.d.ts +0 -1
- package/dist/pipeline/spec/chart/pipes/init/areaRange.d.ts +0 -4
- package/dist/pipeline/spec/chart/pipes/legend/colorLegend.d.ts +0 -2
- package/dist/pipeline/spec/chart/pipes/tooltip/tooltipAreaRange.d.ts +0 -2
- package/dist/types/chartType/areaRange/areaRange.d.ts +0 -151
- package/dist/types/chartType/areaRange/index.d.ts +0 -2
- package/dist/types/chartType/areaRange/zAreaRange.d.ts +0 -1427
- /package/dist/pipeline/spec/chart/pipes/init/{initDualAxis.d.ts → dualAxis.d.ts} +0 -0
package/dist/umd/index.js
CHANGED
@@ -40,14 +40,16 @@
|
|
40
40
|
isTable: ()=>isTable,
|
41
41
|
zDonut: ()=>zDonut,
|
42
42
|
zDualMeasures: ()=>zDualMeasures,
|
43
|
-
|
43
|
+
XEncoding: ()=>XEncoding,
|
44
44
|
findFirstMeasure: ()=>findFirstMeasure,
|
45
45
|
scatterAdvancedPipeline: ()=>scatterAdvancedPipeline,
|
46
|
+
zPie: ()=>zPie,
|
46
47
|
zRoseConfig: ()=>zRoseConfig,
|
47
48
|
updateSpec: ()=>updateSpec,
|
48
49
|
zCrosshairRect: ()=>zCrosshairRect,
|
49
50
|
scatterSpecPipeline: ()=>scatterSpecPipeline,
|
50
51
|
intl: ()=>intl,
|
52
|
+
zScatterMeasures: ()=>zScatterMeasures,
|
51
53
|
columnPercentAdvancedPipeline: ()=>columnPercentAdvancedPipeline,
|
52
54
|
zColumnConfig: ()=>zColumnConfig,
|
53
55
|
zAnnotation: ()=>zAnnotation,
|
@@ -57,12 +59,11 @@
|
|
57
59
|
pivotTableAdvancedPipeline: ()=>pivotTableAdvancedPipeline,
|
58
60
|
isMeasures: ()=>isMeasures,
|
59
61
|
zYBandAxis: ()=>zYBandAxis,
|
60
|
-
dataReshapeFor1D2M: ()=>dataReshapeFor1D2M,
|
61
62
|
zAnnotationHorizontalLine: ()=>zAnnotationHorizontalLine,
|
63
|
+
zYLinearAxis: ()=>zYLinearAxis,
|
62
64
|
zMarkStyle: ()=>zMarkStyle,
|
63
65
|
registerFunnel: ()=>registerFunnel,
|
64
66
|
Separator: ()=>Separator,
|
65
|
-
zYLinearAxis: ()=>zYLinearAxis,
|
66
67
|
columnAdvancedPipeline: ()=>columnAdvancedPipeline,
|
67
68
|
zLabel: ()=>zLabel,
|
68
69
|
registerColumn: ()=>registerColumn,
|
@@ -75,16 +76,16 @@
|
|
75
76
|
zDimensionTree: ()=>zDimensionTree,
|
76
77
|
roseParallelSpecPipeline: ()=>roseParallelSpecPipeline,
|
77
78
|
zLineStyle: ()=>zLineStyle,
|
78
|
-
dataReshapeFor1D1M: ()=>dataReshapeFor1D1M,
|
79
79
|
registerArea: ()=>registerArea,
|
80
80
|
zRoseParallel: ()=>zRoseParallel,
|
81
|
+
MeasureName: ()=>MeasureName,
|
81
82
|
zDataset: ()=>zDataset,
|
82
83
|
UnfoldDimensionGroupId: ()=>UnfoldDimensionGroupId,
|
83
84
|
zNumFormat: ()=>zNumFormat,
|
84
85
|
barPercentAdvancedPipeline: ()=>barPercentAdvancedPipeline,
|
85
86
|
findAllDimensions: ()=>findAllDimensions,
|
87
|
+
FoldYMeasureValue: ()=>FoldYMeasureValue,
|
86
88
|
findDimensionById: ()=>findDimensionById,
|
87
|
-
zAreaRangeConfig: ()=>zAreaRangeConfig,
|
88
89
|
zPivotTableConfig: ()=>zPivotTableConfig,
|
89
90
|
zArea: ()=>zArea,
|
90
91
|
zColumnParallel: ()=>zColumnParallel,
|
@@ -96,25 +97,26 @@
|
|
96
97
|
registerAreaPercent: ()=>registerAreaPercent,
|
97
98
|
zHeatmap: ()=>zHeatmap,
|
98
99
|
zBarPercent: ()=>zBarPercent,
|
100
|
+
zScatterMeasure: ()=>zScatterMeasure,
|
99
101
|
zTheme: ()=>zTheme,
|
100
102
|
zDatum: ()=>zDatum,
|
101
103
|
barAdvancedPipeline: ()=>barAdvancedPipeline,
|
102
104
|
zCustomThemeConfig: ()=>zCustomThemeConfig,
|
103
105
|
registerColumnPercent: ()=>registerColumnPercent,
|
104
106
|
registerHeatmap: ()=>registerHeatmap,
|
105
|
-
registerAreaRange: ()=>registerAreaRange,
|
106
|
-
roseSpecPipeline: ()=>roseSpecPipeline,
|
107
|
-
dataReshapeFor2D1M0Name: ()=>dataReshapeFor2D1M0Name,
|
108
107
|
registerBarPercent: ()=>registerBarPercent,
|
108
|
+
roseSpecPipeline: ()=>roseSpecPipeline,
|
109
|
+
ColorIdEncoding: ()=>ColorIdEncoding,
|
110
|
+
zCrosshairLine: ()=>zCrosshairLine,
|
109
111
|
registerLightTheme: ()=>registerLightTheme,
|
110
112
|
roseAdvancedPipeline: ()=>roseAdvancedPipeline,
|
111
113
|
zBarParallel: ()=>zBarParallel,
|
112
114
|
registerDarkTheme: ()=>registerDarkTheme,
|
113
115
|
registerPivotTable: ()=>registerPivotTable,
|
114
116
|
isPartialDatumSelector: ()=>isPartialDatumSelector,
|
117
|
+
pieSpecPipeline: ()=>pieSpecPipeline,
|
115
118
|
isDimensionGroup: ()=>isDimensionGroup,
|
116
119
|
dualAxisSpecPipeline: ()=>dualAxisSpecPipeline,
|
117
|
-
pieSpecPipeline: ()=>pieSpecPipeline,
|
118
120
|
tableAdvancedPipeline: ()=>tableAdvancedPipeline,
|
119
121
|
barSpecPipeline: ()=>barSpecPipeline,
|
120
122
|
zAnnotationVerticalLine: ()=>zAnnotationVerticalLine,
|
@@ -123,15 +125,15 @@
|
|
123
125
|
unfoldDimensions: ()=>unfoldDimensions,
|
124
126
|
roseParallelAdvancedPipeline: ()=>roseParallelAdvancedPipeline,
|
125
127
|
registerTable: ()=>registerTable,
|
126
|
-
|
128
|
+
Builder: ()=>Builder,
|
127
129
|
isMeasureGroup: ()=>isMeasureGroup,
|
128
|
-
|
130
|
+
YEncoding: ()=>YEncoding,
|
129
131
|
registerAll: ()=>registerAll,
|
130
132
|
registerBar: ()=>registerBar,
|
131
133
|
isVChart: ()=>isVChart,
|
132
134
|
radarSpecPipeline: ()=>radarSpecPipeline,
|
133
|
-
|
134
|
-
|
135
|
+
findFirstDimension: ()=>findFirstDimension,
|
136
|
+
autoFormatter: ()=>autoFormatter,
|
135
137
|
zMeasureTree: ()=>zMeasureTree,
|
136
138
|
zPieConfig: ()=>zPieConfig,
|
137
139
|
registerLine: ()=>registerLine,
|
@@ -165,8 +167,9 @@
|
|
165
167
|
zRadarConfig: ()=>zRadarConfig,
|
166
168
|
zAnnotationArea: ()=>zAnnotationArea,
|
167
169
|
zStackCornerRadius: ()=>zStackCornerRadius,
|
168
|
-
|
170
|
+
DetailEncoding: ()=>DetailEncoding,
|
169
171
|
zRose: ()=>zRose,
|
172
|
+
zUnfoldInfo: ()=>zUnfoldInfo,
|
170
173
|
columnParallelSpecPipeline: ()=>columnParallelSpecPipeline,
|
171
174
|
i18n: ()=>i18n,
|
172
175
|
zPointStyle: ()=>zPointStyle,
|
@@ -188,30 +191,30 @@
|
|
188
191
|
FoldPrimaryMeasureValue: ()=>FoldPrimaryMeasureValue,
|
189
192
|
zTableConfig: ()=>zTableConfig,
|
190
193
|
zXBandAxis: ()=>zXBandAxis,
|
191
|
-
dataReshapeFor1D: ()=>dataReshapeFor1D,
|
192
194
|
zColumnPercentConfig: ()=>zColumnPercentConfig,
|
193
195
|
findMeasureById: ()=>findMeasureById,
|
194
196
|
zVSeed: ()=>zVSeed,
|
197
|
+
AngleEncoding: ()=>AngleEncoding,
|
195
198
|
areaPercentAdvancedPipeline: ()=>areaPercentAdvancedPipeline,
|
196
199
|
radarAdvancedPipeline: ()=>radarAdvancedPipeline,
|
197
|
-
zBackgroundColor: ()=>zBackgroundColor,
|
198
200
|
zAreaPercentConfig: ()=>zAreaPercentConfig,
|
201
|
+
zBackgroundColor: ()=>zBackgroundColor,
|
199
202
|
registerBarParallel: ()=>registerBarParallel,
|
200
203
|
registerRadar: ()=>registerRadar,
|
201
|
-
|
204
|
+
zEncodings: ()=>zEncodings,
|
202
205
|
isDimension: ()=>isDimension,
|
203
206
|
pivotTableSpecPipeline: ()=>pivotTableSpecPipeline,
|
204
|
-
|
205
|
-
|
207
|
+
zLocale: ()=>zLocale,
|
208
|
+
FoldXMeasureValue: ()=>FoldXMeasureValue,
|
206
209
|
dualAxisAdvancedPipeline: ()=>dualAxisAdvancedPipeline,
|
207
210
|
registerScatter: ()=>registerScatter,
|
208
|
-
|
209
|
-
|
211
|
+
zEncoding: ()=>zEncoding,
|
212
|
+
ColorEncoding: ()=>ColorEncoding,
|
210
213
|
autoNumFormatter: ()=>autoNumFormatter,
|
211
|
-
|
214
|
+
measureDepth: ()=>measureDepth,
|
212
215
|
tableSpecPipeline: ()=>tableSpecPipeline,
|
216
|
+
zAdvancedVSeed: ()=>zAdvancedVSeed,
|
213
217
|
zConfig: ()=>zConfig,
|
214
|
-
zEncoding: ()=>zEncoding,
|
215
218
|
zBarStyle: ()=>zBarStyle,
|
216
219
|
zMeasure: ()=>zMeasure,
|
217
220
|
zRoseParallelConfig: ()=>zRoseParallelConfig,
|
@@ -222,20 +225,20 @@
|
|
222
225
|
donutAdvancedPipeline: ()=>donutAdvancedPipeline,
|
223
226
|
zColumnPercent: ()=>zColumnPercent,
|
224
227
|
registerPie: ()=>registerPie,
|
225
|
-
dataReshapeFor2D1M: ()=>dataReshapeFor2D1M,
|
226
228
|
foldMeasures: ()=>foldMeasures,
|
227
229
|
isPivotTable: ()=>isPivotTable,
|
228
230
|
zFunnel: ()=>zFunnel,
|
229
231
|
zScatter: ()=>zScatter,
|
232
|
+
zScatterConfig: ()=>zScatterConfig,
|
230
233
|
zBarParallelConfig: ()=>zBarParallelConfig,
|
231
234
|
barParallelAdvancedPipeline: ()=>barParallelAdvancedPipeline,
|
232
235
|
FoldMeasureValue: ()=>FoldMeasureValue,
|
233
236
|
barPercentSpecPipeline: ()=>barPercentSpecPipeline,
|
234
237
|
lineAdvancedPipeline: ()=>lineAdvancedPipeline,
|
235
|
-
|
238
|
+
dataReshapeByEncoding: ()=>dataReshapeByEncoding,
|
236
239
|
lineSpecPipeline: ()=>lineSpecPipeline,
|
237
240
|
isDimensions: ()=>isDimensions,
|
238
|
-
|
241
|
+
zBarPercentConfig: ()=>zBarPercentConfig,
|
239
242
|
createFormatter: ()=>createFormatter,
|
240
243
|
zDimensionGroup: ()=>zDimensionGroup,
|
241
244
|
isMeasureSelector: ()=>isMeasureSelector,
|
@@ -1494,13 +1497,26 @@
|
|
1494
1497
|
const isVChart = (vseed)=>!isVTable(vseed);
|
1495
1498
|
const isPivotChart = (vseed)=>{
|
1496
1499
|
if (isVTable(vseed)) return false;
|
1497
|
-
if ('dualAxis' === vseed.chartType) {
|
1498
|
-
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1500
|
+
if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
|
1501
|
+
const { dimensions = [] } = vseed;
|
1502
|
+
const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
|
1503
|
+
if (hasRowOrColumnDimension) return true;
|
1504
|
+
if ('scatter' === vseed.chartType) {
|
1505
|
+
if (vseed.measures) {
|
1506
|
+
const depth = measureDepth(vseed.measures);
|
1507
|
+
if (3 === depth) return true;
|
1508
|
+
return false;
|
1509
|
+
}
|
1510
|
+
if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) return true;
|
1511
|
+
}
|
1512
|
+
if ('dualAxis' === vseed.chartType) {
|
1513
|
+
if (vseed.measures) {
|
1514
|
+
const depth = measureDepth(vseed.measures);
|
1515
|
+
if (3 === depth) return true;
|
1516
|
+
return false;
|
1517
|
+
}
|
1518
|
+
if (vseed.dualMeasures && vseed.dualMeasures.length > 1) return true;
|
1502
1519
|
}
|
1503
|
-
if (vseed.dualMeasures && vseed.dualMeasures.length > 1) return true;
|
1504
1520
|
return false;
|
1505
1521
|
}
|
1506
1522
|
const { measures = [], dimensions = [] } = vseed;
|
@@ -1579,6 +1595,24 @@
|
|
1579
1595
|
alias: '',
|
1580
1596
|
children: []
|
1581
1597
|
});
|
1598
|
+
const ORIGINAL_DATA = '__OriginalData__';
|
1599
|
+
const Separator = '-';
|
1600
|
+
const FoldMeasureName = '__MeaName__';
|
1601
|
+
const FoldMeasureId = '__MeaId__';
|
1602
|
+
const FoldMeasureValue = '__MeaValue__';
|
1603
|
+
const MeasureName = FoldMeasureName;
|
1604
|
+
const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
|
1605
|
+
const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
|
1606
|
+
const FoldXMeasureValue = '__MeaXValue__';
|
1607
|
+
const FoldYMeasureValue = '__MeaYValue__';
|
1608
|
+
const XEncoding = '__Dim_X__';
|
1609
|
+
const YEncoding = '__Dim_Y__';
|
1610
|
+
const AngleEncoding = '__Dim_Angle__';
|
1611
|
+
const DetailEncoding = '__Dim_Detail__';
|
1612
|
+
const ColorEncoding = '__Dim_Color__';
|
1613
|
+
const ColorIdEncoding = '__Dim_ColorId__';
|
1614
|
+
const UnfoldDimensionGroup = '__DimGroup__';
|
1615
|
+
const UnfoldDimensionGroupId = '__DimGroupID__';
|
1582
1616
|
const autoDimensions_autoDimensions = (advancedVSeed, context)=>{
|
1583
1617
|
const result = {
|
1584
1618
|
...advancedVSeed
|
@@ -1586,6 +1620,10 @@
|
|
1586
1620
|
const { vseed } = context;
|
1587
1621
|
const { dimensions, dataset } = vseed;
|
1588
1622
|
const measures = findAllMeasures(advancedVSeed.measures);
|
1623
|
+
const MeaName = {
|
1624
|
+
id: MeasureName,
|
1625
|
+
alias: intl.i18n`指标名称`
|
1626
|
+
};
|
1589
1627
|
if (!dataset) throw new Error('dataset is required');
|
1590
1628
|
if (0 === dataset.length) return result;
|
1591
1629
|
if (dimensions) {
|
@@ -1593,6 +1631,8 @@
|
|
1593
1631
|
location: 'dimension',
|
1594
1632
|
...dim
|
1595
1633
|
}));
|
1634
|
+
if (result.dimensions.some((dim)=>dim.id === MeasureName)) return result;
|
1635
|
+
result.dimensions.push(MeaName);
|
1596
1636
|
return result;
|
1597
1637
|
}
|
1598
1638
|
const top100dataset = dataset.slice(0, 100);
|
@@ -1609,23 +1649,57 @@
|
|
1609
1649
|
alias: dim,
|
1610
1650
|
location: 'dimension'
|
1611
1651
|
}));
|
1652
|
+
result.dimensions.push(MeaName);
|
1612
1653
|
return result;
|
1613
1654
|
};
|
1655
|
+
const encodingForColumn = (advancedVSeed, context)=>{
|
1656
|
+
const { vseed } = context;
|
1657
|
+
const { dimensions } = advancedVSeed;
|
1658
|
+
if (!dimensions) return advancedVSeed;
|
1659
|
+
const encoding = vseed.encoding;
|
1660
|
+
if (encoding) {
|
1661
|
+
const x = encoding.x || [
|
1662
|
+
dimensions[0].id
|
1663
|
+
];
|
1664
|
+
const color = encoding.color || [
|
1665
|
+
(dimensions[1] || dimensions[0]).id
|
1666
|
+
];
|
1667
|
+
const detail = encoding.detail || [];
|
1668
|
+
const mergedDetail = chunk_QJLMYOTX_i([
|
1669
|
+
...color,
|
1670
|
+
...detail
|
1671
|
+
]);
|
1672
|
+
return {
|
1673
|
+
...advancedVSeed,
|
1674
|
+
encoding: {
|
1675
|
+
...encoding,
|
1676
|
+
x,
|
1677
|
+
color,
|
1678
|
+
detail: mergedDetail
|
1679
|
+
}
|
1680
|
+
};
|
1681
|
+
}
|
1682
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
1683
|
+
const mergedEncoding = {
|
1684
|
+
x: dimensions.slice(0, 1).map((item)=>item.id),
|
1685
|
+
color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
1686
|
+
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
1687
|
+
tooltip: dimensions.map((item)=>item.id),
|
1688
|
+
label: [],
|
1689
|
+
row: [],
|
1690
|
+
column: []
|
1691
|
+
};
|
1692
|
+
return {
|
1693
|
+
...advancedVSeed,
|
1694
|
+
encoding: mergedEncoding
|
1695
|
+
};
|
1696
|
+
};
|
1614
1697
|
const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
|
1615
1698
|
const { vseed } = context;
|
1616
1699
|
const usePivotChart = isPivotChart(vseed);
|
1617
1700
|
if (usePivotChart) return execPipeline(pivotPipeline, context, advancedVSeed);
|
1618
1701
|
return execPipeline(pipeline, context, advancedVSeed);
|
1619
1702
|
};
|
1620
|
-
const FoldMeasureName = '__MeaName__';
|
1621
|
-
const FoldMeasureId = '__MeaId__';
|
1622
|
-
const FoldMeasureValue = '__MeaValue__';
|
1623
|
-
const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
|
1624
|
-
const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
|
1625
|
-
const UnfoldDimensionGroup = '__DimGroup__';
|
1626
|
-
const UnfoldDimensionGroupId = '__DimGroupID__';
|
1627
|
-
const Separator = '-';
|
1628
|
-
const ORIGINAL_DATA = '__OriginalData__';
|
1629
1703
|
function chunk_AIG3BDKO_i(...e) {
|
1630
1704
|
return chunk_WIMGWYZL_u(chunk_AIG3BDKO_n, e);
|
1631
1705
|
}
|
@@ -1676,84 +1750,53 @@
|
|
1676
1750
|
foldInfo
|
1677
1751
|
};
|
1678
1752
|
};
|
1679
|
-
const unfoldDimensions = (dataset, dimensions,
|
1680
|
-
|
1681
|
-
const dimensionsToBeUnfolded = dimensions.slice(unfoldStartIndex);
|
1682
|
-
const dimensionsToBeRemain = dimensions.slice(0, unfoldStartIndex);
|
1753
|
+
const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
|
1754
|
+
const { foldMeasureId, separator, colorItemAsId } = options;
|
1683
1755
|
const unfoldInfo = {
|
1684
|
-
|
1685
|
-
|
1756
|
+
encodingAngle: AngleEncoding,
|
1757
|
+
encodingX: XEncoding,
|
1758
|
+
encodingY: YEncoding,
|
1759
|
+
encodingDetail: DetailEncoding,
|
1760
|
+
encodingColor: ColorEncoding,
|
1761
|
+
encodingColorId: ColorIdEncoding,
|
1686
1762
|
colorItems: [],
|
1687
1763
|
colorIdMap: {}
|
1688
1764
|
};
|
1689
|
-
|
1690
|
-
|
1691
|
-
|
1692
|
-
|
1693
|
-
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1697
|
-
};
|
1698
|
-
const colorItems = [];
|
1699
|
-
const colorMap = {};
|
1765
|
+
const { color, x, y, detail, angle } = encoding;
|
1766
|
+
const angleDimensions = angle ? dimensions.filter((dim)=>angle.includes(dim.id)) : [];
|
1767
|
+
const xDimensions = x ? dimensions.filter((dim)=>x.includes(dim.id)) : [];
|
1768
|
+
const yDimensions = y ? dimensions.filter((dim)=>y.includes(dim.id)) : [];
|
1769
|
+
const colorDimensions = color ? dimensions.filter((dim)=>color.includes(dim.id)) : [];
|
1770
|
+
const detailDimensions = detail ? dimensions.filter((dim)=>detail.includes(dim.id)) : [];
|
1771
|
+
const colorItems = new Set();
|
1772
|
+
const colorIdMap = {};
|
1700
1773
|
for(let i = 0; i < dataset.length; i++){
|
1701
1774
|
const datum = dataset[i];
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
datum[
|
1708
|
-
datum[
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1775
|
+
applyEncoding(AngleEncoding, angleDimensions, datum, separator);
|
1776
|
+
applyEncoding(XEncoding, xDimensions, datum, separator);
|
1777
|
+
applyEncoding(YEncoding, yDimensions, datum, separator);
|
1778
|
+
applyEncoding(ColorEncoding, colorDimensions, datum, separator);
|
1779
|
+
applyEncoding(DetailEncoding, detailDimensions, datum, separator);
|
1780
|
+
if (!datum[ColorEncoding]) continue;
|
1781
|
+
const measureId = String(datum[foldMeasureId]);
|
1782
|
+
const colorItem = String(datum[ColorEncoding]);
|
1783
|
+
const colorId = colorItemAsId ? colorItem : measureId ? [
|
1784
|
+
colorItem,
|
1785
|
+
measureId
|
1786
|
+
].join(separator) : colorItem;
|
1787
|
+
datum[ColorIdEncoding] = colorId;
|
1788
|
+
colorIdMap[colorId] = colorItem;
|
1789
|
+
colorItems.add(colorId);
|
1715
1790
|
}
|
1716
|
-
unfoldInfo.colorItems =
|
1717
|
-
unfoldInfo.colorIdMap =
|
1791
|
+
unfoldInfo.colorItems = Array.from(colorItems);
|
1792
|
+
unfoldInfo.colorIdMap = colorIdMap;
|
1718
1793
|
return {
|
1719
1794
|
dataset,
|
1720
1795
|
unfoldInfo
|
1721
1796
|
};
|
1722
1797
|
};
|
1723
|
-
const
|
1724
|
-
|
1725
|
-
const unfoldInfo = {
|
1726
|
-
groupName: unfoldGroupName,
|
1727
|
-
groupId: unfoldGroupId,
|
1728
|
-
colorItems: [],
|
1729
|
-
colorIdMap: {}
|
1730
|
-
};
|
1731
|
-
if (0 === measures.length) return {
|
1732
|
-
dataset,
|
1733
|
-
unfoldInfo: {
|
1734
|
-
groupName: unfoldGroupName,
|
1735
|
-
groupId: unfoldGroupId,
|
1736
|
-
colorItems: [],
|
1737
|
-
colorIdMap: {}
|
1738
|
-
}
|
1739
|
-
};
|
1740
|
-
const colorItems = [];
|
1741
|
-
const colorMap = {};
|
1742
|
-
for(let i = 0; i < dataset.length; i++){
|
1743
|
-
const datum = dataset[i];
|
1744
|
-
const colorName = measureName;
|
1745
|
-
const colorId = measureName;
|
1746
|
-
datum[unfoldGroupName] = colorName;
|
1747
|
-
datum[unfoldGroupId] = colorId;
|
1748
|
-
colorItems.push(colorId);
|
1749
|
-
colorMap[colorId] = colorName;
|
1750
|
-
}
|
1751
|
-
unfoldInfo.colorItems = chunk_QJLMYOTX_i(colorItems);
|
1752
|
-
unfoldInfo.colorIdMap = colorMap;
|
1753
|
-
return {
|
1754
|
-
dataset,
|
1755
|
-
unfoldInfo
|
1756
|
-
};
|
1798
|
+
const applyEncoding = (encoding, dimensions, datum, separator)=>{
|
1799
|
+
if (encoding && dimensions.length) datum[encoding] = dimensions.map((dim)=>String(datum[dim.id])).join(separator);
|
1757
1800
|
};
|
1758
1801
|
const emptyReshapeResult = {
|
1759
1802
|
dataset: [],
|
@@ -1764,69 +1807,47 @@
|
|
1764
1807
|
measureValue: ''
|
1765
1808
|
},
|
1766
1809
|
unfoldInfo: {
|
1767
|
-
|
1768
|
-
|
1810
|
+
encodingAngle: AngleEncoding,
|
1811
|
+
encodingX: XEncoding,
|
1812
|
+
encodingY: YEncoding,
|
1813
|
+
encodingDetail: DetailEncoding,
|
1814
|
+
encodingColor: ColorEncoding,
|
1815
|
+
encodingColorId: ColorIdEncoding,
|
1769
1816
|
colorItems: [],
|
1770
1817
|
colorIdMap: {}
|
1771
1818
|
}
|
1772
1819
|
};
|
1773
|
-
const
|
1774
|
-
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue,
|
1820
|
+
const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)=>{
|
1821
|
+
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false } = options || {};
|
1775
1822
|
if (0 === dimensions.length && 0 === measures.length) return emptyReshapeResult;
|
1776
1823
|
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, foldMeasureId, foldMeasureName, foldMeasureValue);
|
1777
|
-
|
1778
|
-
|
1779
|
-
|
1780
|
-
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
|
1786
|
-
|
1787
|
-
unfoldInfo
|
1788
|
-
};
|
1789
|
-
}
|
1790
|
-
{
|
1791
|
-
const onlyOneMeasure = 1 === measures.length;
|
1792
|
-
const onlyOneDimension = 1 === dimensions.length;
|
1793
|
-
const dims = [
|
1794
|
-
...dimensions
|
1795
|
-
];
|
1796
|
-
if (!onlyOneMeasure || onlyOneDimension) dims.push({
|
1797
|
-
id: foldMeasureName,
|
1798
|
-
alias: i18n`指标名称`,
|
1799
|
-
location: 'dimension'
|
1800
|
-
});
|
1801
|
-
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dims, [
|
1802
|
-
{
|
1803
|
-
id: foldMeasureValue,
|
1804
|
-
alias: i18n`指标值`
|
1805
|
-
}
|
1806
|
-
], 1, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
|
1807
|
-
return {
|
1808
|
-
dataset: finalDataset,
|
1809
|
-
foldInfo,
|
1810
|
-
unfoldInfo
|
1811
|
-
};
|
1812
|
-
}
|
1824
|
+
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
|
1825
|
+
foldMeasureId,
|
1826
|
+
separator: Separator,
|
1827
|
+
colorItemAsId
|
1828
|
+
});
|
1829
|
+
return {
|
1830
|
+
dataset: finalDataset,
|
1831
|
+
foldInfo,
|
1832
|
+
unfoldInfo
|
1833
|
+
};
|
1813
1834
|
};
|
1814
|
-
const
|
1835
|
+
const reshapeWithEncoding = (advancedVSeed, context)=>{
|
1815
1836
|
const result = {
|
1816
1837
|
...advancedVSeed
|
1817
1838
|
};
|
1818
1839
|
const { vseed } = context;
|
1819
|
-
const { dataset } = vseed;
|
1820
|
-
const { dimensions, measures } = advancedVSeed;
|
1821
|
-
if (!measures || !dimensions || !dataset) return result;
|
1840
|
+
const { dataset, chartType } = vseed;
|
1841
|
+
const { dimensions, measures, encoding } = advancedVSeed;
|
1842
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
1822
1843
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
1823
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } =
|
1844
|
+
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding);
|
1824
1845
|
return {
|
1825
1846
|
...result,
|
1826
1847
|
dataset: newDatasets,
|
1827
1848
|
datasetReshapeInfo: [
|
1828
1849
|
{
|
1829
|
-
id:
|
1850
|
+
id: String(chartType),
|
1830
1851
|
index: 0,
|
1831
1852
|
foldInfo,
|
1832
1853
|
unfoldInfo
|
@@ -1836,31 +1857,27 @@
|
|
1836
1857
|
measures
|
1837
1858
|
};
|
1838
1859
|
};
|
1839
|
-
const
|
1860
|
+
const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
|
1840
1861
|
const result = {
|
1841
1862
|
...advancedVSeed
|
1842
1863
|
};
|
1843
1864
|
const { vseed } = context;
|
1844
1865
|
const { dataset } = vseed;
|
1845
|
-
const { measures } = advancedVSeed;
|
1846
|
-
|
1847
|
-
if (
|
1866
|
+
const { dimensions, measures, encoding } = advancedVSeed;
|
1867
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
1868
|
+
if (0 === measures.length) throw new Error('measures can not be empty');
|
1848
1869
|
const measureGroups = [];
|
1849
1870
|
if (measures) measures.forEach((measure)=>{
|
1850
1871
|
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
1851
1872
|
});
|
1852
|
-
const
|
1853
|
-
const newDatasets = [];
|
1873
|
+
const datasets = [];
|
1854
1874
|
const datasetReshapeInfo = [];
|
1855
1875
|
measureGroups.forEach((measureGroup, index)=>{
|
1856
1876
|
const measures = measureGroup.children;
|
1857
1877
|
if (!measures) return;
|
1858
1878
|
const groupId = measureGroup.id;
|
1859
|
-
const { dataset: newSubDataset, foldInfo, unfoldInfo } =
|
1860
|
-
|
1861
|
-
foldMeasureName: FoldMeasureName,
|
1862
|
-
foldMeasureValue: FoldMeasureValue + groupId,
|
1863
|
-
unfoldDimensionGroup: UnfoldDimensionGroup
|
1879
|
+
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1880
|
+
foldMeasureValue: `${FoldMeasureValue}${groupId}`
|
1864
1881
|
});
|
1865
1882
|
const reshapeInfo = {
|
1866
1883
|
id: groupId,
|
@@ -1868,52 +1885,15 @@
|
|
1868
1885
|
foldInfo,
|
1869
1886
|
unfoldInfo
|
1870
1887
|
};
|
1871
|
-
|
1888
|
+
datasets.push(newSubDataset);
|
1872
1889
|
datasetReshapeInfo.push(reshapeInfo);
|
1873
1890
|
});
|
1874
1891
|
return {
|
1875
1892
|
...result,
|
1876
|
-
dataset:
|
1893
|
+
dataset: datasets,
|
1877
1894
|
datasetReshapeInfo: datasetReshapeInfo
|
1878
1895
|
};
|
1879
1896
|
};
|
1880
|
-
const encodingXY = (advancedVSeed)=>{
|
1881
|
-
const result = {
|
1882
|
-
...advancedVSeed
|
1883
|
-
};
|
1884
|
-
const { datasetReshapeInfo, dimensions } = advancedVSeed;
|
1885
|
-
if (!datasetReshapeInfo || !dimensions) return result;
|
1886
|
-
const xDimension = dimensions.find((item)=>'rowDimension' !== item.location && 'columnDimension' !== item.location) || dimensions[0];
|
1887
|
-
const isZeroDimension = 0 === dimensions.length;
|
1888
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
1889
|
-
const { foldInfo, unfoldInfo } = cur;
|
1890
|
-
const x = [
|
1891
|
-
isZeroDimension ? foldInfo.measureName : xDimension?.id
|
1892
|
-
];
|
1893
|
-
const y = [
|
1894
|
-
foldInfo.measureValue
|
1895
|
-
];
|
1896
|
-
const group = [
|
1897
|
-
unfoldInfo.groupId
|
1898
|
-
];
|
1899
|
-
const color = [
|
1900
|
-
foldInfo.measureName
|
1901
|
-
];
|
1902
|
-
return [
|
1903
|
-
...prev,
|
1904
|
-
{
|
1905
|
-
x,
|
1906
|
-
y,
|
1907
|
-
group,
|
1908
|
-
color
|
1909
|
-
}
|
1910
|
-
];
|
1911
|
-
}, []);
|
1912
|
-
return {
|
1913
|
-
...result,
|
1914
|
-
encoding
|
1915
|
-
};
|
1916
|
-
};
|
1917
1897
|
function chunk_NFFV4IQT_m(...r) {
|
1918
1898
|
return chunk_WIMGWYZL_u(chunk_NFFV4IQT_o, r);
|
1919
1899
|
}
|
@@ -1928,42 +1908,46 @@
|
|
1928
1908
|
...advancedVSeed
|
1929
1909
|
};
|
1930
1910
|
const { vseed } = context;
|
1931
|
-
const { sort: sortAxis
|
1932
|
-
const {
|
1933
|
-
const
|
1911
|
+
const { sort: sortAxis } = vseed;
|
1912
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
1913
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
1914
|
+
const xField = unfoldInfo.encodingX;
|
1934
1915
|
if (!sortAxis || !xField) return advancedVSeed;
|
1935
1916
|
if (!result.analysis) result.analysis = {};
|
1936
1917
|
if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
|
1937
|
-
const axisOrderResult = calcOrder(sortAxis, xField, dataset);
|
1918
|
+
const axisOrderResult = calcOrder(sortAxis, xField, dataset.flat(2));
|
1938
1919
|
result.analysis.orderMapping[xField] = axisOrderResult;
|
1939
1920
|
return result;
|
1940
1921
|
};
|
1941
|
-
const
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
const
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1922
|
+
const calcOrder = (sortConfig, id, dataset)=>{
|
1923
|
+
if (sortConfig.customOrder) return sortConfig.customOrder;
|
1924
|
+
const order = sortConfig.order || 'asc';
|
1925
|
+
const orderBy = sortConfig.orderBy;
|
1926
|
+
const res = chunk_NFFV4IQT_m(dataset, (a, b)=>{
|
1927
|
+
const aValue = a[orderBy || id];
|
1928
|
+
const bValue = b[orderBy || id];
|
1929
|
+
if ('asc' === order) {
|
1930
|
+
if (aValue < bValue) return -1;
|
1931
|
+
if (aValue > bValue) return 1;
|
1932
|
+
return 0;
|
1933
|
+
}
|
1934
|
+
if (aValue > bValue) return -1;
|
1935
|
+
if (aValue < bValue) return 1;
|
1936
|
+
return 0;
|
1937
|
+
});
|
1938
|
+
return chunk_QJLMYOTX_i(res.map((item)=>item[id]));
|
1955
1939
|
};
|
1956
|
-
const
|
1940
|
+
const sortLegend_sortLegend = (advancedVSeed, context)=>{
|
1957
1941
|
const result = {
|
1958
1942
|
...advancedVSeed
|
1959
1943
|
};
|
1960
1944
|
const { vseed } = context;
|
1961
1945
|
const { sortLegend } = vseed;
|
1962
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
1963
|
-
const
|
1946
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
1947
|
+
const colorId = datasetReshapeInfo?.[0]?.unfoldInfo?.encodingColorId;
|
1964
1948
|
const colorIdMap = datasetReshapeInfo?.[0]?.unfoldInfo?.colorIdMap;
|
1965
1949
|
const colorItems = datasetReshapeInfo?.[0]?.unfoldInfo?.colorItems;
|
1966
|
-
if (!sortLegend || !
|
1950
|
+
if (!sortLegend || !colorId || !colorIdMap || !colorItems) return advancedVSeed;
|
1967
1951
|
if (!result.analysis) result.analysis = {};
|
1968
1952
|
if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
|
1969
1953
|
if (sortLegend.customOrder) {
|
@@ -1972,15 +1956,14 @@
|
|
1972
1956
|
return pre;
|
1973
1957
|
}, {});
|
1974
1958
|
const orderRes = sortLegend.customOrder.map((itemNameOrId)=>nameMap[itemNameOrId] ? nameMap[itemNameOrId] : itemNameOrId);
|
1975
|
-
result.analysis.orderMapping[
|
1959
|
+
result.analysis.orderMapping[colorId] = orderRes;
|
1976
1960
|
return result;
|
1977
1961
|
}
|
1978
|
-
const
|
1979
|
-
|
1980
|
-
result.analysis.orderMapping[groupField] = orderRes;
|
1962
|
+
const orderRes = sortLegend_calcOrder(sortLegend, colorId, dataset?.flat(2) || []);
|
1963
|
+
result.analysis.orderMapping[colorId] = orderRes;
|
1981
1964
|
return result;
|
1982
1965
|
};
|
1983
|
-
const
|
1966
|
+
const sortLegend_calcOrder = (sortConfig, id, dataset)=>{
|
1984
1967
|
if (sortConfig.customOrder) return sortConfig.customOrder;
|
1985
1968
|
const order = sortConfig.order || 'asc';
|
1986
1969
|
const orderBy = sortConfig.orderBy;
|
@@ -2112,14 +2095,14 @@
|
|
2112
2095
|
initAdvancedVSeed_initAdvancedVSeed,
|
2113
2096
|
autoMeasures_autoMeasures,
|
2114
2097
|
autoDimensions_autoDimensions,
|
2098
|
+
encodingForColumn,
|
2115
2099
|
pivotAdapter([
|
2116
|
-
|
2100
|
+
reshapeWithEncoding
|
2117
2101
|
], [
|
2118
|
-
|
2102
|
+
pivotReshapeWithEncoding
|
2119
2103
|
]),
|
2120
|
-
encodingXY,
|
2121
2104
|
sortXBandAxis,
|
2122
|
-
|
2105
|
+
sortLegend_sortLegend,
|
2123
2106
|
lineConfig,
|
2124
2107
|
theme_theme,
|
2125
2108
|
markStyle_markStyle,
|
@@ -2130,13 +2113,13 @@
|
|
2130
2113
|
...spec
|
2131
2114
|
};
|
2132
2115
|
const { advancedVSeed } = context;
|
2133
|
-
const {
|
2134
|
-
|
2116
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
2117
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
2135
2118
|
result.type = 'line';
|
2136
2119
|
result.direction = 'vertical';
|
2137
|
-
result.xField =
|
2138
|
-
result.yField =
|
2139
|
-
result.seriesField =
|
2120
|
+
result.xField = unfoldInfo.encodingX;
|
2121
|
+
result.yField = foldInfo.measureValue;
|
2122
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
2140
2123
|
result.padding = 0;
|
2141
2124
|
result.region = [
|
2142
2125
|
{
|
@@ -2212,11 +2195,12 @@
|
|
2212
2195
|
};
|
2213
2196
|
const datasetXY = (spec, context)=>{
|
2214
2197
|
const { advancedVSeed, vseed } = context;
|
2215
|
-
const {
|
2198
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
2199
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2216
2200
|
const orderMapping = analysis?.orderMapping || {};
|
2217
|
-
const angle =
|
2218
|
-
const x =
|
2219
|
-
const
|
2201
|
+
const angle = unfoldInfo.encodingAngle;
|
2202
|
+
const x = unfoldInfo.encodingX;
|
2203
|
+
const colorId = unfoldInfo.encodingColorId;
|
2220
2204
|
const id = datasetReshapeInfo[0].id;
|
2221
2205
|
const fields = {};
|
2222
2206
|
if (angle) fields[angle] = {
|
@@ -2233,14 +2217,14 @@
|
|
2233
2217
|
sortIndex: 0
|
2234
2218
|
};
|
2235
2219
|
}
|
2236
|
-
if (
|
2237
|
-
const order = orderMapping[
|
2238
|
-
if (order) fields[
|
2220
|
+
if (colorId) {
|
2221
|
+
const order = orderMapping[colorId];
|
2222
|
+
if (order) fields[colorId] = {
|
2239
2223
|
sortIndex: 0,
|
2240
2224
|
domain: order,
|
2241
2225
|
lockStatisticsByDomain: true
|
2242
2226
|
};
|
2243
|
-
else fields[
|
2227
|
+
else fields[colorId] = {
|
2244
2228
|
sortIndex: 0
|
2245
2229
|
};
|
2246
2230
|
}
|
@@ -2493,7 +2477,7 @@
|
|
2493
2477
|
} } = baseConfig;
|
2494
2478
|
const { enable } = tooltip;
|
2495
2479
|
const { measureId, measureValue, measureName } = datasetReshapeInfo[0].foldInfo;
|
2496
|
-
const {
|
2480
|
+
const { encodingColor: colorName } = datasetReshapeInfo[0].unfoldInfo;
|
2497
2481
|
result.tooltip = {
|
2498
2482
|
visible: enable,
|
2499
2483
|
mark: {
|
@@ -2514,7 +2498,7 @@
|
|
2514
2498
|
{
|
2515
2499
|
visible: true,
|
2516
2500
|
hasShape: true,
|
2517
|
-
key: (datum)=>datum && datum[measureName ||
|
2501
|
+
key: (datum)=>datum && datum[measureName || colorName] || '',
|
2518
2502
|
value: (datum)=>{
|
2519
2503
|
if (!datum) return '';
|
2520
2504
|
const value = datum[measureValue];
|
@@ -2536,7 +2520,7 @@
|
|
2536
2520
|
content: [
|
2537
2521
|
{
|
2538
2522
|
visible: true,
|
2539
|
-
key: (datum)=>datum && datum[
|
2523
|
+
key: (datum)=>datum && datum[colorName] || '',
|
2540
2524
|
value: (datum)=>{
|
2541
2525
|
if (!datum) return '';
|
2542
2526
|
const value = datum[measureValue];
|
@@ -2874,7 +2858,8 @@
|
|
2874
2858
|
const pointStateHover = (spec, context)=>{
|
2875
2859
|
const point = spec.point || {};
|
2876
2860
|
const { advancedVSeed } = context;
|
2877
|
-
const {
|
2861
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
2862
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2878
2863
|
const result = {
|
2879
2864
|
...spec,
|
2880
2865
|
point: {
|
@@ -2885,7 +2870,7 @@
|
|
2885
2870
|
scaleX: 1.4,
|
2886
2871
|
scaleY: 1.4,
|
2887
2872
|
stroke: (datum, context)=>{
|
2888
|
-
const field =
|
2873
|
+
const field = unfoldInfo.encodingColorId;
|
2889
2874
|
const color = context.seriesColor(datum[field]);
|
2890
2875
|
return color;
|
2891
2876
|
},
|
@@ -2915,7 +2900,8 @@
|
|
2915
2900
|
};
|
2916
2901
|
const lineStyle_lineStyle = (spec, context)=>{
|
2917
2902
|
const { advancedVSeed } = context;
|
2918
|
-
const { markStyle,
|
2903
|
+
const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
|
2904
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2919
2905
|
const { lineStyle } = markStyle;
|
2920
2906
|
if (!lineStyle) return spec;
|
2921
2907
|
const result = {
|
@@ -2924,8 +2910,8 @@
|
|
2924
2910
|
const lineStyles = Array.isArray(lineStyle) ? lineStyle : [
|
2925
2911
|
lineStyle
|
2926
2912
|
];
|
2927
|
-
const
|
2928
|
-
const lineGroups = chunk_HVPVHFDT_i(dataset, (d)=>d[
|
2913
|
+
const colorId = unfoldInfo.encodingColorId;
|
2914
|
+
const lineGroups = chunk_HVPVHFDT_i(dataset, (d)=>d[colorId ?? '']);
|
2929
2915
|
const customMap = lineStyles.reduce((result, style, index)=>{
|
2930
2916
|
const { lineColor, lineColorOpacity, lineSmooth, lineStyle, lineWidth = 2, lineVisible = true } = style;
|
2931
2917
|
const dashSegment = 2 * lineWidth;
|
@@ -2946,7 +2932,7 @@
|
|
2946
2932
|
[`custom${index + 1}`]: {
|
2947
2933
|
level: index + 1,
|
2948
2934
|
filter: (datum)=>{
|
2949
|
-
const lineData = lineGroups[datum[
|
2935
|
+
const lineData = lineGroups[datum[colorId ?? '']];
|
2950
2936
|
for (const d of lineData)if (selector_selector(d, style.selector)) return true;
|
2951
2937
|
return false;
|
2952
2938
|
},
|
@@ -3044,7 +3030,8 @@
|
|
3044
3030
|
}
|
3045
3031
|
const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
|
3046
3032
|
const { advancedVSeed } = context;
|
3047
|
-
const { annotation,
|
3033
|
+
const { annotation, datasetReshapeInfo } = advancedVSeed;
|
3034
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
3048
3035
|
if (!annotation || !annotation.annotationVerticalLine) return spec;
|
3049
3036
|
const { annotationVerticalLine } = annotation;
|
3050
3037
|
const annotationVerticalLineList = Array.isArray(annotationVerticalLine) ? annotationVerticalLine : [
|
@@ -3124,7 +3111,7 @@
|
|
3124
3111
|
}
|
3125
3112
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
3126
3113
|
return selectedData.map((datum)=>{
|
3127
|
-
const x =
|
3114
|
+
const x = unfoldInfo.encodingX;
|
3128
3115
|
if (!x) return {};
|
3129
3116
|
return generateOneMarkLine(datum[x]);
|
3130
3117
|
});
|
@@ -3141,7 +3128,8 @@
|
|
3141
3128
|
};
|
3142
3129
|
const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
|
3143
3130
|
const { advancedVSeed } = context;
|
3144
|
-
const { annotation,
|
3131
|
+
const { annotation, datasetReshapeInfo } = advancedVSeed;
|
3132
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
3145
3133
|
if (!annotation || !annotation.annotationHorizontalLine) return spec;
|
3146
3134
|
const { annotationHorizontalLine } = annotation;
|
3147
3135
|
const annotationVerticalLineList = Array.isArray(annotationHorizontalLine) ? annotationHorizontalLine : [
|
@@ -3221,7 +3209,7 @@
|
|
3221
3209
|
}
|
3222
3210
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
3223
3211
|
return selectedData.map((datum)=>{
|
3224
|
-
const y =
|
3212
|
+
const y = unfoldInfo.encodingY;
|
3225
3213
|
if (!y) return {};
|
3226
3214
|
return generateOneMarkLine(datum[y]);
|
3227
3215
|
});
|
@@ -3502,13 +3490,10 @@
|
|
3502
3490
|
...spec
|
3503
3491
|
};
|
3504
3492
|
const { advancedVSeed } = context;
|
3505
|
-
const { measures, datasetReshapeInfo,
|
3493
|
+
const { measures, datasetReshapeInfo, dataset } = advancedVSeed;
|
3506
3494
|
const colorItems = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>d.unfoldInfo.colorItems));
|
3507
3495
|
const indicators = datasetReshapeInfo.map((reshapeInfo, index)=>{
|
3508
3496
|
const measure = measures?.find((d)=>d.id === reshapeInfo.id);
|
3509
|
-
const newEncoding = [
|
3510
|
-
encoding[index]
|
3511
|
-
];
|
3512
3497
|
const newDataset = dataset[index];
|
3513
3498
|
const newDatasetReshapeInfo = [
|
3514
3499
|
{
|
@@ -3524,8 +3509,7 @@
|
|
3524
3509
|
advancedVSeed: {
|
3525
3510
|
...advancedVSeed,
|
3526
3511
|
datasetReshapeInfo: newDatasetReshapeInfo,
|
3527
|
-
dataset: newDataset
|
3528
|
-
encoding: newEncoding
|
3512
|
+
dataset: newDataset
|
3529
3513
|
}
|
3530
3514
|
};
|
3531
3515
|
const chartSpec = execPipeline(chartPipeline, newContext, {});
|
@@ -3711,7 +3695,7 @@
|
|
3711
3695
|
}
|
3712
3696
|
},
|
3713
3697
|
label: {
|
3714
|
-
formatMethod: (value)=>colorIdMap[
|
3698
|
+
formatMethod: (value)=>colorIdMap[value] ?? value,
|
3715
3699
|
style: {
|
3716
3700
|
fontSize: labelFontSize,
|
3717
3701
|
fill: labelFontColor,
|
@@ -3794,151 +3778,18 @@
|
|
3794
3778
|
Builder._advancedPipelineMap.line = lineAdvancedPipeline;
|
3795
3779
|
Builder._specPipelineMap.line = lineSpecPipeline;
|
3796
3780
|
};
|
3797
|
-
const dataReshapeFor2D1M_emptyReshapeResult = {
|
3798
|
-
dataset: [],
|
3799
|
-
foldInfo: {
|
3800
|
-
foldMap: {},
|
3801
|
-
measureId: '',
|
3802
|
-
measureName: '',
|
3803
|
-
measureValue: ''
|
3804
|
-
},
|
3805
|
-
unfoldInfo: {
|
3806
|
-
groupName: '',
|
3807
|
-
groupId: '',
|
3808
|
-
colorItems: [],
|
3809
|
-
colorIdMap: {}
|
3810
|
-
}
|
3811
|
-
};
|
3812
|
-
const dataReshapeFor2D1M = (dataset, dimensions, measures, options)=>{
|
3813
|
-
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, unfoldDimensionGroup = UnfoldDimensionGroup, unfoldDimensionGroupId = UnfoldDimensionGroupId } = options || {};
|
3814
|
-
if (0 === dimensions.length && 0 === measures.length) return dataReshapeFor2D1M_emptyReshapeResult;
|
3815
|
-
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, foldMeasureId, foldMeasureName, foldMeasureValue);
|
3816
|
-
if (0 === dimensions.length) {
|
3817
|
-
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, [
|
3818
|
-
{
|
3819
|
-
id: foldMeasureId,
|
3820
|
-
alias: i18n`指标Id`,
|
3821
|
-
location: 'dimension'
|
3822
|
-
},
|
3823
|
-
{
|
3824
|
-
id: foldMeasureName,
|
3825
|
-
alias: i18n`指标名称`,
|
3826
|
-
location: 'dimension'
|
3827
|
-
}
|
3828
|
-
], [
|
3829
|
-
{
|
3830
|
-
id: foldMeasureValue,
|
3831
|
-
alias: i18n`指标值`
|
3832
|
-
}
|
3833
|
-
], 1, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
|
3834
|
-
return {
|
3835
|
-
dataset: finalDataset,
|
3836
|
-
foldInfo,
|
3837
|
-
unfoldInfo
|
3838
|
-
};
|
3839
|
-
}
|
3840
|
-
{
|
3841
|
-
const onlyOneMeasure = 1 === measures.length;
|
3842
|
-
const onlyOneDimension = 1 === dimensions.length;
|
3843
|
-
const dims = [
|
3844
|
-
...dimensions
|
3845
|
-
];
|
3846
|
-
if (!onlyOneMeasure || onlyOneDimension) dims.push({
|
3847
|
-
id: foldMeasureName,
|
3848
|
-
alias: i18n`指标名称`,
|
3849
|
-
location: 'dimension'
|
3850
|
-
});
|
3851
|
-
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dims, [
|
3852
|
-
{
|
3853
|
-
id: foldMeasureValue,
|
3854
|
-
alias: i18n`指标值`
|
3855
|
-
}
|
3856
|
-
], 1, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
|
3857
|
-
return {
|
3858
|
-
dataset: finalDataset,
|
3859
|
-
foldInfo,
|
3860
|
-
unfoldInfo
|
3861
|
-
};
|
3862
|
-
}
|
3863
|
-
};
|
3864
|
-
const reshapeTo2D1M = (advancedVSeed, context)=>{
|
3865
|
-
const result = {
|
3866
|
-
...advancedVSeed
|
3867
|
-
};
|
3868
|
-
const { vseed } = context;
|
3869
|
-
const { dataset } = vseed;
|
3870
|
-
const { dimensions, measures } = advancedVSeed;
|
3871
|
-
if (!measures || !dimensions || !dataset) return result;
|
3872
|
-
if (0 === measures.length) throw new Error('measures can not be empty');
|
3873
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor2D1M(dataset, dimensions, measures);
|
3874
|
-
return {
|
3875
|
-
...result,
|
3876
|
-
dataset: newDatasets,
|
3877
|
-
datasetReshapeInfo: [
|
3878
|
-
{
|
3879
|
-
id: '2D1M',
|
3880
|
-
index: 0,
|
3881
|
-
foldInfo,
|
3882
|
-
unfoldInfo
|
3883
|
-
}
|
3884
|
-
],
|
3885
|
-
dimensions,
|
3886
|
-
measures
|
3887
|
-
};
|
3888
|
-
};
|
3889
|
-
const pivotReshapeTo2D1M = (advancedVSeed, context)=>{
|
3890
|
-
const result = {
|
3891
|
-
...advancedVSeed
|
3892
|
-
};
|
3893
|
-
const { vseed } = context;
|
3894
|
-
const { dataset } = vseed;
|
3895
|
-
const { measures } = advancedVSeed;
|
3896
|
-
const dimensions = advancedVSeed.dimensions;
|
3897
|
-
if (!measures || !dimensions) return result;
|
3898
|
-
const measureGroups = [];
|
3899
|
-
if (measures) measures.forEach((measure)=>{
|
3900
|
-
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
3901
|
-
});
|
3902
|
-
const commonDimensions = dimensions.filter((dim)=>'dimension' === dim.location);
|
3903
|
-
const newDatasets = [];
|
3904
|
-
const datasetReshapeInfo = [];
|
3905
|
-
measureGroups.forEach((measureGroup, index)=>{
|
3906
|
-
const measures = measureGroup.children;
|
3907
|
-
if (!measures) return;
|
3908
|
-
const groupId = measureGroup.id;
|
3909
|
-
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeFor2D1M(dataset, commonDimensions, measures, {
|
3910
|
-
foldMeasureId: FoldMeasureId,
|
3911
|
-
foldMeasureName: FoldMeasureName,
|
3912
|
-
foldMeasureValue: FoldMeasureValue + groupId,
|
3913
|
-
unfoldDimensionGroup: UnfoldDimensionGroup
|
3914
|
-
});
|
3915
|
-
const reshapeInfo = {
|
3916
|
-
id: groupId,
|
3917
|
-
index,
|
3918
|
-
foldInfo,
|
3919
|
-
unfoldInfo
|
3920
|
-
};
|
3921
|
-
newDatasets.push(newSubDataset);
|
3922
|
-
datasetReshapeInfo.push(reshapeInfo);
|
3923
|
-
});
|
3924
|
-
return {
|
3925
|
-
...result,
|
3926
|
-
dataset: newDatasets,
|
3927
|
-
datasetReshapeInfo: datasetReshapeInfo
|
3928
|
-
};
|
3929
|
-
};
|
3930
3781
|
const columnAdvancedPipeline = [
|
3931
3782
|
initAdvancedVSeed_initAdvancedVSeed,
|
3932
3783
|
autoMeasures_autoMeasures,
|
3933
3784
|
autoDimensions_autoDimensions,
|
3785
|
+
encodingForColumn,
|
3934
3786
|
pivotAdapter([
|
3935
|
-
|
3787
|
+
reshapeWithEncoding
|
3936
3788
|
], [
|
3937
|
-
|
3789
|
+
pivotReshapeWithEncoding
|
3938
3790
|
]),
|
3939
|
-
encodingXY,
|
3940
3791
|
sortXBandAxis,
|
3941
|
-
|
3792
|
+
sortLegend_sortLegend,
|
3942
3793
|
columnConfig,
|
3943
3794
|
theme_theme,
|
3944
3795
|
markStyle_markStyle,
|
@@ -3949,13 +3800,13 @@
|
|
3949
3800
|
...spec
|
3950
3801
|
};
|
3951
3802
|
const { advancedVSeed } = context;
|
3952
|
-
const {
|
3953
|
-
|
3954
|
-
result.type = 'bar';
|
3803
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
3804
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
3805
|
+
result.type = 'bar';
|
3955
3806
|
result.direction = 'vertical';
|
3956
|
-
result.xField =
|
3957
|
-
result.yField =
|
3958
|
-
result.seriesField =
|
3807
|
+
result.xField = unfoldInfo.encodingX;
|
3808
|
+
result.yField = foldInfo.measureValue;
|
3809
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
3959
3810
|
result.padding = 0;
|
3960
3811
|
result.region = [
|
3961
3812
|
{
|
@@ -4275,14 +4126,14 @@
|
|
4275
4126
|
initAdvancedVSeed_initAdvancedVSeed,
|
4276
4127
|
autoMeasures_autoMeasures,
|
4277
4128
|
autoDimensions_autoDimensions,
|
4129
|
+
encodingForColumn,
|
4278
4130
|
pivotAdapter([
|
4279
|
-
|
4131
|
+
reshapeWithEncoding
|
4280
4132
|
], [
|
4281
|
-
|
4133
|
+
pivotReshapeWithEncoding
|
4282
4134
|
]),
|
4283
|
-
encodingXY,
|
4284
4135
|
sortXBandAxis,
|
4285
|
-
|
4136
|
+
sortLegend_sortLegend,
|
4286
4137
|
columnParallelConfig,
|
4287
4138
|
theme_theme,
|
4288
4139
|
markStyle_markStyle,
|
@@ -4293,20 +4144,19 @@
|
|
4293
4144
|
...spec
|
4294
4145
|
};
|
4295
4146
|
const { advancedVSeed } = context;
|
4296
|
-
const {
|
4297
|
-
const { unfoldInfo } = datasetReshapeInfo[0];
|
4298
|
-
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
4147
|
+
const { datasetReshapeInfo, dimensions } = advancedVSeed;
|
4148
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
4299
4149
|
const sameDimensionsMode = dimensions.length > 1 && dimensions.every((dim)=>dim.id === dimensions[0].id);
|
4300
4150
|
result.type = 'bar';
|
4301
4151
|
result.direction = 'vertical';
|
4302
4152
|
result.xField = sameDimensionsMode ? [
|
4303
|
-
|
4153
|
+
unfoldInfo.encodingX
|
4304
4154
|
] : [
|
4305
|
-
|
4306
|
-
unfoldInfo.
|
4155
|
+
unfoldInfo.encodingX,
|
4156
|
+
unfoldInfo.encodingDetail
|
4307
4157
|
];
|
4308
|
-
result.yField =
|
4309
|
-
result.seriesField =
|
4158
|
+
result.yField = foldInfo.measureValue;
|
4159
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
4310
4160
|
result.padding = 0;
|
4311
4161
|
result.region = [
|
4312
4162
|
{
|
@@ -4373,14 +4223,14 @@
|
|
4373
4223
|
initAdvancedVSeed_initAdvancedVSeed,
|
4374
4224
|
autoMeasures_autoMeasures,
|
4375
4225
|
autoDimensions_autoDimensions,
|
4226
|
+
encodingForColumn,
|
4376
4227
|
pivotAdapter([
|
4377
|
-
|
4228
|
+
reshapeWithEncoding
|
4378
4229
|
], [
|
4379
|
-
|
4230
|
+
pivotReshapeWithEncoding
|
4380
4231
|
]),
|
4381
|
-
encodingXY,
|
4382
4232
|
sortXBandAxis,
|
4383
|
-
|
4233
|
+
sortLegend_sortLegend,
|
4384
4234
|
columnPercentConfig,
|
4385
4235
|
theme_theme,
|
4386
4236
|
markStyle_markStyle,
|
@@ -4450,55 +4300,76 @@
|
|
4450
4300
|
Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
|
4451
4301
|
Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
|
4452
4302
|
};
|
4453
|
-
const
|
4454
|
-
const
|
4455
|
-
|
4456
|
-
|
4457
|
-
const
|
4458
|
-
if (
|
4459
|
-
|
4460
|
-
|
4461
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
4462
|
-
const { foldInfo, unfoldInfo } = cur;
|
4463
|
-
const y = [
|
4464
|
-
isZeroDimension ? foldInfo.measureName : yDimension?.id
|
4465
|
-
];
|
4466
|
-
const x = [
|
4467
|
-
foldInfo.measureValue
|
4468
|
-
];
|
4469
|
-
const group = [
|
4470
|
-
unfoldInfo.groupId
|
4303
|
+
const encodingForBar = (advancedVSeed, context)=>{
|
4304
|
+
const { vseed } = context;
|
4305
|
+
const { dimensions } = advancedVSeed;
|
4306
|
+
if (!dimensions) return advancedVSeed;
|
4307
|
+
const encoding = vseed.encoding;
|
4308
|
+
if (encoding) {
|
4309
|
+
const y = encoding.y || [
|
4310
|
+
dimensions[0].id
|
4471
4311
|
];
|
4472
|
-
const color = [
|
4473
|
-
|
4312
|
+
const color = encoding.color || [
|
4313
|
+
(dimensions[1] || dimensions[0]).id
|
4474
4314
|
];
|
4475
|
-
|
4476
|
-
|
4477
|
-
|
4478
|
-
|
4315
|
+
const detail = encoding.detail || [];
|
4316
|
+
const mergedDetail = chunk_QJLMYOTX_i([
|
4317
|
+
...color,
|
4318
|
+
...detail
|
4319
|
+
]);
|
4320
|
+
return {
|
4321
|
+
...advancedVSeed,
|
4322
|
+
encoding: {
|
4323
|
+
...encoding,
|
4479
4324
|
y,
|
4480
|
-
|
4481
|
-
|
4325
|
+
color,
|
4326
|
+
detail: mergedDetail
|
4482
4327
|
}
|
4483
|
-
|
4484
|
-
}
|
4328
|
+
};
|
4329
|
+
}
|
4330
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
4331
|
+
const mergedEncoding = {
|
4332
|
+
y: dimensions.slice(0, 1).map((item)=>item.id),
|
4333
|
+
color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
4334
|
+
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
4335
|
+
tooltip: dimensions.map((item)=>item.id),
|
4336
|
+
label: [],
|
4337
|
+
row: [],
|
4338
|
+
column: []
|
4339
|
+
};
|
4485
4340
|
return {
|
4486
|
-
...
|
4487
|
-
encoding
|
4341
|
+
...advancedVSeed,
|
4342
|
+
encoding: mergedEncoding
|
4343
|
+
};
|
4344
|
+
};
|
4345
|
+
const sortYBandAxis = (advancedVSeed, context)=>{
|
4346
|
+
const result = {
|
4347
|
+
...advancedVSeed
|
4488
4348
|
};
|
4349
|
+
const { vseed } = context;
|
4350
|
+
const { sort: sortAxis } = vseed;
|
4351
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
4352
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
4353
|
+
const yField = unfoldInfo?.encodingY;
|
4354
|
+
if (!sortAxis || !yField) return advancedVSeed;
|
4355
|
+
if (!result.analysis) result.analysis = {};
|
4356
|
+
if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
|
4357
|
+
const axisOrderResult = calcOrder(sortAxis, yField, dataset.flat(2));
|
4358
|
+
result.analysis.orderMapping[yField] = axisOrderResult;
|
4359
|
+
return result;
|
4489
4360
|
};
|
4490
4361
|
const barAdvancedPipeline = [
|
4491
4362
|
initAdvancedVSeed_initAdvancedVSeed,
|
4492
4363
|
autoMeasures_autoMeasures,
|
4493
4364
|
autoDimensions_autoDimensions,
|
4365
|
+
encodingForBar,
|
4494
4366
|
pivotAdapter([
|
4495
|
-
|
4367
|
+
reshapeWithEncoding
|
4496
4368
|
], [
|
4497
|
-
|
4369
|
+
pivotReshapeWithEncoding
|
4498
4370
|
]),
|
4499
|
-
encodingYX,
|
4500
4371
|
sortYBandAxis,
|
4501
|
-
|
4372
|
+
sortLegend_sortLegend,
|
4502
4373
|
barConfig,
|
4503
4374
|
theme_theme,
|
4504
4375
|
markStyle_markStyle,
|
@@ -4509,13 +4380,13 @@
|
|
4509
4380
|
...spec
|
4510
4381
|
};
|
4511
4382
|
const { advancedVSeed } = context;
|
4512
|
-
const {
|
4513
|
-
|
4383
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
4384
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
4514
4385
|
result.type = 'bar';
|
4515
4386
|
result.direction = 'horizontal';
|
4516
|
-
result.yField =
|
4517
|
-
result.xField =
|
4518
|
-
result.seriesField =
|
4387
|
+
result.yField = unfoldInfo.encodingY;
|
4388
|
+
result.xField = foldInfo.measureValue;
|
4389
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
4519
4390
|
result.padding = 0;
|
4520
4391
|
result.region = [
|
4521
4392
|
{
|
@@ -4527,11 +4398,12 @@
|
|
4527
4398
|
};
|
4528
4399
|
const datasetYX = (spec, context)=>{
|
4529
4400
|
const { advancedVSeed, vseed } = context;
|
4530
|
-
const {
|
4401
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
4402
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
4531
4403
|
const orderMapping = analysis?.orderMapping || {};
|
4532
|
-
const angle =
|
4533
|
-
const y =
|
4534
|
-
const
|
4404
|
+
const angle = unfoldInfo.encodingAngle;
|
4405
|
+
const y = unfoldInfo.encodingY;
|
4406
|
+
const colorId = unfoldInfo.encodingColorId;
|
4535
4407
|
const id = datasetReshapeInfo[0].id;
|
4536
4408
|
const fields = {};
|
4537
4409
|
if (angle) fields[angle] = {
|
@@ -4548,14 +4420,14 @@
|
|
4548
4420
|
sortIndex: 0
|
4549
4421
|
};
|
4550
4422
|
}
|
4551
|
-
if (
|
4552
|
-
const order = orderMapping[
|
4553
|
-
if (order) fields[
|
4423
|
+
if (colorId) {
|
4424
|
+
const order = orderMapping[colorId];
|
4425
|
+
if (order) fields[colorId] = {
|
4554
4426
|
sortIndex: 0,
|
4555
4427
|
domain: order,
|
4556
4428
|
lockStatisticsByDomain: true
|
4557
4429
|
};
|
4558
|
-
else fields[
|
4430
|
+
else fields[colorId] = {
|
4559
4431
|
sortIndex: 0
|
4560
4432
|
};
|
4561
4433
|
}
|
@@ -4843,14 +4715,14 @@
|
|
4843
4715
|
initAdvancedVSeed_initAdvancedVSeed,
|
4844
4716
|
autoMeasures_autoMeasures,
|
4845
4717
|
autoDimensions_autoDimensions,
|
4718
|
+
encodingForBar,
|
4846
4719
|
pivotAdapter([
|
4847
|
-
|
4720
|
+
reshapeWithEncoding
|
4848
4721
|
], [
|
4849
|
-
|
4722
|
+
pivotReshapeWithEncoding
|
4850
4723
|
]),
|
4851
|
-
encodingYX,
|
4852
4724
|
sortYBandAxis,
|
4853
|
-
|
4725
|
+
sortLegend_sortLegend,
|
4854
4726
|
barParallelConfig,
|
4855
4727
|
theme_theme,
|
4856
4728
|
markStyle_markStyle,
|
@@ -4861,20 +4733,19 @@
|
|
4861
4733
|
...spec
|
4862
4734
|
};
|
4863
4735
|
const { advancedVSeed } = context;
|
4864
|
-
const {
|
4865
|
-
const { unfoldInfo } = datasetReshapeInfo[0];
|
4866
|
-
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
4736
|
+
const { datasetReshapeInfo, dimensions } = advancedVSeed;
|
4737
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
4867
4738
|
const sameDimensionsMode = dimensions.length > 1 && dimensions.every((dim)=>dim.id === dimensions[0].id);
|
4868
4739
|
result.type = 'bar';
|
4869
4740
|
result.direction = 'horizontal';
|
4870
4741
|
result.yField = sameDimensionsMode ? [
|
4871
|
-
|
4742
|
+
unfoldInfo.encodingY
|
4872
4743
|
] : [
|
4873
|
-
|
4874
|
-
unfoldInfo.
|
4744
|
+
unfoldInfo.encodingY,
|
4745
|
+
unfoldInfo.encodingDetail
|
4875
4746
|
];
|
4876
|
-
result.xField =
|
4877
|
-
result.seriesField =
|
4747
|
+
result.xField = foldInfo.measureValue;
|
4748
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
4878
4749
|
result.padding = 0;
|
4879
4750
|
result.region = [
|
4880
4751
|
{
|
@@ -4940,14 +4811,14 @@
|
|
4940
4811
|
initAdvancedVSeed_initAdvancedVSeed,
|
4941
4812
|
autoMeasures_autoMeasures,
|
4942
4813
|
autoDimensions_autoDimensions,
|
4814
|
+
encodingForBar,
|
4943
4815
|
pivotAdapter([
|
4944
|
-
|
4816
|
+
reshapeWithEncoding
|
4945
4817
|
], [
|
4946
|
-
|
4818
|
+
pivotReshapeWithEncoding
|
4947
4819
|
]),
|
4948
|
-
encodingYX,
|
4949
4820
|
sortYBandAxis,
|
4950
|
-
|
4821
|
+
sortLegend_sortLegend,
|
4951
4822
|
barPercentConfig,
|
4952
4823
|
theme_theme,
|
4953
4824
|
markStyle_markStyle,
|
@@ -5011,14 +4882,14 @@
|
|
5011
4882
|
initAdvancedVSeed_initAdvancedVSeed,
|
5012
4883
|
autoMeasures_autoMeasures,
|
5013
4884
|
autoDimensions_autoDimensions,
|
4885
|
+
encodingForColumn,
|
5014
4886
|
pivotAdapter([
|
5015
|
-
|
4887
|
+
reshapeWithEncoding
|
5016
4888
|
], [
|
5017
|
-
|
4889
|
+
pivotReshapeWithEncoding
|
5018
4890
|
]),
|
5019
|
-
encodingXY,
|
5020
4891
|
sortXBandAxis,
|
5021
|
-
|
4892
|
+
sortLegend_sortLegend,
|
5022
4893
|
areaConfig,
|
5023
4894
|
theme_theme,
|
5024
4895
|
markStyle_markStyle,
|
@@ -5029,13 +4900,13 @@
|
|
5029
4900
|
...spec
|
5030
4901
|
};
|
5031
4902
|
const { advancedVSeed } = context;
|
5032
|
-
const {
|
5033
|
-
|
4903
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
4904
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
5034
4905
|
result.type = 'area';
|
5035
4906
|
result.direction = 'vertical';
|
5036
|
-
result.
|
5037
|
-
result.
|
5038
|
-
result.seriesField =
|
4907
|
+
result.yField = foldInfo.measureValue;
|
4908
|
+
result.xField = unfoldInfo.encodingX;
|
4909
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
5039
4910
|
result.padding = 0;
|
5040
4911
|
result.region = [
|
5041
4912
|
{
|
@@ -5047,8 +4918,9 @@
|
|
5047
4918
|
};
|
5048
4919
|
const areaStyle_areaStyle = (spec, context)=>{
|
5049
4920
|
const { advancedVSeed } = context;
|
5050
|
-
const { markStyle,
|
4921
|
+
const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
|
5051
4922
|
const { areaStyle } = markStyle;
|
4923
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
5052
4924
|
if (!areaStyle) return {
|
5053
4925
|
...spec,
|
5054
4926
|
area: {
|
@@ -5061,7 +4933,7 @@
|
|
5061
4933
|
const areaStyles = Array.isArray(areaStyle) ? areaStyle : [
|
5062
4934
|
areaStyle
|
5063
4935
|
];
|
5064
|
-
const group =
|
4936
|
+
const group = unfoldInfo.encodingColorId;
|
5065
4937
|
const areaGroups = chunk_HVPVHFDT_i(dataset, (d)=>d[group ?? '']);
|
5066
4938
|
const customMap = areaStyles.reduce((result, style, index)=>{
|
5067
4939
|
const { areaColor, areaColorOpacity, areaVisible = true } = style;
|
@@ -5155,14 +5027,14 @@
|
|
5155
5027
|
initAdvancedVSeed_initAdvancedVSeed,
|
5156
5028
|
autoMeasures_autoMeasures,
|
5157
5029
|
autoDimensions_autoDimensions,
|
5030
|
+
encodingForColumn,
|
5158
5031
|
pivotAdapter([
|
5159
|
-
|
5032
|
+
reshapeWithEncoding
|
5160
5033
|
], [
|
5161
|
-
|
5034
|
+
pivotReshapeWithEncoding
|
5162
5035
|
]),
|
5163
|
-
encodingXY,
|
5164
5036
|
sortXBandAxis,
|
5165
|
-
|
5037
|
+
sortLegend_sortLegend,
|
5166
5038
|
areaPercentConfig,
|
5167
5039
|
theme_theme,
|
5168
5040
|
markStyle_markStyle,
|
@@ -5227,16 +5099,20 @@
|
|
5227
5099
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
5228
5100
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
5229
5101
|
};
|
5230
|
-
const
|
5102
|
+
const autoScatterMeasures = (advancedVSeed, context)=>{
|
5231
5103
|
const result = {
|
5232
5104
|
...advancedVSeed
|
5233
5105
|
};
|
5234
5106
|
const { vseed } = context;
|
5235
|
-
const {
|
5107
|
+
const { dataset, scatterMeasures, measures } = vseed;
|
5236
5108
|
if (!dataset) throw new Error('dataset is required');
|
5237
5109
|
if (0 === dataset.length) return result;
|
5238
|
-
if (
|
5239
|
-
result.measures =
|
5110
|
+
if (scatterMeasures) {
|
5111
|
+
result.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
5112
|
+
return result;
|
5113
|
+
}
|
5114
|
+
if (measures && measureDepth(measures) > 1) {
|
5115
|
+
result.measures = measures;
|
5240
5116
|
return result;
|
5241
5117
|
}
|
5242
5118
|
const top100dataset = dataset.slice(0, 100);
|
@@ -5244,7 +5120,7 @@
|
|
5244
5120
|
...prev,
|
5245
5121
|
...cur
|
5246
5122
|
}), {});
|
5247
|
-
const newMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
5123
|
+
const newMeasures = measures || Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
5248
5124
|
'',
|
5249
5125
|
null,
|
5250
5126
|
void 0
|
@@ -5252,691 +5128,278 @@
|
|
5252
5128
|
id: measure,
|
5253
5129
|
alias: measure
|
5254
5130
|
}));
|
5255
|
-
result.measures =
|
5131
|
+
if (0 === newMeasures.length) result.measures = [];
|
5132
|
+
else if (1 === newMeasures.length) result.measures = [
|
5133
|
+
{
|
5134
|
+
id: 'primary',
|
5135
|
+
alias: 'primary',
|
5136
|
+
children: newMeasures
|
5137
|
+
}
|
5138
|
+
];
|
5139
|
+
else if (newMeasures.length > 1) result.measures = [
|
5140
|
+
{
|
5141
|
+
id: 'primary',
|
5142
|
+
alias: 'primary',
|
5143
|
+
children: newMeasures.slice(0, 1)
|
5144
|
+
},
|
5145
|
+
{
|
5146
|
+
id: 'secondary',
|
5147
|
+
alias: 'secondary',
|
5148
|
+
children: newMeasures.slice(1)
|
5149
|
+
}
|
5150
|
+
];
|
5256
5151
|
return result;
|
5257
5152
|
};
|
5258
|
-
const
|
5259
|
-
const
|
5260
|
-
|
5261
|
-
|
5262
|
-
|
5263
|
-
|
5264
|
-
|
5265
|
-
|
5266
|
-
|
5267
|
-
|
5268
|
-
|
5269
|
-
|
5270
|
-
|
5271
|
-
|
5272
|
-
|
5273
|
-
|
5153
|
+
const scatterMeasuresToMeasureTree = (scatterMeasures)=>{
|
5154
|
+
const measureTree = scatterMeasures.map((item, index)=>{
|
5155
|
+
const { xMeasures, yMeasures } = item;
|
5156
|
+
const groupChildren = [];
|
5157
|
+
let id = '';
|
5158
|
+
if (xMeasures) {
|
5159
|
+
const arrXMeasures = Array.isArray(xMeasures) ? xMeasures : [
|
5160
|
+
xMeasures
|
5161
|
+
];
|
5162
|
+
const alias = arrXMeasures.map((item)=>item.alias || item.id).toString();
|
5163
|
+
id += alias;
|
5164
|
+
groupChildren.push({
|
5165
|
+
id: `${index}-x`,
|
5166
|
+
alias: arrXMeasures.map((item)=>item.alias || item.id).toString(),
|
5167
|
+
children: arrXMeasures
|
5168
|
+
});
|
5169
|
+
}
|
5170
|
+
if (yMeasures) {
|
5171
|
+
const arrYMeasures = Array.isArray(yMeasures) ? yMeasures : [
|
5172
|
+
yMeasures
|
5173
|
+
];
|
5174
|
+
const alias = arrYMeasures.map((item)=>item.alias || item.id).toString();
|
5175
|
+
id += alias;
|
5176
|
+
groupChildren.push({
|
5177
|
+
id: `${index}-y`,
|
5178
|
+
alias: arrYMeasures.map((item)=>item.alias || item.id).toString(),
|
5179
|
+
children: arrYMeasures
|
5180
|
+
});
|
5181
|
+
}
|
5182
|
+
return {
|
5183
|
+
id,
|
5184
|
+
alias: id,
|
5185
|
+
children: groupChildren
|
5186
|
+
};
|
5274
5187
|
});
|
5275
|
-
|
5276
|
-
|
5277
|
-
foldInfo: {
|
5278
|
-
foldMap: {},
|
5279
|
-
measureId: '',
|
5280
|
-
measureName: '',
|
5281
|
-
measureValue: ''
|
5282
|
-
},
|
5283
|
-
unfoldInfo: {
|
5284
|
-
groupName: '',
|
5285
|
-
groupId: '',
|
5286
|
-
colorItems: [],
|
5287
|
-
colorIdMap: {}
|
5288
|
-
}
|
5188
|
+
if (1 === scatterMeasures.length) return measureTree[0].children || [];
|
5189
|
+
return measureTree;
|
5289
5190
|
};
|
5290
|
-
const
|
5291
|
-
const {
|
5292
|
-
|
5293
|
-
if (
|
5294
|
-
|
5191
|
+
const encodingForScatter = (advancedVSeed, context)=>{
|
5192
|
+
const { vseed } = context;
|
5193
|
+
const { dimensions } = advancedVSeed;
|
5194
|
+
if (!dimensions) return advancedVSeed;
|
5195
|
+
const encoding = vseed.encoding;
|
5196
|
+
if (encoding) {
|
5197
|
+
const detail = encoding.detail || [];
|
5198
|
+
const color = encoding.color || [
|
5199
|
+
(dimensions[1] || dimensions[0]).id
|
5200
|
+
];
|
5201
|
+
const mergedDetail = chunk_QJLMYOTX_i([
|
5202
|
+
...color,
|
5203
|
+
...detail
|
5204
|
+
]);
|
5295
5205
|
return {
|
5296
|
-
|
5297
|
-
|
5298
|
-
|
5299
|
-
|
5300
|
-
|
5301
|
-
measureValue: foldMeasureValue
|
5302
|
-
},
|
5303
|
-
unfoldInfo
|
5304
|
-
};
|
5305
|
-
}
|
5306
|
-
{
|
5307
|
-
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(dataset, [
|
5308
|
-
...dimensions
|
5309
|
-
], [
|
5310
|
-
{
|
5311
|
-
id: foldMeasureValue,
|
5312
|
-
alias: i18n`指标值`
|
5206
|
+
...advancedVSeed,
|
5207
|
+
encoding: {
|
5208
|
+
...encoding,
|
5209
|
+
color,
|
5210
|
+
detail: mergedDetail
|
5313
5211
|
}
|
5314
|
-
], 0, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
|
5315
|
-
return {
|
5316
|
-
dataset: finalDataset,
|
5317
|
-
foldInfo: {
|
5318
|
-
foldMap: {},
|
5319
|
-
measureId: foldMeasureId,
|
5320
|
-
measureName: foldMeasureName,
|
5321
|
-
measureValue: foldMeasureValue
|
5322
|
-
},
|
5323
|
-
unfoldInfo
|
5324
5212
|
};
|
5325
5213
|
}
|
5214
|
+
const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
|
5215
|
+
const mergedEncoding = {
|
5216
|
+
color: dimensions.slice(0).map((item)=>item.id),
|
5217
|
+
detail: dimensionsWithoutMeasureName.slice(0).map((item)=>item.id),
|
5218
|
+
tooltip: dimensionsWithoutMeasureName.map((item)=>item.id),
|
5219
|
+
label: [],
|
5220
|
+
row: [],
|
5221
|
+
column: []
|
5222
|
+
};
|
5223
|
+
return {
|
5224
|
+
...advancedVSeed,
|
5225
|
+
encoding: mergedEncoding
|
5226
|
+
};
|
5326
5227
|
};
|
5327
|
-
const
|
5228
|
+
const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
5328
5229
|
const result = {
|
5329
5230
|
...advancedVSeed
|
5330
5231
|
};
|
5331
5232
|
const { vseed } = context;
|
5332
5233
|
const { dataset } = vseed;
|
5333
|
-
const { dimensions, measures } = advancedVSeed;
|
5334
|
-
if (!measures || !dimensions || !dataset) return result;
|
5234
|
+
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
5235
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
5335
5236
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
5336
|
-
|
5237
|
+
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
5238
|
+
const foldInfoList = [];
|
5239
|
+
const unfoldInfoList = [];
|
5240
|
+
const datasets = [];
|
5241
|
+
const xMeasures = measures[0];
|
5242
|
+
const yMeasures = measures[1] || xMeasures;
|
5243
|
+
if (xMeasures && xMeasures.children) {
|
5244
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5245
|
+
foldMeasureValue: FoldXMeasureValue,
|
5246
|
+
colorItemAsId: true
|
5247
|
+
});
|
5248
|
+
datasets.push(newDataset);
|
5249
|
+
foldInfoList.push(foldInfo);
|
5250
|
+
unfoldInfoList.push(unfoldInfo);
|
5251
|
+
}
|
5252
|
+
if (yMeasures && yMeasures.children) {
|
5253
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], dimensions, yMeasures.children, encoding, {
|
5254
|
+
foldMeasureValue: FoldYMeasureValue,
|
5255
|
+
colorItemAsId: true
|
5256
|
+
});
|
5257
|
+
datasets[0] = newDataset;
|
5258
|
+
foldInfoList.push(foldInfo);
|
5259
|
+
unfoldInfoList.push(unfoldInfo);
|
5260
|
+
}
|
5261
|
+
const unfoldInfo = {
|
5262
|
+
...unfoldInfoList[0],
|
5263
|
+
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
5264
|
+
colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
|
5265
|
+
...prev,
|
5266
|
+
...cur.colorIdMap
|
5267
|
+
}), {})
|
5268
|
+
};
|
5337
5269
|
return {
|
5338
5270
|
...result,
|
5339
|
-
dataset:
|
5271
|
+
dataset: datasets[0],
|
5340
5272
|
datasetReshapeInfo: [
|
5341
5273
|
{
|
5342
|
-
id:
|
5274
|
+
id: String(chartType),
|
5343
5275
|
index: 0,
|
5344
|
-
foldInfo,
|
5345
|
-
|
5276
|
+
foldInfo: foldInfoList[0],
|
5277
|
+
foldInfoList: foldInfoList,
|
5278
|
+
unfoldInfo: unfoldInfo
|
5346
5279
|
}
|
5347
5280
|
]
|
5348
5281
|
};
|
5349
5282
|
};
|
5350
|
-
const
|
5283
|
+
const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
5351
5284
|
const result = {
|
5352
5285
|
...advancedVSeed
|
5353
5286
|
};
|
5354
5287
|
const { vseed } = context;
|
5355
5288
|
const { dataset } = vseed;
|
5356
|
-
const { measures } = advancedVSeed;
|
5357
|
-
|
5358
|
-
if (!measures || !dimensions) return result;
|
5289
|
+
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
5290
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
5359
5291
|
const measureGroups = [];
|
5360
|
-
|
5361
|
-
|
5292
|
+
const depth = measureDepth(measures);
|
5293
|
+
if (3 === depth) measures.forEach((measure)=>{
|
5294
|
+
measureGroups.push(measure.children);
|
5362
5295
|
});
|
5363
|
-
|
5296
|
+
else if (2 === depth) measureGroups.push(measures);
|
5297
|
+
const datasetList = [];
|
5364
5298
|
const datasetReshapeInfo = [];
|
5365
|
-
measureGroups.forEach((
|
5366
|
-
|
5367
|
-
if (
|
5368
|
-
const
|
5369
|
-
const
|
5370
|
-
const
|
5371
|
-
|
5372
|
-
|
5373
|
-
|
5374
|
-
|
5375
|
-
|
5299
|
+
measureGroups.forEach((measures, index)=>{
|
5300
|
+
if (0 === measures.length) throw new Error('measures can not be empty');
|
5301
|
+
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
5302
|
+
const foldInfoList = [];
|
5303
|
+
const unfoldInfoList = [];
|
5304
|
+
const datasets = [];
|
5305
|
+
const xMeasures = measures[0];
|
5306
|
+
const yMeasures = measures[1] || xMeasures;
|
5307
|
+
if (xMeasures && xMeasures.children) {
|
5308
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5309
|
+
foldMeasureValue: `${FoldXMeasureValue}${index}`,
|
5310
|
+
colorItemAsId: true
|
5311
|
+
});
|
5312
|
+
datasets.push(newDataset);
|
5313
|
+
foldInfoList.push(foldInfo);
|
5314
|
+
unfoldInfoList.push(unfoldInfo);
|
5315
|
+
}
|
5316
|
+
if (yMeasures && yMeasures.children) {
|
5317
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, yMeasures.children, encoding, {
|
5318
|
+
foldMeasureValue: `${FoldYMeasureValue}${index}`,
|
5319
|
+
colorItemAsId: true
|
5320
|
+
});
|
5321
|
+
datasets.push(newDataset);
|
5322
|
+
foldInfoList.push(foldInfo);
|
5323
|
+
unfoldInfoList.push(unfoldInfo);
|
5324
|
+
}
|
5325
|
+
const unfoldInfo = {
|
5326
|
+
...unfoldInfoList[0],
|
5327
|
+
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
5328
|
+
colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
|
5329
|
+
...prev,
|
5330
|
+
...cur.colorIdMap
|
5331
|
+
}), {})
|
5332
|
+
};
|
5376
5333
|
const reshapeInfo = {
|
5377
|
-
id:
|
5334
|
+
id: `${chartType}-${index}`,
|
5378
5335
|
index,
|
5379
|
-
foldInfo,
|
5380
|
-
|
5336
|
+
foldInfo: foldInfoList[0],
|
5337
|
+
foldInfoList: foldInfoList,
|
5338
|
+
unfoldInfo: unfoldInfo
|
5381
5339
|
};
|
5382
|
-
newDatasets.push(newSubDataset);
|
5383
5340
|
datasetReshapeInfo.push(reshapeInfo);
|
5341
|
+
datasetList.push(datasets[0].map((d, index)=>({
|
5342
|
+
...d,
|
5343
|
+
...datasets[1]?.[index] || {}
|
5344
|
+
})));
|
5384
5345
|
});
|
5385
5346
|
return {
|
5386
5347
|
...result,
|
5387
|
-
dataset:
|
5348
|
+
dataset: datasetList,
|
5388
5349
|
datasetReshapeInfo: datasetReshapeInfo
|
5389
5350
|
};
|
5390
5351
|
};
|
5391
|
-
const
|
5392
|
-
const result = {
|
5393
|
-
...advancedVSeed
|
5394
|
-
};
|
5395
|
-
const { datasetReshapeInfo, measures } = advancedVSeed;
|
5396
|
-
if (!datasetReshapeInfo || !measures) return result;
|
5397
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur, index)=>{
|
5398
|
-
const measure = measures[index];
|
5399
|
-
if ('children' in measure) {
|
5400
|
-
const m1 = measure.children?.[0];
|
5401
|
-
const m2 = measure.children?.[1] || m1;
|
5402
|
-
const { foldInfo, unfoldInfo } = cur;
|
5403
|
-
const x = [
|
5404
|
-
unfoldInfo.groupId
|
5405
|
-
];
|
5406
|
-
const y = [
|
5407
|
-
m1?.id,
|
5408
|
-
m2?.id
|
5409
|
-
];
|
5410
|
-
const group = [
|
5411
|
-
unfoldInfo.groupId
|
5412
|
-
];
|
5413
|
-
const color = [
|
5414
|
-
foldInfo.measureName
|
5415
|
-
];
|
5416
|
-
return [
|
5417
|
-
...prev,
|
5418
|
-
{
|
5419
|
-
x,
|
5420
|
-
y,
|
5421
|
-
group,
|
5422
|
-
color
|
5423
|
-
}
|
5424
|
-
];
|
5425
|
-
}
|
5426
|
-
{
|
5427
|
-
const m1 = measures[index];
|
5428
|
-
const m2 = measures[index + 1] || m1;
|
5429
|
-
const { foldInfo, unfoldInfo } = cur;
|
5430
|
-
const x = [
|
5431
|
-
unfoldInfo.groupId
|
5432
|
-
];
|
5433
|
-
const y = [
|
5434
|
-
m1.id,
|
5435
|
-
m2.id
|
5436
|
-
];
|
5437
|
-
const group = [
|
5438
|
-
unfoldInfo.groupId
|
5439
|
-
];
|
5440
|
-
const color = [
|
5441
|
-
foldInfo.measureName
|
5442
|
-
];
|
5443
|
-
return [
|
5444
|
-
...prev,
|
5445
|
-
{
|
5446
|
-
x,
|
5447
|
-
y,
|
5448
|
-
group,
|
5449
|
-
color
|
5450
|
-
}
|
5451
|
-
];
|
5452
|
-
}
|
5453
|
-
}, []);
|
5454
|
-
return {
|
5455
|
-
...result,
|
5456
|
-
encoding
|
5457
|
-
};
|
5458
|
-
};
|
5459
|
-
const areaRangeAdvancedPipeline = [
|
5352
|
+
const scatterAdvancedPipeline = [
|
5460
5353
|
initAdvancedVSeed_initAdvancedVSeed,
|
5461
|
-
|
5354
|
+
autoScatterMeasures,
|
5462
5355
|
autoDimensions_autoDimensions,
|
5356
|
+
encodingForScatter,
|
5463
5357
|
pivotAdapter([
|
5464
|
-
|
5358
|
+
reshapeWithScatterEncoding
|
5465
5359
|
], [
|
5466
|
-
|
5360
|
+
pivotReshapeWithScatterEncoding
|
5467
5361
|
]),
|
5468
|
-
|
5469
|
-
sortXBandAxis,
|
5470
|
-
areaConfig,
|
5362
|
+
scatterConfig,
|
5471
5363
|
theme_theme,
|
5472
5364
|
markStyle_markStyle,
|
5473
5365
|
annotation_annotation
|
5474
5366
|
];
|
5475
|
-
const
|
5367
|
+
const initScatter = (spec, context)=>{
|
5476
5368
|
const result = {
|
5477
|
-
|
5478
|
-
padding: 0,
|
5479
|
-
region: [
|
5480
|
-
{
|
5481
|
-
clip: true
|
5482
|
-
}
|
5483
|
-
]
|
5369
|
+
...spec
|
5484
5370
|
};
|
5485
|
-
|
5486
|
-
|
5487
|
-
|
5371
|
+
const { advancedVSeed } = context;
|
5372
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
5373
|
+
const { unfoldInfo, foldInfoList } = datasetReshapeInfo[0];
|
5374
|
+
result.type = 'scatter';
|
5375
|
+
result.direction = 'vertical';
|
5376
|
+
result.xField = foldInfoList?.[0].measureValue;
|
5377
|
+
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
5378
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
5379
|
+
result.padding = 0;
|
5380
|
+
result.region = [
|
5381
|
+
{
|
5382
|
+
clip: true
|
5383
|
+
}
|
5384
|
+
];
|
5385
|
+
result.animation = true;
|
5386
|
+
return result;
|
5387
|
+
};
|
5388
|
+
const datasetScatter = (spec, context)=>{
|
5389
|
+
const { advancedVSeed, vseed } = context;
|
5390
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
5391
|
+
const id = datasetReshapeInfo[0].id;
|
5392
|
+
const fields = {};
|
5393
|
+
return {
|
5394
|
+
...spec,
|
5395
|
+
data: {
|
5396
|
+
id,
|
5397
|
+
values: isPivotChart(vseed) ? void 0 : advancedVSeed.dataset.flat(),
|
5398
|
+
fields: fields
|
5399
|
+
}
|
5488
5400
|
};
|
5489
5401
|
};
|
5490
|
-
const
|
5491
|
-
const result = {
|
5492
|
-
type: 'common',
|
5493
|
-
padding: 0,
|
5494
|
-
region: [
|
5495
|
-
{
|
5496
|
-
clip: true
|
5497
|
-
}
|
5498
|
-
]
|
5499
|
-
};
|
5500
|
-
const createDualContext = (context, index)=>{
|
5501
|
-
const { advancedVSeed } = context;
|
5502
|
-
const dataset = advancedVSeed.dataset[index];
|
5503
|
-
return {
|
5504
|
-
...context,
|
5505
|
-
advancedVSeed: {
|
5506
|
-
...advancedVSeed,
|
5507
|
-
dataset: dataset
|
5508
|
-
}
|
5509
|
-
};
|
5510
|
-
};
|
5511
|
-
return (_, context)=>{
|
5512
|
-
result.series = args.map((pipeline, index)=>{
|
5513
|
-
const seriesContext = createDualContext(context, index);
|
5514
|
-
return execPipeline(pipeline, seriesContext, {});
|
5515
|
-
});
|
5516
|
-
return result;
|
5517
|
-
};
|
5518
|
-
};
|
5519
|
-
const initAreaRange = (spec, context)=>{
|
5520
|
-
const result = {
|
5521
|
-
...spec
|
5522
|
-
};
|
5523
|
-
const { advancedVSeed } = context;
|
5524
|
-
const { encoding } = advancedVSeed;
|
5525
|
-
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
5526
|
-
const { color } = advancedVSeed.config.areaRange;
|
5527
|
-
result.type = 'rangeArea';
|
5528
|
-
result.direction = 'vertical';
|
5529
|
-
result.stack = false;
|
5530
|
-
result.xField = encoding[0].x[0];
|
5531
|
-
result.yField = [
|
5532
|
-
encoding[0].y[0],
|
5533
|
-
encoding[0].y[1]
|
5534
|
-
];
|
5535
|
-
result.animation = true;
|
5536
|
-
result.area = {
|
5537
|
-
style: {
|
5538
|
-
fill: color.colorScheme?.[0]
|
5539
|
-
}
|
5540
|
-
};
|
5541
|
-
return result;
|
5542
|
-
};
|
5543
|
-
const initAreaRangeLine1 = (spec, context)=>{
|
5544
|
-
const result = {
|
5545
|
-
...spec
|
5546
|
-
};
|
5547
|
-
const { advancedVSeed } = context;
|
5548
|
-
const { encoding } = advancedVSeed;
|
5549
|
-
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
5550
|
-
const { color } = advancedVSeed.config.areaRange;
|
5551
|
-
result.type = 'line';
|
5552
|
-
result.direction = 'vertical';
|
5553
|
-
result.stack = false;
|
5554
|
-
result.xField = encoding[0].x[0];
|
5555
|
-
result.yField = [
|
5556
|
-
encoding[0].y[0]
|
5557
|
-
];
|
5558
|
-
result.animation = true;
|
5559
|
-
result.line = {
|
5560
|
-
style: {
|
5561
|
-
stroke: color.colorScheme?.[0]
|
5562
|
-
}
|
5563
|
-
};
|
5564
|
-
result.point = {
|
5565
|
-
style: {
|
5566
|
-
visible: false,
|
5567
|
-
fill: color.colorScheme?.[0]
|
5568
|
-
}
|
5569
|
-
};
|
5570
|
-
return result;
|
5571
|
-
};
|
5572
|
-
const initAreaRangeLine2 = (spec, context)=>{
|
5573
|
-
const result = {
|
5574
|
-
...spec
|
5575
|
-
};
|
5576
|
-
const { advancedVSeed } = context;
|
5577
|
-
const { encoding } = advancedVSeed;
|
5578
|
-
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
5579
|
-
const { color } = advancedVSeed.config.areaRange;
|
5580
|
-
result.type = 'line';
|
5581
|
-
result.direction = 'vertical';
|
5582
|
-
result.stack = false;
|
5583
|
-
result.xField = encoding[0].x[0];
|
5584
|
-
result.yField = [
|
5585
|
-
encoding[0].y[1]
|
5586
|
-
];
|
5587
|
-
result.animation = true;
|
5588
|
-
result.line = {
|
5589
|
-
style: {
|
5590
|
-
stroke: color.colorScheme?.[0]
|
5591
|
-
}
|
5592
|
-
};
|
5593
|
-
result.point = {
|
5594
|
-
style: {
|
5595
|
-
visible: false,
|
5596
|
-
fill: color.colorScheme?.[0]
|
5597
|
-
}
|
5598
|
-
};
|
5599
|
-
return result;
|
5600
|
-
};
|
5601
|
-
const tooltipDisable = (spec)=>{
|
5602
|
-
const result = {
|
5603
|
-
...spec
|
5604
|
-
};
|
5605
|
-
result.tooltip = {
|
5606
|
-
visible: false
|
5607
|
-
};
|
5608
|
-
return result;
|
5609
|
-
};
|
5610
|
-
const tooltipAreaRange = (spec, context)=>{
|
5611
|
-
const result = {
|
5612
|
-
...spec
|
5613
|
-
};
|
5614
|
-
const { advancedVSeed } = context;
|
5615
|
-
const { measures, datasetReshapeInfo, chartType, locale, encoding } = advancedVSeed;
|
5616
|
-
const baseConfig = advancedVSeed.config[chartType];
|
5617
|
-
const { tooltip = {
|
5618
|
-
enable: true
|
5619
|
-
} } = baseConfig;
|
5620
|
-
const { enable } = tooltip;
|
5621
|
-
const { groupName } = datasetReshapeInfo[0].unfoldInfo;
|
5622
|
-
const y = encoding[0]?.y || [];
|
5623
|
-
result.tooltip = {
|
5624
|
-
visible: enable,
|
5625
|
-
dimension: {
|
5626
|
-
content: [
|
5627
|
-
{
|
5628
|
-
visible: true,
|
5629
|
-
key: (datum)=>datum && datum[groupName] || '',
|
5630
|
-
value: (datum)=>{
|
5631
|
-
if (!datum) return '';
|
5632
|
-
const text = y.map((id)=>{
|
5633
|
-
const value = datum[id];
|
5634
|
-
const measure = findMeasureById(measures, id);
|
5635
|
-
if (!measure) return String(value);
|
5636
|
-
const { format = {}, autoFormat = true } = measure;
|
5637
|
-
if (!chunk_VCYTMP4D_n(format)) {
|
5638
|
-
const formatter = createFormatter(format);
|
5639
|
-
return formatter(value);
|
5640
|
-
}
|
5641
|
-
if (autoFormat) return autoFormatter(value, locale);
|
5642
|
-
return String(value);
|
5643
|
-
});
|
5644
|
-
return text.join(' ~ ');
|
5645
|
-
},
|
5646
|
-
shapeType: 'rectRound'
|
5647
|
-
},
|
5648
|
-
...y.map((id)=>{
|
5649
|
-
const measure = findMeasureById(measures, id);
|
5650
|
-
return {
|
5651
|
-
visible: true,
|
5652
|
-
key: measure?.alias || id,
|
5653
|
-
value: (datum)=>{
|
5654
|
-
if (!datum) return '';
|
5655
|
-
const value = datum[id];
|
5656
|
-
const measure = findMeasureById(measures, id);
|
5657
|
-
if (!measure) return String(value);
|
5658
|
-
const { format = {}, autoFormat = true } = measure;
|
5659
|
-
if (!chunk_VCYTMP4D_n(format)) {
|
5660
|
-
const formatter = createFormatter(format);
|
5661
|
-
return formatter(value);
|
5662
|
-
}
|
5663
|
-
if (autoFormat) return autoFormatter(value, locale);
|
5664
|
-
return String(value);
|
5665
|
-
},
|
5666
|
-
shapeType: 'rectRound'
|
5667
|
-
};
|
5668
|
-
})
|
5669
|
-
]
|
5670
|
-
}
|
5671
|
-
};
|
5672
|
-
return result;
|
5673
|
-
};
|
5674
|
-
const areaRange = [
|
5675
|
-
series([
|
5676
|
-
initAreaRange,
|
5677
|
-
areaStyle_areaStyle
|
5678
|
-
], [
|
5679
|
-
initAreaRangeLine1,
|
5680
|
-
lineStyle_lineStyle,
|
5681
|
-
pointStyle_pointStyle,
|
5682
|
-
pointStateDimensionHover,
|
5683
|
-
tooltipDisable
|
5684
|
-
], [
|
5685
|
-
initAreaRangeLine2,
|
5686
|
-
lineStyle_lineStyle,
|
5687
|
-
pointStyle_pointStyle,
|
5688
|
-
pointStateDimensionHover,
|
5689
|
-
tooltipDisable
|
5690
|
-
]),
|
5691
|
-
datasetXY,
|
5692
|
-
progressive,
|
5693
|
-
background_backgroundColor,
|
5694
|
-
xBand,
|
5695
|
-
yLinear,
|
5696
|
-
label_label,
|
5697
|
-
tooltipAreaRange,
|
5698
|
-
verticalCrosshairLine,
|
5699
|
-
annotationPoint_annotationPoint,
|
5700
|
-
annotationVerticalLine_annotationVerticalLine,
|
5701
|
-
annotationHorizontalLine_annotationHorizontalLine,
|
5702
|
-
annotationArea_annotationArea
|
5703
|
-
];
|
5704
|
-
const pivotAreaRange = [
|
5705
|
-
initPivot,
|
5706
|
-
pivotGridStyle,
|
5707
|
-
pivotIndicators_pivotIndicatorsAsRow,
|
5708
|
-
datasetPivot,
|
5709
|
-
pivotIndicators_pivotIndicators([
|
5710
|
-
series([
|
5711
|
-
initAreaRange,
|
5712
|
-
areaStyle_areaStyle
|
5713
|
-
], [
|
5714
|
-
initAreaRangeLine1,
|
5715
|
-
lineStyle_lineStyle,
|
5716
|
-
pointStyle_pointStyle,
|
5717
|
-
pointStateDimensionHover,
|
5718
|
-
tooltipDisable
|
5719
|
-
], [
|
5720
|
-
initAreaRangeLine2,
|
5721
|
-
lineStyle_lineStyle,
|
5722
|
-
pointStyle_pointStyle,
|
5723
|
-
pointStateDimensionHover,
|
5724
|
-
tooltipDisable
|
5725
|
-
]),
|
5726
|
-
background_backgroundColor,
|
5727
|
-
datasetXY,
|
5728
|
-
progressive,
|
5729
|
-
xBand,
|
5730
|
-
yLinear,
|
5731
|
-
label_label,
|
5732
|
-
tooltipAreaRange,
|
5733
|
-
verticalCrosshairLine,
|
5734
|
-
annotationPoint_annotationPoint,
|
5735
|
-
annotationVerticalLine_annotationVerticalLine,
|
5736
|
-
annotationHorizontalLine_annotationHorizontalLine,
|
5737
|
-
annotationArea_annotationArea
|
5738
|
-
]),
|
5739
|
-
pivotRowDimensions,
|
5740
|
-
pivotColumnDimensions
|
5741
|
-
];
|
5742
|
-
const areaRangeSpecPipeline = [
|
5743
|
-
pivotAdapter_pivotAdapter(areaRange, pivotAreaRange)
|
5744
|
-
];
|
5745
|
-
const registerAreaRange = ()=>{
|
5746
|
-
Builder._advancedPipelineMap.areaRange = areaRangeAdvancedPipeline;
|
5747
|
-
Builder._specPipelineMap.areaRange = areaRangeSpecPipeline;
|
5748
|
-
};
|
5749
|
-
const dataReshapeFor1D2M_emptyReshapeResult = {
|
5750
|
-
dataset: [],
|
5751
|
-
foldInfo: {
|
5752
|
-
foldMap: {},
|
5753
|
-
measureId: '',
|
5754
|
-
measureName: '',
|
5755
|
-
measureValue: ''
|
5756
|
-
},
|
5757
|
-
unfoldInfo: {
|
5758
|
-
groupName: '',
|
5759
|
-
groupId: '',
|
5760
|
-
colorItems: [],
|
5761
|
-
colorIdMap: {}
|
5762
|
-
}
|
5763
|
-
};
|
5764
|
-
const dataReshapeFor1D2M = (dataset, dimensions, measures, options)=>{
|
5765
|
-
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, unfoldDimensionGroup = UnfoldDimensionGroup, unfoldDimensionGroupId = UnfoldDimensionGroupId } = options || {};
|
5766
|
-
if (0 === dimensions.length && 0 === measures.length) return dataReshapeFor1D2M_emptyReshapeResult;
|
5767
|
-
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures.length > 1 ? measures.slice(1) : measures, foldMeasureId, foldMeasureName, foldMeasureValue);
|
5768
|
-
if (0 === dimensions.length) {
|
5769
|
-
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, [
|
5770
|
-
{
|
5771
|
-
id: foldMeasureValue,
|
5772
|
-
alias: i18n`指标值`,
|
5773
|
-
location: 'dimension'
|
5774
|
-
}
|
5775
|
-
], [
|
5776
|
-
{
|
5777
|
-
id: foldMeasureValue,
|
5778
|
-
alias: i18n`指标值`
|
5779
|
-
}
|
5780
|
-
], 0, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
|
5781
|
-
return {
|
5782
|
-
dataset: finalDataset,
|
5783
|
-
foldInfo,
|
5784
|
-
unfoldInfo
|
5785
|
-
};
|
5786
|
-
}
|
5787
|
-
{
|
5788
|
-
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, [
|
5789
|
-
...dimensions
|
5790
|
-
], [
|
5791
|
-
{
|
5792
|
-
id: foldMeasureValue,
|
5793
|
-
alias: i18n`指标值`
|
5794
|
-
}
|
5795
|
-
], 0, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
|
5796
|
-
return {
|
5797
|
-
dataset: finalDataset,
|
5798
|
-
foldInfo,
|
5799
|
-
unfoldInfo
|
5800
|
-
};
|
5801
|
-
}
|
5802
|
-
};
|
5803
|
-
const reshapeTo1D2M = (advancedVSeed, context)=>{
|
5804
|
-
const result = {
|
5805
|
-
...advancedVSeed
|
5806
|
-
};
|
5807
|
-
const { vseed } = context;
|
5808
|
-
const { dataset } = vseed;
|
5809
|
-
const { dimensions, measures } = advancedVSeed;
|
5810
|
-
if (!measures || !dimensions || !dataset) return result;
|
5811
|
-
if (0 === measures.length) throw new Error('measures can not be empty');
|
5812
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D2M(dataset, dimensions, measures);
|
5813
|
-
return {
|
5814
|
-
...result,
|
5815
|
-
dataset: newDatasets,
|
5816
|
-
datasetReshapeInfo: [
|
5817
|
-
{
|
5818
|
-
id: '1D2M',
|
5819
|
-
index: 0,
|
5820
|
-
foldInfo,
|
5821
|
-
unfoldInfo
|
5822
|
-
}
|
5823
|
-
]
|
5824
|
-
};
|
5825
|
-
};
|
5826
|
-
const pivotReshapeTo1D2M = (advancedVSeed, context)=>{
|
5827
|
-
const result = {
|
5828
|
-
...advancedVSeed
|
5829
|
-
};
|
5830
|
-
const { vseed } = context;
|
5831
|
-
const { dataset } = vseed;
|
5832
|
-
const { measures } = advancedVSeed;
|
5833
|
-
const dimensions = advancedVSeed.dimensions;
|
5834
|
-
if (!measures || !dimensions) return result;
|
5835
|
-
const measureGroups = [];
|
5836
|
-
if (measures) measures.forEach((measure)=>{
|
5837
|
-
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
5838
|
-
});
|
5839
|
-
const newDatasets = [];
|
5840
|
-
const datasetReshapeInfo = [];
|
5841
|
-
measureGroups.forEach((measureGroup, index)=>{
|
5842
|
-
const measures = measureGroup.children;
|
5843
|
-
if (!measures) return;
|
5844
|
-
const commonDimensions = dimensions.filter((dim)=>'dimension' === dim.location);
|
5845
|
-
const groupId = measureGroup.id;
|
5846
|
-
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeFor1D2M(dataset, commonDimensions, measures, {
|
5847
|
-
foldMeasureId: FoldMeasureId,
|
5848
|
-
foldMeasureName: FoldMeasureName,
|
5849
|
-
foldMeasureValue: FoldMeasureValue + groupId,
|
5850
|
-
unfoldDimensionGroup: UnfoldDimensionGroup
|
5851
|
-
});
|
5852
|
-
const reshapeInfo = {
|
5853
|
-
id: groupId,
|
5854
|
-
index,
|
5855
|
-
foldInfo,
|
5856
|
-
unfoldInfo
|
5857
|
-
};
|
5858
|
-
newDatasets.push(newSubDataset);
|
5859
|
-
datasetReshapeInfo.push(reshapeInfo);
|
5860
|
-
});
|
5861
|
-
return {
|
5862
|
-
...result,
|
5863
|
-
dataset: newDatasets,
|
5864
|
-
datasetReshapeInfo: datasetReshapeInfo
|
5865
|
-
};
|
5866
|
-
};
|
5867
|
-
const encodingYY = (advancedVSeed)=>{
|
5868
|
-
const result = {
|
5869
|
-
...advancedVSeed
|
5870
|
-
};
|
5871
|
-
const { datasetReshapeInfo, measures } = advancedVSeed;
|
5872
|
-
if (!datasetReshapeInfo || !measures) return result;
|
5873
|
-
const firstMeasure = findFirstMeasure(measures);
|
5874
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
5875
|
-
const { foldInfo, unfoldInfo } = cur;
|
5876
|
-
const x = [
|
5877
|
-
firstMeasure?.id
|
5878
|
-
];
|
5879
|
-
const y = [
|
5880
|
-
foldInfo.measureValue
|
5881
|
-
];
|
5882
|
-
const group = [
|
5883
|
-
unfoldInfo.groupId
|
5884
|
-
];
|
5885
|
-
const color = [
|
5886
|
-
unfoldInfo.groupId
|
5887
|
-
];
|
5888
|
-
return [
|
5889
|
-
...prev,
|
5890
|
-
{
|
5891
|
-
x,
|
5892
|
-
y,
|
5893
|
-
group,
|
5894
|
-
color
|
5895
|
-
}
|
5896
|
-
];
|
5897
|
-
}, []);
|
5898
|
-
return {
|
5899
|
-
...result,
|
5900
|
-
encoding
|
5901
|
-
};
|
5902
|
-
};
|
5903
|
-
const scatterAdvancedPipeline = [
|
5904
|
-
initAdvancedVSeed_initAdvancedVSeed,
|
5905
|
-
autoMeasures_autoMeasures,
|
5906
|
-
autoDimensions_autoDimensions,
|
5907
|
-
pivotAdapter([
|
5908
|
-
reshapeTo1D2M
|
5909
|
-
], [
|
5910
|
-
pivotReshapeTo1D2M
|
5911
|
-
]),
|
5912
|
-
encodingYY,
|
5913
|
-
scatterConfig,
|
5914
|
-
theme_theme,
|
5915
|
-
markStyle_markStyle,
|
5916
|
-
annotation_annotation
|
5917
|
-
];
|
5918
|
-
const initScatter = (spec, context)=>{
|
5919
|
-
const result = {
|
5920
|
-
...spec
|
5921
|
-
};
|
5922
|
-
const { advancedVSeed } = context;
|
5923
|
-
const { encoding } = advancedVSeed;
|
5924
|
-
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
5925
|
-
result.type = 'scatter';
|
5926
|
-
result.direction = 'vertical';
|
5927
|
-
result.xField = encoding[0].x[0];
|
5928
|
-
result.yField = encoding[0].y[0];
|
5929
|
-
result.seriesField = encoding[0].group[0];
|
5930
|
-
result.padding = 0;
|
5931
|
-
result.region = [
|
5932
|
-
{
|
5933
|
-
clip: true
|
5934
|
-
}
|
5935
|
-
];
|
5936
|
-
result.animation = true;
|
5937
|
-
return result;
|
5938
|
-
};
|
5939
|
-
const horizontalCrosshairLine = (spec, context)=>{
|
5402
|
+
const horizontalCrosshairLine = (spec, context)=>{
|
5940
5403
|
const result = {
|
5941
5404
|
...spec
|
5942
5405
|
};
|
@@ -5984,7 +5447,7 @@
|
|
5984
5447
|
initScatter,
|
5985
5448
|
color_color,
|
5986
5449
|
background_backgroundColor,
|
5987
|
-
|
5450
|
+
datasetScatter,
|
5988
5451
|
progressive,
|
5989
5452
|
xLinear,
|
5990
5453
|
yLinear,
|
@@ -6009,7 +5472,7 @@
|
|
6009
5472
|
initScatter,
|
6010
5473
|
color_color,
|
6011
5474
|
background_backgroundColor,
|
6012
|
-
|
5475
|
+
datasetScatter,
|
6013
5476
|
progressive,
|
6014
5477
|
xLinear,
|
6015
5478
|
yLinear,
|
@@ -6035,41 +5498,169 @@
|
|
6035
5498
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
6036
5499
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
6037
5500
|
};
|
6038
|
-
const
|
5501
|
+
const autoDualMeasures = (advancedVSeed, context)=>{
|
5502
|
+
const result = {
|
5503
|
+
...advancedVSeed
|
5504
|
+
};
|
5505
|
+
const { vseed } = context;
|
5506
|
+
const { dataset, dualMeasures, measures } = vseed;
|
5507
|
+
if (!dataset) throw new Error('dataset is required');
|
5508
|
+
if (0 === dataset.length) return result;
|
5509
|
+
if (dualMeasures) {
|
5510
|
+
result.measures = dualMeasuresToMeasureTree(dualMeasures);
|
5511
|
+
return result;
|
5512
|
+
}
|
5513
|
+
if (measures && measureDepth(measures) > 1) {
|
5514
|
+
result.measures = measures;
|
5515
|
+
return result;
|
5516
|
+
}
|
5517
|
+
const top100dataset = dataset.slice(0, 100);
|
5518
|
+
const sample = top100dataset.reduce((prev, cur)=>({
|
5519
|
+
...prev,
|
5520
|
+
...cur
|
5521
|
+
}), {});
|
5522
|
+
const newMeasures = measures || Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
5523
|
+
'',
|
5524
|
+
null,
|
5525
|
+
void 0
|
5526
|
+
].includes(key)).map((measure)=>({
|
5527
|
+
id: measure,
|
5528
|
+
alias: measure
|
5529
|
+
}));
|
5530
|
+
if (0 === newMeasures.length) result.measures = [];
|
5531
|
+
else if (1 === newMeasures.length) result.measures = [
|
5532
|
+
{
|
5533
|
+
id: 'primary',
|
5534
|
+
alias: 'primary',
|
5535
|
+
children: newMeasures
|
5536
|
+
}
|
5537
|
+
];
|
5538
|
+
else if (newMeasures.length > 1) result.measures = [
|
5539
|
+
{
|
5540
|
+
id: 'primary',
|
5541
|
+
alias: 'primary',
|
5542
|
+
children: newMeasures.slice(0, 1)
|
5543
|
+
},
|
5544
|
+
{
|
5545
|
+
id: 'secondary',
|
5546
|
+
alias: 'secondary',
|
5547
|
+
children: newMeasures.slice(1)
|
5548
|
+
}
|
5549
|
+
];
|
5550
|
+
return result;
|
5551
|
+
};
|
5552
|
+
const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
5553
|
+
const measureTree = dualMeasures.map((item, index)=>{
|
5554
|
+
const { primaryMeasures, secondaryMeasures } = item;
|
5555
|
+
const groupChildren = [];
|
5556
|
+
let id = '';
|
5557
|
+
if (primaryMeasures) {
|
5558
|
+
const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
|
5559
|
+
primaryMeasures
|
5560
|
+
];
|
5561
|
+
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
5562
|
+
id += alias;
|
5563
|
+
groupChildren.push({
|
5564
|
+
id: `${index}-primary`,
|
5565
|
+
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
5566
|
+
children: arrPrimaryMeasures
|
5567
|
+
});
|
5568
|
+
}
|
5569
|
+
if (secondaryMeasures) {
|
5570
|
+
const arrSecondaryMeasures = Array.isArray(secondaryMeasures) ? secondaryMeasures : [
|
5571
|
+
secondaryMeasures
|
5572
|
+
];
|
5573
|
+
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
5574
|
+
id += alias;
|
5575
|
+
groupChildren.push({
|
5576
|
+
id: `${index}-secondary`,
|
5577
|
+
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
5578
|
+
children: arrSecondaryMeasures
|
5579
|
+
});
|
5580
|
+
}
|
5581
|
+
return {
|
5582
|
+
id,
|
5583
|
+
alias: id,
|
5584
|
+
children: groupChildren
|
5585
|
+
};
|
5586
|
+
});
|
5587
|
+
if (1 === dualMeasures.length) return measureTree[0].children || [];
|
5588
|
+
return measureTree;
|
5589
|
+
};
|
5590
|
+
const encodingForDualAxis = (advancedVSeed, context)=>{
|
5591
|
+
const { vseed } = context;
|
5592
|
+
const { dimensions } = advancedVSeed;
|
5593
|
+
if (!dimensions) return advancedVSeed;
|
5594
|
+
const encoding = vseed.encoding;
|
5595
|
+
if (encoding) {
|
5596
|
+
const x = encoding.x || [
|
5597
|
+
dimensions[0].id
|
5598
|
+
];
|
5599
|
+
const color = encoding.color || [
|
5600
|
+
(dimensions[1] || dimensions[0]).id
|
5601
|
+
];
|
5602
|
+
const detail = encoding.detail || [];
|
5603
|
+
const mergedDetail = chunk_QJLMYOTX_i([
|
5604
|
+
...color,
|
5605
|
+
...detail
|
5606
|
+
]);
|
5607
|
+
return {
|
5608
|
+
...advancedVSeed,
|
5609
|
+
encoding: {
|
5610
|
+
...encoding,
|
5611
|
+
x,
|
5612
|
+
color,
|
5613
|
+
detail: mergedDetail
|
5614
|
+
}
|
5615
|
+
};
|
5616
|
+
}
|
5617
|
+
const mergedEncoding = {
|
5618
|
+
x: dimensions.slice(0, 1).map((item)=>item.id),
|
5619
|
+
color: dimensions.slice(1).map((item)=>item.id),
|
5620
|
+
detail: dimensions.slice(1).map((item)=>item.id),
|
5621
|
+
tooltip: dimensions.map((item)=>item.id),
|
5622
|
+
label: [],
|
5623
|
+
row: [],
|
5624
|
+
column: []
|
5625
|
+
};
|
5626
|
+
return {
|
5627
|
+
...advancedVSeed,
|
5628
|
+
encoding: mergedEncoding
|
5629
|
+
};
|
5630
|
+
};
|
5631
|
+
const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
6039
5632
|
const result = {
|
6040
5633
|
...advancedVSeed
|
6041
5634
|
};
|
6042
5635
|
const { vseed } = context;
|
6043
5636
|
const { dataset } = vseed;
|
6044
|
-
const { dimensions, measures } = advancedVSeed;
|
6045
|
-
if (!measures || !dimensions || !dataset) return result;
|
5637
|
+
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
5638
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
6046
5639
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
6047
5640
|
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
6048
|
-
const commonDimensions = dimensions.filter((dim)=>'dimension' === dim.location);
|
6049
|
-
const datasets = [];
|
6050
5641
|
const foldInfoList = [];
|
6051
5642
|
const unfoldInfoList = [];
|
5643
|
+
const datasets = [];
|
6052
5644
|
const primaryMeasures = measures[0];
|
6053
5645
|
const secondaryMeasures = measures[1] || [];
|
6054
5646
|
if (primaryMeasures && primaryMeasures.children) {
|
6055
|
-
const { dataset:
|
5647
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
6056
5648
|
foldMeasureValue: FoldPrimaryMeasureValue
|
6057
5649
|
});
|
6058
|
-
datasets.push(
|
5650
|
+
datasets.push(newDataset);
|
6059
5651
|
foldInfoList.push(foldInfo);
|
6060
5652
|
unfoldInfoList.push(unfoldInfo);
|
6061
5653
|
}
|
6062
5654
|
if (secondaryMeasures && secondaryMeasures.children) {
|
6063
|
-
const { dataset:
|
5655
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
6064
5656
|
foldMeasureValue: FoldSecondaryMeasureValue
|
6065
5657
|
});
|
6066
|
-
datasets.push(
|
5658
|
+
datasets.push(newDataset);
|
6067
5659
|
foldInfoList.push(foldInfo);
|
6068
5660
|
unfoldInfoList.push(unfoldInfo);
|
6069
5661
|
}
|
6070
5662
|
const unfoldInfo = {
|
6071
|
-
|
6072
|
-
groupId: unfoldInfoList[0].groupId,
|
5663
|
+
...unfoldInfoList[0],
|
6073
5664
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
6074
5665
|
colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
|
6075
5666
|
...prev,
|
@@ -6081,7 +5672,7 @@
|
|
6081
5672
|
dataset: datasets,
|
6082
5673
|
datasetReshapeInfo: [
|
6083
5674
|
{
|
6084
|
-
id:
|
5675
|
+
id: String(chartType),
|
6085
5676
|
index: 0,
|
6086
5677
|
foldInfo: foldInfoList[0],
|
6087
5678
|
foldInfoList: foldInfoList,
|
@@ -6090,46 +5681,48 @@
|
|
6090
5681
|
]
|
6091
5682
|
};
|
6092
5683
|
};
|
6093
|
-
const
|
5684
|
+
const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
6094
5685
|
const result = {
|
6095
5686
|
...advancedVSeed
|
6096
5687
|
};
|
6097
5688
|
const { vseed } = context;
|
6098
5689
|
const { dataset } = vseed;
|
6099
|
-
const { dimensions, measures } = advancedVSeed;
|
6100
|
-
if (!measures || !dimensions || !dataset) return result;
|
6101
|
-
const commonDimensions = dimensions.filter((dim)=>'dimension' === dim.location);
|
5690
|
+
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
5691
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
6102
5692
|
const datasetList = [];
|
6103
5693
|
const datasetReshapeInfo = [];
|
6104
|
-
|
6105
|
-
|
5694
|
+
const measureGroups = [];
|
5695
|
+
const depth = measureDepth(measures);
|
5696
|
+
if (3 === depth) measures.forEach((measure)=>{
|
5697
|
+
measureGroups.push(measure.children);
|
5698
|
+
});
|
5699
|
+
else if (2 === depth) measureGroups.push(measures);
|
5700
|
+
measureGroups.forEach((measures, index)=>{
|
6106
5701
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
6107
5702
|
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
6108
|
-
const datasets = [];
|
6109
5703
|
const foldInfoList = [];
|
6110
5704
|
const unfoldInfoList = [];
|
5705
|
+
const datasets = [];
|
6111
5706
|
const primaryMeasures = measures[0];
|
6112
|
-
const secondaryMeasures = measures[1] ||
|
5707
|
+
const secondaryMeasures = measures[1] || [];
|
6113
5708
|
if (primaryMeasures && primaryMeasures.children) {
|
6114
|
-
const { dataset:
|
5709
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
6115
5710
|
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`
|
6116
5711
|
});
|
6117
|
-
datasets.push(
|
5712
|
+
datasets.push(newDataset);
|
6118
5713
|
foldInfoList.push(foldInfo);
|
6119
5714
|
unfoldInfoList.push(unfoldInfo);
|
6120
5715
|
}
|
6121
5716
|
if (secondaryMeasures && secondaryMeasures.children) {
|
6122
|
-
const { dataset:
|
5717
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
6123
5718
|
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`
|
6124
5719
|
});
|
6125
|
-
datasets.push(
|
5720
|
+
datasets.push(newDataset);
|
6126
5721
|
foldInfoList.push(foldInfo);
|
6127
5722
|
unfoldInfoList.push(unfoldInfo);
|
6128
5723
|
}
|
6129
|
-
datasetList.push(datasets.flat(2));
|
6130
5724
|
const unfoldInfo = {
|
6131
|
-
|
6132
|
-
groupId: unfoldInfoList[0].groupId,
|
5725
|
+
...unfoldInfoList[0],
|
6133
5726
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
6134
5727
|
colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
|
6135
5728
|
...prev,
|
@@ -6137,53 +5730,19 @@
|
|
6137
5730
|
}), {})
|
6138
5731
|
};
|
6139
5732
|
const reshapeInfo = {
|
6140
|
-
id:
|
5733
|
+
id: `${chartType}-${index}`,
|
6141
5734
|
index,
|
6142
5735
|
foldInfo: foldInfoList[0],
|
6143
|
-
|
6144
|
-
|
5736
|
+
foldInfoList: foldInfoList,
|
5737
|
+
unfoldInfo: unfoldInfo
|
6145
5738
|
};
|
6146
5739
|
datasetReshapeInfo.push(reshapeInfo);
|
5740
|
+
datasetList.push(datasets.flat(2));
|
6147
5741
|
});
|
6148
5742
|
return {
|
6149
5743
|
...result,
|
6150
5744
|
dataset: datasetList,
|
6151
|
-
datasetReshapeInfo
|
6152
|
-
};
|
6153
|
-
};
|
6154
|
-
const encodingXYY = (advancedVSeed)=>{
|
6155
|
-
const result = {
|
6156
|
-
...advancedVSeed
|
6157
|
-
};
|
6158
|
-
const { datasetReshapeInfo, dimensions } = advancedVSeed;
|
6159
|
-
if (!datasetReshapeInfo || !dimensions) return result;
|
6160
|
-
const xDimension = dimensions.find((item)=>'rowDimension' !== item.location && 'columnDimension' !== item.location) || dimensions[0];
|
6161
|
-
const isZeroDimension = 0 === dimensions.length;
|
6162
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
6163
|
-
const { foldInfoList, unfoldInfo } = cur;
|
6164
|
-
const x = [
|
6165
|
-
isZeroDimension ? foldInfoList[0].measureName : xDimension?.id
|
6166
|
-
];
|
6167
|
-
const y = foldInfoList.map((d)=>d.measureValue);
|
6168
|
-
const group = [
|
6169
|
-
unfoldInfo.groupId
|
6170
|
-
];
|
6171
|
-
const color = [
|
6172
|
-
foldInfoList[0].measureName
|
6173
|
-
];
|
6174
|
-
return [
|
6175
|
-
...prev,
|
6176
|
-
{
|
6177
|
-
x,
|
6178
|
-
y,
|
6179
|
-
group,
|
6180
|
-
color
|
6181
|
-
}
|
6182
|
-
];
|
6183
|
-
}, []);
|
6184
|
-
return {
|
6185
|
-
...result,
|
6186
|
-
encoding
|
5745
|
+
datasetReshapeInfo: datasetReshapeInfo
|
6187
5746
|
};
|
6188
5747
|
};
|
6189
5748
|
const dualAxisConfig = (advancedVSeed, context)=>{
|
@@ -6212,125 +5771,80 @@
|
|
6212
5771
|
};
|
6213
5772
|
return result;
|
6214
5773
|
};
|
6215
|
-
const autoDualMeasures = (advancedVSeed, context)=>{
|
6216
|
-
const result = {
|
6217
|
-
...advancedVSeed
|
6218
|
-
};
|
6219
|
-
const { vseed } = context;
|
6220
|
-
const { dataset, dualMeasures, measures } = vseed;
|
6221
|
-
if (!dataset) throw new Error('dataset is required');
|
6222
|
-
if (0 === dataset.length) return result;
|
6223
|
-
if (dualMeasures) {
|
6224
|
-
result.measures = dualMeasuresToMeasureTree(dualMeasures);
|
6225
|
-
return result;
|
6226
|
-
}
|
6227
|
-
if (measures && measureDepth(measures) > 1) {
|
6228
|
-
result.measures = measures;
|
6229
|
-
return result;
|
6230
|
-
}
|
6231
|
-
const top100dataset = dataset.slice(0, 100);
|
6232
|
-
const sample = top100dataset.reduce((prev, cur)=>({
|
6233
|
-
...prev,
|
6234
|
-
...cur
|
6235
|
-
}), {});
|
6236
|
-
const newMeasures = measures || Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
6237
|
-
'',
|
6238
|
-
null,
|
6239
|
-
void 0
|
6240
|
-
].includes(key)).map((measure)=>({
|
6241
|
-
id: measure,
|
6242
|
-
alias: measure
|
6243
|
-
}));
|
6244
|
-
if (0 === newMeasures.length) result.measures = [];
|
6245
|
-
else if (1 === newMeasures.length) result.measures = [
|
6246
|
-
{
|
6247
|
-
id: 'primary',
|
6248
|
-
alias: 'primary',
|
6249
|
-
children: newMeasures
|
6250
|
-
}
|
6251
|
-
];
|
6252
|
-
else if (newMeasures.length > 1) result.measures = [
|
6253
|
-
{
|
6254
|
-
id: 'primary',
|
6255
|
-
alias: 'primary',
|
6256
|
-
children: newMeasures.slice(0, 1)
|
6257
|
-
},
|
6258
|
-
{
|
6259
|
-
id: 'secondary',
|
6260
|
-
alias: 'secondary',
|
6261
|
-
children: newMeasures.slice(1)
|
6262
|
-
}
|
6263
|
-
];
|
6264
|
-
return result;
|
6265
|
-
};
|
6266
|
-
const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
6267
|
-
const measureTree = dualMeasures.map((item, index)=>{
|
6268
|
-
const { primaryMeasures, secondaryMeasures } = item;
|
6269
|
-
const groupChildren = [];
|
6270
|
-
let id = '';
|
6271
|
-
if (primaryMeasures) {
|
6272
|
-
const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
|
6273
|
-
primaryMeasures
|
6274
|
-
];
|
6275
|
-
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
6276
|
-
id += alias;
|
6277
|
-
groupChildren.push({
|
6278
|
-
id: `${index}-primary`,
|
6279
|
-
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
6280
|
-
children: arrPrimaryMeasures
|
6281
|
-
});
|
6282
|
-
}
|
6283
|
-
if (secondaryMeasures) {
|
6284
|
-
const arrSecondaryMeasures = Array.isArray(secondaryMeasures) ? secondaryMeasures : [
|
6285
|
-
secondaryMeasures
|
6286
|
-
];
|
6287
|
-
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
6288
|
-
id += alias;
|
6289
|
-
groupChildren.push({
|
6290
|
-
id: `${index}-secondary`,
|
6291
|
-
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
6292
|
-
children: arrSecondaryMeasures
|
6293
|
-
});
|
6294
|
-
}
|
6295
|
-
return {
|
6296
|
-
id,
|
6297
|
-
alias: id,
|
6298
|
-
children: groupChildren
|
6299
|
-
};
|
6300
|
-
});
|
6301
|
-
if (1 === dualMeasures.length) return measureTree[0].children || [];
|
6302
|
-
return measureTree;
|
6303
|
-
};
|
6304
5774
|
const dualAxisAdvancedPipeline = [
|
6305
5775
|
initAdvancedVSeed_initAdvancedVSeed,
|
6306
5776
|
autoDualMeasures,
|
6307
5777
|
autoDimensions_autoDimensions,
|
5778
|
+
encodingForDualAxis,
|
6308
5779
|
pivotAdapter([
|
6309
|
-
|
5780
|
+
reshapeWithDualEncoding
|
6310
5781
|
], [
|
6311
|
-
|
5782
|
+
pivotReshapeWithDualEncoding
|
6312
5783
|
]),
|
6313
|
-
encodingXYY,
|
6314
5784
|
sortXBandAxis,
|
6315
|
-
|
5785
|
+
sortLegend_sortLegend,
|
6316
5786
|
dualAxisConfig,
|
6317
5787
|
theme_theme,
|
6318
5788
|
markStyle_markStyle,
|
6319
5789
|
annotation_annotation
|
6320
5790
|
];
|
5791
|
+
const series = (...args)=>{
|
5792
|
+
const result = {
|
5793
|
+
type: 'common',
|
5794
|
+
padding: 0,
|
5795
|
+
region: [
|
5796
|
+
{
|
5797
|
+
clip: true
|
5798
|
+
}
|
5799
|
+
]
|
5800
|
+
};
|
5801
|
+
return (_, context)=>{
|
5802
|
+
result.series = args.map((pipeline)=>execPipeline(pipeline, context, {}));
|
5803
|
+
return result;
|
5804
|
+
};
|
5805
|
+
};
|
5806
|
+
const seriesDualAxis = (...args)=>{
|
5807
|
+
const result = {
|
5808
|
+
type: 'common',
|
5809
|
+
padding: 0,
|
5810
|
+
region: [
|
5811
|
+
{
|
5812
|
+
clip: true
|
5813
|
+
}
|
5814
|
+
]
|
5815
|
+
};
|
5816
|
+
const createDualContext = (context, index)=>{
|
5817
|
+
const { advancedVSeed } = context;
|
5818
|
+
const dataset = advancedVSeed.dataset[index];
|
5819
|
+
return {
|
5820
|
+
...context,
|
5821
|
+
advancedVSeed: {
|
5822
|
+
...advancedVSeed,
|
5823
|
+
dataset: dataset
|
5824
|
+
}
|
5825
|
+
};
|
5826
|
+
};
|
5827
|
+
return (_, context)=>{
|
5828
|
+
result.series = args.map((pipeline, index)=>{
|
5829
|
+
const seriesContext = createDualContext(context, index);
|
5830
|
+
return execPipeline(pipeline, seriesContext, {});
|
5831
|
+
});
|
5832
|
+
return result;
|
5833
|
+
};
|
5834
|
+
};
|
6321
5835
|
const initDualAxisPrimary = (spec, context)=>{
|
6322
5836
|
const result = {
|
6323
5837
|
...spec
|
6324
5838
|
};
|
6325
5839
|
const { advancedVSeed } = context;
|
6326
|
-
const {
|
6327
|
-
|
6328
|
-
result.id = `${
|
5840
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
5841
|
+
const { unfoldInfo, foldInfoList, id } = datasetReshapeInfo[0];
|
5842
|
+
result.id = `${id}-primary-series`;
|
6329
5843
|
result.type = 'bar';
|
6330
5844
|
result.direction = 'vertical';
|
6331
|
-
result.xField =
|
6332
|
-
result.
|
6333
|
-
result.
|
5845
|
+
result.xField = unfoldInfo.encodingX;
|
5846
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
5847
|
+
result.yField = foldInfoList?.[0].measureValue;
|
6334
5848
|
result.animation = true;
|
6335
5849
|
return result;
|
6336
5850
|
};
|
@@ -6339,14 +5853,14 @@
|
|
6339
5853
|
...spec
|
6340
5854
|
};
|
6341
5855
|
const { advancedVSeed } = context;
|
6342
|
-
const {
|
6343
|
-
|
6344
|
-
result.id = `${
|
5856
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
5857
|
+
const { unfoldInfo, foldInfoList, id } = datasetReshapeInfo[0];
|
5858
|
+
result.id = `${id}-secondary-series`;
|
6345
5859
|
result.type = 'line';
|
6346
5860
|
result.direction = 'vertical';
|
6347
|
-
result.xField =
|
6348
|
-
result.yField =
|
6349
|
-
result.seriesField =
|
5861
|
+
result.xField = unfoldInfo.encodingX;
|
5862
|
+
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
5863
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
6350
5864
|
result.animation = true;
|
6351
5865
|
return result;
|
6352
5866
|
};
|
@@ -6378,10 +5892,10 @@
|
|
6378
5892
|
case 'columnParallel':
|
6379
5893
|
{
|
6380
5894
|
const columnSpec = result;
|
6381
|
-
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.
|
5895
|
+
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail);
|
6382
5896
|
else if (columnSpec.xField) columnSpec.xField = [
|
6383
5897
|
columnSpec.xField,
|
6384
|
-
datasetReshapeInfo[0].unfoldInfo.
|
5898
|
+
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
6385
5899
|
];
|
6386
5900
|
columnSpec.type = 'bar';
|
6387
5901
|
result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
|
@@ -6434,10 +5948,10 @@
|
|
6434
5948
|
case 'columnParallel':
|
6435
5949
|
{
|
6436
5950
|
const columnSpec = result;
|
6437
|
-
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.
|
5951
|
+
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail);
|
6438
5952
|
else if (columnSpec.xField) columnSpec.xField = [
|
6439
5953
|
columnSpec.xField,
|
6440
|
-
datasetReshapeInfo[0].unfoldInfo.
|
5954
|
+
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
6441
5955
|
];
|
6442
5956
|
columnSpec.type = 'bar';
|
6443
5957
|
result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
|
@@ -6464,10 +5978,11 @@
|
|
6464
5978
|
};
|
6465
5979
|
const datasetPrimary = (spec, context)=>{
|
6466
5980
|
const { advancedVSeed, vseed } = context;
|
6467
|
-
const {
|
5981
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
6468
5982
|
const orderMapping = analysis?.orderMapping || {};
|
6469
|
-
const
|
6470
|
-
const
|
5983
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
5984
|
+
const x = unfoldInfo.encodingX;
|
5985
|
+
const colorId = unfoldInfo.encodingColorId;
|
6471
5986
|
const id = datasetReshapeInfo[0].id;
|
6472
5987
|
const fields = {};
|
6473
5988
|
if (x) {
|
@@ -6481,14 +5996,14 @@
|
|
6481
5996
|
sortIndex: 0
|
6482
5997
|
};
|
6483
5998
|
}
|
6484
|
-
if (
|
6485
|
-
const order = orderMapping[
|
6486
|
-
if (order) fields[
|
5999
|
+
if (colorId) {
|
6000
|
+
const order = orderMapping[colorId];
|
6001
|
+
if (order) fields[colorId] = {
|
6487
6002
|
sortIndex: 0,
|
6488
6003
|
domain: order,
|
6489
6004
|
lockStatisticsByDomain: true
|
6490
6005
|
};
|
6491
|
-
else fields[
|
6006
|
+
else fields[colorId] = {
|
6492
6007
|
sortIndex: 0
|
6493
6008
|
};
|
6494
6009
|
}
|
@@ -6503,10 +6018,11 @@
|
|
6503
6018
|
};
|
6504
6019
|
const datasetSecondary = (spec, context)=>{
|
6505
6020
|
const { advancedVSeed, vseed } = context;
|
6506
|
-
const {
|
6021
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
6507
6022
|
const orderMapping = analysis?.orderMapping || {};
|
6508
|
-
const
|
6509
|
-
const
|
6023
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
6024
|
+
const x = unfoldInfo.encodingX;
|
6025
|
+
const colorId = unfoldInfo.encodingColorId;
|
6510
6026
|
const id = datasetReshapeInfo[0].id;
|
6511
6027
|
const fields = {};
|
6512
6028
|
if (x) {
|
@@ -6520,14 +6036,14 @@
|
|
6520
6036
|
sortIndex: 0
|
6521
6037
|
};
|
6522
6038
|
}
|
6523
|
-
if (
|
6524
|
-
const order = orderMapping[
|
6525
|
-
if (order) fields[
|
6039
|
+
if (colorId) {
|
6040
|
+
const order = orderMapping[colorId];
|
6041
|
+
if (order) fields[colorId] = {
|
6526
6042
|
sortIndex: 0,
|
6527
6043
|
domain: order,
|
6528
6044
|
lockStatisticsByDomain: true
|
6529
6045
|
};
|
6530
|
-
else fields[
|
6046
|
+
else fields[colorId] = {
|
6531
6047
|
sortIndex: 0
|
6532
6048
|
};
|
6533
6049
|
}
|
@@ -6625,7 +6141,7 @@
|
|
6625
6141
|
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
6626
6142
|
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
6627
6143
|
const { measureId, measureValue, measureName } = foldInfoList[0];
|
6628
|
-
const {
|
6144
|
+
const { encodingColor: colorName } = unfoldInfo;
|
6629
6145
|
result.tooltip = {
|
6630
6146
|
visible: enable,
|
6631
6147
|
mark: {
|
@@ -6646,7 +6162,7 @@
|
|
6646
6162
|
{
|
6647
6163
|
visible: true,
|
6648
6164
|
hasShape: true,
|
6649
|
-
key: (datum)=>datum && datum[measureName ||
|
6165
|
+
key: (datum)=>datum && datum[measureName || colorName] || '',
|
6650
6166
|
value: (datum)=>{
|
6651
6167
|
if (!datum) return '';
|
6652
6168
|
const value = datum[measureValue];
|
@@ -6668,7 +6184,7 @@
|
|
6668
6184
|
content: [
|
6669
6185
|
{
|
6670
6186
|
visible: true,
|
6671
|
-
key: (datum)=>datum && datum[
|
6187
|
+
key: (datum)=>datum && datum[colorName] || '',
|
6672
6188
|
value: (datum)=>{
|
6673
6189
|
if (!datum) return '';
|
6674
6190
|
const value = datum[measureValue];
|
@@ -6705,7 +6221,7 @@
|
|
6705
6221
|
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
6706
6222
|
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
6707
6223
|
const { measureId, measureValue, measureName } = foldInfoList[1];
|
6708
|
-
const {
|
6224
|
+
const { encodingColorId } = unfoldInfo;
|
6709
6225
|
result.tooltip = {
|
6710
6226
|
visible: enable,
|
6711
6227
|
mark: {
|
@@ -6726,7 +6242,7 @@
|
|
6726
6242
|
{
|
6727
6243
|
visible: true,
|
6728
6244
|
hasShape: true,
|
6729
|
-
key: (datum)=>datum && datum[measureName ||
|
6245
|
+
key: (datum)=>datum && datum[measureName || encodingColorId] || '',
|
6730
6246
|
value: (datum)=>{
|
6731
6247
|
if (!datum) return '';
|
6732
6248
|
const value = datum[measureValue];
|
@@ -6748,7 +6264,7 @@
|
|
6748
6264
|
content: [
|
6749
6265
|
{
|
6750
6266
|
visible: true,
|
6751
|
-
key: (datum)=>datum && datum[
|
6267
|
+
key: (datum)=>datum && datum[encodingColorId] || '',
|
6752
6268
|
value: (datum)=>{
|
6753
6269
|
if (!datum) return '';
|
6754
6270
|
const value = datum[measureValue];
|
@@ -6777,16 +6293,16 @@
|
|
6777
6293
|
const { advancedVSeed, vseed } = context;
|
6778
6294
|
const { chartType } = vseed;
|
6779
6295
|
const { locale, datasetReshapeInfo } = advancedVSeed;
|
6780
|
-
const index = datasetReshapeInfo[0]
|
6296
|
+
const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0];
|
6781
6297
|
const primaryYAxis = advancedVSeed.config?.[chartType]?.primaryYAxis;
|
6782
6298
|
const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis;
|
6783
6299
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
6784
6300
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
6785
|
-
if (
|
6786
|
-
const id = `${
|
6301
|
+
if (foldInfoList?.[0] && chunk_VCYTMP4D_n(foldInfoList[0].foldMap)) return result;
|
6302
|
+
const id = `${reshapeInfoId}-primary-axis`;
|
6787
6303
|
const seriesIds = [
|
6788
|
-
`${
|
6789
|
-
`${
|
6304
|
+
`${reshapeInfoId}-primary-series`,
|
6305
|
+
`${reshapeInfoId}-secondary-series`
|
6790
6306
|
];
|
6791
6307
|
const seriesId = alignTicksConfig ? seriesIds : seriesIds[0];
|
6792
6308
|
if (!result.axes) result.axes = [];
|
@@ -6874,20 +6390,20 @@
|
|
6874
6390
|
const { advancedVSeed, vseed } = context;
|
6875
6391
|
const { chartType } = vseed;
|
6876
6392
|
const { locale, datasetReshapeInfo } = advancedVSeed;
|
6877
|
-
const index = datasetReshapeInfo[0]
|
6393
|
+
const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0];
|
6878
6394
|
const secondaryYAxis = advancedVSeed.config?.[chartType]?.secondaryYAxis;
|
6879
6395
|
const yAxisConfig = Array.isArray(secondaryYAxis) ? secondaryYAxis[index] || secondaryYAxis[0] : secondaryYAxis;
|
6880
6396
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
6881
6397
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
6882
|
-
if (chunk_JK3VNB42_n(
|
6398
|
+
if (chunk_JK3VNB42_n(foldInfoList?.[1])) return result;
|
6883
6399
|
const sync = {
|
6884
|
-
axisId: `${
|
6400
|
+
axisId: `${reshapeInfoId}-primary-axis`,
|
6885
6401
|
zeroAlign: true
|
6886
6402
|
};
|
6887
|
-
const id = `${
|
6403
|
+
const id = `${reshapeInfoId}-secondary-axis`;
|
6888
6404
|
const seriesIds = [
|
6889
|
-
`${
|
6890
|
-
`${
|
6405
|
+
`${reshapeInfoId}-primary-series`,
|
6406
|
+
`${reshapeInfoId}-secondary-series`
|
6891
6407
|
];
|
6892
6408
|
const seriesId = alignTicksConfig ? seriesIds : seriesIds[1];
|
6893
6409
|
if (!result.axes) result.axes = [];
|
@@ -7032,206 +6548,69 @@
|
|
7032
6548
|
datasetSecondary,
|
7033
6549
|
labelSecondary,
|
7034
6550
|
tooltipSecondary,
|
7035
|
-
progressive,
|
7036
|
-
barStyle_barStyle,
|
7037
|
-
pointStyle_pointStyle,
|
7038
|
-
pointStateDimensionHover,
|
7039
|
-
lineStyle_lineStyle,
|
7040
|
-
areaStyle_areaStyle
|
7041
|
-
]),
|
7042
|
-
xBand,
|
7043
|
-
yLinearPrimary,
|
7044
|
-
yLinearSecondary,
|
7045
|
-
color_color,
|
7046
|
-
background_backgroundColor,
|
7047
|
-
verticalCrosshairRect,
|
7048
|
-
annotationPoint_annotationPoint,
|
7049
|
-
annotationVerticalLine_annotationVerticalLine,
|
7050
|
-
annotationHorizontalLine_annotationHorizontalLine,
|
7051
|
-
annotationArea_annotationArea
|
7052
|
-
]),
|
7053
|
-
pivotRowDimensions,
|
7054
|
-
pivotColumnDimensions,
|
7055
|
-
pivotDiscreteLegend
|
7056
|
-
];
|
7057
|
-
const dualAxisSpecPipeline = [
|
7058
|
-
pivotAdapter_pivotAdapter(dualAxis, pivotDualAxis)
|
7059
|
-
];
|
7060
|
-
const registerDualAxis = ()=>{
|
7061
|
-
Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
|
7062
|
-
Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
|
7063
|
-
};
|
7064
|
-
const dataReshapeFor1D1M_emptyReshapeResult = {
|
7065
|
-
dataset: [],
|
7066
|
-
foldInfo: {
|
7067
|
-
foldMap: {},
|
7068
|
-
measureId: '',
|
7069
|
-
measureName: '',
|
7070
|
-
measureValue: ''
|
7071
|
-
},
|
7072
|
-
unfoldInfo: {
|
7073
|
-
groupName: '',
|
7074
|
-
groupId: '',
|
7075
|
-
colorItems: [],
|
7076
|
-
colorIdMap: {}
|
7077
|
-
}
|
7078
|
-
};
|
7079
|
-
const dataReshapeFor1D1M = (dataset, dimensions, measures, options)=>{
|
7080
|
-
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, unfoldDimensionGroup = UnfoldDimensionGroup, unfoldDimensionGroupId = UnfoldDimensionGroupId } = options || {};
|
7081
|
-
if (0 === dimensions.length && 0 === measures.length) return dataReshapeFor1D1M_emptyReshapeResult;
|
7082
|
-
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, foldMeasureId, foldMeasureName, foldMeasureValue);
|
7083
|
-
if (0 === dimensions.length) {
|
7084
|
-
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, [
|
7085
|
-
{
|
7086
|
-
id: foldMeasureName,
|
7087
|
-
alias: i18n`指标名称`,
|
7088
|
-
location: 'dimension'
|
7089
|
-
}
|
7090
|
-
], [
|
7091
|
-
{
|
7092
|
-
id: foldMeasureValue,
|
7093
|
-
alias: i18n`指标值`
|
7094
|
-
}
|
7095
|
-
], 0, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
|
7096
|
-
return {
|
7097
|
-
dataset: finalDataset,
|
7098
|
-
foldInfo,
|
7099
|
-
unfoldInfo
|
7100
|
-
};
|
7101
|
-
}
|
7102
|
-
{
|
7103
|
-
const dims = 1 === measures.length ? [
|
7104
|
-
...dimensions
|
7105
|
-
] : [
|
7106
|
-
...dimensions,
|
7107
|
-
{
|
7108
|
-
id: foldMeasureName,
|
7109
|
-
alias: i18n`指标名称`,
|
7110
|
-
location: 'dimension'
|
7111
|
-
}
|
7112
|
-
];
|
7113
|
-
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dims, [
|
7114
|
-
{
|
7115
|
-
id: foldMeasureValue,
|
7116
|
-
alias: i18n`指标值`
|
7117
|
-
}
|
7118
|
-
], 0, unfoldDimensionGroup, unfoldDimensionGroupId, foldMeasureId);
|
7119
|
-
return {
|
7120
|
-
dataset: finalDataset,
|
7121
|
-
foldInfo,
|
7122
|
-
unfoldInfo
|
7123
|
-
};
|
7124
|
-
}
|
7125
|
-
};
|
7126
|
-
const reshapeTo1D1M = (advancedVSeed, context)=>{
|
7127
|
-
const result = {
|
7128
|
-
...advancedVSeed
|
7129
|
-
};
|
7130
|
-
const { vseed } = context;
|
7131
|
-
const { dataset } = vseed;
|
7132
|
-
const { dimensions, measures } = advancedVSeed;
|
7133
|
-
if (!measures || !dimensions || !dataset) return result;
|
7134
|
-
if (0 === measures.length) throw new Error('measures can not be empty');
|
7135
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D1M(dataset, dimensions, measures);
|
7136
|
-
return {
|
7137
|
-
...result,
|
7138
|
-
dataset: newDatasets,
|
7139
|
-
datasetReshapeInfo: [
|
7140
|
-
{
|
7141
|
-
id: '1D1M',
|
7142
|
-
index: 0,
|
7143
|
-
foldInfo,
|
7144
|
-
unfoldInfo
|
7145
|
-
}
|
7146
|
-
]
|
7147
|
-
};
|
6551
|
+
progressive,
|
6552
|
+
barStyle_barStyle,
|
6553
|
+
pointStyle_pointStyle,
|
6554
|
+
pointStateDimensionHover,
|
6555
|
+
lineStyle_lineStyle,
|
6556
|
+
areaStyle_areaStyle
|
6557
|
+
]),
|
6558
|
+
xBand,
|
6559
|
+
yLinearPrimary,
|
6560
|
+
yLinearSecondary,
|
6561
|
+
color_color,
|
6562
|
+
background_backgroundColor,
|
6563
|
+
verticalCrosshairRect,
|
6564
|
+
annotationPoint_annotationPoint,
|
6565
|
+
annotationVerticalLine_annotationVerticalLine,
|
6566
|
+
annotationHorizontalLine_annotationHorizontalLine,
|
6567
|
+
annotationArea_annotationArea
|
6568
|
+
]),
|
6569
|
+
pivotRowDimensions,
|
6570
|
+
pivotColumnDimensions,
|
6571
|
+
pivotDiscreteLegend
|
6572
|
+
];
|
6573
|
+
const dualAxisSpecPipeline = [
|
6574
|
+
pivotAdapter_pivotAdapter(dualAxis, pivotDualAxis)
|
6575
|
+
];
|
6576
|
+
const registerDualAxis = ()=>{
|
6577
|
+
Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
|
6578
|
+
Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
|
7148
6579
|
};
|
7149
|
-
const
|
7150
|
-
const result = {
|
7151
|
-
...advancedVSeed
|
7152
|
-
};
|
6580
|
+
const encodingForPie = (advancedVSeed, context)=>{
|
7153
6581
|
const { vseed } = context;
|
7154
|
-
const {
|
7155
|
-
|
7156
|
-
const
|
7157
|
-
if (
|
7158
|
-
|
7159
|
-
|
7160
|
-
|
7161
|
-
|
7162
|
-
const newDatasets = [];
|
7163
|
-
const datasetReshapeInfo = [];
|
7164
|
-
measureGroups.forEach((measureGroup, index)=>{
|
7165
|
-
const measures = measureGroup.children;
|
7166
|
-
if (!measures) return;
|
7167
|
-
const commonDimensions = dimensions.filter((dim)=>'dimension' === dim.location);
|
7168
|
-
const groupId = measureGroup.id;
|
7169
|
-
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeFor1D1M(dataset, commonDimensions, measures, {
|
7170
|
-
foldMeasureId: FoldMeasureId,
|
7171
|
-
foldMeasureName: FoldMeasureName,
|
7172
|
-
foldMeasureValue: FoldMeasureValue + groupId,
|
7173
|
-
unfoldDimensionGroup: UnfoldDimensionGroup
|
7174
|
-
});
|
7175
|
-
const reshapeInfo = {
|
7176
|
-
id: groupId,
|
7177
|
-
index,
|
7178
|
-
foldInfo,
|
7179
|
-
unfoldInfo
|
7180
|
-
};
|
7181
|
-
newDatasets.push(newSubDataset);
|
7182
|
-
datasetReshapeInfo.push(reshapeInfo);
|
7183
|
-
});
|
7184
|
-
return {
|
7185
|
-
...result,
|
7186
|
-
dataset: newDatasets,
|
7187
|
-
datasetReshapeInfo: datasetReshapeInfo
|
6582
|
+
const { dimensions } = advancedVSeed;
|
6583
|
+
if (!dimensions) return advancedVSeed;
|
6584
|
+
const encoding = vseed.encoding;
|
6585
|
+
if (encoding) return {
|
6586
|
+
...advancedVSeed,
|
6587
|
+
encoding: {
|
6588
|
+
...encoding
|
6589
|
+
}
|
7188
6590
|
};
|
7189
|
-
|
7190
|
-
|
7191
|
-
|
7192
|
-
|
6591
|
+
const mergedEncoding = {
|
6592
|
+
color: dimensions.slice(0).map((item)=>item.id),
|
6593
|
+
detail: dimensions.slice(0).map((item)=>item.id),
|
6594
|
+
tooltip: dimensions.map((item)=>item.id),
|
6595
|
+
label: [],
|
6596
|
+
row: [],
|
6597
|
+
column: []
|
7193
6598
|
};
|
7194
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
7195
|
-
if (!datasetReshapeInfo) return result;
|
7196
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
7197
|
-
const { foldInfo, unfoldInfo } = cur;
|
7198
|
-
const radius = [
|
7199
|
-
foldInfo.measureValue
|
7200
|
-
];
|
7201
|
-
const angle = [
|
7202
|
-
unfoldInfo.groupId
|
7203
|
-
];
|
7204
|
-
const group = [
|
7205
|
-
unfoldInfo.groupId
|
7206
|
-
];
|
7207
|
-
const color = [
|
7208
|
-
unfoldInfo.groupId
|
7209
|
-
];
|
7210
|
-
return [
|
7211
|
-
...prev,
|
7212
|
-
{
|
7213
|
-
angle,
|
7214
|
-
radius,
|
7215
|
-
group,
|
7216
|
-
color
|
7217
|
-
}
|
7218
|
-
];
|
7219
|
-
}, []);
|
7220
6599
|
return {
|
7221
|
-
...
|
7222
|
-
encoding
|
6600
|
+
...advancedVSeed,
|
6601
|
+
encoding: mergedEncoding
|
7223
6602
|
};
|
7224
6603
|
};
|
7225
6604
|
const pieAdvancedPipeline = [
|
7226
6605
|
initAdvancedVSeed_initAdvancedVSeed,
|
7227
6606
|
autoMeasures_autoMeasures,
|
7228
6607
|
autoDimensions_autoDimensions,
|
6608
|
+
encodingForPie,
|
7229
6609
|
pivotAdapter([
|
7230
|
-
|
6610
|
+
reshapeWithEncoding
|
7231
6611
|
], [
|
7232
|
-
|
6612
|
+
pivotReshapeWithEncoding
|
7233
6613
|
]),
|
7234
|
-
encodingPie,
|
7235
6614
|
pieConfig,
|
7236
6615
|
theme_theme,
|
7237
6616
|
annotation_annotation
|
@@ -7241,15 +6620,14 @@
|
|
7241
6620
|
...spec
|
7242
6621
|
};
|
7243
6622
|
const { advancedVSeed } = context;
|
7244
|
-
const {
|
7245
|
-
|
6623
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
6624
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
7246
6625
|
const showStroke = dataset.length <= 30;
|
7247
6626
|
result.type = 'pie';
|
7248
6627
|
result.outerRadius = 0.8;
|
7249
6628
|
result.innerRadius = 0;
|
7250
|
-
result.valueField =
|
7251
|
-
result.categoryField =
|
7252
|
-
result.seriesField = encoding[0].group[0];
|
6629
|
+
result.valueField = foldInfo.measureValue;
|
6630
|
+
result.categoryField = unfoldInfo.encodingColorId;
|
7253
6631
|
result.padding = 0;
|
7254
6632
|
result.region = [
|
7255
6633
|
{
|
@@ -7318,12 +6696,12 @@
|
|
7318
6696
|
initAdvancedVSeed_initAdvancedVSeed,
|
7319
6697
|
autoMeasures_autoMeasures,
|
7320
6698
|
autoDimensions_autoDimensions,
|
6699
|
+
encodingForPie,
|
7321
6700
|
pivotAdapter([
|
7322
|
-
|
6701
|
+
reshapeWithEncoding
|
7323
6702
|
], [
|
7324
|
-
|
6703
|
+
pivotReshapeWithEncoding
|
7325
6704
|
]),
|
7326
|
-
encodingPie,
|
7327
6705
|
donutConfig,
|
7328
6706
|
theme_theme,
|
7329
6707
|
annotation_annotation
|
@@ -7333,15 +6711,14 @@
|
|
7333
6711
|
...spec
|
7334
6712
|
};
|
7335
6713
|
const { advancedVSeed } = context;
|
7336
|
-
const {
|
7337
|
-
|
6714
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
6715
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
7338
6716
|
const showStroke = dataset.length <= 30;
|
7339
6717
|
result.type = 'pie';
|
7340
6718
|
result.outerRadius = 0.8;
|
7341
6719
|
result.innerRadius = 0.8 * result.outerRadius;
|
7342
|
-
result.valueField =
|
7343
|
-
result.categoryField =
|
7344
|
-
result.seriesField = encoding[0].group[0];
|
6720
|
+
result.valueField = foldInfo.measureValue;
|
6721
|
+
result.categoryField = unfoldInfo.encodingColorId;
|
7345
6722
|
result.padding = 0;
|
7346
6723
|
result.region = [
|
7347
6724
|
{
|
@@ -7405,54 +6782,58 @@
|
|
7405
6782
|
Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
|
7406
6783
|
Builder._specPipelineMap.donut = donutSpecPipeline;
|
7407
6784
|
};
|
7408
|
-
const
|
7409
|
-
const
|
7410
|
-
|
7411
|
-
|
7412
|
-
const
|
7413
|
-
if (
|
7414
|
-
|
7415
|
-
|
7416
|
-
const isZeroDimension = 0 === dimensions.length;
|
7417
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
7418
|
-
const { foldInfo, unfoldInfo } = cur;
|
7419
|
-
const radius = [
|
7420
|
-
foldInfo.measureValue
|
7421
|
-
];
|
7422
|
-
const angle = [
|
7423
|
-
isZeroDimension ? foldInfo.measureName : angleDimension?.id
|
7424
|
-
];
|
7425
|
-
const group = [
|
7426
|
-
is1D1M ? angleDimension?.id : unfoldInfo.groupId
|
6785
|
+
const encodingForRose = (advancedVSeed, context)=>{
|
6786
|
+
const { vseed } = context;
|
6787
|
+
const { dimensions } = advancedVSeed;
|
6788
|
+
if (!dimensions) return advancedVSeed;
|
6789
|
+
const encoding = vseed.encoding;
|
6790
|
+
if (encoding) {
|
6791
|
+
const angle = encoding.angle || [
|
6792
|
+
dimensions[0].id
|
7427
6793
|
];
|
7428
|
-
const color = [
|
7429
|
-
|
6794
|
+
const color = encoding.color || [
|
6795
|
+
(dimensions[1] || dimensions[0]).id
|
7430
6796
|
];
|
7431
|
-
|
7432
|
-
|
7433
|
-
|
6797
|
+
const detail = encoding.detail || [];
|
6798
|
+
const mergedDetail = chunk_QJLMYOTX_i([
|
6799
|
+
...color,
|
6800
|
+
...detail
|
6801
|
+
]);
|
6802
|
+
return {
|
6803
|
+
...advancedVSeed,
|
6804
|
+
encoding: {
|
6805
|
+
...encoding,
|
7434
6806
|
angle,
|
7435
|
-
|
7436
|
-
|
7437
|
-
color
|
6807
|
+
color,
|
6808
|
+
detail: mergedDetail
|
7438
6809
|
}
|
7439
|
-
|
7440
|
-
}
|
6810
|
+
};
|
6811
|
+
}
|
6812
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
6813
|
+
const mergedEncoding = {
|
6814
|
+
angle: dimensions.slice(0, 1).map((item)=>item.id),
|
6815
|
+
color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
6816
|
+
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
6817
|
+
tooltip: dimensions.map((item)=>item.id),
|
6818
|
+
label: [],
|
6819
|
+
row: [],
|
6820
|
+
column: []
|
6821
|
+
};
|
7441
6822
|
return {
|
7442
|
-
...
|
7443
|
-
encoding
|
6823
|
+
...advancedVSeed,
|
6824
|
+
encoding: mergedEncoding
|
7444
6825
|
};
|
7445
6826
|
};
|
7446
6827
|
const roseAdvancedPipeline = [
|
7447
6828
|
initAdvancedVSeed_initAdvancedVSeed,
|
7448
6829
|
autoMeasures_autoMeasures,
|
7449
6830
|
autoDimensions_autoDimensions,
|
6831
|
+
encodingForRose,
|
7450
6832
|
pivotAdapter([
|
7451
|
-
|
6833
|
+
reshapeWithEncoding
|
7452
6834
|
], [
|
7453
|
-
|
6835
|
+
pivotReshapeWithEncoding
|
7454
6836
|
]),
|
7455
|
-
encodingRose,
|
7456
6837
|
roseConfig,
|
7457
6838
|
theme_theme,
|
7458
6839
|
markStyle_markStyle,
|
@@ -7463,13 +6844,12 @@
|
|
7463
6844
|
...spec
|
7464
6845
|
};
|
7465
6846
|
const { advancedVSeed } = context;
|
7466
|
-
const {
|
7467
|
-
const { foldInfo } = datasetReshapeInfo[0];
|
7468
|
-
if (!encoding[0].radius || !encoding[0].angle || !encoding[0].group) return result;
|
6847
|
+
const { dataset, datasetReshapeInfo } = advancedVSeed;
|
6848
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
7469
6849
|
result.type = 'rose';
|
7470
|
-
result.
|
7471
|
-
result.
|
7472
|
-
result.
|
6850
|
+
result.angleField = unfoldInfo.encodingAngle;
|
6851
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
6852
|
+
result.valueField = foldInfo.measureValue;
|
7473
6853
|
result.padding = 0;
|
7474
6854
|
result.outerRadius = 0.9;
|
7475
6855
|
result.innerRadius = 0;
|
@@ -7617,12 +6997,12 @@
|
|
7617
6997
|
initAdvancedVSeed_initAdvancedVSeed,
|
7618
6998
|
autoMeasures_autoMeasures,
|
7619
6999
|
autoDimensions_autoDimensions,
|
7000
|
+
encodingForRose,
|
7620
7001
|
pivotAdapter([
|
7621
|
-
|
7002
|
+
reshapeWithEncoding
|
7622
7003
|
], [
|
7623
|
-
|
7004
|
+
pivotReshapeWithEncoding
|
7624
7005
|
]),
|
7625
|
-
encodingRose,
|
7626
7006
|
roseParallelConfig,
|
7627
7007
|
theme_theme,
|
7628
7008
|
markStyle_markStyle,
|
@@ -7633,19 +7013,18 @@
|
|
7633
7013
|
...spec
|
7634
7014
|
};
|
7635
7015
|
const { advancedVSeed } = context;
|
7636
|
-
const {
|
7016
|
+
const { datasetReshapeInfo, dataset, dimensions } = advancedVSeed;
|
7637
7017
|
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
7638
|
-
if (!encoding[0].radius || !encoding[0].angle || !encoding[0].group) return result;
|
7639
7018
|
const sameDimensionsMode = dimensions.length > 1 && dimensions.every((dim)=>dim.id === dimensions[0].id);
|
7640
7019
|
result.type = 'rose';
|
7641
|
-
result.
|
7642
|
-
|
7020
|
+
result.angleField = sameDimensionsMode ? [
|
7021
|
+
unfoldInfo.encodingAngle
|
7643
7022
|
] : [
|
7644
|
-
|
7645
|
-
unfoldInfo.
|
7023
|
+
unfoldInfo.encodingAngle,
|
7024
|
+
unfoldInfo.encodingDetail
|
7646
7025
|
];
|
7647
|
-
result.valueField =
|
7648
|
-
result.seriesField =
|
7026
|
+
result.valueField = foldInfo.measureValue;
|
7027
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7649
7028
|
result.padding = 0;
|
7650
7029
|
result.outerRadius = 0.9;
|
7651
7030
|
result.innerRadius = 0;
|
@@ -7722,54 +7101,58 @@
|
|
7722
7101
|
Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
|
7723
7102
|
Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
|
7724
7103
|
};
|
7725
|
-
const
|
7726
|
-
const
|
7727
|
-
|
7728
|
-
|
7729
|
-
const
|
7730
|
-
if (
|
7731
|
-
|
7732
|
-
|
7733
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
7734
|
-
const { foldInfo, unfoldInfo } = cur;
|
7735
|
-
const angle = [
|
7736
|
-
isZeroDimension ? foldInfo.measureName : angleDimension?.id
|
7737
|
-
];
|
7738
|
-
const radius = [
|
7739
|
-
foldInfo.measureValue
|
7740
|
-
];
|
7741
|
-
const group = [
|
7742
|
-
unfoldInfo.groupId
|
7104
|
+
const encodingForRadar = (advancedVSeed, context)=>{
|
7105
|
+
const { vseed } = context;
|
7106
|
+
const { dimensions } = advancedVSeed;
|
7107
|
+
if (!dimensions) return advancedVSeed;
|
7108
|
+
const encoding = vseed.encoding;
|
7109
|
+
if (encoding) {
|
7110
|
+
const angle = encoding.angle || [
|
7111
|
+
dimensions[0].id
|
7743
7112
|
];
|
7744
|
-
const color = [
|
7745
|
-
|
7113
|
+
const color = encoding.color || [
|
7114
|
+
(dimensions[1] || dimensions[0]).id
|
7746
7115
|
];
|
7747
|
-
|
7748
|
-
|
7749
|
-
|
7116
|
+
const detail = encoding.detail || [];
|
7117
|
+
const mergedDetail = chunk_QJLMYOTX_i([
|
7118
|
+
...color,
|
7119
|
+
...detail
|
7120
|
+
]);
|
7121
|
+
return {
|
7122
|
+
...advancedVSeed,
|
7123
|
+
encoding: {
|
7124
|
+
...encoding,
|
7750
7125
|
angle,
|
7751
|
-
|
7752
|
-
|
7753
|
-
color
|
7126
|
+
color,
|
7127
|
+
detail: mergedDetail
|
7754
7128
|
}
|
7755
|
-
|
7756
|
-
}
|
7129
|
+
};
|
7130
|
+
}
|
7131
|
+
const mergedEncoding = {
|
7132
|
+
angle: dimensions.slice(0, 1).map((item)=>item.id),
|
7133
|
+
color: dimensions.slice(1).map((item)=>item.id),
|
7134
|
+
detail: dimensions.slice(1).map((item)=>item.id),
|
7135
|
+
tooltip: dimensions.map((item)=>item.id),
|
7136
|
+
label: [],
|
7137
|
+
row: [],
|
7138
|
+
column: []
|
7139
|
+
};
|
7757
7140
|
return {
|
7758
|
-
...
|
7759
|
-
encoding
|
7141
|
+
...advancedVSeed,
|
7142
|
+
encoding: mergedEncoding
|
7760
7143
|
};
|
7761
7144
|
};
|
7762
7145
|
const radarAdvancedPipeline = [
|
7763
7146
|
initAdvancedVSeed_initAdvancedVSeed,
|
7764
7147
|
autoMeasures_autoMeasures,
|
7765
7148
|
autoDimensions_autoDimensions,
|
7149
|
+
encodingForRadar,
|
7766
7150
|
pivotAdapter([
|
7767
|
-
|
7151
|
+
reshapeWithEncoding
|
7768
7152
|
], [
|
7769
|
-
|
7153
|
+
pivotReshapeWithEncoding
|
7770
7154
|
]),
|
7771
|
-
|
7772
|
-
sort_sortLegend,
|
7155
|
+
sortLegend_sortLegend,
|
7773
7156
|
radarConfig,
|
7774
7157
|
theme_theme,
|
7775
7158
|
markStyle_markStyle,
|
@@ -7780,12 +7163,12 @@
|
|
7780
7163
|
...spec
|
7781
7164
|
};
|
7782
7165
|
const { advancedVSeed } = context;
|
7783
|
-
const {
|
7784
|
-
|
7166
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7167
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
7785
7168
|
result.type = 'radar';
|
7786
|
-
result.angleField =
|
7787
|
-
result.radiusField =
|
7788
|
-
result.seriesField =
|
7169
|
+
result.angleField = unfoldInfo.encodingAngle;
|
7170
|
+
result.radiusField = foldInfo.measureValue;
|
7171
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7789
7172
|
result.padding = 0;
|
7790
7173
|
result.region = [
|
7791
7174
|
{
|
@@ -7897,47 +7280,40 @@
|
|
7897
7280
|
Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
|
7898
7281
|
Builder._specPipelineMap.radar = radarSpecPipeline;
|
7899
7282
|
};
|
7900
|
-
const
|
7901
|
-
const
|
7902
|
-
|
7283
|
+
const encodingForFunnel = (advancedVSeed, context)=>{
|
7284
|
+
const { vseed } = context;
|
7285
|
+
const { dimensions } = advancedVSeed;
|
7286
|
+
if (!dimensions) return advancedVSeed;
|
7287
|
+
const encoding = vseed.encoding;
|
7288
|
+
if (encoding) return {
|
7289
|
+
...advancedVSeed,
|
7290
|
+
encoding: {
|
7291
|
+
...encoding
|
7292
|
+
}
|
7293
|
+
};
|
7294
|
+
const mergedEncoding = {
|
7295
|
+
color: dimensions.slice(0).map((item)=>item.id),
|
7296
|
+
detail: dimensions.slice(0).map((item)=>item.id),
|
7297
|
+
tooltip: dimensions.map((item)=>item.id),
|
7298
|
+
label: [],
|
7299
|
+
row: [],
|
7300
|
+
column: []
|
7903
7301
|
};
|
7904
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
7905
|
-
if (!datasetReshapeInfo) return result;
|
7906
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
7907
|
-
const { foldInfo, unfoldInfo } = cur;
|
7908
|
-
const size = [
|
7909
|
-
foldInfo.measureValue
|
7910
|
-
];
|
7911
|
-
const group = [
|
7912
|
-
unfoldInfo.groupId
|
7913
|
-
];
|
7914
|
-
const color = [
|
7915
|
-
foldInfo.measureValue
|
7916
|
-
];
|
7917
|
-
return [
|
7918
|
-
...prev,
|
7919
|
-
{
|
7920
|
-
size,
|
7921
|
-
group,
|
7922
|
-
color
|
7923
|
-
}
|
7924
|
-
];
|
7925
|
-
}, []);
|
7926
7302
|
return {
|
7927
|
-
...
|
7928
|
-
encoding
|
7303
|
+
...advancedVSeed,
|
7304
|
+
encoding: mergedEncoding
|
7929
7305
|
};
|
7930
7306
|
};
|
7931
7307
|
const funnelAdvancedPipeline = [
|
7932
7308
|
initAdvancedVSeed_initAdvancedVSeed,
|
7933
7309
|
autoMeasures_autoMeasures,
|
7934
7310
|
autoDimensions_autoDimensions,
|
7311
|
+
encodingForFunnel,
|
7935
7312
|
pivotAdapter([
|
7936
|
-
|
7313
|
+
reshapeWithEncoding
|
7937
7314
|
], [
|
7938
|
-
|
7315
|
+
pivotReshapeWithEncoding
|
7939
7316
|
]),
|
7940
|
-
encodingFunnel,
|
7941
7317
|
funnelConfig,
|
7942
7318
|
theme_theme,
|
7943
7319
|
annotation_annotation
|
@@ -7947,11 +7323,11 @@
|
|
7947
7323
|
...spec
|
7948
7324
|
};
|
7949
7325
|
const { advancedVSeed } = context;
|
7950
|
-
const {
|
7951
|
-
|
7326
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7327
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
7952
7328
|
result.type = 'funnel';
|
7953
|
-
result.valueField =
|
7954
|
-
result.categoryField =
|
7329
|
+
result.valueField = foldInfo.measureValue;
|
7330
|
+
result.categoryField = unfoldInfo.encodingColorId;
|
7955
7331
|
result.padding = 0;
|
7956
7332
|
result.isTransform = true;
|
7957
7333
|
result.shape = 'rect';
|
@@ -7966,7 +7342,7 @@
|
|
7966
7342
|
style: {
|
7967
7343
|
cornerRadius: 4,
|
7968
7344
|
fill: {
|
7969
|
-
field:
|
7345
|
+
field: unfoldInfo.encodingColorId,
|
7970
7346
|
scale: 'color'
|
7971
7347
|
}
|
7972
7348
|
},
|
@@ -7982,99 +7358,14 @@
|
|
7982
7358
|
result.animation = true;
|
7983
7359
|
return result;
|
7984
7360
|
};
|
7985
|
-
const linearColor = (spec, context)=>{
|
7986
|
-
const result = {
|
7987
|
-
...spec
|
7988
|
-
};
|
7989
|
-
const { advancedVSeed } = context;
|
7990
|
-
const { datasetReshapeInfo, chartType, encoding } = advancedVSeed;
|
7991
|
-
const baseConfig = advancedVSeed.config[chartType];
|
7992
|
-
if (!baseConfig || !baseConfig.color) return result;
|
7993
|
-
const { color } = baseConfig;
|
7994
|
-
const { colorScheme } = color;
|
7995
|
-
result.color = {
|
7996
|
-
type: 'linear',
|
7997
|
-
domain: [
|
7998
|
-
{
|
7999
|
-
dataId: datasetReshapeInfo[0].id,
|
8000
|
-
fields: encoding?.[0]?.color
|
8001
|
-
}
|
8002
|
-
],
|
8003
|
-
range: colorScheme
|
8004
|
-
};
|
8005
|
-
return result;
|
8006
|
-
};
|
8007
|
-
const colorLegend = (spec, context)=>{
|
8008
|
-
const result = {
|
8009
|
-
...spec
|
8010
|
-
};
|
8011
|
-
const { advancedVSeed } = context;
|
8012
|
-
const { chartType } = advancedVSeed;
|
8013
|
-
const baseConfig = advancedVSeed.config[chartType];
|
8014
|
-
const { encoding } = advancedVSeed;
|
8015
|
-
if (!encoding[0].color) return result;
|
8016
|
-
if (!baseConfig || !baseConfig.legend) return result;
|
8017
|
-
const { legend } = baseConfig;
|
8018
|
-
const { enable, position = 'bottom' } = legend || {};
|
8019
|
-
const orient = [
|
8020
|
-
'bottom',
|
8021
|
-
'bottomLeft',
|
8022
|
-
'bottomRight',
|
8023
|
-
'bl',
|
8024
|
-
'br'
|
8025
|
-
].includes(position) ? 'bottom' : [
|
8026
|
-
'top',
|
8027
|
-
'topLeft',
|
8028
|
-
'topRight',
|
8029
|
-
'tl',
|
8030
|
-
'tr'
|
8031
|
-
].includes(position) ? 'top' : [
|
8032
|
-
'left',
|
8033
|
-
'leftTop',
|
8034
|
-
'leftBottom',
|
8035
|
-
'lt',
|
8036
|
-
'lb'
|
8037
|
-
].includes(position) ? 'left' : 'right';
|
8038
|
-
const legendPosition = [
|
8039
|
-
'topLeft',
|
8040
|
-
'bottomLeft',
|
8041
|
-
'leftTop',
|
8042
|
-
'rightTop',
|
8043
|
-
'lt',
|
8044
|
-
'rt',
|
8045
|
-
'tl',
|
8046
|
-
'bl'
|
8047
|
-
].includes(position) ? 'start' : [
|
8048
|
-
'topRight',
|
8049
|
-
'bottomRight',
|
8050
|
-
'leftBottom',
|
8051
|
-
'rightBottom',
|
8052
|
-
'lb',
|
8053
|
-
'rb',
|
8054
|
-
'rt',
|
8055
|
-
'br'
|
8056
|
-
].includes(position) ? 'end' : 'middle';
|
8057
|
-
result.legends = {
|
8058
|
-
type: 'color',
|
8059
|
-
visible: enable,
|
8060
|
-
orient,
|
8061
|
-
position: legendPosition,
|
8062
|
-
field: encoding[0].color[0],
|
8063
|
-
inverse: !![
|
8064
|
-
'left',
|
8065
|
-
'right'
|
8066
|
-
].includes(orient)
|
8067
|
-
};
|
8068
|
-
return result;
|
8069
|
-
};
|
8070
7361
|
const funnel = [
|
8071
7362
|
initFunnel,
|
8072
|
-
linearColor,
|
8073
7363
|
background_backgroundColor,
|
8074
7364
|
datasetXY,
|
7365
|
+
color_color,
|
8075
7366
|
label_label,
|
8076
7367
|
tooltip_tooltip,
|
8077
|
-
|
7368
|
+
discreteLegend,
|
8078
7369
|
annotationPoint_annotationPoint,
|
8079
7370
|
annotationVerticalLine_annotationVerticalLine,
|
8080
7371
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -8087,12 +7378,12 @@
|
|
8087
7378
|
datasetPivot,
|
8088
7379
|
pivotIndicators_pivotIndicators([
|
8089
7380
|
initFunnel,
|
8090
|
-
linearColor,
|
8091
7381
|
background_backgroundColor,
|
8092
7382
|
datasetXY,
|
7383
|
+
color_color,
|
8093
7384
|
label_label,
|
8094
7385
|
tooltip_tooltip,
|
8095
|
-
|
7386
|
+
discreteLegend,
|
8096
7387
|
annotationPoint_annotationPoint,
|
8097
7388
|
annotationVerticalLine_annotationVerticalLine,
|
8098
7389
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -8108,49 +7399,52 @@
|
|
8108
7399
|
Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
|
8109
7400
|
Builder._specPipelineMap.funnel = funnelSpecPipeline;
|
8110
7401
|
};
|
8111
|
-
const
|
8112
|
-
const
|
8113
|
-
|
8114
|
-
|
8115
|
-
const
|
8116
|
-
if (
|
8117
|
-
|
8118
|
-
|
8119
|
-
const encoding = datasetReshapeInfo.reduce((prev, cur)=>{
|
8120
|
-
const { foldInfo, unfoldInfo } = cur;
|
8121
|
-
const x = [
|
8122
|
-
isZeroDimension ? foldInfo.measureName : xDimension?.id
|
8123
|
-
];
|
8124
|
-
const y = [
|
8125
|
-
unfoldInfo.groupName
|
7402
|
+
const encodingForHeatmap = (advancedVSeed, context)=>{
|
7403
|
+
const { vseed } = context;
|
7404
|
+
const { dimensions } = advancedVSeed;
|
7405
|
+
if (!dimensions) return advancedVSeed;
|
7406
|
+
const encoding = vseed.encoding;
|
7407
|
+
if (encoding) {
|
7408
|
+
const x = encoding.x || [
|
7409
|
+
dimensions[0].id
|
8126
7410
|
];
|
8127
|
-
const
|
8128
|
-
|
7411
|
+
const y = encoding.y || [
|
7412
|
+
(dimensions[1] || dimensions[0]).id
|
8129
7413
|
];
|
8130
|
-
return
|
8131
|
-
...
|
8132
|
-
{
|
7414
|
+
return {
|
7415
|
+
...advancedVSeed,
|
7416
|
+
encoding: {
|
8133
7417
|
x,
|
8134
7418
|
y,
|
8135
|
-
|
7419
|
+
...encoding
|
8136
7420
|
}
|
8137
|
-
|
8138
|
-
}
|
7421
|
+
};
|
7422
|
+
}
|
7423
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
7424
|
+
const mergedEncoding = {
|
7425
|
+
x: dimensions.slice(0, 1).map((item)=>item.id),
|
7426
|
+
y: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
7427
|
+
color: dimensions.slice(0).map((item)=>item.id),
|
7428
|
+
tooltip: dimensions.map((item)=>item.id),
|
7429
|
+
label: [],
|
7430
|
+
row: [],
|
7431
|
+
column: []
|
7432
|
+
};
|
8139
7433
|
return {
|
8140
|
-
...
|
8141
|
-
encoding
|
7434
|
+
...advancedVSeed,
|
7435
|
+
encoding: mergedEncoding
|
8142
7436
|
};
|
8143
7437
|
};
|
8144
7438
|
const heatmapAdvancedPipeline = [
|
8145
7439
|
initAdvancedVSeed_initAdvancedVSeed,
|
8146
7440
|
autoMeasures_autoMeasures,
|
8147
7441
|
autoDimensions_autoDimensions,
|
7442
|
+
encodingForHeatmap,
|
8148
7443
|
pivotAdapter([
|
8149
|
-
|
7444
|
+
reshapeWithEncoding
|
8150
7445
|
], [
|
8151
|
-
|
7446
|
+
pivotReshapeWithEncoding
|
8152
7447
|
]),
|
8153
|
-
encodingMatrix,
|
8154
7448
|
sortXBandAxis,
|
8155
7449
|
heatmapConfig,
|
8156
7450
|
theme_theme,
|
@@ -8172,23 +7466,20 @@
|
|
8172
7466
|
...spec
|
8173
7467
|
};
|
8174
7468
|
const { advancedVSeed } = context;
|
8175
|
-
const {
|
8176
|
-
|
7469
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7470
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
8177
7471
|
result.type = 'heatmap';
|
8178
7472
|
result.direction = 'vertical';
|
8179
|
-
result.xField =
|
8180
|
-
result.yField =
|
8181
|
-
result.
|
7473
|
+
result.xField = unfoldInfo.encodingX;
|
7474
|
+
result.yField = unfoldInfo.encodingY;
|
7475
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7476
|
+
result.valueField = foldInfo.measureValue;
|
8182
7477
|
result.padding = 0;
|
8183
7478
|
result.cell = {
|
8184
7479
|
style: {
|
8185
7480
|
shape: 'rect',
|
8186
7481
|
stroke: '#ffffff',
|
8187
|
-
lineWidth: 1
|
8188
|
-
fill: {
|
8189
|
-
field: encoding[0].color[0],
|
8190
|
-
scale: 'color'
|
8191
|
-
}
|
7482
|
+
lineWidth: 1
|
8192
7483
|
}
|
8193
7484
|
};
|
8194
7485
|
result.axes = [
|
@@ -8213,12 +7504,12 @@
|
|
8213
7504
|
};
|
8214
7505
|
const heatmap = [
|
8215
7506
|
initHeatmap,
|
8216
|
-
linearColor,
|
8217
7507
|
background_backgroundColor,
|
8218
7508
|
datasetXY,
|
7509
|
+
color_color,
|
8219
7510
|
label_label,
|
8220
7511
|
labelColorInversion,
|
8221
|
-
|
7512
|
+
discreteLegend,
|
8222
7513
|
tooltip_tooltip,
|
8223
7514
|
pointStyle_pointStyle,
|
8224
7515
|
pointStateDimensionHover,
|
@@ -8235,12 +7526,12 @@
|
|
8235
7526
|
datasetPivot,
|
8236
7527
|
pivotIndicators_pivotIndicators([
|
8237
7528
|
initHeatmap,
|
8238
|
-
linearColor,
|
8239
7529
|
background_backgroundColor,
|
8240
7530
|
datasetXY,
|
7531
|
+
color_color,
|
8241
7532
|
label_label,
|
8242
7533
|
labelColorInversion,
|
8243
|
-
|
7534
|
+
discreteLegend,
|
8244
7535
|
tooltip_tooltip,
|
8245
7536
|
pointStyle_pointStyle,
|
8246
7537
|
pointStateDimensionHover,
|
@@ -8508,12 +7799,6 @@
|
|
8508
7799
|
yAxis: linearAxis,
|
8509
7800
|
crosshairLine
|
8510
7801
|
},
|
8511
|
-
areaRange: {
|
8512
|
-
...baseConfig,
|
8513
|
-
xAxis: bandAxis,
|
8514
|
-
yAxis: linearAxis,
|
8515
|
-
crosshairLine
|
8516
|
-
},
|
8517
7802
|
scatter: {
|
8518
7803
|
...baseConfig,
|
8519
7804
|
xAxis: {
|
@@ -8846,12 +8131,6 @@
|
|
8846
8131
|
yAxis: linearAxis,
|
8847
8132
|
crosshairLine: crosshairLine
|
8848
8133
|
},
|
8849
|
-
areaRange: {
|
8850
|
-
...baseConfig,
|
8851
|
-
xAxis: bandAxis,
|
8852
|
-
yAxis: linearAxis,
|
8853
|
-
crosshairLine: crosshairLine
|
8854
|
-
},
|
8855
8134
|
scatter: {
|
8856
8135
|
...baseConfig,
|
8857
8136
|
xAxis: {
|
@@ -8949,7 +8228,6 @@
|
|
8949
8228
|
registerBarPercent();
|
8950
8229
|
registerArea();
|
8951
8230
|
registerAreaPercent();
|
8952
|
-
registerAreaRange();
|
8953
8231
|
registerScatter();
|
8954
8232
|
registerDualAxis();
|
8955
8233
|
registerPie();
|
@@ -12266,7 +11544,6 @@
|
|
12266
11544
|
'barParallel',
|
12267
11545
|
'area',
|
12268
11546
|
'areaPercent',
|
12269
|
-
'areaRange',
|
12270
11547
|
'scatter',
|
12271
11548
|
'dualAxis',
|
12272
11549
|
'rose',
|
@@ -12364,6 +11641,12 @@
|
|
12364
11641
|
secondaryMeasures: schemas_array(zMeasure).or(zMeasure).optional()
|
12365
11642
|
});
|
12366
11643
|
const zDualMeasures = schemas_array(zDualMeasure);
|
11644
|
+
const zScatterMeasure = schemas_object({
|
11645
|
+
id: schemas_string(),
|
11646
|
+
xMeasures: schemas_array(zMeasure).or(zMeasure).optional(),
|
11647
|
+
yMeasures: schemas_array(zMeasure).or(zMeasure).optional()
|
11648
|
+
});
|
11649
|
+
const zScatterMeasures = schemas_array(zScatterMeasure);
|
12367
11650
|
const zFoldInfo = schemas_object({
|
12368
11651
|
foldMap: record(schemas_string(), schemas_string().or(schemas_undefined())),
|
12369
11652
|
measureId: schemas_string(),
|
@@ -12371,10 +11654,14 @@
|
|
12371
11654
|
measureValue: schemas_string()
|
12372
11655
|
});
|
12373
11656
|
const zUnfoldInfo = schemas_object({
|
11657
|
+
encodingX: schemas_string(),
|
11658
|
+
encodingY: schemas_string(),
|
11659
|
+
encodingColor: schemas_string(),
|
11660
|
+
encodingColorId: schemas_string(),
|
11661
|
+
encodingDetail: schemas_string(),
|
11662
|
+
encodingAngle: schemas_string(),
|
12374
11663
|
colorItems: schemas_array(schemas_string()),
|
12375
|
-
|
12376
|
-
colorIdMap: record(schemas_string(), schemas_string()),
|
12377
|
-
groupName: schemas_string()
|
11664
|
+
colorIdMap: record(schemas_string(), schemas_string())
|
12378
11665
|
});
|
12379
11666
|
const zDatasetReshapeInfo = schemas_array(schemas_object({
|
12380
11667
|
id: schemas_string(),
|
@@ -12383,16 +11670,21 @@
|
|
12383
11670
|
foldInfoList: schemas_array(zFoldInfo).nullish(),
|
12384
11671
|
unfoldInfo: zUnfoldInfo
|
12385
11672
|
}));
|
12386
|
-
const zEncoding =
|
11673
|
+
const zEncoding = schemas_object({
|
12387
11674
|
x: schemas_array(schemas_string()).nullish(),
|
12388
11675
|
y: schemas_array(schemas_string()).nullish(),
|
12389
|
-
color: schemas_array(schemas_string()).nullish(),
|
12390
|
-
group: schemas_array(schemas_string()).nullish(),
|
12391
11676
|
angle: schemas_array(schemas_string()).nullish(),
|
12392
11677
|
radius: schemas_array(schemas_string()).nullish(),
|
11678
|
+
detail: schemas_array(schemas_string()).nullish(),
|
11679
|
+
color: schemas_array(schemas_string()).nullish(),
|
11680
|
+
size: schemas_array(schemas_string()).nullish(),
|
12393
11681
|
tooltip: schemas_array(schemas_string()).nullish(),
|
12394
|
-
|
12395
|
-
|
11682
|
+
label: schemas_array(schemas_string()).nullish(),
|
11683
|
+
row: schemas_array(schemas_string()).nullish(),
|
11684
|
+
column: schemas_array(schemas_string()).nullish(),
|
11685
|
+
group: schemas_array(schemas_string()).nullish().describe("\u5DF2\u5F03\u7528, \u8BF7\u4F7F\u7528\u989C\u8272\u66FF\u4EE3")
|
11686
|
+
});
|
11687
|
+
const zEncodings = schemas_array(zEncoding);
|
12396
11688
|
const zXBandAxis = schemas_object({
|
12397
11689
|
visible: schemas_boolean().default(true).nullish(),
|
12398
11690
|
labelAutoHide: schemas_boolean().default(true).nullish(),
|
@@ -12655,7 +11947,6 @@
|
|
12655
11947
|
crosshairLine: zCrosshairLine.nullish()
|
12656
11948
|
});
|
12657
11949
|
const zAreaPercentConfig = zAreaConfig;
|
12658
|
-
const zAreaRangeConfig = zAreaConfig;
|
12659
11950
|
const zDualAxisConfig = schemas_object({
|
12660
11951
|
backgroundColor: zBackgroundColor.nullish(),
|
12661
11952
|
label: zLabel.nullish(),
|
@@ -12710,7 +12001,6 @@
|
|
12710
12001
|
barPercent: zBarPercentConfig.nullish(),
|
12711
12002
|
area: zAreaConfig.nullish(),
|
12712
12003
|
areaPercent: zAreaPercentConfig.nullish(),
|
12713
|
-
areaRange: zAreaRangeConfig.nullish(),
|
12714
12004
|
scatter: zScatterConfig.nullish(),
|
12715
12005
|
dualAxis: zDualAxisConfig.nullish(),
|
12716
12006
|
rose: zRoseConfig.nullish(),
|
@@ -13149,6 +12439,7 @@
|
|
13149
12439
|
const zLine = schemas_object({
|
13150
12440
|
chartType: literal('line'),
|
13151
12441
|
dataset: zDataset.nullish(),
|
12442
|
+
encoding: zEncoding.nullish(),
|
13152
12443
|
dimensions: zDimensions.nullish(),
|
13153
12444
|
measures: zMeasureTree.nullish(),
|
13154
12445
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13173,6 +12464,7 @@
|
|
13173
12464
|
const zColumn = schemas_object({
|
13174
12465
|
chartType: literal('column'),
|
13175
12466
|
dataset: zDataset.nullish(),
|
12467
|
+
encoding: zEncoding.nullish(),
|
13176
12468
|
dimensions: zDimensions.nullish(),
|
13177
12469
|
measures: zMeasureTree.nullish(),
|
13178
12470
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13195,6 +12487,7 @@
|
|
13195
12487
|
const zColumnParallel = schemas_object({
|
13196
12488
|
chartType: literal('columnParallel'),
|
13197
12489
|
dataset: zDataset.nullish(),
|
12490
|
+
encoding: zEncoding.nullish(),
|
13198
12491
|
dimensions: zDimensions.nullish(),
|
13199
12492
|
measures: zMeasureTree.nullish(),
|
13200
12493
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13217,6 +12510,7 @@
|
|
13217
12510
|
const zColumnPercent = schemas_object({
|
13218
12511
|
chartType: literal('columnPercent'),
|
13219
12512
|
dataset: zDataset.nullish(),
|
12513
|
+
encoding: zEncoding.nullish(),
|
13220
12514
|
dimensions: zDimensions.nullish(),
|
13221
12515
|
measures: zMeasureTree.nullish(),
|
13222
12516
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13239,6 +12533,7 @@
|
|
13239
12533
|
const zBar = schemas_object({
|
13240
12534
|
chartType: literal('bar'),
|
13241
12535
|
dataset: zDataset.nullish(),
|
12536
|
+
encoding: zEncoding.nullish(),
|
13242
12537
|
dimensions: zDimensions.nullish(),
|
13243
12538
|
measures: zMeasureTree.nullish(),
|
13244
12539
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13261,6 +12556,7 @@
|
|
13261
12556
|
const zBarParallel = schemas_object({
|
13262
12557
|
chartType: literal('barParallel'),
|
13263
12558
|
dataset: zDataset.nullish(),
|
12559
|
+
encoding: zEncoding.nullish(),
|
13264
12560
|
dimensions: zDimensions.nullish(),
|
13265
12561
|
measures: zMeasureTree.nullish(),
|
13266
12562
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13283,6 +12579,7 @@
|
|
13283
12579
|
const zBarPercent = schemas_object({
|
13284
12580
|
chartType: literal('barPercent'),
|
13285
12581
|
dataset: zDataset.nullish(),
|
12582
|
+
encoding: zEncoding.nullish(),
|
13286
12583
|
dimensions: zDimensions.nullish(),
|
13287
12584
|
measures: zMeasureTree.nullish(),
|
13288
12585
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13305,6 +12602,7 @@
|
|
13305
12602
|
const zArea = schemas_object({
|
13306
12603
|
chartType: literal('area'),
|
13307
12604
|
dataset: zDataset.nullish(),
|
12605
|
+
encoding: zEncoding.nullish(),
|
13308
12606
|
dimensions: zDimensions.nullish(),
|
13309
12607
|
measures: zMeasureTree.nullish(),
|
13310
12608
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13328,6 +12626,7 @@
|
|
13328
12626
|
const zAreaPercent = schemas_object({
|
13329
12627
|
chartType: literal('areaPercent'),
|
13330
12628
|
dataset: zDataset.nullish(),
|
12629
|
+
encoding: zEncoding.nullish(),
|
13331
12630
|
dimensions: zDimensions.nullish(),
|
13332
12631
|
measures: zMeasureTree.nullish(),
|
13333
12632
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13348,31 +12647,13 @@
|
|
13348
12647
|
annotationArea: schemas_array(zAnnotationArea).or(zAnnotationArea).nullish(),
|
13349
12648
|
locale: zLocale.nullish()
|
13350
12649
|
});
|
13351
|
-
const zAreaRange = schemas_object({
|
13352
|
-
chartType: literal('areaRange'),
|
13353
|
-
dataset: zDataset.nullish(),
|
13354
|
-
dimensions: zDimensions.nullish(),
|
13355
|
-
measures: zMeasureTree.nullish(),
|
13356
|
-
backgroundColor: zBackgroundColor.nullish(),
|
13357
|
-
label: zLabel.nullish(),
|
13358
|
-
xAxis: zXBandAxis.nullish(),
|
13359
|
-
yAxis: zYLinearAxis.nullish(),
|
13360
|
-
crosshairLine: zCrosshairLine.nullish(),
|
13361
|
-
theme: zTheme.nullish(),
|
13362
|
-
pointStyle: schemas_array(zPointStyle).or(zPointStyle).nullish(),
|
13363
|
-
lineStyle: schemas_array(zLineStyle).or(zLineStyle).nullish(),
|
13364
|
-
areaStyle: schemas_array(zAreaStyle).or(zAreaStyle).nullish(),
|
13365
|
-
annotationPoint: schemas_array(zAnnotationPoint).or(zAnnotationPoint).nullish(),
|
13366
|
-
annotationVerticalLine: schemas_array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),
|
13367
|
-
annotationHorizontalLine: schemas_array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),
|
13368
|
-
annotationArea: schemas_array(zAnnotationArea).or(zAnnotationArea).nullish(),
|
13369
|
-
locale: zLocale.nullish()
|
13370
|
-
});
|
13371
12650
|
const zScatter = schemas_object({
|
13372
12651
|
chartType: literal('scatter'),
|
13373
12652
|
dataset: zDataset.nullish(),
|
12653
|
+
encoding: zEncoding.nullish(),
|
13374
12654
|
dimensions: zDimensions.nullish(),
|
13375
12655
|
measures: zMeasureTree.nullish(),
|
12656
|
+
scatterMeasures: zScatterMeasures.nullish(),
|
13376
12657
|
backgroundColor: zBackgroundColor.nullish(),
|
13377
12658
|
color: zColor.nullish(),
|
13378
12659
|
label: zLabel.nullish(),
|
@@ -13422,6 +12703,7 @@
|
|
13422
12703
|
const zRose = schemas_object({
|
13423
12704
|
chartType: literal('rose'),
|
13424
12705
|
dataset: zDataset.nullish(),
|
12706
|
+
encoding: zEncoding.nullish(),
|
13425
12707
|
dimensions: zDimensions.nullish(),
|
13426
12708
|
measures: zMeasureTree.nullish(),
|
13427
12709
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13435,6 +12717,7 @@
|
|
13435
12717
|
const zRoseParallel = schemas_object({
|
13436
12718
|
chartType: literal('roseParallel'),
|
13437
12719
|
dataset: zDataset.nullish(),
|
12720
|
+
encoding: zEncoding.nullish(),
|
13438
12721
|
dimensions: zDimensions.nullish(),
|
13439
12722
|
measures: zMeasureTree.nullish(),
|
13440
12723
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13448,6 +12731,7 @@
|
|
13448
12731
|
const zPie = schemas_object({
|
13449
12732
|
chartType: literal('pie'),
|
13450
12733
|
dataset: zDataset.nullish(),
|
12734
|
+
encoding: zEncoding.nullish(),
|
13451
12735
|
dimensions: zDimensions.nullish(),
|
13452
12736
|
measures: zMeasureTree.nullish(),
|
13453
12737
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13461,6 +12745,7 @@
|
|
13461
12745
|
const zDonut = schemas_object({
|
13462
12746
|
chartType: literal('donut'),
|
13463
12747
|
dataset: zDataset.nullish(),
|
12748
|
+
encoding: zEncoding.nullish(),
|
13464
12749
|
dimensions: zDimensions.nullish(),
|
13465
12750
|
measures: zMeasureTree.nullish(),
|
13466
12751
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13474,6 +12759,7 @@
|
|
13474
12759
|
const zRadar = schemas_object({
|
13475
12760
|
chartType: literal('radar'),
|
13476
12761
|
dataset: zDataset.nullish(),
|
12762
|
+
encoding: zEncoding.nullish(),
|
13477
12763
|
dimensions: zDimensions.nullish(),
|
13478
12764
|
measures: zMeasureTree.nullish(),
|
13479
12765
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13487,6 +12773,7 @@
|
|
13487
12773
|
const zFunnel = schemas_object({
|
13488
12774
|
chartType: literal('funnel'),
|
13489
12775
|
dataset: zDataset.nullish(),
|
12776
|
+
encoding: zEncoding.nullish(),
|
13490
12777
|
dimensions: zDimensions.nullish(),
|
13491
12778
|
measures: zMeasureTree.nullish(),
|
13492
12779
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13522,7 +12809,6 @@
|
|
13522
12809
|
zBarPercent,
|
13523
12810
|
zArea,
|
13524
12811
|
zAreaPercent,
|
13525
|
-
zAreaRange,
|
13526
12812
|
zScatter,
|
13527
12813
|
zDualAxis,
|
13528
12814
|
zPie,
|
@@ -13540,6 +12826,7 @@
|
|
13540
12826
|
dimensions: zDimensionTree,
|
13541
12827
|
measures: zMeasureTree,
|
13542
12828
|
encoding: zEncoding,
|
12829
|
+
encodings: zEncodings,
|
13543
12830
|
config: zConfig,
|
13544
12831
|
analysis: zAnalysis,
|
13545
12832
|
theme: zTheme,
|