@visactor/vseed 0.1.2 → 0.1.3
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 +4 -28
- package/dist/dataReshape/dataReshapeByEncoding.d.ts +1 -0
- package/dist/dataReshape/foldMeasures.d.ts +5 -4
- package/dist/index.cjs +335 -250
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +335 -247
- package/dist/index.js.map +1 -1
- package/dist/pipeline/advanced/chart/pipes/index.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/init/index.d.ts +0 -3
- package/dist/pipeline/advanced/chart/pipes/{init/autoMeasures.d.ts → measures/buildMeasures.d.ts} +1 -1
- package/dist/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/measures/index.d.ts +3 -0
- package/dist/pipeline/advanced/chart/pipes/measures/utils.d.ts +28 -0
- package/dist/pipeline/spec/chart/pipes/color/colorAdapter.d.ts +2 -1
- package/dist/pipeline/spec/chart/pipes/color/index.d.ts +2 -1
- package/dist/pipeline/spec/chart/pipes/color/linearColorForDualAxis.d.ts +2 -0
- package/dist/pipeline/utils/chatType.d.ts +1 -1
- package/dist/types/advancedVSeed.d.ts +13 -14
- package/dist/types/chartType/area/zArea.d.ts +13 -0
- package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +13 -0
- package/dist/types/chartType/bar/zBar.d.ts +13 -0
- package/dist/types/chartType/barParallel/zBarParallel.d.ts +13 -0
- package/dist/types/chartType/barPercent/zBarPercent.d.ts +13 -0
- package/dist/types/chartType/column/zColumn.d.ts +13 -0
- package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +13 -0
- package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +13 -0
- package/dist/types/chartType/donut/zDonut.d.ts +13 -0
- package/dist/types/chartType/dualAxis/zDualAxis.d.ts +65 -0
- package/dist/types/chartType/funnel/zFunnel.d.ts +13 -0
- package/dist/types/chartType/heatmap/zHeatmap.d.ts +13 -0
- package/dist/types/chartType/line/line.d.ts +0 -1
- package/dist/types/chartType/line/zLine.d.ts +13 -0
- package/dist/types/chartType/pie/zPie.d.ts +13 -0
- package/dist/types/chartType/pivotTable/zPivotTable.d.ts +13 -0
- package/dist/types/chartType/radar/zRadar.d.ts +13 -0
- package/dist/types/chartType/rose/zRose.d.ts +13 -0
- package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +13 -0
- package/dist/types/chartType/scatter/zScatter.d.ts +65 -0
- package/dist/types/chartType/table/zTable.d.ts +13 -0
- package/dist/types/properties/encoding/encoding.d.ts +0 -1
- package/dist/types/properties/encoding/index.d.ts +2 -2
- package/dist/types/properties/encoding/zEncoding.d.ts +0 -14
- package/dist/types/properties/measures/dualMeasures.d.ts +1 -0
- package/dist/types/properties/measures/measures.d.ts +19 -0
- package/dist/types/properties/measures/scatterMeasures.d.ts +1 -0
- package/dist/types/properties/measures/zDualMeasures.d.ts +104 -0
- package/dist/types/properties/measures/zMeasures.d.ts +39 -0
- package/dist/types/properties/measures/zScatterMeasures.d.ts +104 -0
- package/dist/types/zVseed.d.ts +364 -0
- package/dist/umd/index.js +335 -248
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/pipeline/advanced/chart/pipes/init/autoDualMeasures.d.ts +0 -2
- package/dist/pipeline/advanced/chart/pipes/init/autoScatterMeasures.d.ts +0 -2
package/dist/index.js
CHANGED
@@ -1036,6 +1036,39 @@ const initAdvancedVSeed_initAdvancedVSeed = (advancedVSeed, context)=>{
|
|
1036
1036
|
locale: locale || 'zh-CN'
|
1037
1037
|
};
|
1038
1038
|
};
|
1039
|
+
const getBasicMeasures = (vseed)=>{
|
1040
|
+
const { dataset, measures } = vseed;
|
1041
|
+
if (!measures || 0 === measures.length) return generateMeasuresByDataset(dataset);
|
1042
|
+
return measures;
|
1043
|
+
};
|
1044
|
+
const generateMeasuresByDataset = (dataset)=>{
|
1045
|
+
if (!dataset) throw new Error('dataset is required');
|
1046
|
+
if (0 === dataset.length) return [];
|
1047
|
+
const top100dataset = dataset.slice(0, 100);
|
1048
|
+
const sample = top100dataset.reduce((prev, cur)=>({
|
1049
|
+
...prev,
|
1050
|
+
...cur
|
1051
|
+
}), {});
|
1052
|
+
const basicMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
1053
|
+
'',
|
1054
|
+
null,
|
1055
|
+
void 0
|
1056
|
+
].includes(key)).map((measure)=>({
|
1057
|
+
id: measure,
|
1058
|
+
alias: measure
|
1059
|
+
}));
|
1060
|
+
return basicMeasures;
|
1061
|
+
};
|
1062
|
+
const isMeasureTreeWithChildren = (vseed)=>{
|
1063
|
+
const { measures } = vseed;
|
1064
|
+
if (!measures) return false;
|
1065
|
+
return measures.some((measure)=>'children' in measure);
|
1066
|
+
};
|
1067
|
+
const isMeasureTreeWithParentId = (vseed)=>{
|
1068
|
+
const { measures } = vseed;
|
1069
|
+
if (!measures) return false;
|
1070
|
+
return measures.some((measure)=>'parentId' in measure);
|
1071
|
+
};
|
1039
1072
|
const measureDepth = (measures = [])=>{
|
1040
1073
|
if (!measures) return 0;
|
1041
1074
|
let depth = 1;
|
@@ -1054,23 +1087,26 @@ const isVTable = (vseed)=>[
|
|
1054
1087
|
const isVChart = (vseed)=>!isVTable(vseed);
|
1055
1088
|
const isPivotChart = (vseed)=>{
|
1056
1089
|
if (isVTable(vseed)) return false;
|
1090
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
1091
|
+
const parentIds = vseed.measures?.map((measure)=>measure.parentId);
|
1092
|
+
return parentIds && parentIds.length > 1;
|
1093
|
+
}
|
1057
1094
|
if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
|
1058
1095
|
const { dimensions = [] } = vseed;
|
1059
1096
|
const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
|
1060
1097
|
if (hasRowOrColumnDimension) return true;
|
1061
1098
|
if ('scatter' === vseed.chartType) {
|
1062
|
-
if (vseed
|
1099
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1063
1100
|
const depth = measureDepth(vseed.measures);
|
1064
|
-
|
1065
|
-
return false;
|
1101
|
+
return 3 === depth;
|
1066
1102
|
}
|
1067
1103
|
if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) return true;
|
1104
|
+
return false;
|
1068
1105
|
}
|
1069
1106
|
if ('dualAxis' === vseed.chartType) {
|
1070
|
-
if (vseed
|
1107
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1071
1108
|
const depth = measureDepth(vseed.measures);
|
1072
|
-
|
1073
|
-
return false;
|
1109
|
+
return 3 === depth;
|
1074
1110
|
}
|
1075
1111
|
if (vseed.dualMeasures && vseed.dualMeasures.length > 1) return true;
|
1076
1112
|
}
|
@@ -1081,77 +1117,49 @@ const isPivotChart = (vseed)=>{
|
|
1081
1117
|
const hasMeasureGroup = measures && measures.some((measure)=>measure && measure.children);
|
1082
1118
|
return hasRowOrColumnDimension || hasMeasureGroup;
|
1083
1119
|
};
|
1084
|
-
const
|
1085
|
-
const result = {
|
1086
|
-
...advancedVSeed
|
1087
|
-
};
|
1088
|
-
const { vseed } = context;
|
1089
|
-
const { measures, dataset } = vseed;
|
1090
|
-
if (!dataset) throw new Error('dataset is required');
|
1091
|
-
if (0 === dataset.length) return result;
|
1092
|
-
if (isPivotChart(vseed)) return autoMeasureGroup(advancedVSeed, context);
|
1093
|
-
if (measures) {
|
1094
|
-
result.measures = measures;
|
1095
|
-
return result;
|
1096
|
-
}
|
1097
|
-
const top100dataset = dataset.slice(0, 100);
|
1098
|
-
const sample = top100dataset.reduce((prev, cur)=>({
|
1099
|
-
...prev,
|
1100
|
-
...cur
|
1101
|
-
}), {});
|
1102
|
-
result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
1103
|
-
'',
|
1104
|
-
null,
|
1105
|
-
void 0
|
1106
|
-
].includes(key)).map((measure)=>({
|
1107
|
-
id: measure,
|
1108
|
-
alias: measure
|
1109
|
-
}));
|
1110
|
-
return result;
|
1111
|
-
};
|
1112
|
-
const autoMeasureGroup = (advancedVSeed, context)=>{
|
1120
|
+
const buildMeasures = (advancedVSeed, context)=>{
|
1113
1121
|
const { vseed } = context;
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
if (!hasMeasureGroup) {
|
1118
|
-
const newMeasures = [
|
1119
|
-
{
|
1120
|
-
id: 'measureGroup',
|
1121
|
-
alias: 'measureGroup',
|
1122
|
-
children: measures
|
1123
|
-
}
|
1124
|
-
];
|
1125
|
-
return {
|
1126
|
-
...advancedVSeed,
|
1127
|
-
measures: newMeasures
|
1128
|
-
};
|
1122
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1123
|
+
advancedVSeed.measures = vseed.measures;
|
1124
|
+
return advancedVSeed;
|
1129
1125
|
}
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
if (currentGroup.children?.length) {
|
1134
|
-
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1135
|
-
currentGroup.id = currentGroup.alias + currentGroup.children.map((item)=>item.id).join('-');
|
1136
|
-
measureGroups.push(currentGroup);
|
1137
|
-
currentGroup = createEmptyMeasureGroup();
|
1138
|
-
}
|
1139
|
-
measureGroups.push(measure);
|
1140
|
-
} else currentGroup.children?.push(measure);
|
1141
|
-
if (currentGroup.children?.length) {
|
1142
|
-
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1143
|
-
currentGroup.id = currentGroup.alias + currentGroup.children.map((item)=>item.id).join('-');
|
1144
|
-
measureGroups.push(currentGroup);
|
1145
|
-
currentGroup = createEmptyMeasureGroup();
|
1126
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
1127
|
+
advancedVSeed.measures = generateMeasuresByParentId(vseed.measures);
|
1128
|
+
return advancedVSeed;
|
1146
1129
|
}
|
1147
|
-
|
1130
|
+
const basicMeasures = getBasicMeasures(vseed);
|
1131
|
+
if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(basicMeasures);
|
1132
|
+
else advancedVSeed.measures = basicMeasures;
|
1148
1133
|
return advancedVSeed;
|
1149
1134
|
};
|
1150
|
-
const
|
1151
|
-
|
1152
|
-
|
1153
|
-
|
1135
|
+
const generateMeasuresByParentId = (measures)=>{
|
1136
|
+
const measureTree = [];
|
1137
|
+
measures.forEach((measure)=>{
|
1138
|
+
if (!measure.parentId) return;
|
1139
|
+
const parent = measureTree.find((item)=>item.id === measure.parentId);
|
1140
|
+
if (parent && 'children' in parent) {
|
1141
|
+
parent.children = parent.children || [];
|
1142
|
+
parent.children.push(measure);
|
1143
|
+
} else measureTree.push({
|
1144
|
+
id: measure.parentId,
|
1145
|
+
children: [
|
1146
|
+
measure
|
1147
|
+
]
|
1148
|
+
});
|
1154
1149
|
});
|
1150
|
+
return measureTree;
|
1151
|
+
};
|
1152
|
+
const basicMeasuresToMeasureTree = (measures)=>{
|
1153
|
+
const id = measures.map((item)=>item.id).join('-');
|
1154
|
+
const alias = measures.map((item)=>item.alias || item.id).join('-');
|
1155
|
+
return [
|
1156
|
+
{
|
1157
|
+
id,
|
1158
|
+
alias,
|
1159
|
+
children: measures
|
1160
|
+
}
|
1161
|
+
];
|
1162
|
+
};
|
1155
1163
|
const ORIGINAL_DATA = '__OriginalData__';
|
1156
1164
|
const Separator = '-';
|
1157
1165
|
const FoldMeasureName = '__MeaName__';
|
@@ -1253,8 +1261,7 @@ const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
|
|
1253
1261
|
return execPipeline(pipeline, context, advancedVSeed);
|
1254
1262
|
};
|
1255
1263
|
const foldMeasures = (dataset, measures, encoding, options)=>{
|
1256
|
-
const { measureId
|
1257
|
-
const colorMeasureId = encoding?.color?.length === 1 && measures.some((m)=>m.id === encoding?.color?.[0]) ? encoding?.color?.[0] : void 0;
|
1264
|
+
const { measureId, measureName, measureValue, colorMeasureId } = options || {};
|
1258
1265
|
const foldInfo = {
|
1259
1266
|
measureId,
|
1260
1267
|
measureName,
|
@@ -1353,11 +1360,12 @@ const applyEncoding = (encoding, dimensions, datum, separator)=>{
|
|
1353
1360
|
if (encoding && dimensions.length) datum[encoding] = dimensions.map((dim)=>String(datum[dim.id])).join(separator);
|
1354
1361
|
};
|
1355
1362
|
const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)=>{
|
1356
|
-
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false } = options || {};
|
1363
|
+
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false, colorMeasureId } = options || {};
|
1357
1364
|
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, encoding, {
|
1358
1365
|
measureId: foldMeasureId,
|
1359
1366
|
measureName: foldMeasureName,
|
1360
|
-
measureValue: foldMeasureValue
|
1367
|
+
measureValue: foldMeasureValue,
|
1368
|
+
colorMeasureId
|
1361
1369
|
});
|
1362
1370
|
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
|
1363
1371
|
foldMeasureId,
|
@@ -1370,6 +1378,24 @@ const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)
|
|
1370
1378
|
unfoldInfo
|
1371
1379
|
};
|
1372
1380
|
};
|
1381
|
+
const colorAdapter = (ordinalPipe, linearPipe)=>(spec, context)=>{
|
1382
|
+
const { advancedVSeed } = context;
|
1383
|
+
if (isLinearColor(advancedVSeed)) return linearPipe(spec, context);
|
1384
|
+
return ordinalPipe(spec, context);
|
1385
|
+
};
|
1386
|
+
const isLinearColor = (advancedVSeed)=>{
|
1387
|
+
const { encoding, measures } = advancedVSeed;
|
1388
|
+
const measureIdList = findAllMeasures(measures).map((measure)=>measure.id);
|
1389
|
+
const { color } = encoding;
|
1390
|
+
return color?.length === 1 && measureIdList.includes(color[0]);
|
1391
|
+
};
|
1392
|
+
const getColorMeasureId = (advancedVSeed)=>{
|
1393
|
+
if (isLinearColor(advancedVSeed)) {
|
1394
|
+
const { encoding } = advancedVSeed;
|
1395
|
+
const { color } = encoding;
|
1396
|
+
return color?.[0];
|
1397
|
+
}
|
1398
|
+
};
|
1373
1399
|
const reshapeWithEncoding = (advancedVSeed, context)=>{
|
1374
1400
|
const result = {
|
1375
1401
|
...advancedVSeed
|
@@ -1379,7 +1405,9 @@ const reshapeWithEncoding = (advancedVSeed, context)=>{
|
|
1379
1405
|
const { dimensions, measures, encoding } = advancedVSeed;
|
1380
1406
|
if (!measures || !dimensions || !dataset || !encoding) return result;
|
1381
1407
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
1382
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding
|
1408
|
+
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1409
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
1410
|
+
});
|
1383
1411
|
return {
|
1384
1412
|
...result,
|
1385
1413
|
dataset: newDatasets,
|
@@ -1415,7 +1443,8 @@ const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
|
|
1415
1443
|
if (!measures) return;
|
1416
1444
|
const groupId = measureGroup.id;
|
1417
1445
|
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1418
|
-
foldMeasureValue: `${FoldMeasureValue}${groupId}
|
1446
|
+
foldMeasureValue: `${FoldMeasureValue}${groupId}`,
|
1447
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
1419
1448
|
});
|
1420
1449
|
const reshapeInfo = {
|
1421
1450
|
id: groupId,
|
@@ -1622,7 +1651,7 @@ const annotation_annotation = (advancedVSeed, context)=>{
|
|
1622
1651
|
};
|
1623
1652
|
const lineAdvancedPipeline = [
|
1624
1653
|
initAdvancedVSeed_initAdvancedVSeed,
|
1625
|
-
|
1654
|
+
buildMeasures,
|
1626
1655
|
autoDimensions_autoDimensions,
|
1627
1656
|
encodingForLine,
|
1628
1657
|
pivotAdapter([
|
@@ -1637,17 +1666,6 @@ const lineAdvancedPipeline = [
|
|
1637
1666
|
markStyle_markStyle,
|
1638
1667
|
annotation_annotation
|
1639
1668
|
];
|
1640
|
-
const colorAdapter = (ordinalPipe, linearPipe)=>(spec, context)=>{
|
1641
|
-
const { advancedVSeed } = context;
|
1642
|
-
if (isLinearColor(advancedVSeed)) return linearPipe(spec, context);
|
1643
|
-
return ordinalPipe(spec, context);
|
1644
|
-
};
|
1645
|
-
const isLinearColor = (advancedVSeed)=>{
|
1646
|
-
const { encoding, measures } = advancedVSeed;
|
1647
|
-
const measureIdList = findAllMeasures(measures).map((measure)=>measure.id);
|
1648
|
-
const { color } = encoding;
|
1649
|
-
return color?.length === 1 && measureIdList.includes(color[0]);
|
1650
|
-
};
|
1651
1669
|
const initLine = (spec, context)=>{
|
1652
1670
|
const result = {
|
1653
1671
|
...spec
|
@@ -3478,7 +3496,7 @@ const encodingForColumn = (advancedVSeed, context)=>{
|
|
3478
3496
|
};
|
3479
3497
|
const columnAdvancedPipeline = [
|
3480
3498
|
initAdvancedVSeed_initAdvancedVSeed,
|
3481
|
-
|
3499
|
+
buildMeasures,
|
3482
3500
|
autoDimensions_autoDimensions,
|
3483
3501
|
encodingForColumn,
|
3484
3502
|
pivotAdapter([
|
@@ -3927,7 +3945,7 @@ const registerColumn = ()=>{
|
|
3927
3945
|
};
|
3928
3946
|
const columnParallelAdvancedPipeline = [
|
3929
3947
|
initAdvancedVSeed_initAdvancedVSeed,
|
3930
|
-
|
3948
|
+
buildMeasures,
|
3931
3949
|
autoDimensions_autoDimensions,
|
3932
3950
|
encodingForColumn,
|
3933
3951
|
pivotAdapter([
|
@@ -4024,7 +4042,7 @@ const registerColumnParallel = ()=>{
|
|
4024
4042
|
};
|
4025
4043
|
const columnPercentAdvancedPipeline = [
|
4026
4044
|
initAdvancedVSeed_initAdvancedVSeed,
|
4027
|
-
|
4045
|
+
buildMeasures,
|
4028
4046
|
autoDimensions_autoDimensions,
|
4029
4047
|
encodingForColumn,
|
4030
4048
|
pivotAdapter([
|
@@ -4163,7 +4181,7 @@ const sortYBandAxis = (advancedVSeed, context)=>{
|
|
4163
4181
|
};
|
4164
4182
|
const barAdvancedPipeline = [
|
4165
4183
|
initAdvancedVSeed_initAdvancedVSeed,
|
4166
|
-
|
4184
|
+
buildMeasures,
|
4167
4185
|
autoDimensions_autoDimensions,
|
4168
4186
|
encodingForBar,
|
4169
4187
|
pivotAdapter([
|
@@ -4516,7 +4534,7 @@ const registerBar = ()=>{
|
|
4516
4534
|
};
|
4517
4535
|
const barParallelAdvancedPipeline = [
|
4518
4536
|
initAdvancedVSeed_initAdvancedVSeed,
|
4519
|
-
|
4537
|
+
buildMeasures,
|
4520
4538
|
autoDimensions_autoDimensions,
|
4521
4539
|
encodingForBar,
|
4522
4540
|
pivotAdapter([
|
@@ -4612,7 +4630,7 @@ const registerBarParallel = ()=>{
|
|
4612
4630
|
};
|
4613
4631
|
const barPercentAdvancedPipeline = [
|
4614
4632
|
initAdvancedVSeed_initAdvancedVSeed,
|
4615
|
-
|
4633
|
+
buildMeasures,
|
4616
4634
|
autoDimensions_autoDimensions,
|
4617
4635
|
encodingForBar,
|
4618
4636
|
pivotAdapter([
|
@@ -4683,7 +4701,7 @@ const registerBarPercent = ()=>{
|
|
4683
4701
|
};
|
4684
4702
|
const areaAdvancedPipeline = [
|
4685
4703
|
initAdvancedVSeed_initAdvancedVSeed,
|
4686
|
-
|
4704
|
+
buildMeasures,
|
4687
4705
|
autoDimensions_autoDimensions,
|
4688
4706
|
encodingForColumn,
|
4689
4707
|
pivotAdapter([
|
@@ -4841,7 +4859,7 @@ const registerArea = ()=>{
|
|
4841
4859
|
};
|
4842
4860
|
const areaPercentAdvancedPipeline = [
|
4843
4861
|
initAdvancedVSeed_initAdvancedVSeed,
|
4844
|
-
|
4862
|
+
buildMeasures,
|
4845
4863
|
autoDimensions_autoDimensions,
|
4846
4864
|
encodingForColumn,
|
4847
4865
|
pivotAdapter([
|
@@ -4917,95 +4935,105 @@ const registerAreaPercent = ()=>{
|
|
4917
4935
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
4918
4936
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
4919
4937
|
};
|
4920
|
-
const
|
4921
|
-
const result = {
|
4922
|
-
...advancedVSeed
|
4923
|
-
};
|
4938
|
+
const buildMeasuresForScatter = (advancedVSeed, context)=>{
|
4924
4939
|
const { vseed } = context;
|
4925
|
-
|
4926
|
-
|
4927
|
-
|
4928
|
-
if (scatterMeasures) {
|
4929
|
-
result.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
4930
|
-
return result;
|
4940
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
4941
|
+
advancedVSeed.measures = vseed.measures;
|
4942
|
+
return advancedVSeed;
|
4931
4943
|
}
|
4932
|
-
if (
|
4933
|
-
|
4934
|
-
return
|
4944
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
4945
|
+
advancedVSeed.measures = buildMeasuresForScatter_generateMeasuresByParentId(vseed.measures);
|
4946
|
+
return advancedVSeed;
|
4935
4947
|
}
|
4936
|
-
const
|
4937
|
-
const
|
4938
|
-
|
4939
|
-
|
4940
|
-
|
4941
|
-
|
4942
|
-
|
4943
|
-
|
4944
|
-
|
4945
|
-
]
|
4946
|
-
|
4947
|
-
|
4948
|
-
|
4949
|
-
|
4950
|
-
|
4951
|
-
|
4952
|
-
|
4953
|
-
|
4954
|
-
|
4955
|
-
|
4956
|
-
|
4957
|
-
else if (newMeasures.length > 1) result.measures = [
|
4958
|
-
{
|
4959
|
-
id: 'primary',
|
4960
|
-
alias: 'primary',
|
4961
|
-
children: newMeasures.slice(0, 1)
|
4962
|
-
},
|
4948
|
+
const basicMeasures = getBasicMeasures(vseed);
|
4949
|
+
const scatterMeasures = vseed.scatterMeasures ? vseed.scatterMeasures : basicMeasuresToScatterMeasures(basicMeasures);
|
4950
|
+
advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
4951
|
+
return advancedVSeed;
|
4952
|
+
};
|
4953
|
+
const basicMeasuresToScatterMeasures = (basicMeasures)=>{
|
4954
|
+
const yMeasures = [];
|
4955
|
+
const xMeasures = [];
|
4956
|
+
for(let index = 0; index < basicMeasures.length; index++){
|
4957
|
+
const item = basicMeasures[index];
|
4958
|
+
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
4959
|
+
item.encoding
|
4960
|
+
];
|
4961
|
+
const isYAxis = encoding.includes('yAxis');
|
4962
|
+
const isXAxis = encoding.includes('xAxis');
|
4963
|
+
if (isYAxis) yMeasures.push(item);
|
4964
|
+
else if (isXAxis) xMeasures.push(item);
|
4965
|
+
else if (0 === index) yMeasures.push(item);
|
4966
|
+
else xMeasures.push(item);
|
4967
|
+
}
|
4968
|
+
return [
|
4963
4969
|
{
|
4964
|
-
id: '
|
4965
|
-
|
4966
|
-
|
4970
|
+
id: 'scatterMeasures',
|
4971
|
+
xMeasures,
|
4972
|
+
yMeasures
|
4967
4973
|
}
|
4968
4974
|
];
|
4969
|
-
return result;
|
4970
4975
|
};
|
4971
4976
|
const scatterMeasuresToMeasureTree = (scatterMeasures)=>{
|
4972
4977
|
const measureTree = scatterMeasures.map((item, index)=>{
|
4973
|
-
const { xMeasures, yMeasures } = item;
|
4978
|
+
const { id, xMeasures, yMeasures } = item;
|
4974
4979
|
const groupChildren = [];
|
4975
|
-
let
|
4980
|
+
let groupId = `${id}-`;
|
4976
4981
|
if (xMeasures) {
|
4977
|
-
const
|
4982
|
+
const arrPrimaryMeasures = Array.isArray(xMeasures) ? xMeasures : [
|
4978
4983
|
xMeasures
|
4979
4984
|
];
|
4980
|
-
const alias =
|
4981
|
-
|
4985
|
+
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
4986
|
+
groupId += alias;
|
4982
4987
|
groupChildren.push({
|
4983
4988
|
id: `${index}-x`,
|
4984
|
-
alias:
|
4985
|
-
children:
|
4989
|
+
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
4990
|
+
children: arrPrimaryMeasures
|
4986
4991
|
});
|
4987
4992
|
}
|
4988
4993
|
if (yMeasures) {
|
4989
|
-
const
|
4994
|
+
const arrSecondaryMeasures = Array.isArray(yMeasures) ? yMeasures : [
|
4990
4995
|
yMeasures
|
4991
4996
|
];
|
4992
|
-
const alias =
|
4993
|
-
|
4997
|
+
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
4998
|
+
groupId += alias;
|
4994
4999
|
groupChildren.push({
|
4995
5000
|
id: `${index}-y`,
|
4996
|
-
alias:
|
4997
|
-
children:
|
5001
|
+
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
5002
|
+
children: arrSecondaryMeasures
|
4998
5003
|
});
|
4999
5004
|
}
|
5000
5005
|
return {
|
5001
|
-
id,
|
5002
|
-
alias:
|
5006
|
+
id: groupId,
|
5007
|
+
alias: groupId,
|
5003
5008
|
children: groupChildren
|
5004
5009
|
};
|
5005
5010
|
});
|
5006
5011
|
if (1 === scatterMeasures.length) return measureTree[0].children || [];
|
5007
5012
|
return measureTree;
|
5008
5013
|
};
|
5014
|
+
const buildMeasuresForScatter_generateMeasuresByParentId = (measures)=>{
|
5015
|
+
const scatterMeasures = [];
|
5016
|
+
measures.forEach((item)=>{
|
5017
|
+
if (!item.parentId) return;
|
5018
|
+
if (!scatterMeasures.find((d)=>d.id === item.parentId)) scatterMeasures.push({
|
5019
|
+
id: item.parentId,
|
5020
|
+
yMeasures: [],
|
5021
|
+
xMeasures: []
|
5022
|
+
});
|
5023
|
+
const scatterChart = scatterMeasures.find((d)=>d.id === item.parentId);
|
5024
|
+
if (!scatterChart || !Array.isArray(scatterChart.yMeasures) || !Array.isArray(scatterChart.xMeasures)) return;
|
5025
|
+
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
5026
|
+
item.encoding
|
5027
|
+
];
|
5028
|
+
const isY = encoding.includes('yAxis');
|
5029
|
+
const isX = encoding.includes('xAxis');
|
5030
|
+
if (isY) scatterChart.yMeasures.push(item);
|
5031
|
+
else if (isX) scatterChart.xMeasures.push(item);
|
5032
|
+
else if (!isY && !isX) if (0 === scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
|
5033
|
+
else scatterChart.xMeasures.push(item);
|
5034
|
+
});
|
5035
|
+
return scatterMeasuresToMeasureTree(scatterMeasures);
|
5036
|
+
};
|
5009
5037
|
const encodingForScatter = (advancedVSeed, context)=>{
|
5010
5038
|
const { vseed } = context;
|
5011
5039
|
const { dimensions } = advancedVSeed;
|
@@ -5061,7 +5089,8 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5061
5089
|
if (xMeasures && xMeasures.children) {
|
5062
5090
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5063
5091
|
foldMeasureValue: FoldXMeasureValue,
|
5064
|
-
colorItemAsId: true
|
5092
|
+
colorItemAsId: true,
|
5093
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5065
5094
|
});
|
5066
5095
|
datasets.push(newDataset);
|
5067
5096
|
foldInfoList.push(foldInfo);
|
@@ -5070,7 +5099,8 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5070
5099
|
if (yMeasures && yMeasures.children) {
|
5071
5100
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], dimensions, yMeasures.children, encoding, {
|
5072
5101
|
foldMeasureValue: FoldYMeasureValue,
|
5073
|
-
colorItemAsId: true
|
5102
|
+
colorItemAsId: true,
|
5103
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5074
5104
|
});
|
5075
5105
|
datasets[0] = newDataset;
|
5076
5106
|
foldInfoList.push(foldInfo);
|
@@ -5125,7 +5155,8 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5125
5155
|
if (xMeasures && xMeasures.children) {
|
5126
5156
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5127
5157
|
foldMeasureValue: `${FoldXMeasureValue}${index}`,
|
5128
|
-
colorItemAsId: true
|
5158
|
+
colorItemAsId: true,
|
5159
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5129
5160
|
});
|
5130
5161
|
datasets.push(newDataset);
|
5131
5162
|
foldInfoList.push(foldInfo);
|
@@ -5134,7 +5165,8 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5134
5165
|
if (yMeasures && yMeasures.children) {
|
5135
5166
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, yMeasures.children, encoding, {
|
5136
5167
|
foldMeasureValue: `${FoldYMeasureValue}${index}`,
|
5137
|
-
colorItemAsId: true
|
5168
|
+
colorItemAsId: true,
|
5169
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5138
5170
|
});
|
5139
5171
|
datasets.push(newDataset);
|
5140
5172
|
foldInfoList.push(foldInfo);
|
@@ -5169,7 +5201,7 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5169
5201
|
};
|
5170
5202
|
const scatterAdvancedPipeline = [
|
5171
5203
|
initAdvancedVSeed_initAdvancedVSeed,
|
5172
|
-
|
5204
|
+
buildMeasuresForScatter,
|
5173
5205
|
autoDimensions_autoDimensions,
|
5174
5206
|
encodingForScatter,
|
5175
5207
|
pivotAdapter([
|
@@ -5316,68 +5348,55 @@ const registerScatter = ()=>{
|
|
5316
5348
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
5317
5349
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
5318
5350
|
};
|
5319
|
-
const
|
5320
|
-
const result = {
|
5321
|
-
...advancedVSeed
|
5322
|
-
};
|
5351
|
+
const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
|
5323
5352
|
const { vseed } = context;
|
5324
|
-
|
5325
|
-
|
5326
|
-
|
5327
|
-
if (dualMeasures) {
|
5328
|
-
result.measures = dualMeasuresToMeasureTree(dualMeasures);
|
5329
|
-
return result;
|
5353
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
5354
|
+
advancedVSeed.measures = vseed.measures;
|
5355
|
+
return advancedVSeed;
|
5330
5356
|
}
|
5331
|
-
if (
|
5332
|
-
|
5333
|
-
return
|
5357
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
5358
|
+
advancedVSeed.measures = buildMeasuresForDualAxis_generateMeasuresByParentId(vseed.measures);
|
5359
|
+
return advancedVSeed;
|
5334
5360
|
}
|
5335
|
-
const
|
5336
|
-
const
|
5337
|
-
|
5338
|
-
|
5339
|
-
|
5340
|
-
|
5341
|
-
|
5342
|
-
|
5343
|
-
|
5344
|
-
]
|
5345
|
-
|
5346
|
-
|
5347
|
-
|
5348
|
-
|
5349
|
-
|
5350
|
-
|
5351
|
-
|
5352
|
-
|
5353
|
-
|
5354
|
-
|
5355
|
-
|
5356
|
-
else if (newMeasures.length > 1) result.measures = [
|
5357
|
-
{
|
5358
|
-
id: 'primary',
|
5359
|
-
alias: 'primary',
|
5360
|
-
children: newMeasures.slice(0, 1)
|
5361
|
-
},
|
5361
|
+
const basicMeasures = getBasicMeasures(vseed);
|
5362
|
+
const dualMeasures = vseed.dualMeasures ? vseed.dualMeasures : basicMeasuresToDualMeasures(basicMeasures);
|
5363
|
+
advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures);
|
5364
|
+
return advancedVSeed;
|
5365
|
+
};
|
5366
|
+
const basicMeasuresToDualMeasures = (basicMeasures)=>{
|
5367
|
+
const primaryMeasures = [];
|
5368
|
+
const secondaryMeasures = [];
|
5369
|
+
for(let index = 0; index < basicMeasures.length; index++){
|
5370
|
+
const item = basicMeasures[index];
|
5371
|
+
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
5372
|
+
item.encoding
|
5373
|
+
];
|
5374
|
+
const isPrimaryYAxis = encoding.includes('primaryYAxis');
|
5375
|
+
const isSecondaryYAxis = encoding.includes('secondaryYAxis');
|
5376
|
+
if (isPrimaryYAxis) primaryMeasures.push(item);
|
5377
|
+
else if (isSecondaryYAxis) secondaryMeasures.push(item);
|
5378
|
+
else if (0 === index) primaryMeasures.push(item);
|
5379
|
+
else secondaryMeasures.push(item);
|
5380
|
+
}
|
5381
|
+
return [
|
5362
5382
|
{
|
5363
|
-
id: '
|
5364
|
-
|
5365
|
-
|
5383
|
+
id: 'dualMeasures',
|
5384
|
+
primaryMeasures,
|
5385
|
+
secondaryMeasures
|
5366
5386
|
}
|
5367
5387
|
];
|
5368
|
-
return result;
|
5369
5388
|
};
|
5370
5389
|
const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
5371
5390
|
const measureTree = dualMeasures.map((item, index)=>{
|
5372
|
-
const { primaryMeasures, secondaryMeasures } = item;
|
5391
|
+
const { id, primaryMeasures, secondaryMeasures } = item;
|
5373
5392
|
const groupChildren = [];
|
5374
|
-
let
|
5393
|
+
let groupId = `${id}-`;
|
5375
5394
|
if (primaryMeasures) {
|
5376
5395
|
const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
|
5377
5396
|
primaryMeasures
|
5378
5397
|
];
|
5379
5398
|
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
5380
|
-
|
5399
|
+
groupId += alias;
|
5381
5400
|
groupChildren.push({
|
5382
5401
|
id: `${index}-primary`,
|
5383
5402
|
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
@@ -5389,7 +5408,7 @@ const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
|
5389
5408
|
secondaryMeasures
|
5390
5409
|
];
|
5391
5410
|
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
5392
|
-
|
5411
|
+
groupId += alias;
|
5393
5412
|
groupChildren.push({
|
5394
5413
|
id: `${index}-secondary`,
|
5395
5414
|
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
@@ -5397,14 +5416,37 @@ const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
|
5397
5416
|
});
|
5398
5417
|
}
|
5399
5418
|
return {
|
5400
|
-
id,
|
5401
|
-
alias:
|
5419
|
+
id: groupId,
|
5420
|
+
alias: groupId,
|
5402
5421
|
children: groupChildren
|
5403
5422
|
};
|
5404
5423
|
});
|
5405
5424
|
if (1 === dualMeasures.length) return measureTree[0].children || [];
|
5406
5425
|
return measureTree;
|
5407
5426
|
};
|
5427
|
+
const buildMeasuresForDualAxis_generateMeasuresByParentId = (measures)=>{
|
5428
|
+
const dualMeasures = [];
|
5429
|
+
measures.forEach((item)=>{
|
5430
|
+
if (!item.parentId) return;
|
5431
|
+
if (!dualMeasures.find((d)=>d.id === item.parentId)) dualMeasures.push({
|
5432
|
+
id: item.parentId,
|
5433
|
+
primaryMeasures: [],
|
5434
|
+
secondaryMeasures: []
|
5435
|
+
});
|
5436
|
+
const dualChart = dualMeasures.find((d)=>d.id === item.parentId);
|
5437
|
+
if (!dualChart || !Array.isArray(dualChart.primaryMeasures) || !Array.isArray(dualChart.secondaryMeasures)) return;
|
5438
|
+
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
5439
|
+
item.encoding
|
5440
|
+
];
|
5441
|
+
const isPrimary = encoding.includes('primaryYAxis');
|
5442
|
+
const isSecondary = encoding.includes('secondaryYAxis');
|
5443
|
+
if (isPrimary) dualChart.primaryMeasures.push(item);
|
5444
|
+
else if (isSecondary) dualChart.secondaryMeasures.push(item);
|
5445
|
+
else if (!isPrimary && !isSecondary) if (0 === dualChart.primaryMeasures.length) dualChart.primaryMeasures.push(item);
|
5446
|
+
else dualChart.secondaryMeasures.push(item);
|
5447
|
+
});
|
5448
|
+
return dualMeasuresToMeasureTree(dualMeasures);
|
5449
|
+
};
|
5408
5450
|
const encodingForDualAxis = (advancedVSeed, context)=>{
|
5409
5451
|
const { vseed } = context;
|
5410
5452
|
const { dimensions } = advancedVSeed;
|
@@ -5463,7 +5505,8 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5463
5505
|
const secondaryMeasures = measures[1] || [];
|
5464
5506
|
if (primaryMeasures && primaryMeasures.children) {
|
5465
5507
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
5466
|
-
foldMeasureValue: FoldPrimaryMeasureValue
|
5508
|
+
foldMeasureValue: FoldPrimaryMeasureValue,
|
5509
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5467
5510
|
});
|
5468
5511
|
datasets.push(newDataset);
|
5469
5512
|
foldInfoList.push(foldInfo);
|
@@ -5471,7 +5514,8 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5471
5514
|
}
|
5472
5515
|
if (secondaryMeasures && secondaryMeasures.children) {
|
5473
5516
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
5474
|
-
foldMeasureValue: FoldSecondaryMeasureValue
|
5517
|
+
foldMeasureValue: FoldSecondaryMeasureValue,
|
5518
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5475
5519
|
});
|
5476
5520
|
datasets.push(newDataset);
|
5477
5521
|
foldInfoList.push(foldInfo);
|
@@ -5525,7 +5569,8 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5525
5569
|
const secondaryMeasures = measures[1] || [];
|
5526
5570
|
if (primaryMeasures && primaryMeasures.children) {
|
5527
5571
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
5528
|
-
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}
|
5572
|
+
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
|
5573
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5529
5574
|
});
|
5530
5575
|
datasets.push(newDataset);
|
5531
5576
|
foldInfoList.push(foldInfo);
|
@@ -5533,7 +5578,8 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5533
5578
|
}
|
5534
5579
|
if (secondaryMeasures && secondaryMeasures.children) {
|
5535
5580
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
5536
|
-
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}
|
5581
|
+
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,
|
5582
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5537
5583
|
});
|
5538
5584
|
datasets.push(newDataset);
|
5539
5585
|
foldInfoList.push(foldInfo);
|
@@ -5591,7 +5637,7 @@ const dualAxisConfig = (advancedVSeed, context)=>{
|
|
5591
5637
|
};
|
5592
5638
|
const dualAxisAdvancedPipeline = [
|
5593
5639
|
initAdvancedVSeed_initAdvancedVSeed,
|
5594
|
-
|
5640
|
+
buildMeasuresForDualAxis,
|
5595
5641
|
autoDimensions_autoDimensions,
|
5596
5642
|
encodingForDualAxis,
|
5597
5643
|
pivotAdapter([
|
@@ -5678,7 +5724,7 @@ const initDualAxisSecondary = (spec, context)=>{
|
|
5678
5724
|
result.direction = 'vertical';
|
5679
5725
|
result.xField = unfoldInfo.encodingX;
|
5680
5726
|
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
5681
|
-
result.seriesField = unfoldInfo.encodingColorId;
|
5727
|
+
result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
5682
5728
|
result.animation = true;
|
5683
5729
|
return result;
|
5684
5730
|
};
|
@@ -6304,6 +6350,37 @@ const yLinearSecondary = (spec, context)=>{
|
|
6304
6350
|
];
|
6305
6351
|
return result;
|
6306
6352
|
};
|
6353
|
+
const linearColorForDualAxis = (spec, context)=>{
|
6354
|
+
const result = {
|
6355
|
+
...spec
|
6356
|
+
};
|
6357
|
+
const { advancedVSeed } = context;
|
6358
|
+
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
6359
|
+
const { unfoldInfo, id } = datasetReshapeInfo[0];
|
6360
|
+
const baseConfig = advancedVSeed.config[chartType];
|
6361
|
+
if (!baseConfig || !baseConfig.color) return result;
|
6362
|
+
const { color } = baseConfig;
|
6363
|
+
const { colorScheme, linearColorScheme } = color;
|
6364
|
+
result.color = {
|
6365
|
+
type: 'linear',
|
6366
|
+
range: linearColorScheme || colorScheme || [],
|
6367
|
+
domain: [
|
6368
|
+
{
|
6369
|
+
dataId: `${id}-primary-dataset`,
|
6370
|
+
fields: [
|
6371
|
+
unfoldInfo.encodingColor
|
6372
|
+
]
|
6373
|
+
},
|
6374
|
+
{
|
6375
|
+
dataId: `${id}-secondary-dataset`,
|
6376
|
+
fields: [
|
6377
|
+
unfoldInfo.encodingColor
|
6378
|
+
]
|
6379
|
+
}
|
6380
|
+
]
|
6381
|
+
};
|
6382
|
+
return result;
|
6383
|
+
};
|
6307
6384
|
const dualAxis = [
|
6308
6385
|
seriesDualAxis([
|
6309
6386
|
initDualAxisPrimary,
|
@@ -6312,11 +6389,11 @@ const dualAxis = [
|
|
6312
6389
|
labelPrimary,
|
6313
6390
|
tooltipPrimary,
|
6314
6391
|
progressive,
|
6315
|
-
barStyle_barStyle,
|
6316
|
-
pointStyle_pointStyle,
|
6392
|
+
colorBarStyleFill(barStyle_barStyle),
|
6393
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6317
6394
|
pointStateDimensionHover,
|
6318
|
-
lineStyle_lineStyle,
|
6319
|
-
areaStyle_areaStyle
|
6395
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6396
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6320
6397
|
], [
|
6321
6398
|
initDualAxisSecondary,
|
6322
6399
|
dualChartTypeSecondary,
|
@@ -6324,18 +6401,18 @@ const dualAxis = [
|
|
6324
6401
|
labelSecondary,
|
6325
6402
|
tooltipSecondary,
|
6326
6403
|
progressive,
|
6327
|
-
barStyle_barStyle,
|
6328
|
-
pointStyle_pointStyle,
|
6404
|
+
colorBarStyleFill(barStyle_barStyle),
|
6405
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6329
6406
|
pointStateDimensionHover,
|
6330
|
-
lineStyle_lineStyle,
|
6331
|
-
areaStyle_areaStyle
|
6407
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6408
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6332
6409
|
]),
|
6333
6410
|
xBand,
|
6334
6411
|
yLinearPrimary,
|
6335
6412
|
yLinearSecondary,
|
6336
|
-
color_color,
|
6413
|
+
colorAdapter(color_color, linearColorForDualAxis),
|
6414
|
+
colorAdapter(discreteLegend, colorLegend),
|
6337
6415
|
background_backgroundColor,
|
6338
|
-
discreteLegend,
|
6339
6416
|
verticalCrosshairRect,
|
6340
6417
|
annotationPoint_annotationPoint,
|
6341
6418
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -6355,11 +6432,11 @@ const pivotDualAxis = [
|
|
6355
6432
|
labelPrimary,
|
6356
6433
|
tooltipPrimary,
|
6357
6434
|
progressive,
|
6358
|
-
barStyle_barStyle,
|
6359
|
-
pointStyle_pointStyle,
|
6435
|
+
colorBarStyleFill(barStyle_barStyle),
|
6436
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6360
6437
|
pointStateDimensionHover,
|
6361
|
-
lineStyle_lineStyle,
|
6362
|
-
areaStyle_areaStyle
|
6438
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6439
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6363
6440
|
], [
|
6364
6441
|
initDualAxisSecondary,
|
6365
6442
|
dualChartTypeSecondary,
|
@@ -6367,16 +6444,16 @@ const pivotDualAxis = [
|
|
6367
6444
|
labelSecondary,
|
6368
6445
|
tooltipSecondary,
|
6369
6446
|
progressive,
|
6370
|
-
barStyle_barStyle,
|
6371
|
-
pointStyle_pointStyle,
|
6447
|
+
colorBarStyleFill(barStyle_barStyle),
|
6448
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6372
6449
|
pointStateDimensionHover,
|
6373
|
-
lineStyle_lineStyle,
|
6374
|
-
areaStyle_areaStyle
|
6450
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6451
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6375
6452
|
]),
|
6376
6453
|
xBand,
|
6377
6454
|
yLinearPrimary,
|
6378
6455
|
yLinearSecondary,
|
6379
|
-
color_color,
|
6456
|
+
colorAdapter(color_color, linearColor),
|
6380
6457
|
background_backgroundColor,
|
6381
6458
|
verticalCrosshairRect,
|
6382
6459
|
annotationPoint_annotationPoint,
|
@@ -6386,7 +6463,7 @@ const pivotDualAxis = [
|
|
6386
6463
|
]),
|
6387
6464
|
pivotRowDimensions,
|
6388
6465
|
pivotColumnDimensions,
|
6389
|
-
pivotDiscreteLegend
|
6466
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
6390
6467
|
];
|
6391
6468
|
const dualAxisSpecPipeline = [
|
6392
6469
|
pivotAdapter_pivotAdapter(dualAxis, pivotDualAxis)
|
@@ -6421,7 +6498,7 @@ const encodingForPie = (advancedVSeed, context)=>{
|
|
6421
6498
|
};
|
6422
6499
|
const pieAdvancedPipeline = [
|
6423
6500
|
initAdvancedVSeed_initAdvancedVSeed,
|
6424
|
-
|
6501
|
+
buildMeasures,
|
6425
6502
|
autoDimensions_autoDimensions,
|
6426
6503
|
encodingForPie,
|
6427
6504
|
pivotAdapter([
|
@@ -6512,7 +6589,7 @@ const registerPie = ()=>{
|
|
6512
6589
|
};
|
6513
6590
|
const donutAdvancedPipeline = [
|
6514
6591
|
initAdvancedVSeed_initAdvancedVSeed,
|
6515
|
-
|
6592
|
+
buildMeasures,
|
6516
6593
|
autoDimensions_autoDimensions,
|
6517
6594
|
encodingForPie,
|
6518
6595
|
pivotAdapter([
|
@@ -6644,7 +6721,7 @@ const encodingForRose = (advancedVSeed, context)=>{
|
|
6644
6721
|
};
|
6645
6722
|
const roseAdvancedPipeline = [
|
6646
6723
|
initAdvancedVSeed_initAdvancedVSeed,
|
6647
|
-
|
6724
|
+
buildMeasures,
|
6648
6725
|
autoDimensions_autoDimensions,
|
6649
6726
|
encodingForRose,
|
6650
6727
|
pivotAdapter([
|
@@ -6813,7 +6890,7 @@ const registerRose = ()=>{
|
|
6813
6890
|
};
|
6814
6891
|
const roseParallelAdvancedPipeline = [
|
6815
6892
|
initAdvancedVSeed_initAdvancedVSeed,
|
6816
|
-
|
6893
|
+
buildMeasures,
|
6817
6894
|
autoDimensions_autoDimensions,
|
6818
6895
|
encodingForRose,
|
6819
6896
|
pivotAdapter([
|
@@ -6962,7 +7039,7 @@ const encodingForRadar = (advancedVSeed, context)=>{
|
|
6962
7039
|
};
|
6963
7040
|
const radarAdvancedPipeline = [
|
6964
7041
|
initAdvancedVSeed_initAdvancedVSeed,
|
6965
|
-
|
7042
|
+
buildMeasures,
|
6966
7043
|
autoDimensions_autoDimensions,
|
6967
7044
|
encodingForRadar,
|
6968
7045
|
pivotAdapter([
|
@@ -7124,7 +7201,7 @@ const encodingForFunnel = (advancedVSeed, context)=>{
|
|
7124
7201
|
};
|
7125
7202
|
const funnelAdvancedPipeline = [
|
7126
7203
|
initAdvancedVSeed_initAdvancedVSeed,
|
7127
|
-
|
7204
|
+
buildMeasures,
|
7128
7205
|
autoDimensions_autoDimensions,
|
7129
7206
|
encodingForFunnel,
|
7130
7207
|
pivotAdapter([
|
@@ -7255,7 +7332,7 @@ const encodingForHeatmap = (advancedVSeed, context)=>{
|
|
7255
7332
|
};
|
7256
7333
|
const heatmapAdvancedPipeline = [
|
7257
7334
|
initAdvancedVSeed_initAdvancedVSeed,
|
7258
|
-
|
7335
|
+
buildMeasures,
|
7259
7336
|
autoDimensions_autoDimensions,
|
7260
7337
|
encodingForHeatmap,
|
7261
7338
|
pivotAdapter([
|
@@ -8122,7 +8199,20 @@ const zMeasure = z.object({
|
|
8122
8199
|
id: z.string(),
|
8123
8200
|
alias: z.string().optional(),
|
8124
8201
|
autoFormat: z.boolean().default(true),
|
8125
|
-
format: zNumFormat["default"]({})
|
8202
|
+
format: zNumFormat["default"]({}),
|
8203
|
+
encoding: z["enum"]([
|
8204
|
+
'primaryYAxis',
|
8205
|
+
'secondaryYAxis',
|
8206
|
+
'xAxis',
|
8207
|
+
'yAxis',
|
8208
|
+
'angle',
|
8209
|
+
'radius',
|
8210
|
+
'size',
|
8211
|
+
'color',
|
8212
|
+
'label',
|
8213
|
+
'tooltip'
|
8214
|
+
]).optional(),
|
8215
|
+
parentId: z.string().optional()
|
8126
8216
|
});
|
8127
8217
|
const zMeasureGroup = z.object({
|
8128
8218
|
id: z.string(),
|
@@ -8184,7 +8274,6 @@ const zEncoding = z.object({
|
|
8184
8274
|
column: z.array(z.string()).nullish(),
|
8185
8275
|
group: z.array(z.string()).nullish().describe("\u5DF2\u5F03\u7528, \u8BF7\u4F7F\u7528\u989C\u8272\u66FF\u4EE3")
|
8186
8276
|
});
|
8187
|
-
const zEncodings = z.array(zEncoding);
|
8188
8277
|
const zXBandAxis = z.object({
|
8189
8278
|
visible: z.boolean().default(true).nullish(),
|
8190
8279
|
labelAutoHide: z.boolean().default(true).nullish(),
|
@@ -9327,7 +9416,6 @@ const zAdvancedVSeed = z.object({
|
|
9327
9416
|
dimensions: zDimensionTree,
|
9328
9417
|
measures: zMeasureTree,
|
9329
9418
|
encoding: zEncoding,
|
9330
|
-
encodings: zEncodings,
|
9331
9419
|
config: zConfig,
|
9332
9420
|
analysis: zAnalysis,
|
9333
9421
|
theme: zTheme,
|
@@ -9336,6 +9424,6 @@ const zAdvancedVSeed = z.object({
|
|
9336
9424
|
annotation: zAnnotation,
|
9337
9425
|
locale: zLocale
|
9338
9426
|
});
|
9339
|
-
export { AngleEncoding, Builder, ColorEncoding, ColorIdEncoding, DetailEncoding, FoldMeasureId, FoldMeasureName, FoldMeasureValue, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, FoldXMeasureValue, FoldYMeasureValue, MeasureName, ORIGINAL_DATA, Separator, XEncoding, YEncoding, areaAdvancedPipeline, areaPercentAdvancedPipeline, areaPercentSpecPipeline, areaSpecPipeline, autoFormatter, autoNumFormatter, barAdvancedPipeline, barParallelAdvancedPipeline, barParallelSpecPipeline, barPercentAdvancedPipeline, barPercentSpecPipeline, barSpecPipeline, columnAdvancedPipeline, columnParallelAdvancedPipeline, columnParallelSpecPipeline, columnPercentAdvancedPipeline, columnPercentSpecPipeline, columnSpecPipeline, createFormatter, createNumFormatter, darkTheme, dataReshapeByEncoding, donutAdvancedPipeline, donutSpecPipeline, dualAxisAdvancedPipeline, dualAxisSpecPipeline, execPipeline, findAllDimensions, findAllMeasures, findFirstMeasure, findMeasureById, foldMeasures, funnelAdvancedPipeline, funnelSpecPipeline, heatmapAdvancedPipeline, heatmapSpecPipeline, i18n, intl, isDimensionSelector, isMeasure, isMeasureGroup, isMeasureSelector, isMeasures, isPartialDatumSelector, isPivotChart, isPivotTable, isTable, isVChart, isVTable, isValueSelector, lightTheme, lineAdvancedPipeline, lineSpecPipeline, measureDepth, pieAdvancedPipeline, pieSpecPipeline, pivotTableAdvancedPipeline, pivotTableSpecPipeline, preorderTraverse, radarAdvancedPipeline, radarSpecPipeline, registerAll, registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerColumn, registerColumnParallel, registerColumnPercent, registerCustomTheme, registerDarkTheme, registerDonut, registerFunnel, registerHeatmap, registerLightTheme, registerLine, registerPie, registerPivotTable, registerRadar, registerRose, registerRoseParallel, registerScatter, registerTable, roseAdvancedPipeline, roseParallelAdvancedPipeline, roseParallelSpecPipeline, roseSpecPipeline, scatterAdvancedPipeline, scatterSpecPipeline, selector_selector as selector, tableAdvancedPipeline, tableSpecPipeline, unfoldDimensions, updateAdvanced, updateSpec, zAdvancedVSeed, zAnalysis, zAnnotation, zAnnotationArea, zAnnotationHorizontalLine, zAnnotationPoint, zAnnotationVerticalLine, zArea, zAreaConfig, zAreaPercent, zAreaPercentConfig, zAreaStyle, zAxis, zBackgroundColor, zBar, zBarConfig, zBarParallel, zBarParallelConfig, zBarPercent, zBarPercentConfig, zBarStyle, zChartType, zColor, zColorLegend, zColumn, zColumnConfig, zColumnParallel, zColumnParallelConfig, zColumnPercent, zColumnPercentConfig, zConfig, zCrosshairLine, zCrosshairRect, zCustomTheme, zCustomThemeConfig, zDataset, zDatasetReshapeInfo, zDatum, zDimension, zDimensionGroup, zDimensionTree, zDimensions, zDonut, zDonutConfig, zDualAxis, zDualAxisConfig, zDualChartType, zDualMeasure, zDualMeasures, zEncoding,
|
9427
|
+
export { AngleEncoding, Builder, ColorEncoding, ColorIdEncoding, DetailEncoding, FoldMeasureId, FoldMeasureName, FoldMeasureValue, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, FoldXMeasureValue, FoldYMeasureValue, MeasureName, ORIGINAL_DATA, Separator, XEncoding, YEncoding, areaAdvancedPipeline, areaPercentAdvancedPipeline, areaPercentSpecPipeline, areaSpecPipeline, autoFormatter, autoNumFormatter, barAdvancedPipeline, barParallelAdvancedPipeline, barParallelSpecPipeline, barPercentAdvancedPipeline, barPercentSpecPipeline, barSpecPipeline, columnAdvancedPipeline, columnParallelAdvancedPipeline, columnParallelSpecPipeline, columnPercentAdvancedPipeline, columnPercentSpecPipeline, columnSpecPipeline, createFormatter, createNumFormatter, darkTheme, dataReshapeByEncoding, donutAdvancedPipeline, donutSpecPipeline, dualAxisAdvancedPipeline, dualAxisSpecPipeline, execPipeline, findAllDimensions, findAllMeasures, findFirstMeasure, findMeasureById, foldMeasures, funnelAdvancedPipeline, funnelSpecPipeline, heatmapAdvancedPipeline, heatmapSpecPipeline, i18n, intl, isDimensionSelector, isMeasure, isMeasureGroup, isMeasureSelector, isMeasures, isPartialDatumSelector, isPivotChart, isPivotTable, isTable, isVChart, isVTable, isValueSelector, lightTheme, lineAdvancedPipeline, lineSpecPipeline, measureDepth, pieAdvancedPipeline, pieSpecPipeline, pivotTableAdvancedPipeline, pivotTableSpecPipeline, preorderTraverse, radarAdvancedPipeline, radarSpecPipeline, registerAll, registerArea, registerAreaPercent, registerBar, registerBarParallel, registerBarPercent, registerColumn, registerColumnParallel, registerColumnPercent, registerCustomTheme, registerDarkTheme, registerDonut, registerFunnel, registerHeatmap, registerLightTheme, registerLine, registerPie, registerPivotTable, registerRadar, registerRose, registerRoseParallel, registerScatter, registerTable, roseAdvancedPipeline, roseParallelAdvancedPipeline, roseParallelSpecPipeline, roseSpecPipeline, scatterAdvancedPipeline, scatterSpecPipeline, selector_selector as selector, tableAdvancedPipeline, tableSpecPipeline, unfoldDimensions, updateAdvanced, updateSpec, zAdvancedVSeed, zAnalysis, zAnnotation, zAnnotationArea, zAnnotationHorizontalLine, zAnnotationPoint, zAnnotationVerticalLine, zArea, zAreaConfig, zAreaPercent, zAreaPercentConfig, zAreaStyle, zAxis, zBackgroundColor, zBar, zBarConfig, zBarParallel, zBarParallelConfig, zBarPercent, zBarPercentConfig, zBarStyle, zChartType, zColor, zColorLegend, zColumn, zColumnConfig, zColumnParallel, zColumnParallelConfig, zColumnPercent, zColumnPercentConfig, zConfig, zCrosshairLine, zCrosshairRect, zCustomTheme, zCustomThemeConfig, zDataset, zDatasetReshapeInfo, zDatum, zDimension, zDimensionGroup, zDimensionTree, zDimensions, zDonut, zDonutConfig, zDualAxis, zDualAxisConfig, zDualChartType, zDualMeasure, zDualMeasures, zEncoding, zFoldInfo, zFunnel, zFunnelConfig, zHeatmap, zHeatmapConfig, zLabel, zLegend, zLine, zLineConfig, zLineStyle, zLinearColor, zLocale, zMarkStyle, zMeasure, zMeasureGroup, zMeasureTree, zMeasures, zNumFormat, zPie, zPieConfig, zPivotTable, zPivotTableConfig, zPointStyle, zRadar, zRadarConfig, zRose, zRoseConfig, zRoseParallel, zRoseParallelConfig, zScatter, zScatterConfig, zScatterMeasure, zScatterMeasures, zSort, zSortLegend, zStackCornerRadius, zTable, zTableConfig, zTheme, zTooltip, zUnfoldInfo, zVSeed, zXBandAxis, zXLinearAxis, zYBandAxis, zYLinearAxis };
|
9340
9428
|
|
9341
9429
|
//# sourceMappingURL=index.js.map
|