@visactor/vseed 0.0.40 → 0.1.0
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 +1130 -1880
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1076 -1835
- 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 +10 -1
- package/dist/types/chartType/area/zArea.d.ts +14 -0
- package/dist/types/chartType/areaPercent/areaPercent.d.ts +10 -1
- package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +14 -0
- package/dist/types/chartType/bar/bar.d.ts +19 -30
- package/dist/types/chartType/bar/zBar.d.ts +14 -0
- package/dist/types/chartType/barParallel/barParallel.d.ts +18 -30
- package/dist/types/chartType/barParallel/zBarParallel.d.ts +14 -0
- package/dist/types/chartType/barPercent/barPercent.d.ts +16 -21
- package/dist/types/chartType/barPercent/zBarPercent.d.ts +14 -0
- package/dist/types/chartType/column/column.d.ts +16 -28
- package/dist/types/chartType/column/zColumn.d.ts +14 -0
- package/dist/types/chartType/columnParallel/columnParallel.d.ts +19 -27
- package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +14 -0
- package/dist/types/chartType/columnPercent/columnPercent.d.ts +16 -25
- package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +14 -0
- package/dist/types/chartType/donut/donut.d.ts +10 -1
- package/dist/types/chartType/donut/zDonut.d.ts +14 -0
- package/dist/types/chartType/dualAxis/dualAxis.d.ts +9 -1
- package/dist/types/chartType/funnel/funnel.d.ts +9 -1
- package/dist/types/chartType/funnel/zFunnel.d.ts +14 -0
- package/dist/types/chartType/heatmap/heatmap.d.ts +10 -1
- package/dist/types/chartType/index.d.ts +0 -1
- package/dist/types/chartType/line/line.d.ts +14 -10
- package/dist/types/chartType/line/zLine.d.ts +14 -0
- package/dist/types/chartType/pie/pie.d.ts +10 -1
- package/dist/types/chartType/pie/zPie.d.ts +14 -0
- package/dist/types/chartType/radar/radar.d.ts +10 -1
- package/dist/types/chartType/radar/zRadar.d.ts +14 -0
- package/dist/types/chartType/rose/rose.d.ts +10 -1
- package/dist/types/chartType/rose/zRose.d.ts +14 -0
- package/dist/types/chartType/roseParallel/roseParallel.d.ts +10 -1
- package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +14 -0
- package/dist/types/chartType/scatter/scatter.d.ts +88 -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 +1104 -1860
- 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,51 @@
|
|
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
|
+
const detail = encoding.detail || [];
|
1663
|
+
const color = encoding.color || [];
|
1664
|
+
const mergedDetail = [
|
1665
|
+
...color.filter((d)=>!x.includes(d)),
|
1666
|
+
...detail
|
1667
|
+
];
|
1668
|
+
return {
|
1669
|
+
...advancedVSeed,
|
1670
|
+
encoding: {
|
1671
|
+
...encoding,
|
1672
|
+
detail: mergedDetail
|
1673
|
+
}
|
1674
|
+
};
|
1675
|
+
}
|
1676
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
1677
|
+
const mergedEncoding = {
|
1678
|
+
x: dimensions.slice(0, 1).map((item)=>item.id),
|
1679
|
+
color: dimensions.slice(1).map((item)=>item.id),
|
1680
|
+
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
1681
|
+
tooltip: dimensions.map((item)=>item.id),
|
1682
|
+
label: [],
|
1683
|
+
row: [],
|
1684
|
+
column: []
|
1685
|
+
};
|
1686
|
+
return {
|
1687
|
+
...advancedVSeed,
|
1688
|
+
encoding: mergedEncoding
|
1689
|
+
};
|
1690
|
+
};
|
1614
1691
|
const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
|
1615
1692
|
const { vseed } = context;
|
1616
1693
|
const usePivotChart = isPivotChart(vseed);
|
1617
1694
|
if (usePivotChart) return execPipeline(pivotPipeline, context, advancedVSeed);
|
1618
1695
|
return execPipeline(pipeline, context, advancedVSeed);
|
1619
1696
|
};
|
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
1697
|
function chunk_AIG3BDKO_i(...e) {
|
1630
1698
|
return chunk_WIMGWYZL_u(chunk_AIG3BDKO_n, e);
|
1631
1699
|
}
|
@@ -1676,84 +1744,53 @@
|
|
1676
1744
|
foldInfo
|
1677
1745
|
};
|
1678
1746
|
};
|
1679
|
-
const unfoldDimensions = (dataset, dimensions,
|
1680
|
-
|
1681
|
-
const dimensionsToBeUnfolded = dimensions.slice(unfoldStartIndex);
|
1682
|
-
const dimensionsToBeRemain = dimensions.slice(0, unfoldStartIndex);
|
1747
|
+
const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
|
1748
|
+
const { foldMeasureId, separator, colorItemAsId } = options;
|
1683
1749
|
const unfoldInfo = {
|
1684
|
-
|
1685
|
-
|
1750
|
+
encodingAngle: AngleEncoding,
|
1751
|
+
encodingX: XEncoding,
|
1752
|
+
encodingY: YEncoding,
|
1753
|
+
encodingDetail: DetailEncoding,
|
1754
|
+
encodingColor: ColorEncoding,
|
1755
|
+
encodingColorId: ColorIdEncoding,
|
1686
1756
|
colorItems: [],
|
1687
1757
|
colorIdMap: {}
|
1688
1758
|
};
|
1689
|
-
|
1690
|
-
|
1691
|
-
|
1692
|
-
|
1693
|
-
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1697
|
-
};
|
1698
|
-
const colorItems = [];
|
1699
|
-
const colorMap = {};
|
1759
|
+
const { color, x, y, detail, angle } = encoding;
|
1760
|
+
const angleDimensions = angle ? dimensions.filter((dim)=>angle.includes(dim.id)) : [];
|
1761
|
+
const xDimensions = x ? dimensions.filter((dim)=>x.includes(dim.id)) : [];
|
1762
|
+
const yDimensions = y ? dimensions.filter((dim)=>y.includes(dim.id)) : [];
|
1763
|
+
const colorDimensions = color ? dimensions.filter((dim)=>color.includes(dim.id)) : [];
|
1764
|
+
const detailDimensions = detail ? dimensions.filter((dim)=>detail.includes(dim.id)) : [];
|
1765
|
+
const colorItems = new Set();
|
1766
|
+
const colorIdMap = {};
|
1700
1767
|
for(let i = 0; i < dataset.length; i++){
|
1701
1768
|
const datum = dataset[i];
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
datum[
|
1708
|
-
datum[
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1769
|
+
applyEncoding(AngleEncoding, angleDimensions, datum, separator);
|
1770
|
+
applyEncoding(XEncoding, xDimensions, datum, separator);
|
1771
|
+
applyEncoding(YEncoding, yDimensions, datum, separator);
|
1772
|
+
applyEncoding(ColorEncoding, colorDimensions, datum, separator);
|
1773
|
+
applyEncoding(DetailEncoding, detailDimensions, datum, separator);
|
1774
|
+
if (!datum[ColorEncoding]) continue;
|
1775
|
+
const measureId = String(datum[foldMeasureId]);
|
1776
|
+
const colorItem = String(datum[ColorEncoding]);
|
1777
|
+
const colorId = colorItemAsId ? colorItem : measureId ? [
|
1778
|
+
colorItem,
|
1779
|
+
measureId
|
1780
|
+
].join(separator) : colorItem;
|
1781
|
+
datum[ColorIdEncoding] = colorId;
|
1782
|
+
colorIdMap[colorId] = colorItem;
|
1783
|
+
colorItems.add(colorId);
|
1715
1784
|
}
|
1716
|
-
unfoldInfo.colorItems =
|
1717
|
-
unfoldInfo.colorIdMap =
|
1785
|
+
unfoldInfo.colorItems = Array.from(colorItems);
|
1786
|
+
unfoldInfo.colorIdMap = colorIdMap;
|
1718
1787
|
return {
|
1719
1788
|
dataset,
|
1720
1789
|
unfoldInfo
|
1721
1790
|
};
|
1722
1791
|
};
|
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
|
-
};
|
1792
|
+
const applyEncoding = (encoding, dimensions, datum, separator)=>{
|
1793
|
+
if (encoding && dimensions.length) datum[encoding] = dimensions.map((dim)=>String(datum[dim.id])).join(separator);
|
1757
1794
|
};
|
1758
1795
|
const emptyReshapeResult = {
|
1759
1796
|
dataset: [],
|
@@ -1764,69 +1801,47 @@
|
|
1764
1801
|
measureValue: ''
|
1765
1802
|
},
|
1766
1803
|
unfoldInfo: {
|
1767
|
-
|
1768
|
-
|
1804
|
+
encodingAngle: AngleEncoding,
|
1805
|
+
encodingX: XEncoding,
|
1806
|
+
encodingY: YEncoding,
|
1807
|
+
encodingDetail: DetailEncoding,
|
1808
|
+
encodingColor: ColorEncoding,
|
1809
|
+
encodingColorId: ColorIdEncoding,
|
1769
1810
|
colorItems: [],
|
1770
1811
|
colorIdMap: {}
|
1771
1812
|
}
|
1772
1813
|
};
|
1773
|
-
const
|
1774
|
-
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue,
|
1814
|
+
const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)=>{
|
1815
|
+
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false } = options || {};
|
1775
1816
|
if (0 === dimensions.length && 0 === measures.length) return emptyReshapeResult;
|
1776
1817
|
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
|
-
}
|
1818
|
+
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
|
1819
|
+
foldMeasureId,
|
1820
|
+
separator: Separator,
|
1821
|
+
colorItemAsId
|
1822
|
+
});
|
1823
|
+
return {
|
1824
|
+
dataset: finalDataset,
|
1825
|
+
foldInfo,
|
1826
|
+
unfoldInfo
|
1827
|
+
};
|
1813
1828
|
};
|
1814
|
-
const
|
1829
|
+
const reshapeWithEncoding = (advancedVSeed, context)=>{
|
1815
1830
|
const result = {
|
1816
1831
|
...advancedVSeed
|
1817
1832
|
};
|
1818
1833
|
const { vseed } = context;
|
1819
|
-
const { dataset } = vseed;
|
1820
|
-
const { dimensions, measures } = advancedVSeed;
|
1821
|
-
if (!measures || !dimensions || !dataset) return result;
|
1834
|
+
const { dataset, chartType } = vseed;
|
1835
|
+
const { dimensions, measures, encoding } = advancedVSeed;
|
1836
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
1822
1837
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
1823
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } =
|
1838
|
+
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding);
|
1824
1839
|
return {
|
1825
1840
|
...result,
|
1826
1841
|
dataset: newDatasets,
|
1827
1842
|
datasetReshapeInfo: [
|
1828
1843
|
{
|
1829
|
-
id:
|
1844
|
+
id: String(chartType),
|
1830
1845
|
index: 0,
|
1831
1846
|
foldInfo,
|
1832
1847
|
unfoldInfo
|
@@ -1836,31 +1851,27 @@
|
|
1836
1851
|
measures
|
1837
1852
|
};
|
1838
1853
|
};
|
1839
|
-
const
|
1854
|
+
const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
|
1840
1855
|
const result = {
|
1841
1856
|
...advancedVSeed
|
1842
1857
|
};
|
1843
1858
|
const { vseed } = context;
|
1844
1859
|
const { dataset } = vseed;
|
1845
|
-
const { measures } = advancedVSeed;
|
1846
|
-
|
1847
|
-
if (
|
1860
|
+
const { dimensions, measures, encoding } = advancedVSeed;
|
1861
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
1862
|
+
if (0 === measures.length) throw new Error('measures can not be empty');
|
1848
1863
|
const measureGroups = [];
|
1849
1864
|
if (measures) measures.forEach((measure)=>{
|
1850
1865
|
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
1851
1866
|
});
|
1852
|
-
const
|
1853
|
-
const newDatasets = [];
|
1867
|
+
const datasets = [];
|
1854
1868
|
const datasetReshapeInfo = [];
|
1855
1869
|
measureGroups.forEach((measureGroup, index)=>{
|
1856
1870
|
const measures = measureGroup.children;
|
1857
1871
|
if (!measures) return;
|
1858
1872
|
const groupId = measureGroup.id;
|
1859
|
-
const { dataset: newSubDataset, foldInfo, unfoldInfo } =
|
1860
|
-
|
1861
|
-
foldMeasureName: FoldMeasureName,
|
1862
|
-
foldMeasureValue: FoldMeasureValue + groupId,
|
1863
|
-
unfoldDimensionGroup: UnfoldDimensionGroup
|
1873
|
+
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1874
|
+
foldMeasureValue: `${FoldMeasureValue}${groupId}`
|
1864
1875
|
});
|
1865
1876
|
const reshapeInfo = {
|
1866
1877
|
id: groupId,
|
@@ -1868,52 +1879,15 @@
|
|
1868
1879
|
foldInfo,
|
1869
1880
|
unfoldInfo
|
1870
1881
|
};
|
1871
|
-
|
1882
|
+
datasets.push(newSubDataset);
|
1872
1883
|
datasetReshapeInfo.push(reshapeInfo);
|
1873
1884
|
});
|
1874
1885
|
return {
|
1875
1886
|
...result,
|
1876
|
-
dataset:
|
1887
|
+
dataset: datasets,
|
1877
1888
|
datasetReshapeInfo: datasetReshapeInfo
|
1878
1889
|
};
|
1879
1890
|
};
|
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
1891
|
function chunk_NFFV4IQT_m(...r) {
|
1918
1892
|
return chunk_WIMGWYZL_u(chunk_NFFV4IQT_o, r);
|
1919
1893
|
}
|
@@ -1928,42 +1902,46 @@
|
|
1928
1902
|
...advancedVSeed
|
1929
1903
|
};
|
1930
1904
|
const { vseed } = context;
|
1931
|
-
const { sort: sortAxis
|
1932
|
-
const {
|
1933
|
-
const
|
1905
|
+
const { sort: sortAxis } = vseed;
|
1906
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
1907
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
1908
|
+
const xField = unfoldInfo.encodingX;
|
1934
1909
|
if (!sortAxis || !xField) return advancedVSeed;
|
1935
1910
|
if (!result.analysis) result.analysis = {};
|
1936
1911
|
if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
|
1937
|
-
const axisOrderResult = calcOrder(sortAxis, xField, dataset);
|
1912
|
+
const axisOrderResult = calcOrder(sortAxis, xField, dataset.flat(2));
|
1938
1913
|
result.analysis.orderMapping[xField] = axisOrderResult;
|
1939
1914
|
return result;
|
1940
1915
|
};
|
1941
|
-
const
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
const
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1916
|
+
const calcOrder = (sortConfig, id, dataset)=>{
|
1917
|
+
if (sortConfig.customOrder) return sortConfig.customOrder;
|
1918
|
+
const order = sortConfig.order || 'asc';
|
1919
|
+
const orderBy = sortConfig.orderBy;
|
1920
|
+
const res = chunk_NFFV4IQT_m(dataset, (a, b)=>{
|
1921
|
+
const aValue = a[orderBy || id];
|
1922
|
+
const bValue = b[orderBy || id];
|
1923
|
+
if ('asc' === order) {
|
1924
|
+
if (aValue < bValue) return -1;
|
1925
|
+
if (aValue > bValue) return 1;
|
1926
|
+
return 0;
|
1927
|
+
}
|
1928
|
+
if (aValue > bValue) return -1;
|
1929
|
+
if (aValue < bValue) return 1;
|
1930
|
+
return 0;
|
1931
|
+
});
|
1932
|
+
return chunk_QJLMYOTX_i(res.map((item)=>item[id]));
|
1955
1933
|
};
|
1956
|
-
const
|
1934
|
+
const sortLegend_sortLegend = (advancedVSeed, context)=>{
|
1957
1935
|
const result = {
|
1958
1936
|
...advancedVSeed
|
1959
1937
|
};
|
1960
1938
|
const { vseed } = context;
|
1961
1939
|
const { sortLegend } = vseed;
|
1962
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
1963
|
-
const
|
1940
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
1941
|
+
const colorId = datasetReshapeInfo?.[0]?.unfoldInfo?.encodingColorId;
|
1964
1942
|
const colorIdMap = datasetReshapeInfo?.[0]?.unfoldInfo?.colorIdMap;
|
1965
1943
|
const colorItems = datasetReshapeInfo?.[0]?.unfoldInfo?.colorItems;
|
1966
|
-
if (!sortLegend || !
|
1944
|
+
if (!sortLegend || !colorId || !colorIdMap || !colorItems) return advancedVSeed;
|
1967
1945
|
if (!result.analysis) result.analysis = {};
|
1968
1946
|
if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
|
1969
1947
|
if (sortLegend.customOrder) {
|
@@ -1972,15 +1950,14 @@
|
|
1972
1950
|
return pre;
|
1973
1951
|
}, {});
|
1974
1952
|
const orderRes = sortLegend.customOrder.map((itemNameOrId)=>nameMap[itemNameOrId] ? nameMap[itemNameOrId] : itemNameOrId);
|
1975
|
-
result.analysis.orderMapping[
|
1953
|
+
result.analysis.orderMapping[colorId] = orderRes;
|
1976
1954
|
return result;
|
1977
1955
|
}
|
1978
|
-
const
|
1979
|
-
|
1980
|
-
result.analysis.orderMapping[groupField] = orderRes;
|
1956
|
+
const orderRes = sortLegend_calcOrder(sortLegend, colorId, dataset?.flat(2) || []);
|
1957
|
+
result.analysis.orderMapping[colorId] = orderRes;
|
1981
1958
|
return result;
|
1982
1959
|
};
|
1983
|
-
const
|
1960
|
+
const sortLegend_calcOrder = (sortConfig, id, dataset)=>{
|
1984
1961
|
if (sortConfig.customOrder) return sortConfig.customOrder;
|
1985
1962
|
const order = sortConfig.order || 'asc';
|
1986
1963
|
const orderBy = sortConfig.orderBy;
|
@@ -2112,14 +2089,14 @@
|
|
2112
2089
|
initAdvancedVSeed_initAdvancedVSeed,
|
2113
2090
|
autoMeasures_autoMeasures,
|
2114
2091
|
autoDimensions_autoDimensions,
|
2092
|
+
encodingForColumn,
|
2115
2093
|
pivotAdapter([
|
2116
|
-
|
2094
|
+
reshapeWithEncoding
|
2117
2095
|
], [
|
2118
|
-
|
2096
|
+
pivotReshapeWithEncoding
|
2119
2097
|
]),
|
2120
|
-
encodingXY,
|
2121
2098
|
sortXBandAxis,
|
2122
|
-
|
2099
|
+
sortLegend_sortLegend,
|
2123
2100
|
lineConfig,
|
2124
2101
|
theme_theme,
|
2125
2102
|
markStyle_markStyle,
|
@@ -2130,13 +2107,13 @@
|
|
2130
2107
|
...spec
|
2131
2108
|
};
|
2132
2109
|
const { advancedVSeed } = context;
|
2133
|
-
const {
|
2134
|
-
|
2110
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
2111
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
2135
2112
|
result.type = 'line';
|
2136
2113
|
result.direction = 'vertical';
|
2137
|
-
result.xField =
|
2138
|
-
result.yField =
|
2139
|
-
result.seriesField =
|
2114
|
+
result.xField = unfoldInfo.encodingX;
|
2115
|
+
result.yField = foldInfo.measureValue;
|
2116
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
2140
2117
|
result.padding = 0;
|
2141
2118
|
result.region = [
|
2142
2119
|
{
|
@@ -2212,11 +2189,12 @@
|
|
2212
2189
|
};
|
2213
2190
|
const datasetXY = (spec, context)=>{
|
2214
2191
|
const { advancedVSeed, vseed } = context;
|
2215
|
-
const {
|
2192
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
2193
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2216
2194
|
const orderMapping = analysis?.orderMapping || {};
|
2217
|
-
const angle =
|
2218
|
-
const x =
|
2219
|
-
const
|
2195
|
+
const angle = unfoldInfo.encodingAngle;
|
2196
|
+
const x = unfoldInfo.encodingX;
|
2197
|
+
const colorId = unfoldInfo.encodingColorId;
|
2220
2198
|
const id = datasetReshapeInfo[0].id;
|
2221
2199
|
const fields = {};
|
2222
2200
|
if (angle) fields[angle] = {
|
@@ -2233,14 +2211,14 @@
|
|
2233
2211
|
sortIndex: 0
|
2234
2212
|
};
|
2235
2213
|
}
|
2236
|
-
if (
|
2237
|
-
const order = orderMapping[
|
2238
|
-
if (order) fields[
|
2214
|
+
if (colorId) {
|
2215
|
+
const order = orderMapping[colorId];
|
2216
|
+
if (order) fields[colorId] = {
|
2239
2217
|
sortIndex: 0,
|
2240
2218
|
domain: order,
|
2241
2219
|
lockStatisticsByDomain: true
|
2242
2220
|
};
|
2243
|
-
else fields[
|
2221
|
+
else fields[colorId] = {
|
2244
2222
|
sortIndex: 0
|
2245
2223
|
};
|
2246
2224
|
}
|
@@ -2493,7 +2471,7 @@
|
|
2493
2471
|
} } = baseConfig;
|
2494
2472
|
const { enable } = tooltip;
|
2495
2473
|
const { measureId, measureValue, measureName } = datasetReshapeInfo[0].foldInfo;
|
2496
|
-
const {
|
2474
|
+
const { encodingColor: colorName } = datasetReshapeInfo[0].unfoldInfo;
|
2497
2475
|
result.tooltip = {
|
2498
2476
|
visible: enable,
|
2499
2477
|
mark: {
|
@@ -2514,7 +2492,7 @@
|
|
2514
2492
|
{
|
2515
2493
|
visible: true,
|
2516
2494
|
hasShape: true,
|
2517
|
-
key: (datum)=>datum && datum[measureName ||
|
2495
|
+
key: (datum)=>datum && datum[measureName || colorName] || '',
|
2518
2496
|
value: (datum)=>{
|
2519
2497
|
if (!datum) return '';
|
2520
2498
|
const value = datum[measureValue];
|
@@ -2536,7 +2514,7 @@
|
|
2536
2514
|
content: [
|
2537
2515
|
{
|
2538
2516
|
visible: true,
|
2539
|
-
key: (datum)=>datum && datum[
|
2517
|
+
key: (datum)=>datum && datum[colorName] || '',
|
2540
2518
|
value: (datum)=>{
|
2541
2519
|
if (!datum) return '';
|
2542
2520
|
const value = datum[measureValue];
|
@@ -2874,7 +2852,8 @@
|
|
2874
2852
|
const pointStateHover = (spec, context)=>{
|
2875
2853
|
const point = spec.point || {};
|
2876
2854
|
const { advancedVSeed } = context;
|
2877
|
-
const {
|
2855
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
2856
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2878
2857
|
const result = {
|
2879
2858
|
...spec,
|
2880
2859
|
point: {
|
@@ -2885,7 +2864,7 @@
|
|
2885
2864
|
scaleX: 1.4,
|
2886
2865
|
scaleY: 1.4,
|
2887
2866
|
stroke: (datum, context)=>{
|
2888
|
-
const field =
|
2867
|
+
const field = unfoldInfo.encodingColorId;
|
2889
2868
|
const color = context.seriesColor(datum[field]);
|
2890
2869
|
return color;
|
2891
2870
|
},
|
@@ -2915,7 +2894,8 @@
|
|
2915
2894
|
};
|
2916
2895
|
const lineStyle_lineStyle = (spec, context)=>{
|
2917
2896
|
const { advancedVSeed } = context;
|
2918
|
-
const { markStyle,
|
2897
|
+
const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
|
2898
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2919
2899
|
const { lineStyle } = markStyle;
|
2920
2900
|
if (!lineStyle) return spec;
|
2921
2901
|
const result = {
|
@@ -2924,8 +2904,8 @@
|
|
2924
2904
|
const lineStyles = Array.isArray(lineStyle) ? lineStyle : [
|
2925
2905
|
lineStyle
|
2926
2906
|
];
|
2927
|
-
const
|
2928
|
-
const lineGroups = chunk_HVPVHFDT_i(dataset, (d)=>d[
|
2907
|
+
const colorId = unfoldInfo.encodingColorId;
|
2908
|
+
const lineGroups = chunk_HVPVHFDT_i(dataset, (d)=>d[colorId ?? '']);
|
2929
2909
|
const customMap = lineStyles.reduce((result, style, index)=>{
|
2930
2910
|
const { lineColor, lineColorOpacity, lineSmooth, lineStyle, lineWidth = 2, lineVisible = true } = style;
|
2931
2911
|
const dashSegment = 2 * lineWidth;
|
@@ -2946,7 +2926,7 @@
|
|
2946
2926
|
[`custom${index + 1}`]: {
|
2947
2927
|
level: index + 1,
|
2948
2928
|
filter: (datum)=>{
|
2949
|
-
const lineData = lineGroups[datum[
|
2929
|
+
const lineData = lineGroups[datum[colorId ?? '']];
|
2950
2930
|
for (const d of lineData)if (selector_selector(d, style.selector)) return true;
|
2951
2931
|
return false;
|
2952
2932
|
},
|
@@ -3044,7 +3024,8 @@
|
|
3044
3024
|
}
|
3045
3025
|
const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
|
3046
3026
|
const { advancedVSeed } = context;
|
3047
|
-
const { annotation,
|
3027
|
+
const { annotation, datasetReshapeInfo } = advancedVSeed;
|
3028
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
3048
3029
|
if (!annotation || !annotation.annotationVerticalLine) return spec;
|
3049
3030
|
const { annotationVerticalLine } = annotation;
|
3050
3031
|
const annotationVerticalLineList = Array.isArray(annotationVerticalLine) ? annotationVerticalLine : [
|
@@ -3124,7 +3105,7 @@
|
|
3124
3105
|
}
|
3125
3106
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
3126
3107
|
return selectedData.map((datum)=>{
|
3127
|
-
const x =
|
3108
|
+
const x = unfoldInfo.encodingX;
|
3128
3109
|
if (!x) return {};
|
3129
3110
|
return generateOneMarkLine(datum[x]);
|
3130
3111
|
});
|
@@ -3141,7 +3122,8 @@
|
|
3141
3122
|
};
|
3142
3123
|
const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
|
3143
3124
|
const { advancedVSeed } = context;
|
3144
|
-
const { annotation,
|
3125
|
+
const { annotation, datasetReshapeInfo } = advancedVSeed;
|
3126
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
3145
3127
|
if (!annotation || !annotation.annotationHorizontalLine) return spec;
|
3146
3128
|
const { annotationHorizontalLine } = annotation;
|
3147
3129
|
const annotationVerticalLineList = Array.isArray(annotationHorizontalLine) ? annotationHorizontalLine : [
|
@@ -3221,7 +3203,7 @@
|
|
3221
3203
|
}
|
3222
3204
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
3223
3205
|
return selectedData.map((datum)=>{
|
3224
|
-
const y =
|
3206
|
+
const y = unfoldInfo.encodingY;
|
3225
3207
|
if (!y) return {};
|
3226
3208
|
return generateOneMarkLine(datum[y]);
|
3227
3209
|
});
|
@@ -3502,13 +3484,10 @@
|
|
3502
3484
|
...spec
|
3503
3485
|
};
|
3504
3486
|
const { advancedVSeed } = context;
|
3505
|
-
const { measures, datasetReshapeInfo,
|
3487
|
+
const { measures, datasetReshapeInfo, dataset } = advancedVSeed;
|
3506
3488
|
const colorItems = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>d.unfoldInfo.colorItems));
|
3507
3489
|
const indicators = datasetReshapeInfo.map((reshapeInfo, index)=>{
|
3508
3490
|
const measure = measures?.find((d)=>d.id === reshapeInfo.id);
|
3509
|
-
const newEncoding = [
|
3510
|
-
encoding[index]
|
3511
|
-
];
|
3512
3491
|
const newDataset = dataset[index];
|
3513
3492
|
const newDatasetReshapeInfo = [
|
3514
3493
|
{
|
@@ -3524,8 +3503,7 @@
|
|
3524
3503
|
advancedVSeed: {
|
3525
3504
|
...advancedVSeed,
|
3526
3505
|
datasetReshapeInfo: newDatasetReshapeInfo,
|
3527
|
-
dataset: newDataset
|
3528
|
-
encoding: newEncoding
|
3506
|
+
dataset: newDataset
|
3529
3507
|
}
|
3530
3508
|
};
|
3531
3509
|
const chartSpec = execPipeline(chartPipeline, newContext, {});
|
@@ -3711,7 +3689,7 @@
|
|
3711
3689
|
}
|
3712
3690
|
},
|
3713
3691
|
label: {
|
3714
|
-
formatMethod: (value)=>colorIdMap[
|
3692
|
+
formatMethod: (value)=>colorIdMap[value] ?? value,
|
3715
3693
|
style: {
|
3716
3694
|
fontSize: labelFontSize,
|
3717
3695
|
fill: labelFontColor,
|
@@ -3794,151 +3772,18 @@
|
|
3794
3772
|
Builder._advancedPipelineMap.line = lineAdvancedPipeline;
|
3795
3773
|
Builder._specPipelineMap.line = lineSpecPipeline;
|
3796
3774
|
};
|
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
3775
|
const columnAdvancedPipeline = [
|
3931
3776
|
initAdvancedVSeed_initAdvancedVSeed,
|
3932
3777
|
autoMeasures_autoMeasures,
|
3933
3778
|
autoDimensions_autoDimensions,
|
3779
|
+
encodingForColumn,
|
3934
3780
|
pivotAdapter([
|
3935
|
-
|
3781
|
+
reshapeWithEncoding
|
3936
3782
|
], [
|
3937
|
-
|
3783
|
+
pivotReshapeWithEncoding
|
3938
3784
|
]),
|
3939
|
-
encodingXY,
|
3940
3785
|
sortXBandAxis,
|
3941
|
-
|
3786
|
+
sortLegend_sortLegend,
|
3942
3787
|
columnConfig,
|
3943
3788
|
theme_theme,
|
3944
3789
|
markStyle_markStyle,
|
@@ -3949,13 +3794,13 @@
|
|
3949
3794
|
...spec
|
3950
3795
|
};
|
3951
3796
|
const { advancedVSeed } = context;
|
3952
|
-
const {
|
3953
|
-
|
3797
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
3798
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
3954
3799
|
result.type = 'bar';
|
3955
3800
|
result.direction = 'vertical';
|
3956
|
-
result.xField =
|
3957
|
-
result.yField =
|
3958
|
-
result.seriesField =
|
3801
|
+
result.xField = unfoldInfo.encodingX;
|
3802
|
+
result.yField = foldInfo.measureValue;
|
3803
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
3959
3804
|
result.padding = 0;
|
3960
3805
|
result.region = [
|
3961
3806
|
{
|
@@ -4275,14 +4120,14 @@
|
|
4275
4120
|
initAdvancedVSeed_initAdvancedVSeed,
|
4276
4121
|
autoMeasures_autoMeasures,
|
4277
4122
|
autoDimensions_autoDimensions,
|
4123
|
+
encodingForColumn,
|
4278
4124
|
pivotAdapter([
|
4279
|
-
|
4125
|
+
reshapeWithEncoding
|
4280
4126
|
], [
|
4281
|
-
|
4127
|
+
pivotReshapeWithEncoding
|
4282
4128
|
]),
|
4283
|
-
encodingXY,
|
4284
4129
|
sortXBandAxis,
|
4285
|
-
|
4130
|
+
sortLegend_sortLegend,
|
4286
4131
|
columnParallelConfig,
|
4287
4132
|
theme_theme,
|
4288
4133
|
markStyle_markStyle,
|
@@ -4293,20 +4138,19 @@
|
|
4293
4138
|
...spec
|
4294
4139
|
};
|
4295
4140
|
const { advancedVSeed } = context;
|
4296
|
-
const {
|
4297
|
-
const { unfoldInfo } = datasetReshapeInfo[0];
|
4298
|
-
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
4141
|
+
const { datasetReshapeInfo, dimensions } = advancedVSeed;
|
4142
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
4299
4143
|
const sameDimensionsMode = dimensions.length > 1 && dimensions.every((dim)=>dim.id === dimensions[0].id);
|
4300
4144
|
result.type = 'bar';
|
4301
4145
|
result.direction = 'vertical';
|
4302
4146
|
result.xField = sameDimensionsMode ? [
|
4303
|
-
|
4147
|
+
unfoldInfo.encodingX
|
4304
4148
|
] : [
|
4305
|
-
|
4306
|
-
unfoldInfo.
|
4149
|
+
unfoldInfo.encodingX,
|
4150
|
+
unfoldInfo.encodingDetail
|
4307
4151
|
];
|
4308
|
-
result.yField =
|
4309
|
-
result.seriesField =
|
4152
|
+
result.yField = foldInfo.measureValue;
|
4153
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
4310
4154
|
result.padding = 0;
|
4311
4155
|
result.region = [
|
4312
4156
|
{
|
@@ -4373,14 +4217,14 @@
|
|
4373
4217
|
initAdvancedVSeed_initAdvancedVSeed,
|
4374
4218
|
autoMeasures_autoMeasures,
|
4375
4219
|
autoDimensions_autoDimensions,
|
4220
|
+
encodingForColumn,
|
4376
4221
|
pivotAdapter([
|
4377
|
-
|
4222
|
+
reshapeWithEncoding
|
4378
4223
|
], [
|
4379
|
-
|
4224
|
+
pivotReshapeWithEncoding
|
4380
4225
|
]),
|
4381
|
-
encodingXY,
|
4382
4226
|
sortXBandAxis,
|
4383
|
-
|
4227
|
+
sortLegend_sortLegend,
|
4384
4228
|
columnPercentConfig,
|
4385
4229
|
theme_theme,
|
4386
4230
|
markStyle_markStyle,
|
@@ -4450,55 +4294,70 @@
|
|
4450
4294
|
Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
|
4451
4295
|
Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
|
4452
4296
|
};
|
4453
|
-
const
|
4454
|
-
const
|
4455
|
-
|
4456
|
-
|
4457
|
-
const
|
4458
|
-
if (
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
const
|
4463
|
-
|
4464
|
-
|
4465
|
-
];
|
4466
|
-
const x = [
|
4467
|
-
foldInfo.measureValue
|
4468
|
-
];
|
4469
|
-
const group = [
|
4470
|
-
unfoldInfo.groupId
|
4471
|
-
];
|
4472
|
-
const color = [
|
4473
|
-
foldInfo.measureName
|
4297
|
+
const encodingForBar = (advancedVSeed, context)=>{
|
4298
|
+
const { vseed } = context;
|
4299
|
+
const { dimensions } = advancedVSeed;
|
4300
|
+
if (!dimensions) return advancedVSeed;
|
4301
|
+
const encoding = vseed.encoding;
|
4302
|
+
if (encoding) {
|
4303
|
+
const y = encoding.y || [];
|
4304
|
+
const detail = encoding.detail || [];
|
4305
|
+
const color = encoding.color || [];
|
4306
|
+
const mergedDetail = [
|
4307
|
+
...color.filter((d)=>!y.includes(d)),
|
4308
|
+
...detail
|
4474
4309
|
];
|
4475
|
-
return
|
4476
|
-
...
|
4477
|
-
{
|
4478
|
-
|
4479
|
-
|
4480
|
-
group,
|
4481
|
-
color
|
4310
|
+
return {
|
4311
|
+
...advancedVSeed,
|
4312
|
+
encoding: {
|
4313
|
+
...encoding,
|
4314
|
+
detail: mergedDetail
|
4482
4315
|
}
|
4483
|
-
|
4484
|
-
}
|
4316
|
+
};
|
4317
|
+
}
|
4318
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
4319
|
+
const mergedEncoding = {
|
4320
|
+
y: dimensions.slice(0, 1).map((item)=>item.id),
|
4321
|
+
color: dimensions.slice(1).map((item)=>item.id),
|
4322
|
+
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
4323
|
+
tooltip: dimensions.map((item)=>item.id),
|
4324
|
+
label: [],
|
4325
|
+
row: [],
|
4326
|
+
column: []
|
4327
|
+
};
|
4485
4328
|
return {
|
4486
|
-
...
|
4487
|
-
encoding
|
4329
|
+
...advancedVSeed,
|
4330
|
+
encoding: mergedEncoding
|
4331
|
+
};
|
4332
|
+
};
|
4333
|
+
const sortYBandAxis = (advancedVSeed, context)=>{
|
4334
|
+
const result = {
|
4335
|
+
...advancedVSeed
|
4488
4336
|
};
|
4337
|
+
const { vseed } = context;
|
4338
|
+
const { sort: sortAxis } = vseed;
|
4339
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
4340
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
4341
|
+
const yField = unfoldInfo?.encodingY;
|
4342
|
+
if (!sortAxis || !yField) return advancedVSeed;
|
4343
|
+
if (!result.analysis) result.analysis = {};
|
4344
|
+
if (!result.analysis.orderMapping) result.analysis.orderMapping = {};
|
4345
|
+
const axisOrderResult = calcOrder(sortAxis, yField, dataset.flat(2));
|
4346
|
+
result.analysis.orderMapping[yField] = axisOrderResult;
|
4347
|
+
return result;
|
4489
4348
|
};
|
4490
4349
|
const barAdvancedPipeline = [
|
4491
4350
|
initAdvancedVSeed_initAdvancedVSeed,
|
4492
4351
|
autoMeasures_autoMeasures,
|
4493
4352
|
autoDimensions_autoDimensions,
|
4353
|
+
encodingForBar,
|
4494
4354
|
pivotAdapter([
|
4495
|
-
|
4355
|
+
reshapeWithEncoding
|
4496
4356
|
], [
|
4497
|
-
|
4357
|
+
pivotReshapeWithEncoding
|
4498
4358
|
]),
|
4499
|
-
encodingYX,
|
4500
4359
|
sortYBandAxis,
|
4501
|
-
|
4360
|
+
sortLegend_sortLegend,
|
4502
4361
|
barConfig,
|
4503
4362
|
theme_theme,
|
4504
4363
|
markStyle_markStyle,
|
@@ -4509,13 +4368,13 @@
|
|
4509
4368
|
...spec
|
4510
4369
|
};
|
4511
4370
|
const { advancedVSeed } = context;
|
4512
|
-
const {
|
4513
|
-
|
4371
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
4372
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
4514
4373
|
result.type = 'bar';
|
4515
4374
|
result.direction = 'horizontal';
|
4516
|
-
result.yField =
|
4517
|
-
result.xField =
|
4518
|
-
result.seriesField =
|
4375
|
+
result.yField = unfoldInfo.encodingY;
|
4376
|
+
result.xField = foldInfo.measureValue;
|
4377
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
4519
4378
|
result.padding = 0;
|
4520
4379
|
result.region = [
|
4521
4380
|
{
|
@@ -4527,11 +4386,12 @@
|
|
4527
4386
|
};
|
4528
4387
|
const datasetYX = (spec, context)=>{
|
4529
4388
|
const { advancedVSeed, vseed } = context;
|
4530
|
-
const {
|
4389
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
4390
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
4531
4391
|
const orderMapping = analysis?.orderMapping || {};
|
4532
|
-
const angle =
|
4533
|
-
const y =
|
4534
|
-
const
|
4392
|
+
const angle = unfoldInfo.encodingAngle;
|
4393
|
+
const y = unfoldInfo.encodingY;
|
4394
|
+
const colorId = unfoldInfo.encodingColorId;
|
4535
4395
|
const id = datasetReshapeInfo[0].id;
|
4536
4396
|
const fields = {};
|
4537
4397
|
if (angle) fields[angle] = {
|
@@ -4548,14 +4408,14 @@
|
|
4548
4408
|
sortIndex: 0
|
4549
4409
|
};
|
4550
4410
|
}
|
4551
|
-
if (
|
4552
|
-
const order = orderMapping[
|
4553
|
-
if (order) fields[
|
4411
|
+
if (colorId) {
|
4412
|
+
const order = orderMapping[colorId];
|
4413
|
+
if (order) fields[colorId] = {
|
4554
4414
|
sortIndex: 0,
|
4555
4415
|
domain: order,
|
4556
4416
|
lockStatisticsByDomain: true
|
4557
4417
|
};
|
4558
|
-
else fields[
|
4418
|
+
else fields[colorId] = {
|
4559
4419
|
sortIndex: 0
|
4560
4420
|
};
|
4561
4421
|
}
|
@@ -4843,14 +4703,14 @@
|
|
4843
4703
|
initAdvancedVSeed_initAdvancedVSeed,
|
4844
4704
|
autoMeasures_autoMeasures,
|
4845
4705
|
autoDimensions_autoDimensions,
|
4706
|
+
encodingForBar,
|
4846
4707
|
pivotAdapter([
|
4847
|
-
|
4708
|
+
reshapeWithEncoding
|
4848
4709
|
], [
|
4849
|
-
|
4710
|
+
pivotReshapeWithEncoding
|
4850
4711
|
]),
|
4851
|
-
encodingYX,
|
4852
4712
|
sortYBandAxis,
|
4853
|
-
|
4713
|
+
sortLegend_sortLegend,
|
4854
4714
|
barParallelConfig,
|
4855
4715
|
theme_theme,
|
4856
4716
|
markStyle_markStyle,
|
@@ -4861,20 +4721,19 @@
|
|
4861
4721
|
...spec
|
4862
4722
|
};
|
4863
4723
|
const { advancedVSeed } = context;
|
4864
|
-
const {
|
4865
|
-
const { unfoldInfo } = datasetReshapeInfo[0];
|
4866
|
-
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
4724
|
+
const { datasetReshapeInfo, dimensions } = advancedVSeed;
|
4725
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
4867
4726
|
const sameDimensionsMode = dimensions.length > 1 && dimensions.every((dim)=>dim.id === dimensions[0].id);
|
4868
4727
|
result.type = 'bar';
|
4869
4728
|
result.direction = 'horizontal';
|
4870
4729
|
result.yField = sameDimensionsMode ? [
|
4871
|
-
|
4730
|
+
unfoldInfo.encodingY
|
4872
4731
|
] : [
|
4873
|
-
|
4874
|
-
unfoldInfo.
|
4732
|
+
unfoldInfo.encodingY,
|
4733
|
+
unfoldInfo.encodingDetail
|
4875
4734
|
];
|
4876
|
-
result.xField =
|
4877
|
-
result.seriesField =
|
4735
|
+
result.xField = foldInfo.measureValue;
|
4736
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
4878
4737
|
result.padding = 0;
|
4879
4738
|
result.region = [
|
4880
4739
|
{
|
@@ -4940,14 +4799,14 @@
|
|
4940
4799
|
initAdvancedVSeed_initAdvancedVSeed,
|
4941
4800
|
autoMeasures_autoMeasures,
|
4942
4801
|
autoDimensions_autoDimensions,
|
4802
|
+
encodingForBar,
|
4943
4803
|
pivotAdapter([
|
4944
|
-
|
4804
|
+
reshapeWithEncoding
|
4945
4805
|
], [
|
4946
|
-
|
4806
|
+
pivotReshapeWithEncoding
|
4947
4807
|
]),
|
4948
|
-
encodingYX,
|
4949
4808
|
sortYBandAxis,
|
4950
|
-
|
4809
|
+
sortLegend_sortLegend,
|
4951
4810
|
barPercentConfig,
|
4952
4811
|
theme_theme,
|
4953
4812
|
markStyle_markStyle,
|
@@ -5011,14 +4870,14 @@
|
|
5011
4870
|
initAdvancedVSeed_initAdvancedVSeed,
|
5012
4871
|
autoMeasures_autoMeasures,
|
5013
4872
|
autoDimensions_autoDimensions,
|
4873
|
+
encodingForColumn,
|
5014
4874
|
pivotAdapter([
|
5015
|
-
|
4875
|
+
reshapeWithEncoding
|
5016
4876
|
], [
|
5017
|
-
|
4877
|
+
pivotReshapeWithEncoding
|
5018
4878
|
]),
|
5019
|
-
encodingXY,
|
5020
4879
|
sortXBandAxis,
|
5021
|
-
|
4880
|
+
sortLegend_sortLegend,
|
5022
4881
|
areaConfig,
|
5023
4882
|
theme_theme,
|
5024
4883
|
markStyle_markStyle,
|
@@ -5029,13 +4888,13 @@
|
|
5029
4888
|
...spec
|
5030
4889
|
};
|
5031
4890
|
const { advancedVSeed } = context;
|
5032
|
-
const {
|
5033
|
-
|
4891
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
4892
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
5034
4893
|
result.type = 'area';
|
5035
4894
|
result.direction = 'vertical';
|
5036
|
-
result.
|
5037
|
-
result.
|
5038
|
-
result.seriesField =
|
4895
|
+
result.yField = foldInfo.measureValue;
|
4896
|
+
result.xField = unfoldInfo.encodingX;
|
4897
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
5039
4898
|
result.padding = 0;
|
5040
4899
|
result.region = [
|
5041
4900
|
{
|
@@ -5047,8 +4906,9 @@
|
|
5047
4906
|
};
|
5048
4907
|
const areaStyle_areaStyle = (spec, context)=>{
|
5049
4908
|
const { advancedVSeed } = context;
|
5050
|
-
const { markStyle,
|
4909
|
+
const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
|
5051
4910
|
const { areaStyle } = markStyle;
|
4911
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
5052
4912
|
if (!areaStyle) return {
|
5053
4913
|
...spec,
|
5054
4914
|
area: {
|
@@ -5061,7 +4921,7 @@
|
|
5061
4921
|
const areaStyles = Array.isArray(areaStyle) ? areaStyle : [
|
5062
4922
|
areaStyle
|
5063
4923
|
];
|
5064
|
-
const group =
|
4924
|
+
const group = unfoldInfo.encodingColorId;
|
5065
4925
|
const areaGroups = chunk_HVPVHFDT_i(dataset, (d)=>d[group ?? '']);
|
5066
4926
|
const customMap = areaStyles.reduce((result, style, index)=>{
|
5067
4927
|
const { areaColor, areaColorOpacity, areaVisible = true } = style;
|
@@ -5155,14 +5015,14 @@
|
|
5155
5015
|
initAdvancedVSeed_initAdvancedVSeed,
|
5156
5016
|
autoMeasures_autoMeasures,
|
5157
5017
|
autoDimensions_autoDimensions,
|
5018
|
+
encodingForColumn,
|
5158
5019
|
pivotAdapter([
|
5159
|
-
|
5020
|
+
reshapeWithEncoding
|
5160
5021
|
], [
|
5161
|
-
|
5022
|
+
pivotReshapeWithEncoding
|
5162
5023
|
]),
|
5163
|
-
encodingXY,
|
5164
5024
|
sortXBandAxis,
|
5165
|
-
|
5025
|
+
sortLegend_sortLegend,
|
5166
5026
|
areaPercentConfig,
|
5167
5027
|
theme_theme,
|
5168
5028
|
markStyle_markStyle,
|
@@ -5227,16 +5087,20 @@
|
|
5227
5087
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
5228
5088
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
5229
5089
|
};
|
5230
|
-
const
|
5090
|
+
const autoScatterMeasures = (advancedVSeed, context)=>{
|
5231
5091
|
const result = {
|
5232
5092
|
...advancedVSeed
|
5233
5093
|
};
|
5234
5094
|
const { vseed } = context;
|
5235
|
-
const {
|
5095
|
+
const { dataset, scatterMeasures, measures } = vseed;
|
5236
5096
|
if (!dataset) throw new Error('dataset is required');
|
5237
5097
|
if (0 === dataset.length) return result;
|
5238
|
-
if (
|
5239
|
-
result.measures =
|
5098
|
+
if (scatterMeasures) {
|
5099
|
+
result.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
5100
|
+
return result;
|
5101
|
+
}
|
5102
|
+
if (measures && measureDepth(measures) > 1) {
|
5103
|
+
result.measures = measures;
|
5240
5104
|
return result;
|
5241
5105
|
}
|
5242
5106
|
const top100dataset = dataset.slice(0, 100);
|
@@ -5244,7 +5108,7 @@
|
|
5244
5108
|
...prev,
|
5245
5109
|
...cur
|
5246
5110
|
}), {});
|
5247
|
-
const newMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
5111
|
+
const newMeasures = measures || Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
5248
5112
|
'',
|
5249
5113
|
null,
|
5250
5114
|
void 0
|
@@ -5252,693 +5116,277 @@
|
|
5252
5116
|
id: measure,
|
5253
5117
|
alias: measure
|
5254
5118
|
}));
|
5255
|
-
result.measures =
|
5119
|
+
if (0 === newMeasures.length) result.measures = [];
|
5120
|
+
else if (1 === newMeasures.length) result.measures = [
|
5121
|
+
{
|
5122
|
+
id: 'primary',
|
5123
|
+
alias: 'primary',
|
5124
|
+
children: newMeasures
|
5125
|
+
}
|
5126
|
+
];
|
5127
|
+
else if (newMeasures.length > 1) result.measures = [
|
5128
|
+
{
|
5129
|
+
id: 'primary',
|
5130
|
+
alias: 'primary',
|
5131
|
+
children: newMeasures.slice(0, 1)
|
5132
|
+
},
|
5133
|
+
{
|
5134
|
+
id: 'secondary',
|
5135
|
+
alias: 'secondary',
|
5136
|
+
children: newMeasures.slice(1)
|
5137
|
+
}
|
5138
|
+
];
|
5256
5139
|
return result;
|
5257
5140
|
};
|
5258
|
-
const
|
5259
|
-
const
|
5260
|
-
|
5261
|
-
|
5262
|
-
|
5263
|
-
|
5264
|
-
|
5265
|
-
|
5266
|
-
|
5267
|
-
|
5268
|
-
|
5269
|
-
|
5270
|
-
|
5271
|
-
|
5272
|
-
|
5273
|
-
|
5141
|
+
const scatterMeasuresToMeasureTree = (scatterMeasures)=>{
|
5142
|
+
const measureTree = scatterMeasures.map((item, index)=>{
|
5143
|
+
const { xMeasures, yMeasures } = item;
|
5144
|
+
const groupChildren = [];
|
5145
|
+
let id = '';
|
5146
|
+
if (xMeasures) {
|
5147
|
+
const arrXMeasures = Array.isArray(xMeasures) ? xMeasures : [
|
5148
|
+
xMeasures
|
5149
|
+
];
|
5150
|
+
const alias = arrXMeasures.map((item)=>item.alias || item.id).toString();
|
5151
|
+
id += alias;
|
5152
|
+
groupChildren.push({
|
5153
|
+
id: `${index}-x`,
|
5154
|
+
alias: arrXMeasures.map((item)=>item.alias || item.id).toString(),
|
5155
|
+
children: arrXMeasures
|
5156
|
+
});
|
5157
|
+
}
|
5158
|
+
if (yMeasures) {
|
5159
|
+
const arrYMeasures = Array.isArray(yMeasures) ? yMeasures : [
|
5160
|
+
yMeasures
|
5161
|
+
];
|
5162
|
+
const alias = arrYMeasures.map((item)=>item.alias || item.id).toString();
|
5163
|
+
id += alias;
|
5164
|
+
groupChildren.push({
|
5165
|
+
id: `${index}-y`,
|
5166
|
+
alias: arrYMeasures.map((item)=>item.alias || item.id).toString(),
|
5167
|
+
children: arrYMeasures
|
5168
|
+
});
|
5169
|
+
}
|
5170
|
+
return {
|
5171
|
+
id,
|
5172
|
+
alias: id,
|
5173
|
+
children: groupChildren
|
5174
|
+
};
|
5274
5175
|
});
|
5275
|
-
|
5276
|
-
|
5277
|
-
foldInfo: {
|
5278
|
-
foldMap: {},
|
5279
|
-
measureId: '',
|
5280
|
-
measureName: '',
|
5281
|
-
measureValue: ''
|
5282
|
-
},
|
5283
|
-
unfoldInfo: {
|
5284
|
-
groupName: '',
|
5285
|
-
groupId: '',
|
5286
|
-
colorItems: [],
|
5287
|
-
colorIdMap: {}
|
5288
|
-
}
|
5176
|
+
if (1 === scatterMeasures.length) return measureTree[0].children || [];
|
5177
|
+
return measureTree;
|
5289
5178
|
};
|
5290
|
-
const
|
5291
|
-
const {
|
5292
|
-
|
5293
|
-
if (
|
5294
|
-
|
5179
|
+
const encodingForScatter = (advancedVSeed, context)=>{
|
5180
|
+
const { vseed } = context;
|
5181
|
+
const { dimensions } = advancedVSeed;
|
5182
|
+
if (!dimensions) return advancedVSeed;
|
5183
|
+
const encoding = vseed.encoding;
|
5184
|
+
if (encoding) {
|
5185
|
+
const detail = encoding.detail || [];
|
5186
|
+
const color = encoding.color || [];
|
5187
|
+
const mergedDetail = chunk_QJLMYOTX_i([
|
5188
|
+
...color,
|
5189
|
+
...detail
|
5190
|
+
]);
|
5295
5191
|
return {
|
5296
|
-
|
5297
|
-
|
5298
|
-
|
5299
|
-
|
5300
|
-
measureName: foldMeasureName,
|
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`指标值`
|
5192
|
+
...advancedVSeed,
|
5193
|
+
encoding: {
|
5194
|
+
...encoding,
|
5195
|
+
detail: mergedDetail
|
5313
5196
|
}
|
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
5197
|
};
|
5325
5198
|
}
|
5199
|
+
const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
|
5200
|
+
const mergedEncoding = {
|
5201
|
+
color: dimensions.slice(0).map((item)=>item.id),
|
5202
|
+
detail: dimensionsWithoutMeasureName.slice(0).map((item)=>item.id),
|
5203
|
+
tooltip: dimensionsWithoutMeasureName.map((item)=>item.id),
|
5204
|
+
label: [],
|
5205
|
+
row: [],
|
5206
|
+
column: []
|
5207
|
+
};
|
5208
|
+
return {
|
5209
|
+
...advancedVSeed,
|
5210
|
+
encoding: mergedEncoding
|
5211
|
+
};
|
5326
5212
|
};
|
5327
|
-
const
|
5213
|
+
const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
5328
5214
|
const result = {
|
5329
5215
|
...advancedVSeed
|
5330
5216
|
};
|
5331
5217
|
const { vseed } = context;
|
5332
5218
|
const { dataset } = vseed;
|
5333
|
-
const { dimensions, measures } = advancedVSeed;
|
5334
|
-
if (!measures || !dimensions || !dataset) return result;
|
5219
|
+
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
5220
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
5335
5221
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
5336
|
-
|
5222
|
+
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
5223
|
+
const foldInfoList = [];
|
5224
|
+
const unfoldInfoList = [];
|
5225
|
+
const datasets = [];
|
5226
|
+
const xMeasures = measures[0];
|
5227
|
+
const yMeasures = measures[1] || xMeasures;
|
5228
|
+
if (xMeasures && xMeasures.children) {
|
5229
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5230
|
+
foldMeasureValue: FoldXMeasureValue,
|
5231
|
+
colorItemAsId: true
|
5232
|
+
});
|
5233
|
+
datasets.push(newDataset);
|
5234
|
+
foldInfoList.push(foldInfo);
|
5235
|
+
unfoldInfoList.push(unfoldInfo);
|
5236
|
+
}
|
5237
|
+
if (yMeasures && yMeasures.children) {
|
5238
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], dimensions, yMeasures.children, encoding, {
|
5239
|
+
foldMeasureValue: FoldYMeasureValue,
|
5240
|
+
colorItemAsId: true
|
5241
|
+
});
|
5242
|
+
datasets[0] = newDataset;
|
5243
|
+
foldInfoList.push(foldInfo);
|
5244
|
+
unfoldInfoList.push(unfoldInfo);
|
5245
|
+
}
|
5246
|
+
const unfoldInfo = {
|
5247
|
+
...unfoldInfoList[0],
|
5248
|
+
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
5249
|
+
colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
|
5250
|
+
...prev,
|
5251
|
+
...cur.colorIdMap
|
5252
|
+
}), {})
|
5253
|
+
};
|
5337
5254
|
return {
|
5338
5255
|
...result,
|
5339
|
-
dataset:
|
5256
|
+
dataset: datasets[0],
|
5340
5257
|
datasetReshapeInfo: [
|
5341
5258
|
{
|
5342
|
-
id:
|
5259
|
+
id: String(chartType),
|
5343
5260
|
index: 0,
|
5344
|
-
foldInfo,
|
5345
|
-
|
5261
|
+
foldInfo: foldInfoList[0],
|
5262
|
+
foldInfoList: foldInfoList,
|
5263
|
+
unfoldInfo: unfoldInfo
|
5346
5264
|
}
|
5347
5265
|
]
|
5348
5266
|
};
|
5349
5267
|
};
|
5350
|
-
const
|
5268
|
+
const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
5351
5269
|
const result = {
|
5352
5270
|
...advancedVSeed
|
5353
5271
|
};
|
5354
5272
|
const { vseed } = context;
|
5355
5273
|
const { dataset } = vseed;
|
5356
|
-
const { measures } = advancedVSeed;
|
5357
|
-
|
5358
|
-
if (!measures || !dimensions) return result;
|
5274
|
+
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
5275
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
5359
5276
|
const measureGroups = [];
|
5360
|
-
|
5361
|
-
|
5277
|
+
const depth = measureDepth(measures);
|
5278
|
+
if (3 === depth) measures.forEach((measure)=>{
|
5279
|
+
measureGroups.push(measure.children);
|
5362
5280
|
});
|
5363
|
-
|
5281
|
+
else if (2 === depth) measureGroups.push(measures);
|
5282
|
+
const datasetList = [];
|
5364
5283
|
const datasetReshapeInfo = [];
|
5365
|
-
measureGroups.forEach((
|
5366
|
-
|
5367
|
-
if (
|
5368
|
-
const
|
5369
|
-
const
|
5370
|
-
const
|
5371
|
-
|
5372
|
-
|
5373
|
-
|
5374
|
-
|
5375
|
-
|
5284
|
+
measureGroups.forEach((measures, index)=>{
|
5285
|
+
if (0 === measures.length) throw new Error('measures can not be empty');
|
5286
|
+
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
5287
|
+
const foldInfoList = [];
|
5288
|
+
const unfoldInfoList = [];
|
5289
|
+
const datasets = [];
|
5290
|
+
const xMeasures = measures[0];
|
5291
|
+
const yMeasures = measures[1] || xMeasures;
|
5292
|
+
if (xMeasures && xMeasures.children) {
|
5293
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5294
|
+
foldMeasureValue: `${FoldXMeasureValue}${index}`,
|
5295
|
+
colorItemAsId: true
|
5296
|
+
});
|
5297
|
+
datasets.push(newDataset);
|
5298
|
+
foldInfoList.push(foldInfo);
|
5299
|
+
unfoldInfoList.push(unfoldInfo);
|
5300
|
+
}
|
5301
|
+
if (yMeasures && yMeasures.children) {
|
5302
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, yMeasures.children, encoding, {
|
5303
|
+
foldMeasureValue: `${FoldYMeasureValue}${index}`,
|
5304
|
+
colorItemAsId: true
|
5305
|
+
});
|
5306
|
+
datasets.push(newDataset);
|
5307
|
+
foldInfoList.push(foldInfo);
|
5308
|
+
unfoldInfoList.push(unfoldInfo);
|
5309
|
+
}
|
5310
|
+
const unfoldInfo = {
|
5311
|
+
...unfoldInfoList[0],
|
5312
|
+
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
5313
|
+
colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
|
5314
|
+
...prev,
|
5315
|
+
...cur.colorIdMap
|
5316
|
+
}), {})
|
5317
|
+
};
|
5376
5318
|
const reshapeInfo = {
|
5377
|
-
id:
|
5319
|
+
id: `${chartType}-${index}`,
|
5378
5320
|
index,
|
5379
|
-
foldInfo,
|
5380
|
-
|
5321
|
+
foldInfo: foldInfoList[0],
|
5322
|
+
foldInfoList: foldInfoList,
|
5323
|
+
unfoldInfo: unfoldInfo
|
5381
5324
|
};
|
5382
|
-
newDatasets.push(newSubDataset);
|
5383
5325
|
datasetReshapeInfo.push(reshapeInfo);
|
5326
|
+
datasetList.push(datasets[0].map((d, index)=>({
|
5327
|
+
...d,
|
5328
|
+
...datasets[1]?.[index] || {}
|
5329
|
+
})));
|
5384
5330
|
});
|
5385
5331
|
return {
|
5386
5332
|
...result,
|
5387
|
-
dataset:
|
5333
|
+
dataset: datasetList,
|
5388
5334
|
datasetReshapeInfo: datasetReshapeInfo
|
5389
5335
|
};
|
5390
5336
|
};
|
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 = [
|
5337
|
+
const scatterAdvancedPipeline = [
|
5460
5338
|
initAdvancedVSeed_initAdvancedVSeed,
|
5461
|
-
|
5339
|
+
autoScatterMeasures,
|
5462
5340
|
autoDimensions_autoDimensions,
|
5341
|
+
encodingForScatter,
|
5463
5342
|
pivotAdapter([
|
5464
|
-
|
5343
|
+
reshapeWithScatterEncoding
|
5465
5344
|
], [
|
5466
|
-
|
5345
|
+
pivotReshapeWithScatterEncoding
|
5467
5346
|
]),
|
5468
|
-
|
5469
|
-
sortXBandAxis,
|
5470
|
-
areaConfig,
|
5347
|
+
scatterConfig,
|
5471
5348
|
theme_theme,
|
5472
5349
|
markStyle_markStyle,
|
5473
5350
|
annotation_annotation
|
5474
5351
|
];
|
5475
|
-
const
|
5352
|
+
const initScatter = (spec, context)=>{
|
5476
5353
|
const result = {
|
5477
|
-
|
5478
|
-
padding: 0,
|
5479
|
-
region: [
|
5480
|
-
{
|
5481
|
-
clip: true
|
5482
|
-
}
|
5483
|
-
]
|
5354
|
+
...spec
|
5484
5355
|
};
|
5485
|
-
|
5486
|
-
|
5487
|
-
|
5356
|
+
const { advancedVSeed } = context;
|
5357
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
5358
|
+
const { unfoldInfo, foldInfoList } = datasetReshapeInfo[0];
|
5359
|
+
result.type = 'scatter';
|
5360
|
+
result.direction = 'vertical';
|
5361
|
+
result.xField = foldInfoList?.[0].measureValue;
|
5362
|
+
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
5363
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
5364
|
+
result.padding = 0;
|
5365
|
+
result.region = [
|
5366
|
+
{
|
5367
|
+
clip: true
|
5368
|
+
}
|
5369
|
+
];
|
5370
|
+
result.animation = true;
|
5371
|
+
return result;
|
5372
|
+
};
|
5373
|
+
const datasetScatter = (spec, context)=>{
|
5374
|
+
const { advancedVSeed, vseed } = context;
|
5375
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
5376
|
+
const id = datasetReshapeInfo[0].id;
|
5377
|
+
const fields = {};
|
5378
|
+
return {
|
5379
|
+
...spec,
|
5380
|
+
data: {
|
5381
|
+
id,
|
5382
|
+
values: isPivotChart(vseed) ? void 0 : advancedVSeed.dataset.flat(),
|
5383
|
+
fields: fields
|
5384
|
+
}
|
5488
5385
|
};
|
5489
5386
|
};
|
5490
|
-
const
|
5387
|
+
const horizontalCrosshairLine = (spec, context)=>{
|
5491
5388
|
const result = {
|
5492
|
-
|
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)=>{
|
5940
|
-
const result = {
|
5941
|
-
...spec
|
5389
|
+
...spec
|
5942
5390
|
};
|
5943
5391
|
const { advancedVSeed, vseed } = context;
|
5944
5392
|
const { chartType } = vseed;
|
@@ -5984,7 +5432,7 @@
|
|
5984
5432
|
initScatter,
|
5985
5433
|
color_color,
|
5986
5434
|
background_backgroundColor,
|
5987
|
-
|
5435
|
+
datasetScatter,
|
5988
5436
|
progressive,
|
5989
5437
|
xLinear,
|
5990
5438
|
yLinear,
|
@@ -6009,7 +5457,7 @@
|
|
6009
5457
|
initScatter,
|
6010
5458
|
color_color,
|
6011
5459
|
background_backgroundColor,
|
6012
|
-
|
5460
|
+
datasetScatter,
|
6013
5461
|
progressive,
|
6014
5462
|
xLinear,
|
6015
5463
|
yLinear,
|
@@ -6035,41 +5483,163 @@
|
|
6035
5483
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
6036
5484
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
6037
5485
|
};
|
6038
|
-
const
|
5486
|
+
const autoDualMeasures = (advancedVSeed, context)=>{
|
5487
|
+
const result = {
|
5488
|
+
...advancedVSeed
|
5489
|
+
};
|
5490
|
+
const { vseed } = context;
|
5491
|
+
const { dataset, dualMeasures, measures } = vseed;
|
5492
|
+
if (!dataset) throw new Error('dataset is required');
|
5493
|
+
if (0 === dataset.length) return result;
|
5494
|
+
if (dualMeasures) {
|
5495
|
+
result.measures = dualMeasuresToMeasureTree(dualMeasures);
|
5496
|
+
return result;
|
5497
|
+
}
|
5498
|
+
if (measures && measureDepth(measures) > 1) {
|
5499
|
+
result.measures = measures;
|
5500
|
+
return result;
|
5501
|
+
}
|
5502
|
+
const top100dataset = dataset.slice(0, 100);
|
5503
|
+
const sample = top100dataset.reduce((prev, cur)=>({
|
5504
|
+
...prev,
|
5505
|
+
...cur
|
5506
|
+
}), {});
|
5507
|
+
const newMeasures = measures || Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
5508
|
+
'',
|
5509
|
+
null,
|
5510
|
+
void 0
|
5511
|
+
].includes(key)).map((measure)=>({
|
5512
|
+
id: measure,
|
5513
|
+
alias: measure
|
5514
|
+
}));
|
5515
|
+
if (0 === newMeasures.length) result.measures = [];
|
5516
|
+
else if (1 === newMeasures.length) result.measures = [
|
5517
|
+
{
|
5518
|
+
id: 'primary',
|
5519
|
+
alias: 'primary',
|
5520
|
+
children: newMeasures
|
5521
|
+
}
|
5522
|
+
];
|
5523
|
+
else if (newMeasures.length > 1) result.measures = [
|
5524
|
+
{
|
5525
|
+
id: 'primary',
|
5526
|
+
alias: 'primary',
|
5527
|
+
children: newMeasures.slice(0, 1)
|
5528
|
+
},
|
5529
|
+
{
|
5530
|
+
id: 'secondary',
|
5531
|
+
alias: 'secondary',
|
5532
|
+
children: newMeasures.slice(1)
|
5533
|
+
}
|
5534
|
+
];
|
5535
|
+
return result;
|
5536
|
+
};
|
5537
|
+
const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
5538
|
+
const measureTree = dualMeasures.map((item, index)=>{
|
5539
|
+
const { primaryMeasures, secondaryMeasures } = item;
|
5540
|
+
const groupChildren = [];
|
5541
|
+
let id = '';
|
5542
|
+
if (primaryMeasures) {
|
5543
|
+
const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
|
5544
|
+
primaryMeasures
|
5545
|
+
];
|
5546
|
+
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
5547
|
+
id += alias;
|
5548
|
+
groupChildren.push({
|
5549
|
+
id: `${index}-primary`,
|
5550
|
+
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
5551
|
+
children: arrPrimaryMeasures
|
5552
|
+
});
|
5553
|
+
}
|
5554
|
+
if (secondaryMeasures) {
|
5555
|
+
const arrSecondaryMeasures = Array.isArray(secondaryMeasures) ? secondaryMeasures : [
|
5556
|
+
secondaryMeasures
|
5557
|
+
];
|
5558
|
+
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
5559
|
+
id += alias;
|
5560
|
+
groupChildren.push({
|
5561
|
+
id: `${index}-secondary`,
|
5562
|
+
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
5563
|
+
children: arrSecondaryMeasures
|
5564
|
+
});
|
5565
|
+
}
|
5566
|
+
return {
|
5567
|
+
id,
|
5568
|
+
alias: id,
|
5569
|
+
children: groupChildren
|
5570
|
+
};
|
5571
|
+
});
|
5572
|
+
if (1 === dualMeasures.length) return measureTree[0].children || [];
|
5573
|
+
return measureTree;
|
5574
|
+
};
|
5575
|
+
const encodingForDualAxis = (advancedVSeed, context)=>{
|
5576
|
+
const { vseed } = context;
|
5577
|
+
const { dimensions } = advancedVSeed;
|
5578
|
+
if (!dimensions) return advancedVSeed;
|
5579
|
+
const encoding = vseed.encoding;
|
5580
|
+
if (encoding) {
|
5581
|
+
const x = encoding.x || [];
|
5582
|
+
const detail = encoding.detail || [];
|
5583
|
+
const color = encoding.color || [];
|
5584
|
+
const mergedDetail = [
|
5585
|
+
...color.filter((d)=>!x.includes(d)),
|
5586
|
+
...detail
|
5587
|
+
];
|
5588
|
+
return {
|
5589
|
+
...advancedVSeed,
|
5590
|
+
encoding: {
|
5591
|
+
...encoding,
|
5592
|
+
detail: mergedDetail
|
5593
|
+
}
|
5594
|
+
};
|
5595
|
+
}
|
5596
|
+
const mergedEncoding = {
|
5597
|
+
x: dimensions.slice(0, 1).map((item)=>item.id),
|
5598
|
+
color: dimensions.slice(1).map((item)=>item.id),
|
5599
|
+
detail: dimensions.slice(1).map((item)=>item.id),
|
5600
|
+
tooltip: dimensions.map((item)=>item.id),
|
5601
|
+
label: [],
|
5602
|
+
row: [],
|
5603
|
+
column: []
|
5604
|
+
};
|
5605
|
+
return {
|
5606
|
+
...advancedVSeed,
|
5607
|
+
encoding: mergedEncoding
|
5608
|
+
};
|
5609
|
+
};
|
5610
|
+
const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
6039
5611
|
const result = {
|
6040
5612
|
...advancedVSeed
|
6041
5613
|
};
|
6042
5614
|
const { vseed } = context;
|
6043
5615
|
const { dataset } = vseed;
|
6044
|
-
const { dimensions, measures } = advancedVSeed;
|
6045
|
-
if (!measures || !dimensions || !dataset) return result;
|
5616
|
+
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
5617
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
6046
5618
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
6047
5619
|
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
5620
|
const foldInfoList = [];
|
6051
5621
|
const unfoldInfoList = [];
|
5622
|
+
const datasets = [];
|
6052
5623
|
const primaryMeasures = measures[0];
|
6053
5624
|
const secondaryMeasures = measures[1] || [];
|
6054
5625
|
if (primaryMeasures && primaryMeasures.children) {
|
6055
|
-
const { dataset:
|
5626
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
6056
5627
|
foldMeasureValue: FoldPrimaryMeasureValue
|
6057
5628
|
});
|
6058
|
-
datasets.push(
|
5629
|
+
datasets.push(newDataset);
|
6059
5630
|
foldInfoList.push(foldInfo);
|
6060
5631
|
unfoldInfoList.push(unfoldInfo);
|
6061
5632
|
}
|
6062
5633
|
if (secondaryMeasures && secondaryMeasures.children) {
|
6063
|
-
const { dataset:
|
5634
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
6064
5635
|
foldMeasureValue: FoldSecondaryMeasureValue
|
6065
5636
|
});
|
6066
|
-
datasets.push(
|
5637
|
+
datasets.push(newDataset);
|
6067
5638
|
foldInfoList.push(foldInfo);
|
6068
5639
|
unfoldInfoList.push(unfoldInfo);
|
6069
5640
|
}
|
6070
5641
|
const unfoldInfo = {
|
6071
|
-
|
6072
|
-
groupId: unfoldInfoList[0].groupId,
|
5642
|
+
...unfoldInfoList[0],
|
6073
5643
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
6074
5644
|
colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
|
6075
5645
|
...prev,
|
@@ -6081,7 +5651,7 @@
|
|
6081
5651
|
dataset: datasets,
|
6082
5652
|
datasetReshapeInfo: [
|
6083
5653
|
{
|
6084
|
-
id:
|
5654
|
+
id: String(chartType),
|
6085
5655
|
index: 0,
|
6086
5656
|
foldInfo: foldInfoList[0],
|
6087
5657
|
foldInfoList: foldInfoList,
|
@@ -6090,46 +5660,48 @@
|
|
6090
5660
|
]
|
6091
5661
|
};
|
6092
5662
|
};
|
6093
|
-
const
|
5663
|
+
const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
6094
5664
|
const result = {
|
6095
5665
|
...advancedVSeed
|
6096
5666
|
};
|
6097
5667
|
const { vseed } = context;
|
6098
5668
|
const { dataset } = vseed;
|
6099
|
-
const { dimensions, measures } = advancedVSeed;
|
6100
|
-
if (!measures || !dimensions || !dataset) return result;
|
6101
|
-
const commonDimensions = dimensions.filter((dim)=>'dimension' === dim.location);
|
5669
|
+
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
5670
|
+
if (!measures || !dimensions || !dataset || !encoding) return result;
|
6102
5671
|
const datasetList = [];
|
6103
5672
|
const datasetReshapeInfo = [];
|
6104
|
-
|
6105
|
-
|
5673
|
+
const measureGroups = [];
|
5674
|
+
const depth = measureDepth(measures);
|
5675
|
+
if (3 === depth) measures.forEach((measure)=>{
|
5676
|
+
measureGroups.push(measure.children);
|
5677
|
+
});
|
5678
|
+
else if (2 === depth) measureGroups.push(measures);
|
5679
|
+
measureGroups.forEach((measures, index)=>{
|
6106
5680
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
6107
5681
|
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
6108
|
-
const datasets = [];
|
6109
5682
|
const foldInfoList = [];
|
6110
5683
|
const unfoldInfoList = [];
|
5684
|
+
const datasets = [];
|
6111
5685
|
const primaryMeasures = measures[0];
|
6112
|
-
const secondaryMeasures = measures[1] ||
|
5686
|
+
const secondaryMeasures = measures[1] || [];
|
6113
5687
|
if (primaryMeasures && primaryMeasures.children) {
|
6114
|
-
const { dataset:
|
5688
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
6115
5689
|
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`
|
6116
5690
|
});
|
6117
|
-
datasets.push(
|
5691
|
+
datasets.push(newDataset);
|
6118
5692
|
foldInfoList.push(foldInfo);
|
6119
5693
|
unfoldInfoList.push(unfoldInfo);
|
6120
5694
|
}
|
6121
5695
|
if (secondaryMeasures && secondaryMeasures.children) {
|
6122
|
-
const { dataset:
|
5696
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
6123
5697
|
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`
|
6124
5698
|
});
|
6125
|
-
datasets.push(
|
5699
|
+
datasets.push(newDataset);
|
6126
5700
|
foldInfoList.push(foldInfo);
|
6127
5701
|
unfoldInfoList.push(unfoldInfo);
|
6128
5702
|
}
|
6129
|
-
datasetList.push(datasets.flat(2));
|
6130
5703
|
const unfoldInfo = {
|
6131
|
-
|
6132
|
-
groupId: unfoldInfoList[0].groupId,
|
5704
|
+
...unfoldInfoList[0],
|
6133
5705
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
6134
5706
|
colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
|
6135
5707
|
...prev,
|
@@ -6137,53 +5709,19 @@
|
|
6137
5709
|
}), {})
|
6138
5710
|
};
|
6139
5711
|
const reshapeInfo = {
|
6140
|
-
id:
|
5712
|
+
id: `${chartType}-${index}`,
|
6141
5713
|
index,
|
6142
5714
|
foldInfo: foldInfoList[0],
|
6143
|
-
|
6144
|
-
|
5715
|
+
foldInfoList: foldInfoList,
|
5716
|
+
unfoldInfo: unfoldInfo
|
6145
5717
|
};
|
6146
5718
|
datasetReshapeInfo.push(reshapeInfo);
|
5719
|
+
datasetList.push(datasets.flat(2));
|
6147
5720
|
});
|
6148
5721
|
return {
|
6149
5722
|
...result,
|
6150
5723
|
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
|
5724
|
+
datasetReshapeInfo: datasetReshapeInfo
|
6187
5725
|
};
|
6188
5726
|
};
|
6189
5727
|
const dualAxisConfig = (advancedVSeed, context)=>{
|
@@ -6212,125 +5750,80 @@
|
|
6212
5750
|
};
|
6213
5751
|
return result;
|
6214
5752
|
};
|
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
5753
|
const dualAxisAdvancedPipeline = [
|
6305
5754
|
initAdvancedVSeed_initAdvancedVSeed,
|
6306
5755
|
autoDualMeasures,
|
6307
5756
|
autoDimensions_autoDimensions,
|
5757
|
+
encodingForDualAxis,
|
6308
5758
|
pivotAdapter([
|
6309
|
-
|
5759
|
+
reshapeWithDualEncoding
|
6310
5760
|
], [
|
6311
|
-
|
5761
|
+
pivotReshapeWithDualEncoding
|
6312
5762
|
]),
|
6313
|
-
encodingXYY,
|
6314
5763
|
sortXBandAxis,
|
6315
|
-
|
5764
|
+
sortLegend_sortLegend,
|
6316
5765
|
dualAxisConfig,
|
6317
5766
|
theme_theme,
|
6318
5767
|
markStyle_markStyle,
|
6319
5768
|
annotation_annotation
|
6320
5769
|
];
|
5770
|
+
const series = (...args)=>{
|
5771
|
+
const result = {
|
5772
|
+
type: 'common',
|
5773
|
+
padding: 0,
|
5774
|
+
region: [
|
5775
|
+
{
|
5776
|
+
clip: true
|
5777
|
+
}
|
5778
|
+
]
|
5779
|
+
};
|
5780
|
+
return (_, context)=>{
|
5781
|
+
result.series = args.map((pipeline)=>execPipeline(pipeline, context, {}));
|
5782
|
+
return result;
|
5783
|
+
};
|
5784
|
+
};
|
5785
|
+
const seriesDualAxis = (...args)=>{
|
5786
|
+
const result = {
|
5787
|
+
type: 'common',
|
5788
|
+
padding: 0,
|
5789
|
+
region: [
|
5790
|
+
{
|
5791
|
+
clip: true
|
5792
|
+
}
|
5793
|
+
]
|
5794
|
+
};
|
5795
|
+
const createDualContext = (context, index)=>{
|
5796
|
+
const { advancedVSeed } = context;
|
5797
|
+
const dataset = advancedVSeed.dataset[index];
|
5798
|
+
return {
|
5799
|
+
...context,
|
5800
|
+
advancedVSeed: {
|
5801
|
+
...advancedVSeed,
|
5802
|
+
dataset: dataset
|
5803
|
+
}
|
5804
|
+
};
|
5805
|
+
};
|
5806
|
+
return (_, context)=>{
|
5807
|
+
result.series = args.map((pipeline, index)=>{
|
5808
|
+
const seriesContext = createDualContext(context, index);
|
5809
|
+
return execPipeline(pipeline, seriesContext, {});
|
5810
|
+
});
|
5811
|
+
return result;
|
5812
|
+
};
|
5813
|
+
};
|
6321
5814
|
const initDualAxisPrimary = (spec, context)=>{
|
6322
5815
|
const result = {
|
6323
5816
|
...spec
|
6324
5817
|
};
|
6325
5818
|
const { advancedVSeed } = context;
|
6326
|
-
const {
|
6327
|
-
|
6328
|
-
result.id = `${
|
5819
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
5820
|
+
const { unfoldInfo, foldInfoList, id } = datasetReshapeInfo[0];
|
5821
|
+
result.id = `${id}-primary-series`;
|
6329
5822
|
result.type = 'bar';
|
6330
5823
|
result.direction = 'vertical';
|
6331
|
-
result.xField =
|
6332
|
-
result.
|
6333
|
-
result.
|
5824
|
+
result.xField = unfoldInfo.encodingX;
|
5825
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
5826
|
+
result.yField = foldInfoList?.[0].measureValue;
|
6334
5827
|
result.animation = true;
|
6335
5828
|
return result;
|
6336
5829
|
};
|
@@ -6339,14 +5832,14 @@
|
|
6339
5832
|
...spec
|
6340
5833
|
};
|
6341
5834
|
const { advancedVSeed } = context;
|
6342
|
-
const {
|
6343
|
-
|
6344
|
-
result.id = `${
|
5835
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
5836
|
+
const { unfoldInfo, foldInfoList, id } = datasetReshapeInfo[0];
|
5837
|
+
result.id = `${id}-secondary-series`;
|
6345
5838
|
result.type = 'line';
|
6346
5839
|
result.direction = 'vertical';
|
6347
|
-
result.xField =
|
6348
|
-
result.yField =
|
6349
|
-
result.seriesField =
|
5840
|
+
result.xField = unfoldInfo.encodingX;
|
5841
|
+
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
5842
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
6350
5843
|
result.animation = true;
|
6351
5844
|
return result;
|
6352
5845
|
};
|
@@ -6378,10 +5871,10 @@
|
|
6378
5871
|
case 'columnParallel':
|
6379
5872
|
{
|
6380
5873
|
const columnSpec = result;
|
6381
|
-
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.
|
5874
|
+
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail);
|
6382
5875
|
else if (columnSpec.xField) columnSpec.xField = [
|
6383
5876
|
columnSpec.xField,
|
6384
|
-
datasetReshapeInfo[0].unfoldInfo.
|
5877
|
+
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
6385
5878
|
];
|
6386
5879
|
columnSpec.type = 'bar';
|
6387
5880
|
result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
|
@@ -6434,10 +5927,10 @@
|
|
6434
5927
|
case 'columnParallel':
|
6435
5928
|
{
|
6436
5929
|
const columnSpec = result;
|
6437
|
-
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.
|
5930
|
+
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail);
|
6438
5931
|
else if (columnSpec.xField) columnSpec.xField = [
|
6439
5932
|
columnSpec.xField,
|
6440
|
-
datasetReshapeInfo[0].unfoldInfo.
|
5933
|
+
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
6441
5934
|
];
|
6442
5935
|
columnSpec.type = 'bar';
|
6443
5936
|
result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
|
@@ -6464,10 +5957,11 @@
|
|
6464
5957
|
};
|
6465
5958
|
const datasetPrimary = (spec, context)=>{
|
6466
5959
|
const { advancedVSeed, vseed } = context;
|
6467
|
-
const {
|
5960
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
6468
5961
|
const orderMapping = analysis?.orderMapping || {};
|
6469
|
-
const
|
6470
|
-
const
|
5962
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
5963
|
+
const x = unfoldInfo.encodingX;
|
5964
|
+
const colorId = unfoldInfo.encodingColorId;
|
6471
5965
|
const id = datasetReshapeInfo[0].id;
|
6472
5966
|
const fields = {};
|
6473
5967
|
if (x) {
|
@@ -6481,14 +5975,14 @@
|
|
6481
5975
|
sortIndex: 0
|
6482
5976
|
};
|
6483
5977
|
}
|
6484
|
-
if (
|
6485
|
-
const order = orderMapping[
|
6486
|
-
if (order) fields[
|
5978
|
+
if (colorId) {
|
5979
|
+
const order = orderMapping[colorId];
|
5980
|
+
if (order) fields[colorId] = {
|
6487
5981
|
sortIndex: 0,
|
6488
5982
|
domain: order,
|
6489
5983
|
lockStatisticsByDomain: true
|
6490
5984
|
};
|
6491
|
-
else fields[
|
5985
|
+
else fields[colorId] = {
|
6492
5986
|
sortIndex: 0
|
6493
5987
|
};
|
6494
5988
|
}
|
@@ -6503,10 +5997,11 @@
|
|
6503
5997
|
};
|
6504
5998
|
const datasetSecondary = (spec, context)=>{
|
6505
5999
|
const { advancedVSeed, vseed } = context;
|
6506
|
-
const {
|
6000
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
6507
6001
|
const orderMapping = analysis?.orderMapping || {};
|
6508
|
-
const
|
6509
|
-
const
|
6002
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
6003
|
+
const x = unfoldInfo.encodingX;
|
6004
|
+
const colorId = unfoldInfo.encodingColorId;
|
6510
6005
|
const id = datasetReshapeInfo[0].id;
|
6511
6006
|
const fields = {};
|
6512
6007
|
if (x) {
|
@@ -6520,14 +6015,14 @@
|
|
6520
6015
|
sortIndex: 0
|
6521
6016
|
};
|
6522
6017
|
}
|
6523
|
-
if (
|
6524
|
-
const order = orderMapping[
|
6525
|
-
if (order) fields[
|
6018
|
+
if (colorId) {
|
6019
|
+
const order = orderMapping[colorId];
|
6020
|
+
if (order) fields[colorId] = {
|
6526
6021
|
sortIndex: 0,
|
6527
6022
|
domain: order,
|
6528
6023
|
lockStatisticsByDomain: true
|
6529
6024
|
};
|
6530
|
-
else fields[
|
6025
|
+
else fields[colorId] = {
|
6531
6026
|
sortIndex: 0
|
6532
6027
|
};
|
6533
6028
|
}
|
@@ -6625,7 +6120,7 @@
|
|
6625
6120
|
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
6626
6121
|
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
6627
6122
|
const { measureId, measureValue, measureName } = foldInfoList[0];
|
6628
|
-
const {
|
6123
|
+
const { encodingColor: colorName } = unfoldInfo;
|
6629
6124
|
result.tooltip = {
|
6630
6125
|
visible: enable,
|
6631
6126
|
mark: {
|
@@ -6646,7 +6141,7 @@
|
|
6646
6141
|
{
|
6647
6142
|
visible: true,
|
6648
6143
|
hasShape: true,
|
6649
|
-
key: (datum)=>datum && datum[measureName ||
|
6144
|
+
key: (datum)=>datum && datum[measureName || colorName] || '',
|
6650
6145
|
value: (datum)=>{
|
6651
6146
|
if (!datum) return '';
|
6652
6147
|
const value = datum[measureValue];
|
@@ -6668,7 +6163,7 @@
|
|
6668
6163
|
content: [
|
6669
6164
|
{
|
6670
6165
|
visible: true,
|
6671
|
-
key: (datum)=>datum && datum[
|
6166
|
+
key: (datum)=>datum && datum[colorName] || '',
|
6672
6167
|
value: (datum)=>{
|
6673
6168
|
if (!datum) return '';
|
6674
6169
|
const value = datum[measureValue];
|
@@ -6705,7 +6200,7 @@
|
|
6705
6200
|
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
6706
6201
|
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
6707
6202
|
const { measureId, measureValue, measureName } = foldInfoList[1];
|
6708
|
-
const {
|
6203
|
+
const { encodingColorId } = unfoldInfo;
|
6709
6204
|
result.tooltip = {
|
6710
6205
|
visible: enable,
|
6711
6206
|
mark: {
|
@@ -6726,7 +6221,7 @@
|
|
6726
6221
|
{
|
6727
6222
|
visible: true,
|
6728
6223
|
hasShape: true,
|
6729
|
-
key: (datum)=>datum && datum[measureName ||
|
6224
|
+
key: (datum)=>datum && datum[measureName || encodingColorId] || '',
|
6730
6225
|
value: (datum)=>{
|
6731
6226
|
if (!datum) return '';
|
6732
6227
|
const value = datum[measureValue];
|
@@ -6748,7 +6243,7 @@
|
|
6748
6243
|
content: [
|
6749
6244
|
{
|
6750
6245
|
visible: true,
|
6751
|
-
key: (datum)=>datum && datum[
|
6246
|
+
key: (datum)=>datum && datum[encodingColorId] || '',
|
6752
6247
|
value: (datum)=>{
|
6753
6248
|
if (!datum) return '';
|
6754
6249
|
const value = datum[measureValue];
|
@@ -6777,16 +6272,16 @@
|
|
6777
6272
|
const { advancedVSeed, vseed } = context;
|
6778
6273
|
const { chartType } = vseed;
|
6779
6274
|
const { locale, datasetReshapeInfo } = advancedVSeed;
|
6780
|
-
const index = datasetReshapeInfo[0]
|
6275
|
+
const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0];
|
6781
6276
|
const primaryYAxis = advancedVSeed.config?.[chartType]?.primaryYAxis;
|
6782
6277
|
const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis;
|
6783
6278
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
6784
6279
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
6785
|
-
if (
|
6786
|
-
const id = `${
|
6280
|
+
if (foldInfoList?.[0] && chunk_VCYTMP4D_n(foldInfoList[0].foldMap)) return result;
|
6281
|
+
const id = `${reshapeInfoId}-primary-axis`;
|
6787
6282
|
const seriesIds = [
|
6788
|
-
`${
|
6789
|
-
`${
|
6283
|
+
`${reshapeInfoId}-primary-series`,
|
6284
|
+
`${reshapeInfoId}-secondary-series`
|
6790
6285
|
];
|
6791
6286
|
const seriesId = alignTicksConfig ? seriesIds : seriesIds[0];
|
6792
6287
|
if (!result.axes) result.axes = [];
|
@@ -6874,20 +6369,20 @@
|
|
6874
6369
|
const { advancedVSeed, vseed } = context;
|
6875
6370
|
const { chartType } = vseed;
|
6876
6371
|
const { locale, datasetReshapeInfo } = advancedVSeed;
|
6877
|
-
const index = datasetReshapeInfo[0]
|
6372
|
+
const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0];
|
6878
6373
|
const secondaryYAxis = advancedVSeed.config?.[chartType]?.secondaryYAxis;
|
6879
6374
|
const yAxisConfig = Array.isArray(secondaryYAxis) ? secondaryYAxis[index] || secondaryYAxis[0] : secondaryYAxis;
|
6880
6375
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
6881
6376
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
6882
|
-
if (chunk_JK3VNB42_n(
|
6377
|
+
if (chunk_JK3VNB42_n(foldInfoList?.[1])) return result;
|
6883
6378
|
const sync = {
|
6884
|
-
axisId: `${
|
6379
|
+
axisId: `${reshapeInfoId}-primary-axis`,
|
6885
6380
|
zeroAlign: true
|
6886
6381
|
};
|
6887
|
-
const id = `${
|
6382
|
+
const id = `${reshapeInfoId}-secondary-axis`;
|
6888
6383
|
const seriesIds = [
|
6889
|
-
`${
|
6890
|
-
`${
|
6384
|
+
`${reshapeInfoId}-primary-series`,
|
6385
|
+
`${reshapeInfoId}-secondary-series`
|
6891
6386
|
];
|
6892
6387
|
const seriesId = alignTicksConfig ? seriesIds : seriesIds[1];
|
6893
6388
|
if (!result.axes) result.axes = [];
|
@@ -7028,210 +6523,74 @@
|
|
7028
6523
|
areaStyle_areaStyle
|
7029
6524
|
], [
|
7030
6525
|
initDualAxisSecondary,
|
7031
|
-
dualChartTypeSecondary,
|
7032
|
-
datasetSecondary,
|
7033
|
-
labelSecondary,
|
7034
|
-
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
|
-
};
|
6526
|
+
dualChartTypeSecondary,
|
6527
|
+
datasetSecondary,
|
6528
|
+
labelSecondary,
|
6529
|
+
tooltipSecondary,
|
6530
|
+
progressive,
|
6531
|
+
barStyle_barStyle,
|
6532
|
+
pointStyle_pointStyle,
|
6533
|
+
pointStateDimensionHover,
|
6534
|
+
lineStyle_lineStyle,
|
6535
|
+
areaStyle_areaStyle
|
6536
|
+
]),
|
6537
|
+
xBand,
|
6538
|
+
yLinearPrimary,
|
6539
|
+
yLinearSecondary,
|
6540
|
+
color_color,
|
6541
|
+
background_backgroundColor,
|
6542
|
+
verticalCrosshairRect,
|
6543
|
+
annotationPoint_annotationPoint,
|
6544
|
+
annotationVerticalLine_annotationVerticalLine,
|
6545
|
+
annotationHorizontalLine_annotationHorizontalLine,
|
6546
|
+
annotationArea_annotationArea
|
6547
|
+
]),
|
6548
|
+
pivotRowDimensions,
|
6549
|
+
pivotColumnDimensions,
|
6550
|
+
pivotDiscreteLegend
|
6551
|
+
];
|
6552
|
+
const dualAxisSpecPipeline = [
|
6553
|
+
pivotAdapter_pivotAdapter(dualAxis, pivotDualAxis)
|
6554
|
+
];
|
6555
|
+
const registerDualAxis = ()=>{
|
6556
|
+
Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
|
6557
|
+
Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
|
7148
6558
|
};
|
7149
|
-
const
|
7150
|
-
const result = {
|
7151
|
-
...advancedVSeed
|
7152
|
-
};
|
6559
|
+
const encodingForPie = (advancedVSeed, context)=>{
|
7153
6560
|
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
|
6561
|
+
const { dimensions } = advancedVSeed;
|
6562
|
+
if (!dimensions) return advancedVSeed;
|
6563
|
+
const encoding = vseed.encoding;
|
6564
|
+
if (encoding) return {
|
6565
|
+
...advancedVSeed,
|
6566
|
+
encoding: {
|
6567
|
+
...encoding
|
6568
|
+
}
|
7188
6569
|
};
|
7189
|
-
|
7190
|
-
|
7191
|
-
|
7192
|
-
|
6570
|
+
const mergedEncoding = {
|
6571
|
+
angle: dimensions.slice(0, 1).map((item)=>item.id),
|
6572
|
+
color: dimensions.slice(0).map((item)=>item.id),
|
6573
|
+
detail: dimensions.slice(0).map((item)=>item.id),
|
6574
|
+
tooltip: dimensions.map((item)=>item.id),
|
6575
|
+
label: [],
|
6576
|
+
row: [],
|
6577
|
+
column: []
|
7193
6578
|
};
|
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
6579
|
return {
|
7221
|
-
...
|
7222
|
-
encoding
|
6580
|
+
...advancedVSeed,
|
6581
|
+
encoding: mergedEncoding
|
7223
6582
|
};
|
7224
6583
|
};
|
7225
6584
|
const pieAdvancedPipeline = [
|
7226
6585
|
initAdvancedVSeed_initAdvancedVSeed,
|
7227
6586
|
autoMeasures_autoMeasures,
|
7228
6587
|
autoDimensions_autoDimensions,
|
6588
|
+
encodingForPie,
|
7229
6589
|
pivotAdapter([
|
7230
|
-
|
6590
|
+
reshapeWithEncoding
|
7231
6591
|
], [
|
7232
|
-
|
6592
|
+
pivotReshapeWithEncoding
|
7233
6593
|
]),
|
7234
|
-
encodingPie,
|
7235
6594
|
pieConfig,
|
7236
6595
|
theme_theme,
|
7237
6596
|
annotation_annotation
|
@@ -7241,15 +6600,15 @@
|
|
7241
6600
|
...spec
|
7242
6601
|
};
|
7243
6602
|
const { advancedVSeed } = context;
|
7244
|
-
const {
|
7245
|
-
|
6603
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
6604
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
7246
6605
|
const showStroke = dataset.length <= 30;
|
7247
6606
|
result.type = 'pie';
|
7248
6607
|
result.outerRadius = 0.8;
|
7249
6608
|
result.innerRadius = 0;
|
7250
|
-
result.valueField =
|
7251
|
-
result.categoryField =
|
7252
|
-
result.seriesField =
|
6609
|
+
result.valueField = foldInfo.measureValue;
|
6610
|
+
result.categoryField = unfoldInfo.encodingAngle;
|
6611
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7253
6612
|
result.padding = 0;
|
7254
6613
|
result.region = [
|
7255
6614
|
{
|
@@ -7318,12 +6677,12 @@
|
|
7318
6677
|
initAdvancedVSeed_initAdvancedVSeed,
|
7319
6678
|
autoMeasures_autoMeasures,
|
7320
6679
|
autoDimensions_autoDimensions,
|
6680
|
+
encodingForPie,
|
7321
6681
|
pivotAdapter([
|
7322
|
-
|
6682
|
+
reshapeWithEncoding
|
7323
6683
|
], [
|
7324
|
-
|
6684
|
+
pivotReshapeWithEncoding
|
7325
6685
|
]),
|
7326
|
-
encodingPie,
|
7327
6686
|
donutConfig,
|
7328
6687
|
theme_theme,
|
7329
6688
|
annotation_annotation
|
@@ -7333,15 +6692,15 @@
|
|
7333
6692
|
...spec
|
7334
6693
|
};
|
7335
6694
|
const { advancedVSeed } = context;
|
7336
|
-
const {
|
7337
|
-
|
6695
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
6696
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
7338
6697
|
const showStroke = dataset.length <= 30;
|
7339
6698
|
result.type = 'pie';
|
7340
6699
|
result.outerRadius = 0.8;
|
7341
6700
|
result.innerRadius = 0.8 * result.outerRadius;
|
7342
|
-
result.valueField =
|
7343
|
-
result.categoryField =
|
7344
|
-
result.seriesField =
|
6701
|
+
result.valueField = foldInfo.measureValue;
|
6702
|
+
result.categoryField = unfoldInfo.encodingDetail;
|
6703
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7345
6704
|
result.padding = 0;
|
7346
6705
|
result.region = [
|
7347
6706
|
{
|
@@ -7405,54 +6764,52 @@
|
|
7405
6764
|
Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
|
7406
6765
|
Builder._specPipelineMap.donut = donutSpecPipeline;
|
7407
6766
|
};
|
7408
|
-
const
|
7409
|
-
const
|
7410
|
-
|
7411
|
-
|
7412
|
-
const
|
7413
|
-
if (
|
7414
|
-
|
7415
|
-
|
7416
|
-
|
7417
|
-
|
7418
|
-
|
7419
|
-
|
7420
|
-
foldInfo.measureValue
|
7421
|
-
];
|
7422
|
-
const angle = [
|
7423
|
-
isZeroDimension ? foldInfo.measureName : angleDimension?.id
|
7424
|
-
];
|
7425
|
-
const group = [
|
7426
|
-
is1D1M ? angleDimension?.id : unfoldInfo.groupId
|
7427
|
-
];
|
7428
|
-
const color = [
|
7429
|
-
is1D1M ? angleDimension?.id : unfoldInfo.groupId
|
6767
|
+
const encodingForRose = (advancedVSeed, context)=>{
|
6768
|
+
const { vseed } = context;
|
6769
|
+
const { dimensions } = advancedVSeed;
|
6770
|
+
if (!dimensions) return advancedVSeed;
|
6771
|
+
const encoding = vseed.encoding;
|
6772
|
+
if (encoding) {
|
6773
|
+
const angle = encoding.angle || [];
|
6774
|
+
const detail = encoding.detail || [];
|
6775
|
+
const color = encoding.color || [];
|
6776
|
+
const mergedDetail = [
|
6777
|
+
...color.filter((d)=>!angle.includes(d)),
|
6778
|
+
...detail
|
7430
6779
|
];
|
7431
|
-
return
|
7432
|
-
...
|
7433
|
-
{
|
7434
|
-
|
7435
|
-
|
7436
|
-
group,
|
7437
|
-
color
|
6780
|
+
return {
|
6781
|
+
...advancedVSeed,
|
6782
|
+
encoding: {
|
6783
|
+
...encoding,
|
6784
|
+
detail: mergedDetail
|
7438
6785
|
}
|
7439
|
-
|
7440
|
-
}
|
6786
|
+
};
|
6787
|
+
}
|
6788
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
6789
|
+
const mergedEncoding = {
|
6790
|
+
angle: dimensions.slice(0, 1).map((item)=>item.id),
|
6791
|
+
color: dimensions.slice(1).map((item)=>item.id),
|
6792
|
+
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
6793
|
+
tooltip: dimensions.map((item)=>item.id),
|
6794
|
+
label: [],
|
6795
|
+
row: [],
|
6796
|
+
column: []
|
6797
|
+
};
|
7441
6798
|
return {
|
7442
|
-
...
|
7443
|
-
encoding
|
6799
|
+
...advancedVSeed,
|
6800
|
+
encoding: mergedEncoding
|
7444
6801
|
};
|
7445
6802
|
};
|
7446
6803
|
const roseAdvancedPipeline = [
|
7447
6804
|
initAdvancedVSeed_initAdvancedVSeed,
|
7448
6805
|
autoMeasures_autoMeasures,
|
7449
6806
|
autoDimensions_autoDimensions,
|
6807
|
+
encodingForRose,
|
7450
6808
|
pivotAdapter([
|
7451
|
-
|
6809
|
+
reshapeWithEncoding
|
7452
6810
|
], [
|
7453
|
-
|
6811
|
+
pivotReshapeWithEncoding
|
7454
6812
|
]),
|
7455
|
-
encodingRose,
|
7456
6813
|
roseConfig,
|
7457
6814
|
theme_theme,
|
7458
6815
|
markStyle_markStyle,
|
@@ -7463,13 +6820,12 @@
|
|
7463
6820
|
...spec
|
7464
6821
|
};
|
7465
6822
|
const { advancedVSeed } = context;
|
7466
|
-
const {
|
7467
|
-
const { foldInfo } = datasetReshapeInfo[0];
|
7468
|
-
if (!encoding[0].radius || !encoding[0].angle || !encoding[0].group) return result;
|
6823
|
+
const { dataset, datasetReshapeInfo } = advancedVSeed;
|
6824
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
7469
6825
|
result.type = 'rose';
|
7470
|
-
result.categoryField =
|
7471
|
-
result.
|
7472
|
-
result.
|
6826
|
+
result.categoryField = unfoldInfo.encodingAngle;
|
6827
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
6828
|
+
result.valueField = foldInfo.measureValue;
|
7473
6829
|
result.padding = 0;
|
7474
6830
|
result.outerRadius = 0.9;
|
7475
6831
|
result.innerRadius = 0;
|
@@ -7617,12 +6973,12 @@
|
|
7617
6973
|
initAdvancedVSeed_initAdvancedVSeed,
|
7618
6974
|
autoMeasures_autoMeasures,
|
7619
6975
|
autoDimensions_autoDimensions,
|
6976
|
+
encodingForRose,
|
7620
6977
|
pivotAdapter([
|
7621
|
-
|
6978
|
+
reshapeWithEncoding
|
7622
6979
|
], [
|
7623
|
-
|
6980
|
+
pivotReshapeWithEncoding
|
7624
6981
|
]),
|
7625
|
-
encodingRose,
|
7626
6982
|
roseParallelConfig,
|
7627
6983
|
theme_theme,
|
7628
6984
|
markStyle_markStyle,
|
@@ -7633,19 +6989,18 @@
|
|
7633
6989
|
...spec
|
7634
6990
|
};
|
7635
6991
|
const { advancedVSeed } = context;
|
7636
|
-
const {
|
6992
|
+
const { datasetReshapeInfo, dataset, dimensions } = advancedVSeed;
|
7637
6993
|
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
7638
|
-
if (!encoding[0].radius || !encoding[0].angle || !encoding[0].group) return result;
|
7639
6994
|
const sameDimensionsMode = dimensions.length > 1 && dimensions.every((dim)=>dim.id === dimensions[0].id);
|
7640
6995
|
result.type = 'rose';
|
7641
6996
|
result.categoryField = sameDimensionsMode ? [
|
7642
|
-
|
6997
|
+
unfoldInfo.encodingAngle
|
7643
6998
|
] : [
|
7644
|
-
|
7645
|
-
unfoldInfo.
|
6999
|
+
unfoldInfo.encodingAngle,
|
7000
|
+
unfoldInfo.encodingDetail
|
7646
7001
|
];
|
7647
|
-
result.valueField =
|
7648
|
-
result.seriesField =
|
7002
|
+
result.valueField = foldInfo.measureValue;
|
7003
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7649
7004
|
result.padding = 0;
|
7650
7005
|
result.outerRadius = 0.9;
|
7651
7006
|
result.innerRadius = 0;
|
@@ -7722,54 +7077,52 @@
|
|
7722
7077
|
Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
|
7723
7078
|
Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
|
7724
7079
|
};
|
7725
|
-
const
|
7726
|
-
const
|
7727
|
-
|
7728
|
-
|
7729
|
-
const
|
7730
|
-
if (
|
7731
|
-
|
7732
|
-
|
7733
|
-
|
7734
|
-
const
|
7735
|
-
|
7736
|
-
|
7737
|
-
];
|
7738
|
-
const radius = [
|
7739
|
-
foldInfo.measureValue
|
7740
|
-
];
|
7741
|
-
const group = [
|
7742
|
-
unfoldInfo.groupId
|
7743
|
-
];
|
7744
|
-
const color = [
|
7745
|
-
unfoldInfo.groupId
|
7080
|
+
const encodingForRadar = (advancedVSeed, context)=>{
|
7081
|
+
const { vseed } = context;
|
7082
|
+
const { dimensions } = advancedVSeed;
|
7083
|
+
if (!dimensions) return advancedVSeed;
|
7084
|
+
const encoding = vseed.encoding;
|
7085
|
+
if (encoding) {
|
7086
|
+
const angle = encoding.angle || [];
|
7087
|
+
const detail = encoding.detail || [];
|
7088
|
+
const color = encoding.color || [];
|
7089
|
+
const mergedDetail = [
|
7090
|
+
...color.filter((d)=>!angle.includes(d)),
|
7091
|
+
...detail
|
7746
7092
|
];
|
7747
|
-
return
|
7748
|
-
...
|
7749
|
-
{
|
7750
|
-
|
7751
|
-
|
7752
|
-
group,
|
7753
|
-
color
|
7093
|
+
return {
|
7094
|
+
...advancedVSeed,
|
7095
|
+
encoding: {
|
7096
|
+
...encoding,
|
7097
|
+
detail: mergedDetail
|
7754
7098
|
}
|
7755
|
-
|
7756
|
-
}
|
7099
|
+
};
|
7100
|
+
}
|
7101
|
+
const mergedEncoding = {
|
7102
|
+
angle: dimensions.slice(0, 1).map((item)=>item.id),
|
7103
|
+
color: dimensions.slice(1).map((item)=>item.id),
|
7104
|
+
detail: dimensions.slice(1).map((item)=>item.id),
|
7105
|
+
tooltip: dimensions.map((item)=>item.id),
|
7106
|
+
label: [],
|
7107
|
+
row: [],
|
7108
|
+
column: []
|
7109
|
+
};
|
7757
7110
|
return {
|
7758
|
-
...
|
7759
|
-
encoding
|
7111
|
+
...advancedVSeed,
|
7112
|
+
encoding: mergedEncoding
|
7760
7113
|
};
|
7761
7114
|
};
|
7762
7115
|
const radarAdvancedPipeline = [
|
7763
7116
|
initAdvancedVSeed_initAdvancedVSeed,
|
7764
7117
|
autoMeasures_autoMeasures,
|
7765
7118
|
autoDimensions_autoDimensions,
|
7119
|
+
encodingForRadar,
|
7766
7120
|
pivotAdapter([
|
7767
|
-
|
7121
|
+
reshapeWithEncoding
|
7768
7122
|
], [
|
7769
|
-
|
7123
|
+
pivotReshapeWithEncoding
|
7770
7124
|
]),
|
7771
|
-
|
7772
|
-
sort_sortLegend,
|
7125
|
+
sortLegend_sortLegend,
|
7773
7126
|
radarConfig,
|
7774
7127
|
theme_theme,
|
7775
7128
|
markStyle_markStyle,
|
@@ -7780,12 +7133,12 @@
|
|
7780
7133
|
...spec
|
7781
7134
|
};
|
7782
7135
|
const { advancedVSeed } = context;
|
7783
|
-
const {
|
7784
|
-
|
7136
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7137
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
7785
7138
|
result.type = 'radar';
|
7786
|
-
result.angleField =
|
7787
|
-
result.radiusField =
|
7788
|
-
result.seriesField =
|
7139
|
+
result.angleField = unfoldInfo.encodingAngle;
|
7140
|
+
result.radiusField = foldInfo.measureValue;
|
7141
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7789
7142
|
result.padding = 0;
|
7790
7143
|
result.region = [
|
7791
7144
|
{
|
@@ -7897,47 +7250,40 @@
|
|
7897
7250
|
Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
|
7898
7251
|
Builder._specPipelineMap.radar = radarSpecPipeline;
|
7899
7252
|
};
|
7900
|
-
const
|
7901
|
-
const
|
7902
|
-
|
7253
|
+
const encodingForFunnel = (advancedVSeed, context)=>{
|
7254
|
+
const { vseed } = context;
|
7255
|
+
const { dimensions } = advancedVSeed;
|
7256
|
+
if (!dimensions) return advancedVSeed;
|
7257
|
+
const encoding = vseed.encoding;
|
7258
|
+
if (encoding) return {
|
7259
|
+
...advancedVSeed,
|
7260
|
+
encoding: {
|
7261
|
+
...encoding
|
7262
|
+
}
|
7263
|
+
};
|
7264
|
+
const mergedEncoding = {
|
7265
|
+
color: dimensions.slice(0).map((item)=>item.id),
|
7266
|
+
detail: dimensions.slice(0).map((item)=>item.id),
|
7267
|
+
tooltip: dimensions.map((item)=>item.id),
|
7268
|
+
label: [],
|
7269
|
+
row: [],
|
7270
|
+
column: []
|
7903
7271
|
};
|
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
7272
|
return {
|
7927
|
-
...
|
7928
|
-
encoding
|
7273
|
+
...advancedVSeed,
|
7274
|
+
encoding: mergedEncoding
|
7929
7275
|
};
|
7930
7276
|
};
|
7931
7277
|
const funnelAdvancedPipeline = [
|
7932
7278
|
initAdvancedVSeed_initAdvancedVSeed,
|
7933
7279
|
autoMeasures_autoMeasures,
|
7934
7280
|
autoDimensions_autoDimensions,
|
7281
|
+
encodingForFunnel,
|
7935
7282
|
pivotAdapter([
|
7936
|
-
|
7283
|
+
reshapeWithEncoding
|
7937
7284
|
], [
|
7938
|
-
|
7285
|
+
pivotReshapeWithEncoding
|
7939
7286
|
]),
|
7940
|
-
encodingFunnel,
|
7941
7287
|
funnelConfig,
|
7942
7288
|
theme_theme,
|
7943
7289
|
annotation_annotation
|
@@ -7947,11 +7293,12 @@
|
|
7947
7293
|
...spec
|
7948
7294
|
};
|
7949
7295
|
const { advancedVSeed } = context;
|
7950
|
-
const {
|
7951
|
-
|
7296
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7297
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
7952
7298
|
result.type = 'funnel';
|
7953
|
-
result.valueField =
|
7954
|
-
result.categoryField =
|
7299
|
+
result.valueField = foldInfo.measureValue;
|
7300
|
+
result.categoryField = unfoldInfo.encodingDetail;
|
7301
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7955
7302
|
result.padding = 0;
|
7956
7303
|
result.isTransform = true;
|
7957
7304
|
result.shape = 'rect';
|
@@ -7966,7 +7313,7 @@
|
|
7966
7313
|
style: {
|
7967
7314
|
cornerRadius: 4,
|
7968
7315
|
fill: {
|
7969
|
-
field:
|
7316
|
+
field: unfoldInfo.encodingColorId,
|
7970
7317
|
scale: 'color'
|
7971
7318
|
}
|
7972
7319
|
},
|
@@ -7982,99 +7329,13 @@
|
|
7982
7329
|
result.animation = true;
|
7983
7330
|
return result;
|
7984
7331
|
};
|
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
7332
|
const funnel = [
|
8071
7333
|
initFunnel,
|
8072
|
-
linearColor,
|
8073
7334
|
background_backgroundColor,
|
8074
7335
|
datasetXY,
|
8075
7336
|
label_label,
|
8076
7337
|
tooltip_tooltip,
|
8077
|
-
|
7338
|
+
discreteLegend,
|
8078
7339
|
annotationPoint_annotationPoint,
|
8079
7340
|
annotationVerticalLine_annotationVerticalLine,
|
8080
7341
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -8087,12 +7348,11 @@
|
|
8087
7348
|
datasetPivot,
|
8088
7349
|
pivotIndicators_pivotIndicators([
|
8089
7350
|
initFunnel,
|
8090
|
-
linearColor,
|
8091
7351
|
background_backgroundColor,
|
8092
7352
|
datasetXY,
|
8093
7353
|
label_label,
|
8094
7354
|
tooltip_tooltip,
|
8095
|
-
|
7355
|
+
discreteLegend,
|
8096
7356
|
annotationPoint_annotationPoint,
|
8097
7357
|
annotationVerticalLine_annotationVerticalLine,
|
8098
7358
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -8108,49 +7368,42 @@
|
|
8108
7368
|
Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
|
8109
7369
|
Builder._specPipelineMap.funnel = funnelSpecPipeline;
|
8110
7370
|
};
|
8111
|
-
const
|
8112
|
-
const
|
8113
|
-
|
7371
|
+
const encodingForHeatmap = (advancedVSeed, context)=>{
|
7372
|
+
const { vseed } = context;
|
7373
|
+
const { dimensions } = advancedVSeed;
|
7374
|
+
if (!dimensions) return advancedVSeed;
|
7375
|
+
const encoding = vseed.encoding;
|
7376
|
+
if (encoding) return {
|
7377
|
+
...advancedVSeed,
|
7378
|
+
encoding: {
|
7379
|
+
...encoding
|
7380
|
+
}
|
7381
|
+
};
|
7382
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
7383
|
+
const mergedEncoding = {
|
7384
|
+
x: dimensions.slice(0, 1).map((item)=>item.id),
|
7385
|
+
y: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
7386
|
+
color: dimensions.slice(0).map((item)=>item.id),
|
7387
|
+
tooltip: dimensions.map((item)=>item.id),
|
7388
|
+
label: [],
|
7389
|
+
row: [],
|
7390
|
+
column: []
|
8114
7391
|
};
|
8115
|
-
const { datasetReshapeInfo, dimensions } = advancedVSeed;
|
8116
|
-
if (!datasetReshapeInfo || !dimensions) return result;
|
8117
|
-
const xDimension = dimensions.find((item)=>'rowDimension' !== item.location && 'columnDimension' !== item.location) || dimensions[0];
|
8118
|
-
const isZeroDimension = 0 === dimensions.length;
|
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
|
8126
|
-
];
|
8127
|
-
const color = [
|
8128
|
-
foldInfo.measureValue
|
8129
|
-
];
|
8130
|
-
return [
|
8131
|
-
...prev,
|
8132
|
-
{
|
8133
|
-
x,
|
8134
|
-
y,
|
8135
|
-
color
|
8136
|
-
}
|
8137
|
-
];
|
8138
|
-
}, []);
|
8139
7392
|
return {
|
8140
|
-
...
|
8141
|
-
encoding
|
7393
|
+
...advancedVSeed,
|
7394
|
+
encoding: mergedEncoding
|
8142
7395
|
};
|
8143
7396
|
};
|
8144
7397
|
const heatmapAdvancedPipeline = [
|
8145
7398
|
initAdvancedVSeed_initAdvancedVSeed,
|
8146
7399
|
autoMeasures_autoMeasures,
|
8147
7400
|
autoDimensions_autoDimensions,
|
7401
|
+
encodingForHeatmap,
|
8148
7402
|
pivotAdapter([
|
8149
|
-
|
7403
|
+
reshapeWithEncoding
|
8150
7404
|
], [
|
8151
|
-
|
7405
|
+
pivotReshapeWithEncoding
|
8152
7406
|
]),
|
8153
|
-
encodingMatrix,
|
8154
7407
|
sortXBandAxis,
|
8155
7408
|
heatmapConfig,
|
8156
7409
|
theme_theme,
|
@@ -8172,23 +7425,20 @@
|
|
8172
7425
|
...spec
|
8173
7426
|
};
|
8174
7427
|
const { advancedVSeed } = context;
|
8175
|
-
const {
|
8176
|
-
|
7428
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7429
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
8177
7430
|
result.type = 'heatmap';
|
8178
7431
|
result.direction = 'vertical';
|
8179
|
-
result.xField =
|
8180
|
-
result.yField =
|
8181
|
-
result.
|
7432
|
+
result.xField = unfoldInfo.encodingX;
|
7433
|
+
result.yField = unfoldInfo.encodingY;
|
7434
|
+
result.seriesField = unfoldInfo.encodingColorId;
|
7435
|
+
result.valueField = foldInfo.measureValue;
|
8182
7436
|
result.padding = 0;
|
8183
7437
|
result.cell = {
|
8184
7438
|
style: {
|
8185
7439
|
shape: 'rect',
|
8186
7440
|
stroke: '#ffffff',
|
8187
|
-
lineWidth: 1
|
8188
|
-
fill: {
|
8189
|
-
field: encoding[0].color[0],
|
8190
|
-
scale: 'color'
|
8191
|
-
}
|
7441
|
+
lineWidth: 1
|
8192
7442
|
}
|
8193
7443
|
};
|
8194
7444
|
result.axes = [
|
@@ -8213,12 +7463,11 @@
|
|
8213
7463
|
};
|
8214
7464
|
const heatmap = [
|
8215
7465
|
initHeatmap,
|
8216
|
-
linearColor,
|
8217
7466
|
background_backgroundColor,
|
8218
7467
|
datasetXY,
|
8219
7468
|
label_label,
|
8220
7469
|
labelColorInversion,
|
8221
|
-
|
7470
|
+
discreteLegend,
|
8222
7471
|
tooltip_tooltip,
|
8223
7472
|
pointStyle_pointStyle,
|
8224
7473
|
pointStateDimensionHover,
|
@@ -8235,12 +7484,11 @@
|
|
8235
7484
|
datasetPivot,
|
8236
7485
|
pivotIndicators_pivotIndicators([
|
8237
7486
|
initHeatmap,
|
8238
|
-
linearColor,
|
8239
7487
|
background_backgroundColor,
|
8240
7488
|
datasetXY,
|
8241
7489
|
label_label,
|
8242
7490
|
labelColorInversion,
|
8243
|
-
|
7491
|
+
discreteLegend,
|
8244
7492
|
tooltip_tooltip,
|
8245
7493
|
pointStyle_pointStyle,
|
8246
7494
|
pointStateDimensionHover,
|
@@ -8508,12 +7756,6 @@
|
|
8508
7756
|
yAxis: linearAxis,
|
8509
7757
|
crosshairLine
|
8510
7758
|
},
|
8511
|
-
areaRange: {
|
8512
|
-
...baseConfig,
|
8513
|
-
xAxis: bandAxis,
|
8514
|
-
yAxis: linearAxis,
|
8515
|
-
crosshairLine
|
8516
|
-
},
|
8517
7759
|
scatter: {
|
8518
7760
|
...baseConfig,
|
8519
7761
|
xAxis: {
|
@@ -8846,12 +8088,6 @@
|
|
8846
8088
|
yAxis: linearAxis,
|
8847
8089
|
crosshairLine: crosshairLine
|
8848
8090
|
},
|
8849
|
-
areaRange: {
|
8850
|
-
...baseConfig,
|
8851
|
-
xAxis: bandAxis,
|
8852
|
-
yAxis: linearAxis,
|
8853
|
-
crosshairLine: crosshairLine
|
8854
|
-
},
|
8855
8091
|
scatter: {
|
8856
8092
|
...baseConfig,
|
8857
8093
|
xAxis: {
|
@@ -8949,7 +8185,6 @@
|
|
8949
8185
|
registerBarPercent();
|
8950
8186
|
registerArea();
|
8951
8187
|
registerAreaPercent();
|
8952
|
-
registerAreaRange();
|
8953
8188
|
registerScatter();
|
8954
8189
|
registerDualAxis();
|
8955
8190
|
registerPie();
|
@@ -12266,7 +11501,6 @@
|
|
12266
11501
|
'barParallel',
|
12267
11502
|
'area',
|
12268
11503
|
'areaPercent',
|
12269
|
-
'areaRange',
|
12270
11504
|
'scatter',
|
12271
11505
|
'dualAxis',
|
12272
11506
|
'rose',
|
@@ -12364,6 +11598,12 @@
|
|
12364
11598
|
secondaryMeasures: schemas_array(zMeasure).or(zMeasure).optional()
|
12365
11599
|
});
|
12366
11600
|
const zDualMeasures = schemas_array(zDualMeasure);
|
11601
|
+
const zScatterMeasure = schemas_object({
|
11602
|
+
id: schemas_string(),
|
11603
|
+
xMeasures: schemas_array(zMeasure).or(zMeasure).optional(),
|
11604
|
+
yMeasures: schemas_array(zMeasure).or(zMeasure).optional()
|
11605
|
+
});
|
11606
|
+
const zScatterMeasures = schemas_array(zScatterMeasure);
|
12367
11607
|
const zFoldInfo = schemas_object({
|
12368
11608
|
foldMap: record(schemas_string(), schemas_string().or(schemas_undefined())),
|
12369
11609
|
measureId: schemas_string(),
|
@@ -12371,10 +11611,14 @@
|
|
12371
11611
|
measureValue: schemas_string()
|
12372
11612
|
});
|
12373
11613
|
const zUnfoldInfo = schemas_object({
|
11614
|
+
encodingX: schemas_string(),
|
11615
|
+
encodingY: schemas_string(),
|
11616
|
+
encodingColor: schemas_string(),
|
11617
|
+
encodingColorId: schemas_string(),
|
11618
|
+
encodingDetail: schemas_string(),
|
11619
|
+
encodingAngle: schemas_string(),
|
12374
11620
|
colorItems: schemas_array(schemas_string()),
|
12375
|
-
|
12376
|
-
colorIdMap: record(schemas_string(), schemas_string()),
|
12377
|
-
groupName: schemas_string()
|
11621
|
+
colorIdMap: record(schemas_string(), schemas_string())
|
12378
11622
|
});
|
12379
11623
|
const zDatasetReshapeInfo = schemas_array(schemas_object({
|
12380
11624
|
id: schemas_string(),
|
@@ -12383,16 +11627,21 @@
|
|
12383
11627
|
foldInfoList: schemas_array(zFoldInfo).nullish(),
|
12384
11628
|
unfoldInfo: zUnfoldInfo
|
12385
11629
|
}));
|
12386
|
-
const zEncoding =
|
11630
|
+
const zEncoding = schemas_object({
|
12387
11631
|
x: schemas_array(schemas_string()).nullish(),
|
12388
11632
|
y: schemas_array(schemas_string()).nullish(),
|
12389
|
-
color: schemas_array(schemas_string()).nullish(),
|
12390
|
-
group: schemas_array(schemas_string()).nullish(),
|
12391
11633
|
angle: schemas_array(schemas_string()).nullish(),
|
12392
11634
|
radius: schemas_array(schemas_string()).nullish(),
|
11635
|
+
detail: schemas_array(schemas_string()).nullish(),
|
11636
|
+
color: schemas_array(schemas_string()).nullish(),
|
11637
|
+
size: schemas_array(schemas_string()).nullish(),
|
12393
11638
|
tooltip: schemas_array(schemas_string()).nullish(),
|
12394
|
-
|
12395
|
-
|
11639
|
+
label: schemas_array(schemas_string()).nullish(),
|
11640
|
+
row: schemas_array(schemas_string()).nullish(),
|
11641
|
+
column: schemas_array(schemas_string()).nullish(),
|
11642
|
+
group: schemas_array(schemas_string()).nullish().describe("\u5DF2\u5F03\u7528, \u8BF7\u4F7F\u7528\u989C\u8272\u66FF\u4EE3")
|
11643
|
+
});
|
11644
|
+
const zEncodings = schemas_array(zEncoding);
|
12396
11645
|
const zXBandAxis = schemas_object({
|
12397
11646
|
visible: schemas_boolean().default(true).nullish(),
|
12398
11647
|
labelAutoHide: schemas_boolean().default(true).nullish(),
|
@@ -12655,7 +11904,6 @@
|
|
12655
11904
|
crosshairLine: zCrosshairLine.nullish()
|
12656
11905
|
});
|
12657
11906
|
const zAreaPercentConfig = zAreaConfig;
|
12658
|
-
const zAreaRangeConfig = zAreaConfig;
|
12659
11907
|
const zDualAxisConfig = schemas_object({
|
12660
11908
|
backgroundColor: zBackgroundColor.nullish(),
|
12661
11909
|
label: zLabel.nullish(),
|
@@ -12710,7 +11958,6 @@
|
|
12710
11958
|
barPercent: zBarPercentConfig.nullish(),
|
12711
11959
|
area: zAreaConfig.nullish(),
|
12712
11960
|
areaPercent: zAreaPercentConfig.nullish(),
|
12713
|
-
areaRange: zAreaRangeConfig.nullish(),
|
12714
11961
|
scatter: zScatterConfig.nullish(),
|
12715
11962
|
dualAxis: zDualAxisConfig.nullish(),
|
12716
11963
|
rose: zRoseConfig.nullish(),
|
@@ -13149,6 +12396,7 @@
|
|
13149
12396
|
const zLine = schemas_object({
|
13150
12397
|
chartType: literal('line'),
|
13151
12398
|
dataset: zDataset.nullish(),
|
12399
|
+
encoding: zEncoding.nullish(),
|
13152
12400
|
dimensions: zDimensions.nullish(),
|
13153
12401
|
measures: zMeasureTree.nullish(),
|
13154
12402
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13173,6 +12421,7 @@
|
|
13173
12421
|
const zColumn = schemas_object({
|
13174
12422
|
chartType: literal('column'),
|
13175
12423
|
dataset: zDataset.nullish(),
|
12424
|
+
encoding: zEncoding.nullish(),
|
13176
12425
|
dimensions: zDimensions.nullish(),
|
13177
12426
|
measures: zMeasureTree.nullish(),
|
13178
12427
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13195,6 +12444,7 @@
|
|
13195
12444
|
const zColumnParallel = schemas_object({
|
13196
12445
|
chartType: literal('columnParallel'),
|
13197
12446
|
dataset: zDataset.nullish(),
|
12447
|
+
encoding: zEncoding.nullish(),
|
13198
12448
|
dimensions: zDimensions.nullish(),
|
13199
12449
|
measures: zMeasureTree.nullish(),
|
13200
12450
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13217,6 +12467,7 @@
|
|
13217
12467
|
const zColumnPercent = schemas_object({
|
13218
12468
|
chartType: literal('columnPercent'),
|
13219
12469
|
dataset: zDataset.nullish(),
|
12470
|
+
encoding: zEncoding.nullish(),
|
13220
12471
|
dimensions: zDimensions.nullish(),
|
13221
12472
|
measures: zMeasureTree.nullish(),
|
13222
12473
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13239,6 +12490,7 @@
|
|
13239
12490
|
const zBar = schemas_object({
|
13240
12491
|
chartType: literal('bar'),
|
13241
12492
|
dataset: zDataset.nullish(),
|
12493
|
+
encoding: zEncoding.nullish(),
|
13242
12494
|
dimensions: zDimensions.nullish(),
|
13243
12495
|
measures: zMeasureTree.nullish(),
|
13244
12496
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13261,6 +12513,7 @@
|
|
13261
12513
|
const zBarParallel = schemas_object({
|
13262
12514
|
chartType: literal('barParallel'),
|
13263
12515
|
dataset: zDataset.nullish(),
|
12516
|
+
encoding: zEncoding.nullish(),
|
13264
12517
|
dimensions: zDimensions.nullish(),
|
13265
12518
|
measures: zMeasureTree.nullish(),
|
13266
12519
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13283,6 +12536,7 @@
|
|
13283
12536
|
const zBarPercent = schemas_object({
|
13284
12537
|
chartType: literal('barPercent'),
|
13285
12538
|
dataset: zDataset.nullish(),
|
12539
|
+
encoding: zEncoding.nullish(),
|
13286
12540
|
dimensions: zDimensions.nullish(),
|
13287
12541
|
measures: zMeasureTree.nullish(),
|
13288
12542
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13305,6 +12559,7 @@
|
|
13305
12559
|
const zArea = schemas_object({
|
13306
12560
|
chartType: literal('area'),
|
13307
12561
|
dataset: zDataset.nullish(),
|
12562
|
+
encoding: zEncoding.nullish(),
|
13308
12563
|
dimensions: zDimensions.nullish(),
|
13309
12564
|
measures: zMeasureTree.nullish(),
|
13310
12565
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13328,6 +12583,7 @@
|
|
13328
12583
|
const zAreaPercent = schemas_object({
|
13329
12584
|
chartType: literal('areaPercent'),
|
13330
12585
|
dataset: zDataset.nullish(),
|
12586
|
+
encoding: zEncoding.nullish(),
|
13331
12587
|
dimensions: zDimensions.nullish(),
|
13332
12588
|
measures: zMeasureTree.nullish(),
|
13333
12589
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13348,31 +12604,13 @@
|
|
13348
12604
|
annotationArea: schemas_array(zAnnotationArea).or(zAnnotationArea).nullish(),
|
13349
12605
|
locale: zLocale.nullish()
|
13350
12606
|
});
|
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
12607
|
const zScatter = schemas_object({
|
13372
12608
|
chartType: literal('scatter'),
|
13373
12609
|
dataset: zDataset.nullish(),
|
12610
|
+
encoding: zEncoding.nullish(),
|
13374
12611
|
dimensions: zDimensions.nullish(),
|
13375
12612
|
measures: zMeasureTree.nullish(),
|
12613
|
+
scatterMeasures: zScatterMeasures.nullish(),
|
13376
12614
|
backgroundColor: zBackgroundColor.nullish(),
|
13377
12615
|
color: zColor.nullish(),
|
13378
12616
|
label: zLabel.nullish(),
|
@@ -13422,6 +12660,7 @@
|
|
13422
12660
|
const zRose = schemas_object({
|
13423
12661
|
chartType: literal('rose'),
|
13424
12662
|
dataset: zDataset.nullish(),
|
12663
|
+
encoding: zEncoding.nullish(),
|
13425
12664
|
dimensions: zDimensions.nullish(),
|
13426
12665
|
measures: zMeasureTree.nullish(),
|
13427
12666
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13435,6 +12674,7 @@
|
|
13435
12674
|
const zRoseParallel = schemas_object({
|
13436
12675
|
chartType: literal('roseParallel'),
|
13437
12676
|
dataset: zDataset.nullish(),
|
12677
|
+
encoding: zEncoding.nullish(),
|
13438
12678
|
dimensions: zDimensions.nullish(),
|
13439
12679
|
measures: zMeasureTree.nullish(),
|
13440
12680
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13448,6 +12688,7 @@
|
|
13448
12688
|
const zPie = schemas_object({
|
13449
12689
|
chartType: literal('pie'),
|
13450
12690
|
dataset: zDataset.nullish(),
|
12691
|
+
encoding: zEncoding.nullish(),
|
13451
12692
|
dimensions: zDimensions.nullish(),
|
13452
12693
|
measures: zMeasureTree.nullish(),
|
13453
12694
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13461,6 +12702,7 @@
|
|
13461
12702
|
const zDonut = schemas_object({
|
13462
12703
|
chartType: literal('donut'),
|
13463
12704
|
dataset: zDataset.nullish(),
|
12705
|
+
encoding: zEncoding.nullish(),
|
13464
12706
|
dimensions: zDimensions.nullish(),
|
13465
12707
|
measures: zMeasureTree.nullish(),
|
13466
12708
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13474,6 +12716,7 @@
|
|
13474
12716
|
const zRadar = schemas_object({
|
13475
12717
|
chartType: literal('radar'),
|
13476
12718
|
dataset: zDataset.nullish(),
|
12719
|
+
encoding: zEncoding.nullish(),
|
13477
12720
|
dimensions: zDimensions.nullish(),
|
13478
12721
|
measures: zMeasureTree.nullish(),
|
13479
12722
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13487,6 +12730,7 @@
|
|
13487
12730
|
const zFunnel = schemas_object({
|
13488
12731
|
chartType: literal('funnel'),
|
13489
12732
|
dataset: zDataset.nullish(),
|
12733
|
+
encoding: zEncoding.nullish(),
|
13490
12734
|
dimensions: zDimensions.nullish(),
|
13491
12735
|
measures: zMeasureTree.nullish(),
|
13492
12736
|
backgroundColor: zBackgroundColor.nullish(),
|
@@ -13522,7 +12766,6 @@
|
|
13522
12766
|
zBarPercent,
|
13523
12767
|
zArea,
|
13524
12768
|
zAreaPercent,
|
13525
|
-
zAreaRange,
|
13526
12769
|
zScatter,
|
13527
12770
|
zDualAxis,
|
13528
12771
|
zPie,
|
@@ -13540,6 +12783,7 @@
|
|
13540
12783
|
dimensions: zDimensionTree,
|
13541
12784
|
measures: zMeasureTree,
|
13542
12785
|
encoding: zEncoding,
|
12786
|
+
encodings: zEncodings,
|
13543
12787
|
config: zConfig,
|
13544
12788
|
analysis: zAnalysis,
|
13545
12789
|
theme: zTheme,
|